Найти в Дзене
Vedateka

Последовательности событий при проведении документа 1С

Информация о событиях и подписках в одном месте. Про подписки: Операции обмена информацией с базой данных менеджер записи реализует посредством все тех же объектов манипулирования данными – наборов записей регистра. Их два. Один набор записей – пустой. Он используется для удаления записи со старыми ключевыми значениями. А второй набор записей содержит одну запись – ту, которую нужно записать в регистр. При необходимости у разработчика есть возможность «вмешиваться» в процесс модификации данных регистра посредством использования обработчиков событий. В случае записи новой записи (то есть записи с такими ключевыми полями еще не было) из формы записи регистра сведений последовательность, с которой задействованы обработчики событий, следующая (рис. 3). В случае модификации уже существующей записи регистра посредством менеджера записи могут быть изменены значения ключевых полей. А значит, запись набора с новыми ключевыми полями сама по себе не заместит «старый» набор. Поэтому здесь система
Оглавление

Информация о событиях и подписках в одном месте.

При проведении документа

Рис. 1. Последовательность событий при проведении документа
Рис. 1. Последовательность событий при проведении документа

Про подписки:

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

При отмене проведения.

-2

При открытии формы

Рис. 2. Последовательность событий при открытии управляемой формы
Рис. 2. Последовательность событий при открытии управляемой формы
  • События ПриЧтенииНаСервере/ПриКопировании/ОбработкаЗаполнения возникают при открытии существующего/копировании/вводе нового соответственно.
  • Активация модуля(инициализация модуля) - это выполнение кода находящегося вне обработчиков

При записи регистра сведений

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

При необходимости у разработчика есть возможность «вмешиваться» в процесс модификации данных регистра посредством использования обработчиков событий.

В случае записи новой записи (то есть записи с такими ключевыми полями еще не было) из формы записи регистра сведений последовательность, с которой задействованы обработчики событий, следующая (рис. 3).

Рис. 3. Последовательность событий, вызываемая при записи из формы новой записи регистра сведений
Рис. 3. Последовательность событий, вызываемая при записи из формы новой записи регистра сведений

В случае модификации уже существующей записи регистра посредством менеджера записи могут быть изменены значения ключевых полей. А значит, запись набора с новыми ключевыми полями сама по себе не заместит «старый» набор. Поэтому здесь система работает в два этапа: сначала удаляет «старый» набор записей (состоящий из одной «старой» записи), потом уже записывает «новый» (состоящий из «новой» записи), рис. 4.

Рис. 4. Последовательность событий, вызываемая при записи из формы существующей записи регистра сведений
Рис. 4. Последовательность событий, вызываемая при записи из формы существующей записи регистра сведений

Как видно на схеме, удаление «старого» набора записей производится посредством записи пустого набора записей. При этом получается, что обработчики событий (ПередЗаписью и ПриЗаписи) модуля набора записей будут вызываться дважды.

Вернутся на уровень выше