Объект 1С "Подписка на событие"

Объект "Подписки на события" - предназначен для размещения в общих модулях внешних обработчиков, которые будут исполняться после выполнения определенного обработчика события в модуле объекта или модуле менеджера (при этом изменения в модуль объекта или модуль менеджера не вносятся).

Это процедура, которая будет выполнена после того, как выполнится исходный обработчик события. Таким образом, возникает возможность программного расширения модулей без их модификации (полезно при изменении типовых решений).

Подписки на события описываются в ветке "Общие" окна объектов конфигурации.

1С подписка на событие

Основные свойства объекта 1С "Подписка на событие":

  • Источник — типы данных, для которых устанавливается обработчик;
  • Событие — событие, для которого установлен обработчик;
  • Обработчик — указывается процедура из общего модуля, в которой будет расположен обработчик события.

Источниками событий могут являться прикладные объекты, наборы записей регистров, менеджеры объектов конфигурации. Допускается как множественный выбор объектов, являющихся поставщиками событий, так и выбор всех объектов одного типа (например, все документы).

При определении подписки на событие количество параметров в процедуре- обработчике на один параметр больше, чем у соответствующего обработчика события, располагаемого в модуле объекта (первый параметр содержит сам объект).

Пример процедуры-обработчика подписки на событие

Пример кода процедуры-обработчика:

[свернуть]

Обработчик события  должен удовлетворять следующим требованиям:

  1. процедура должна быть расположена в общем модуле;
  2. у общего модуля, в котором расположена процедура, должны быть заданы следующие свойства:
  3. Количество параметров процедуры должно быть на единицу больше, чем количество параметров, которое имеет обработчик выбранного события.
Примечание (не проверял):

  • существует мнение, что обязателен только флаг "Сервер", другие без разницы, хоть сняты, хоть установлены.

[свернуть]

Назначение обработчиков событий доступно также и средствами встроенного языка с помощью операторов:

  • ДобавитьОбработчик;
  • УдалитьОбработчик.

У объектов, которые могут являться источниками событий, есть свойство ДополнительныеСвойства типа Структура, позволяющее хранить информацию между вызовами событий (например, это новый или старый  объект).

События на которые можно назначить обработчик подписки на событие:

  • ПриУстановкеНовогоНомера;
  • ПриКопировании;
  • ОбработкаЗаполнения;
  • ПередЗаписью;
  • ПриЗаписи;
  • ПередУдалением;
  • ОбработкаПроведения;
  • ОбработкаУдаленияПроведения;
  • ОбработкаПроверкиЗаполнения;

ВАЖНО! Подписку на событие можно установить только на объект, а не на форму.

Если в конфигурации создана подписка на событие некоторого объекта, например событие ПередЗаписью() объекта справочника, то при возникновении этого события платформа выполняет следующую последовательность действий:

  1. выполняется обработчик события ПередЗаписью() в модуле объекта справочника:
    • если в ходе выполнения обработчика параметр Отказ принимает значение Истина или вызывается исключение, то обработка события прерывается;
    • если на втором шаге обработка события не прерывалась, то выполняются внешние обработчики (подписки на события), определенные для события ПередЗаписью();
  2. если в ходе выполнения внешнего обработчика параметр Отказ принимает значение Истина или вызывается исключение, то выполнение внешнего обработчика прерывается.

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

Примеры...

Особенности обработки подписки на событие 1С:

  1. При определении на одно событие объекта 1С:Предприятие нескольких подписок на событие процедуры вызываются в произвольном порядке.
  2. При определении подписки на событие для разных объектов перечень показываемых событий формируется по принципу:
    • должно совпадать количество параметров события;
    • должно совпадать имя события.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.