Дисклеймер: Досталась мне в наследство переделанная УТ 11 и задача по обмену между ней и УНФ. При обмене выяснилось, что справочник серий переносится чрезвычайно долго, а при ближайшем рассмотрении оказалось, что половина справочника фантомная. Попытка пометить всё на удаление и удалить не увенчалась успехом из-за того, что такой объем не успевал очиститься штатными средствами за время технологического окна.
Были испробованы несколько обработок с текущего сайта, но они все помогали мне лишь отчасти. Решено! Делаем свой велосипед.
Велосипед:
Задачи велосипеда:
- Найти неиспользованные объекты в базе
- Пометить их на удаление
- Удалить окончательно (опционально).
В итоге инструмент решает эти задачи, и решает их намного быстрее штатной обработки. Для поиска ссылок генерируется запрос по всем метаданным, где используется выбранный справочник.
Из фишек:
- Поиск неиспользованных ссылок запросом, а не родной функцией
- Пометка на удаление "пачками" по N штук
- Удаление из базы без СМС и регистраций теми же пачками.
- Удаление из базы с дополнительной проверкой с помощью НайтиПоСсылкам(). Работает гораздо медленней, но помогает при паранойе.
- Поиск неиспользованных, учитывая уже помеченные на удаление места использования (Например, ищем номенклатуру. Если она используется только в документах уже помеченных на удаление - отбираем и её)
В планах:
- Добавить возможность поиска и по документам
- Добавить рекурсивное удаление
- Добавить множественный выбор справочников
Инструкция к велосипеду:
- Выбрать нужный справочник
- Установить количество удаляемых за раз
- Установить галку "Учитывать помеченные", если хотим, чтобы ссылки на помеченные на удаление объекты не учитывались
- Установить галку "Доп проверка ссылок", если хотим, чтобы осуществляло двойную проверку (во время поиска и непосредственно перед удалением)
- Нажать "Поиск". Должна заполниться ТЧ
- Нажать "Пометка на удаление". Объекты из ТЧ пометятся на удаление
- Нажать "Удаление". Объекты удалятся
Обработка тестировалась на платформах версий 8.3.16.1148 и 8.3.12.1685. В принципе, должна работать на любых версиях моложе 8.3.6.
Тестировалась на конфигурации УТ 11.2, но должна работать на любых, использующих БСП.