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