Удаление данных за период в УНФ3
Клиенту понадобилось удалить все документы до определенной даты.
Возникла мысль использовать групповую обработку объектов Андрея Волина:

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


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

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

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

В итоге все заполнилось корректно.
Предварительно убрал дату запрета изменений, убрал галочку синхронизации с другими базами.
Произвольный код использовал такой, протестировав его на одной позиции:
//ОбрабатываемыйОбъект.ОбменДанными.Загрузка = истина; ОбрабатываемыйОбъект.Удалить();
Сначала тестировал с ОбменДанными.Загрузка = Истина, но отказался, т.к. этот метод не удаляет движения.
Чтобы удалить плоды своего неудачного эксперимента с битыми ссылками, использовал код Wen Themes:
Для Каждого ОбъектМетаданных Из Метаданные.РегистрыНакопления Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрЗапись.Регистратор КАК Регистратор |ИЗ | РегистрНакопления.&Регистр КАК РегистрЗапись |ГДЕ | РегистрЗапись.Регистратор.Номер ЕСТЬ NULL"; Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Регистр", ОбъектМетаданных.Имя); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Сообщить("Документ: " + ВыборкаДетальныеЗаписи.Регистратор + " Регистр: " + ОбъектМетаданных.Имя); Продолжить; //Эту строку можно раскомментировать для проверки масштабов проблемы НаборЗаписей = РегистрыНакопления[ОбъектМетаданных.Имя].СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(ВыборкаДетальныеЗаписи.Регистратор); НаборЗаписей.Записывать = Истина; НаборЗаписей.ОбменДанными.Загрузка = Истина; Попытка НаборЗаписей.Записать(Истина); Исключение Ошибка = ОписаниеОшибки(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибка); КонецПопытки; КонецЦикла; КонецЦикла;
Я раскомментировал строчку для тестового прогона, выдало небольшой список движений:

Удалил эти движения.
Среда: УНФ 3.0.9.105. Объем: 1 час.




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