Перехватчик

Содержание

Класс "Перехватчик" / "Interceptor".

Специальный класс, предназначенный для перехвата предопределенных событий 1С и ВК FormEx, вызываемых для групповых контекстов, модулей проведения документов и/или глобального модуля, с помощью специальных объектов пользовательских классов 1С++ или объектов типа ВыполняемыйМодуль или наследников от произвольных CBL-контекстов.

Версия: релиз 2.5 и выше.

Общая схема перехвата:

0. Для использования перехвата должна быть включена настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " См. SettingsManager

1.0 В качестве собственных объектов-перехватчиков можно использовать как пользовательский класс 1С++, так и объект типа ВыполняемыйМодуль, а также наследников от произвольных CBL-контекстов (например, для произвольных ВК - подобная ВК со своими классами есть у Александра Орефкова aka orefkov)

1.1 Необходимо использовать модуль, в котором должны быть определены обработчики соответствующих событий с названием события (ПриЗакрытии, ПриНачалеВыбораЗначения, ПриНажатииКнопкиКлавиатуры) или со специальным названием в виде Событие_НаименованиеСобытия (Событие_ПриЗакрытии, Событие_ПриНачалеВыбораЗначения, СобытиеГМ_ПриНажатииКнопкиКлавиатуры)

1.2 Для событий глобального модуля всегда используется префикс ``СобытиеГМ_`` (СобытиеГМ_ПриЗавершенииРаботыСистемы, СобытиеГМ_ПриНажатииКнопкиКлавиатуры)

2. Каждый обработчик должен быть определен с атрибутом Экспорт, иначе перехват указанного события будет невозможен.

Например, для перехвата событий ПриЗакрытии и ПриНачалеВыбораЗначения в классе-перехватчике необходимо написать

Процедура ПриЗакрытии() Экспорт
// текст обработчика события

КонецПроцедуры

Процедура Событие_ПриНачалеВыбораЗначения(НужныеПараметры и т.д.) Экспорт
// текст обработчика события

КонецПроцедуры

Или для перехвата события ПриЗавершенииРаботыСистемы в классе-перехватчике необходимо написать

Процедура СобытиеГМ_ПриЗавершенииРаботыСистемы() Экспорт
// текст обработчика события

КонецПроцедуры

3. Для включения перехвата конкретного контекста формы нужно использовать код

  • ОбъектПерехватчикГК = СоздатьОбъект("КлассПерехватчикГК");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГК (КонтФормы, ОбъектПерехватчикГК);

или

или

4. В перехваченном контексте или перехваченном глобальном модуле обработчики событий могут вообще отсутствовать или быть определены без атрибута Экспорт.

5. После установки перехвата при вызове системой события управление будет передано в соответствующий обработчик события в классе-перехватчике. В этом случае встроенные обработчики предопределенных событий в перехваченном контексте или глобальном модуле автоматически вызываться не будут. Разработчик сам должен вызвать данные обработчики (см. п.7), когда это необходимо.

6. Для включения перехвата событий глобального модуля необходимо использовать код

  • ОбъектПерехватчикСобытийГлобальногоМодуля = СоздатьОбъект("КлассПерехватчикСобытийГлобальногоМодуля");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГлобальногоМодуля (ОбъектПерехватчикСобытийГлобальногоМодуля);

7. При необходимости вызова обработчиков событий, которые определены в контексте или в глобальном модуле, в обработчике события внутри пользовательского модуля нужно использовать код

Процедура Событие_ПриЗакрытии() Экспорт

или для вызова предыдущего сохраненного обработчика

КонецПроцедуры

или

Процедура СобытиеГМ_ПриЗавершенииРаботыСистемы() Экспорт

или для вызова предыдущего сохраненного обработчика

КонецПроцедуры

При этом неважно, существует ли обработчик в модуле формы или глобальном модуле.

Таким образом, для обработки цепочки из нескольких перехватчиков существуют методы ВыполнитьСобытиеГК ВыполнитьСобытиеГлобальногоМодуля

8. Важно помнить, что после установки перехвата на контекст формы или глобальный модуль на пользовательский объект-перехватчик добавляется еще одна ссылка. В результате деструктор данного объекта-перехватчика будет вызван только при закрытии формы или завершении работы 1С соответственно или снятии перехвата вручную.

