Последовательность выполнения событий при записи в регистр сведений

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

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

В случае записи новой записи (то есть запись с такими значениями измерений еще не существует в регистре сведений) из формы записи, последовательность вызова событий следующая:
Последовательность вызова событий при записи из формы новой записи
  1. Модуль формы (&НаКлиенте) - перед записью;
  2. Модуль формы (&НаСервере) - обработка проверки заполнения на сервере;
  3. Модуль набора записей - обработка проверки заполнения (начинается транзакция);
  4. Модуль формы (&НаСервере) - перед запись на сервере;
  5. Модуль набора записей - перед записью;
  6. Модуль набора записей - при записи;
  7. Модуль формы (&НаСервере) - при записи на сервере (фиксируется транзакция);
  8. Модуль формы (&НаСервере) - после записи на сервере;
  9. Модуль формы (&НаКлиенте) - после записи.
Заметим, что если производится запись одной записи, платформа будет записывать набор записей состоящий из одной записи!

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

В случае модификации уже существующей записи регистра сведений, могут быть изменены значения измерений, следовательно, такая запись сама по себе не заместит старую запись. Поэтому платформа 1С выполняет два этапа: сперва удаляет старую запись, потом уже записывает новую:
Последовательность вызова событий при записи из формы существующей записи
Удаление старой записи производится записью пустого набора записей, следовательно, вызов событий ПередЗаписью и ПриЗаписи выполняется два раза.

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

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

Комментарии