Управление регистрацией документа в последовательности документов

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

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

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

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

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