Перейти к содержанию

2. Обработка событий

Принцип обработки событий Конфигурации в Расширениях#

Screenshot

Расширение Подписки (служебное)#

Для обработки событий Конфигурации в информационной базе должно присутствовать служебное Расширение ЕХТ_Подписки, которое автоматически добавляется в информационную базу после активации лицензии и автоматически обновляется при обновлениях или изменениях Конфигурации.

Screenshot

Автоматическое обновление Расширения Подписки#

После изменения метаданных Конфигурации служебное Расширение ЕХТ_Подписки обновляется автоматически.

Screenshot

Обработка событий в Расширении#

Добавление подписки#

В модуле менеджера объекта или общем модуле создаваемого Расширения, в функцию Сведения(), необходимо добавить строку Сведения.Подписки = Истина и добавить экспортную функцию Подписки() как на картинке ниже:

Screenshot

Параметры подписки#

  • Событие: обязательный параметр. Тип: Строка. Указывается имя события, как указано в Синтакс-Помощнике, например ПриСозданииНаСервере. Для обработки событий после типовых обработчиков Конфигурации к имени события добавляется префикс После, например ПослеПриСозданииНаСервере.

  • Издатель: обязательный параметр для событий элементов формы, для остальных событий - необязательный. Тип: Строка или Массив. Используется для указания источника события, например Справочник.Номенклатура или Документ.ПоступлениеТоваров.Форма.ФормаСписка.

  • Элемент: обязательный параметр для событий элементов формы, для остальных событий не используется. Тип: Строка или Массив. Для событий элементов формы указывается имя элемента, для события ОбработкаКомандыФормы указывается имя команды.

  • Подписчик: необязательный параметр. Тип: Строка. По умолчанию, обработчики событий на НаКлиенте располагаются в модуле формы Подписки, а обработчики событий НаСервере - в модуле менеджера. С помощью данного параметра можно указать другой модуль обработчика события.

  • Обработчик: необязательный параметр. Тип: Строка. По умолчанию, имена обработчиков событий это ЕХТ_ИмяСобытия или ЕХТ_ПослеИмяСобытия. В данном параметре можно изменить имя обработчика.

  • Директива: необязательный параметр. Тип: Строка. Допустимые значения: НаКлиенте и НаСервере. Используется для одноименных событий с разных контекстом выполнения. Например: для обработки события ПриНачалеРаботыСистемы из модуля приложения - нужно указать НаКлиенте, а для обработки события ПриНачалеРаботыСистемы из модуля внешнего соединения нужно указать НаСервере.

  • КоличествоПараметров: необязательный параметр. Тип: Число. Используется, если в обработчике Конфигурации указано нестандартное количество параметров. Также используется для одноименных событий с разным количеством параметров, например, для события Выбор.

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

Обработчики событий#

По умолчанию, обработчики событий это экспортные функции с именами ЕХТ_ИмяСобытия или ЕХТ_ПослеИмяСобытия, которые располагаются в модулях объекта, в котором добавляется подписка. Обработчики событий НаКлиенте располагаются в модуле формы Подписки, а обработчики событий на НаСервере- в модуле менеджера объекта.

Параметры функции - обработчика события совпадают с описанием параметров события в Синтакс-Помощнике плюс передается дополнительный параметр СвойстваСобытия.

Screenshot

Через параметр СвойстваСобытия в обработчик передается дополнительная информация о событии. В составе параметра СвойстваСобытия есть структура ДополнительныеСвойства через которую можно передавать произвольные значения всей последующей цепочке обработчиков события.

Новые события#

Фреймворк для Расширений добавляет новые события, например:

  • ОбработкаРегламентногоЗадания: событие генерируется перед запуском любого регламентного задания Конфигурации;

  • ОбработкаПодпискиНаСобытие: событие генерируется перед обработчиками всех Подписок Конфигурации;

  • УдалениеУстаревшихДанных: событие генерируется по установленному расписанию;

Собственные события#

Фреймворк для Расширений предоставляет возможность разработчикам добавлять собственные события, добавлять на них подписки и обрабывать в любых Расширениях.