Например, код

  • ОбъектПерехватчикГК = СоздатьОбъект("КлассПерехватчикГК");
  • Перехватчик = СоздатьОбъект("Перехватчик");
  • Перехватчик. ПерехватитьСобытияГК (КонтФормы, ОбъектПерехватчикГК);
  • ОбъектПерехватчикГК = 0;

не вызывет деструктор немедленно!

9. Метод-обработчик события может возвращать необходимый статус возврата. Для этого обработчик нужно определить как функцию

Функция ПриЗакрытии() Экспорт
        // текст обработчика события
        Возврат 0; // т.е. фактически СтатусВозврата(0) и форма не будет закрыта.
КонецФункции
  1. Все вышесказанное относится также и к предопределенным событиям ВК FormEx.

12. В добавление ко всем стандартным событиям 1С и ВК FormEx добавлено специальное событие СобытиеГМ_СозданиеКонтекста

12. В добавление ко всем стандартным событиям 1С и ВК FormEx добавлены специальные события СобытиеГМ_ПриОткрытии , СобытиеГМ_ВводНового , СобытиеГМ_ВводНаОсновании

Данные события вызываются до соответствующих событий формы и могут отключать обработчики из формы.

Перехват событий модулей форм и групповых контекстов

ПерехватитьСобытияГК / HookEventsOfGroupContext

Синтаксис: ПерехватитьСобытияГК(ГрупповойКонтекстФормы, ОбъектПользовательскогоКлассаОбработчикаПерехвата)

Возвращает: тип: Предыдущий обработчик или пустое значение - см. метод ПолучитьПерехватчикСобытийГК .

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

  • ОбъектПользовательскогоКлассаОбработчикаПерехвата - тип: Класс КОП или ВыполняемыйМодуль или произвольный контекст.

    Пользовательский класс, в котором определены обработчики событий контекста формы.

Описание: Перехватывает любые предопределенные события контекста формы, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГK .

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является групповым контекстом, выдается исключение.

ВыполнитьСобытиеГК / RunEventOfGroupContext

