- Формируем список удаляемых объектов,
- Находим ссылки (рекурсивный поиск: поиск ссылок на ссылки на объект), также находятся записи регистров.
- Далее выбираем, что удалять. Есть два варианта удаления: пометка на удаление и удаление объекта из базы. Советую использовать первый вариант, все-таки возможно, что останутся ненайденные ссылки или другой форс-мажор.
+ поиск всех ссылок, т. е., возможность удаления без доп. действий
+ удаление записей регистров
+ выбор нескольких удаляемых объектов
+ просмотр удаляемых объектов
+ поиск и удаление помеченных на удаление объектов
Минусы
- не работает возобновление прерванного удаления
- нет обработки ошибок
По поводу принципов, скачайте, откройте в конфигураторе и там все написано. А найдете чего не так - пишите.
Изменения:
- Поправлен механизм удаления
- Возможность прервать выполнение
- Изменен подбор/поиск элементов
- Представление ссылок/удаляемых объектов в виде дерева с группировкой по видам данных(метаданным)
Пишите пожелания в комментах :)