Удаление данных за период в УНФ3

Клиенту понадобилось удалить все документы до определенной даты.

Возникла мысль использовать групповую обработку объектов Андрея Волина:

Но при заполнении возникали ошибки:

Можно было бы снимать галочки с объектов с ошибками:

Но я внес небольшие правки:

Использовал GUID вместо ОтобранныйОбъект.Значение. GUID сгенерировал онлайн:

В итоге все заполнилось корректно.

Предварительно убрал дату запрета изменений, убрал галочку синхронизации с другими базами.

Произвольный код использовал такой, протестировав его на одной позиции:

//ОбрабатываемыйОбъект.ОбменДанными.Загрузка = истина;
ОбрабатываемыйОбъект.Удалить();

Сначала тестировал с ОбменДанными.Загрузка = Истина, но отказался, т.к. этот метод не удаляет движения.

Чтобы удалить плоды своего неудачного эксперимента с битыми ссылками, использовал код Wen Themes:

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

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

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

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

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

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

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

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

    КонецЦикла;

КонецЦикла;

Я раскомментировал строчку для тестового прогона, выдало небольшой список движений:

Удалил эти движения.

Среда: УНФ 3.0.9.105. Объем: 1 час.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 2

  1. rzd:

    Показал знание платформы 🤣

    • Программисту 1с не нужно знать досконально. Ему нужно знать где узнать и как проверить.

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

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