Для управления регистрацией документа в последовательности документов служит набор записей регистрации в последовательности документов. У документа есть свойство ПринадлежностьПоследовательностям. Значением свойства является коллекция наборов записей регистрации в последовательности документов. Для каждой последовательности, в которой участвует документ, существует свой собственный экземпляр набора записей. Если у документа стоит режим автоматического заполнения последовательностей, то перед записью документа наборы записей регистрации будут автоматически заполнены. Для последовательностей без измерений набор записей будет содержать только одну запись. Для последовательностей с измерениями число записей зависит от содержания документа и настройки соответствия измерений последовательности реквизитам документа.
Набор записей автоматически заполняется до записи документа и записывается после записи документа в одной транзакции с ним. Это позволяет в обработчиках событий документа ПередЗаписью() и ПриЗаписи() переопределить набор записей регистрации. Так, например, если документ входит в последовательность Последовательность1 и у документа стоит признак автоматического заполнения последовательности, то для того что бы отменить его регистрацию в последовательности в зависимости от значения реквизита документа достаточно в модуль документа вставить обработчик события ПередЗаписью() следующего содержания:
Копировать в буфер обменаПроцедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если Не Регистрировать Тогда ПринадлежностьПоследовательностям.Последовательность1.Очистить(); КонецЕсли; КонецПроцедуры
В этом случае если реквизит Регистрировать имеет значение "Ложь", то документ не будет зарегистрирован в последовательности Последовательность1. Кроме отмены регистрации документа в последовательности, доступна возможность написания собственного алгоритма регистрации документа в последовательности. Для этого надо очистить набор записей регистрации и заполнить его новыми записями.
Копировать в буфер обменаПроцедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ПринадлежностьПоследовательностям.Последовательность1.Очистить(); Если ВидРегистрации = 1 Тогда ЗП = ПринадлежностьПоследовательностям.Последовательность1.Добавить(); ЗП.Измерение = Реквизит1; ИначеЕсли ВидРегистрации = 2 Тогда ПринадлежностьПоследовательностям.Последовательность1.Добавить(); ЗП.Измерение = Реквизит2; КонецЕсли; КонецПроцедуры