Как удалить записи из регистра сведений, подчиненного регистратору? Код 1C v 8.х //Удаление записей из регистра, подчиненного регистратору
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ЦеныНоменклатурыКонтрагентов.Регистратор
|ИЗ
| РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Записать();
КонецЦикла;
Сначала запросом получаем выборку всех документов, являющихся регистраторами для нужного регистра.
Далее создаем набор записей по данному регистру.
В цикле перебора выборки из результата запроса устанавливаем отборы для набора записей по нужным регистраторам и записываем пустые наборы записей в регистр с замещением старых наборов.
Код 1C v 8.х НачатьТранзакцию();
НаборЗаписей = РегистрыСведений.МестонахожденияОС.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить([документ создавший запись]); //обязательно для подчиненных регистров
НаборЗаписей.Прочитать();
сзУдаляемыеЗаписи = Новый СписокЗначений;
Для Каждого Запись Из НаборЗаписей
Если [условие] Тогда
сзУдаляемыеЗаписи.Добавить(Запись);
КонецЕсли; //[условие]
КонецЦикла;
Для каждого ЭлтСз Из сзУдаляемыеЗаписи
НаборЗаписей.Удалить(ЭлтСз.Значение);
КонецЦикла;
НаборЗаписей.Записать();
ЗафиксироватьТранзакцию();
Категория:
Регистры сведений