HelpF.pro

Как удалить записи из регистра сведений, подчиненного регистратору?

Код 1C v 8.х
 //Удаление записей из регистра, подчиненного регистратору
Запрос = Новый Запрос;

Запрос.Текст = "
|ВЫБРАТЬ
| ЦеныНоменклатурыКонтрагентов.Регистратор
|ИЗ
| РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов";

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей();

Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);

НаборЗаписей.Записать();

КонецЦикла;

Сначала запросом получаем выборку всех документов, являющихся регистраторами для нужного регистра.
Далее создаем набор записей по данному регистру.
В цикле перебора выборки из результата запроса устанавливаем отборы для набора записей по нужным регистраторам и записываем пустые наборы записей в регистр с замещением старых наборов.


Код 1C v 8.х
 НачатьТранзакцию();

НаборЗаписей = РегистрыСведений.МестонахожденияОС.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить([документ создавший запись]); //обязательно для подчиненных регистров
НаборЗаписей.Прочитать();

сзУдаляемыеЗаписи = Новый СписокЗначений;
Для Каждого Запись Из НаборЗаписей
Если [условие] Тогда
сзУдаляемыеЗаписи.Добавить(Запись);
КонецЕсли; //[условие]
КонецЦикла;

Для каждого ЭлтСз Из сзУдаляемыеЗаписи
НаборЗаписей.Удалить(ЭлтСз.Значение);
КонецЦикла;

НаборЗаписей.Записать();

ЗафиксироватьТранзакцию();

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/891.html