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