Синтаксис: ВыполнитьСобытиеГК(ОбработчикСобытияИлиПустоеЗначение, ГрупповойКонтекстФормы, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля указанного контекста.

Параметры:
  • ОбработчикСобытияИлиПустоеЗначение - тип: класс КОП или ВыполняемыйМодуль или произвольный контекст или пустое значение.
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает соответствующий обработчик события контекста формы. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГК Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.

ВыполнитьОригинальноеСобытиеГК / RunOriginalEventOfGroupContext

Синтаксис: ВыполнитьОригинальноеСобытиеГК(ГрупповойКонтекстФормы, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля указанного контекста.

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает обработчик события контекста формы, который опреден в модуле этой формы. Если обработчика в форме не существует, ошибки не выдается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является групповым контекстом, выдается исключение. В случае, если второй параметр не является строкой или строка пуста, выдается исключение.

ПолучитьПерехватчикСобытийГК / GetHookObjectForEventsOfGroupContext

Синтаксис: ПолучитьПерехватчикСобытийГК(ГрупповойКонтекстФормы)

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

Возвращает: тип: объект КОП или ВыполняемыйМодуль или произвольный контекст, если для данной формы был включен перехват или Неопределено, если нет.

Описание: Возвращает объект-перехватчик событий, если для данной формы был включен перехват.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.

СнятьПерехватСобытийГK / UnHookEventsOfGroupContext

Синтаксис: СнятьПерехватСобытийГK(ГрупповойКонтекстФормы)

Параметры:
  • ГрупповойКонтекстФормы - тип: ГрупповойКонтекст.

Описание: Снимает перехват событий контекста формы, если перехват был установлен для данной формы.

Если на пользовательский объект-перехватчик больше нет ссылок, будет вызван деструктор данного объекта.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.

Перехват событий глобального модуля

ПерехватитьСобытияГлобальногоМодуля / HookEventsOfGlobalModule

Синтаксис: ПерехватитьСобытияГлобальногоМодуля(ОбъектПользовательскогоКлассаОбработчикаПерехвата)

Возвращает: тип: Предыдущий обработчик или пустое значение - см. метод ПолучитьПерехватчикСобытийГлобальногоМодуля .

Параметры:
  • ОбъектПользовательскогоКлассаОбработчикаПерехвата - тип: Класс КОП или ВыполняемыйМодуль или произвольный контекст.

    Пользовательский класс, в котором определены обработчики событий глобального модуля.

Описание: Перехватывает любые предопределенные события глобального модуля, как 1С, так и FormEx. Снять перехват можно с использованием метода СнятьПерехватСобытийГлобальногоМодуля .

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

ВыполнитьСобытиеГлобальногоМодуля / RunEventOfGlobalModule

Синтаксис: ВыполнитьСобытиеГлобальногоМодуля(ОбработчикСобытияИлиПустоеЗначение, ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата модуля глобального модуля.

Параметры:
  • ОбработчикСобытияИлиПустоеЗначение - тип: класс КОП или ВыполняемыйМодуль или произвольный контекст или пустое значение.
  • ИмяСобытия - тип: Строка.

Описание: Вызывает соответствующий обработчик события глобального модуля. Если обработчик не задан, просто выполняется вызов ВыполнитьОригинальноеСобытиеГлобальногоМодуля Если обработчик задан, то выполняется вызов соответствующего метода. Если метод является функцией, возвращает результат выполнения этой функции, иначе 1 Если метод не найден, возвращается 1 и не выдается сообщений об ошибках.

ВыполнитьОригинальноеСобытиеГлобальногоМодуля / RunOriginalEventOfGlobalModule

Синтаксис: ВыполнитьОригинальноеСобытиеГлобальногоМодуля(ИмяСобытия, ...)

Возвращает: тип: Число - статус возврата глобального модуля.

Параметры:
  • ИмяСобытия - тип: Строка.

Описание: Вызывает обработчик события глобального модуля, который опреден в глобальном модуле. Если обработчика в глобальном модуле не существует, ошибки не выдается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является строкой или строка пуста, выдается исключение.

ПолучитьПерехватчикСобытийГлобальногоМодуля / GetHookObjectForEventsOfGlobalModule

Синтаксис: ПолучитьПерехватчикСобытийГлобальногоМодуля()

Возвращает: тип: объект КОП или ВыполняемыйМодуль или произвольный контекст, если был включен перехват событий глобального модуля или Неопределено, если нет.

Описание: Возвращает объект-перехватчик событий, если был включен перехват событий глобального модуля.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

СнятьПерехватСобытийГлобальногоМодуля / UnHookEventsOfGlobalModule

Синтаксис: СнятьПерехватСобытийГлобальногоМодуля()

Описание: Снимает перехват событий глобального модуля, если перехват был установлен.

Если на пользовательский объект-перехватчик больше нет ссылок, будет вызван деструктор данного объекта.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

Дополнительные методы для работы с доп.перехватами в глобальном модуле

ПодключитьСобытие_НеобработаннаяОшибка / AddEvent_UnHandledError

Синтаксис: ПодключитьСобытие_НеобработаннаяОшибка()

Описание: Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()

Описание обработчика: Функция/Процедура Событие_НеобработаннаяОшибка(СообщениеОбОшибке, Маркер, ИмяФайла, Парам4, НомерСтрокиОшибки, Парам6)

Если обработчик является функцией, то если он возвращает 0, системное сообщение об ошибке не показывается. Если 1, то показывается. Если процедурой, системное сообщение об ошибке также показывается.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации / AddEvent_ReportEventA

Синтаксис: ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации()

Описание: Подключает возможность получения события запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Данное событие может вызываться как при внутренних системных событиях, так и при вызове штатного метода 1С "ЗаписьЖурналаРегистрации".

Описание обработчика: Функция/Процедура Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory, Event, EvType, comment, object, ObjDescr)

Если обработчик является функцией, то если он возвращает 0, системная запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена. Если процедурой, системная запись в журнал регистрации будет выполнена.

В параметре object передается ссылка на реальный объект, породивший данное событие.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации / AddEvent_ReportUserEvent

Синтаксис: ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации()

Описание: Подключает возможность получения события пользовательская запись в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации().

Данное событие вызывается только при вызове штатного метода 1С "ЗаписьЖурналаРегистрации".

Описание обработчика: Функция/Процедура Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(EventCategory, Event, EvType, comment, object, ObjDescr)

Если обработчик является функцией, то если он возвращает 0, системная запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена. Если процедурой, системная запись в журнал регистрации будет выполнена.

В случае разрешения системной записи системой будет вызвано событие "Событие_ЗаписьСобытияЖурналаРегистрации" Поэтому в случае обработки обоих событий необходимо делать доп.проверку на пользовательские события.

В параметре object передается ссылка на реальный объект, породивший данное событие.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение.

ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить / AddVeryLongStringRestructure

Синтаксис: ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить()

Описание: Подключает возможность вывода очень длинных строк в окно сообщений. Т.е. метод решает известный баг 1С - если длина строки очень велика, например, 500, тогда данная строка в окно сообщений не выводится, а выдается предупреждение на экран, причем данное предупреждение выдается всегда, даже в блоке Попытка-Исключение-КонецПопытки

При использовании данного метода подобные длинные строки перед выводом в окно сообщений делятся на строки размером 450 символов + перевод строки, и только потом показываются на экран, уже без ошибок и предупреждений.

Перехват можно только включить, для его отключения нужно перезапустить сеанс 1С.

Работа перехвата не зависит от настройки 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext "

Перехват событий проведения и отмены проведения документов

ПерехватитьСобытияПроведенияДокумента / HookEventsOfDocumentTransaction

Синтаксис: ПерехватитьСобытияПроведенияДокумента(ВидДокумента, ОбъектПользовательскогоКлассаОбработчикаПерехвата)

Возвращает: тип: Предыдущий обработчик или пустое значение - см. метод ПолучитьПерехватчикСобытийПроведенияДокумента .

Параметры:
  • ВидДокумента - тип: Строка. Вид документа, возвращаемый методом Вид(). ВНИМАНИЕ Нельзя передавать строку типа "Документ.Накладная", только "Накладная".

  • ОбъектПользовательскогоКлассаОбработчикаПерехвата - тип: Класс КОП или ВыполняемыйМодуль или произвольный контекст.

    Пользовательский объект, в котором определены обработчики событий контекста формы.

Описание: Перехватывает любые предопределенные события проведения и отмены проведения из модуля документа для документов указанного вида. Снять перехват можно с использованием метода СнятьПерехватСобытийПроведенияДокумента .

Из обработчика перехвата можно выполнить оригинальное событие из модуля документа с помощью метода ВыполнитьСобытиеГК . Описание обработчика см. в ОписаниеОбработчикаСобытияМодуляДокумента .

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если первый параметр не является видом существующего документа, выдается исключение.

ПолучитьПерехватчикСобытийПроведенияДокумента / GetHookObjectForEventsOfDocumentTransaction

Синтаксис: ПолучитьПерехватчикСобытийПроведенияДокумента(ГрупповойКонтекстФормы)

Параметры:
  • ВидДокумента - тип: Строка. Вид документа, возвращаемый методом Вид(). ВНИМАНИЕ Нельзя передавать строку типа "Документ.Накладная", только "Накладная".

Возвращает: тип: объект КОП или ВыполняемыйМодуль или произвольный контекст, если для документов данного вида был включен перехват или Неопределено, если нет.

Описание: Возвращает объект-перехватчик событий, если для документов данного вида был включен перехват.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.

СнятьПерехватСобытийПроведенияДокумента / UnHookEventsOfDocumentTransaction

Синтаксис: СнятьПерехватСобытийПроведенияДокумента(ВидДокумента)

Параметры:
  • ВидДокумента - тип: Строка. Вид документа, возвращаемый методом Вид(). ВНИМАНИЕ Нельзя передавать строку типа "Документ.Накладная", только "Накладная".

Описание: Снимает перехват событий проведения и отмены проведения из модуля документа, если перехват был установлен для документов данного вида.

Если на пользовательский объект-перехватчик больше нет ссылок, будет вызван деструктор данного объекта.

Если настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " не включена, будет выдано исключение. В случае, если параметр не является групповым контекстом, выдается исключение.

Описание обработчика события модуля документа

Синтаксис: Событие_ОбработкаПроведения(КонтекстДокумента, [ДопПараметрПроведения]) Экспорт

Синтаксис: Событие_ОбработкаУдаленияПроведения(КонтекстДокумента) Экспорт

Параметры:
  • КонтекстДокумента - тип: контекст документа в модуле проведения.

В обработчике события к предопределенным методам модуля документа можно обращаться через полученный контекст. Например, КонтекстДокумента.ИтогиАктуальны() или КонтекстДокумента.ГрупповаяОбработка().

События глобального модуля

Инструкция для использования

1. Для использования перехвата должна быть включена настройка 1С++ " ПерехватитьСобытияГК / EnableHookEventsGroupContext " с помощью встроенного класса "УправлениеНастройками" См. SettingsManager

2. Подключение любого из событий возможно в произвольный момент, по умолчанию при загрузке 1С++ они выключены.

Например:

Перехватчик = СоздатьОбъект("Перехватчик");
Перехватчик.ПодключитьСобытие_НеобработаннаяОшибка();
Перехватчик.ПодключитьСобытие_ЗаписьСобытияЖурналаРегистрации();
Перехватчик.ПодключитьСобытие_ЗаписьПользовательскогоСобытияЖурналаРегистрации();
  1. При подключении в глобальнике единственный раз идет поиск соответствующих событий

В дальнейшем повторного поиска не происходит, в отличие от ФормЕкс, что дает хорошую скорость работы.

4. Обработчики событий могут быть функциями, в этом случае если возвращается 0, системная функция не вызывается. Если обработчик события является процедурой, то системная функция вызывается всегда.

5. Перед подключением можно установить перехват на глобальник, тогда указанные события будут ловиться в классах с помощью перехвата глобального модуля.

Событие_НеобработаннаяОшибка

Синтаксис: Функция/Процедура Событие_НеобработаннаяОшибка(СообщениеОбОшибке, Маркер, ИмяФайла, Парам4, НомерСтрокиОшибки, Парам6)

Описание: Подключает возможность получения необработанной ошибки в обработчике внутри глобального модуля Событие_НеобработаннаяОшибка()

Если обработчик является функцией, то если он возвращает 0, системное сообщение об ошибке не показывается. Если 1, то показывается. Если процедурой, системное сообщение об ошибке также показывается.

Событие_ЗаписьСобытияЖурналаРегистрации

Синтаксис: Функция/Процедура Событие_ЗаписьСобытияЖурналаРегистрации(EventCategory,
Event, EvType, comment, object, ObjDescr)
Описание: Подключает возможность получения события запись в системный журнал регистрации 1С
в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Если обработчик является функцией, то если он возвращает 0, системная запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена. Если процедурой, системная запись в журнал регистрации будет выполнена.

Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации

Синтаксис: Функция/Процедура Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(EventCategory,
Event, EvType, comment, object, ObjDescr)
Описание: Подключает возможность получения события пользовательская запись

в системный журнал регистрации 1С в обработчике внутри глобального модуля Событие_ЗаписьСобытияЖурналаРегистрации(). При этом неважно, программная это запись или запись, выполненная системой.

Если обработчик является функцией, то если он возвращает 0, системная

запись в журнал регистрации выполняться не будет. Если 1, то запись будет выполнена.
Если процедурой, системная запись в журнал регистрации будет выполнена.

Специальные события глобального модуля - только для классов-перехватчиков ГМ

СобытиеГМ_СозданиеКонтекста

Синтаксис: СобытиеГМ_СозданиеКонтекста(КонтФормы)

Возвращает: тип: Число. Не используется. Т.е. обработчик может быть и процедурой

Параметры:
  • КонтФормы - тип: ГрупповойКонтекст.

Описание: Если есть обработчик этого события, то он будет вызван раньше любых событий 1С, FormEx и других ВК.

Данное событие возникает сразу после компиляции модуля формы контекста.

Данное событие всегда вызывается для любого группового контекста и всегда только один раз для одного контекста.

Его очень удобно использовать для установки перехвата на форму для работы с событиями формы.

    Функция СобытиеГМ_СозданиеКонтекста(КонтФормы) Экспорт
            // текст обработчика события
    КонецФункции

Если в глобальнике просто определить функцию  СобытиеГМ_СозданиеКонтекста(КонтФормы),
то она работать не будет. Данная функция сделана только для перехвата в классах перехвата.

СобытиеГМ_ПриОткрытии

Синтаксис: СобытиеГМ_ПриОткрытии(КонтФормы, ФлагЧтенияНастройки)

Возвращает: тип: Число. 0 или 1.

Параметры:
  • КонтФормы - тип: ГрупповойКонтекст.
  • ФлагЧтенияНастройки - тип: число или пустое значение.

Параметр ФлагЧтенияНастройки имеет смысл только для контекстов форм отчетов и обработок, внешних или встроенных, для остальных форм он будет иметь пустое значение.

Описание: Если есть обработчик этого события, то она будет вызван раньше системного обработчика ПриОткрытии в модуле формы контекста. Если обработчик вернет 0, то форма не будет открыта и вызов обработчика ПриОткрытии из модуля формы контекста не будет выполнен.

    Функция СобытиеГМ_ПриОткрытии(КонтФормы) Экспорт
            // текст обработчика события
            Возврат 0; // возвращаемое значение является статусом возврата, т. е. в таком случае форма не будет открыта.
            // в случае Возврат 1; форма будет открыта.
    КонецФункции

Если в глобальнике просто определить функцию  СобытиеГМ_ПриОткрытии(КонтФормы),
то она работать не будет. Данная функция сделана только для перехвата в классах перехвата.

Возможно задавать в классе-перехватчике как событие с одним параметром,
так и с двумя параметрами.

СобытиеГМ_ВводНового

Синтаксис: СобытиеГМ_ВводНового(КонтФормы, ФлагКопирования, ОбъектКопирования)

Возвращает: тип: Число. 0 или 1.

Параметры:
  • КонтФормы - тип: ГрупповойКонтекст.
  • ФлагКопирования - тип: число или пустое значение.
  • ОбъектКопирования - тип: объект или пустое значение.

Параметры ФлагКопирования и ОбъектКопирования имеют смысл только для контекстов форм документов или справочников, для остальных форм они будет иметь пустое значение.

Описание: Если есть обработчик этого события, то она будет вызван раньше системного обработчика ВводНового в модуле формы контекста. Если обработчик вернет 0, то форма не будет открыта и вызов обработчика ВводНового из модуля формы контекста не будет выполнен.

    Функция СобытиеГМ_ВводНового(КонтФормы) Экспорт
            // текст обработчика события
            Возврат 0; // возвращаемое значение является статусом возврата, т. е. в таком случае форма не будет открыта.
            // в случае Возврат 1; форма будет открыта.
    КонецФункции

Если в глобальнике просто определить функцию  СобытиеГМ_ВводНового(КонтФормы),
то она работать не будет. Данная функция сделана только для перехвата в классах перехвата.

            Возможно задавать в классе-перехватчике как событие с одним параметром,
            так и с двумя/тремя параметрами.

СобытиеГМ_ВводНаОсновании

Синтаксис: СобытиеГМ_ВводНаОсновании(КонтФормы, ДокументОснование)

Возвращает: тип: Число. 0 или 1.

Параметры:
  • КонтФормы - тип: ГрупповойКонтекст.
  • ДокументОснование - тип: Документ или пустое значение.

Параметр ДокументОснование имеет смысл только для контекстов форм документов, для остальных форм они будет иметь пустое значение.

Описание: Если есть обработчик этого события, то она будет вызван раньше системного обработчика ВводНаОсновании в модуле формы документа. Если обработчик вернет 0, то форма не будет открыта и вызов обработчика ВводНаОсновании из модуля формы документа не будет выполнен.

    Функция СобытиеГМ_ВводНаОсновании(КонтФормы, ДокументОснование) Экспорт
            // текст обработчика события
            Возврат 0; // возвращаемое значение является статусом возврата, т. е. в таком случае форма не будет открыта.
            // в случае Возврат 1; форма будет открыта.
    КонецФункции

Если в глобальнике просто определить функцию  СобытиеГМ_ВводНаОсновании(...),
то она работать не будет. Данная функция сделана только для перехвата в классах перехвата.

            Возможно задавать в классе-перехватчике обработчик как событие с одним параметром,
            так и с двумя параметрами.