Очистка регистра накопления, если регистратор — битая ссылка

Битая ссылка регистр накопления

Ниже код удаляет движения в случае, если документ был удален без очистки регистров, и в регистре запись «Объект не найден».

Для Каждого ОбъектМетаданных Из Метаданные.РегистрыНакопления Цикл

    Запрос = Новый Запрос;
    Запрос.Текст = 
     "ВЫБРАТЬ
     | РегистрЗапись.Регистратор КАК Регистратор
     |ИЗ
     | РегистрНакопления.&Регистр КАК РегистрЗапись
     |ГДЕ
     | РегистрЗапись.Регистратор.Номер ЕСТЬ NULL";

    Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Регистр", ОбъектМетаданных.Имя);

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

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

        Попытка
            НаборЗаписей.Записать(Истина); 
        Исключение
            Ошибка = ОписаниеОшибки();
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибка);
        КонецПопытки;

    КонецЦикла;

КонецЦикла;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

code