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

Набор записей автоматически заполняется до записи документа и записывается после записи документа в одной транзакции с ним. Это позволяет в обработчиках событий документа ПередЗаписью() и ПриЗаписи() переопределить набор записей регистрации. Так, например, если документ входит в последовательность Последовательность1 и у документа стоит признак автоматического заполнения последовательности, то для того что бы отменить его регистрацию в последовательности в зависимости от значения реквизита документа достаточно в модуль документа вставить обработчик события ПередЗаписью() следующего содержания:



Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не Регистрировать Тогда
ПринадлежностьПоследовательностям.Последовательность1.Очистить();
КонецЕсли;
КонецПроцедуры


В этом случае если реквизит Регистрировать имеет значение "Ложь", то документ не будет зарегистрирован в последовательности Последовательность1. Кроме отмены регистрации документа в последовательности, доступна возможность написания собственного алгоритма регистрации документа в последовательности. Для этого надо очистить набор записей регистрации и заполнить его новыми записями.



Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ПринадлежностьПоследовательностям.Последовательность1.Очистить();
Если ВидРегистрации = 1 Тогда
ЗП = ПринадлежностьПоследовательностям.Последовательность1.Добавить();
ЗП.Измерение = Реквизит1;
ИначеЕсли ВидРегистрации = 2 Тогда
ПринадлежностьПоследовательностям.Последовательность1.Добавить();
ЗП.Измерение = Реквизит2;
КонецЕсли;
КонецПроцедуры