1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//Удаление записей из регистра, подчиненного регистратору Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ЦеныНоменклатурыКонтрагентов.Регистратор |ИЗ | РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборЗаписей.Записать(); КонецЦикла; |
Сначала запросом получаем выборку всех документов, являющихся регистраторами для нужного регистра.
Далее создаем набор записей по данному регистру.
В цикле перебора выборки из результата запроса устанавливаем отборы для набора записей по нужным регистраторам и записываем пустые наборы записей в регистр с замещением старых наборов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
НачатьТранзакцию(); НаборЗаписей = РегистрыСведений.МестонахожденияОС.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить([документ создавший запись]); //обязательно для подчиненных регистров НаборЗаписей.Прочитать(); сзУдаляемыеЗаписи = Новый СписокЗначений; Для Каждого Запись Из НаборЗаписей Если [условие] Тогда сзУдаляемыеЗаписи.Добавить(Запись); КонецЕсли; //[условие] КонецЦикла; Для каждого ЭлтСз Из сзУдаляемыеЗаписи НаборЗаписей.Удалить(ЭлтСз.Значение); КонецЦикла; НаборЗаписей.Записать(); ЗафиксироватьТранзакцию(); |