На Infostart и других ресурсах есть много публикаций связанных с восстановлением «битых ссылок», но все они одного типа, они позволяют «Исправить» свершившийся факт удаления и действуют по принципу:
- Восстанавливают объект, записав в Наименование, например «Восстановлен <Объект не найден> (54:82d5d897ba0899c911e8ca70137f2d25)». А когда-то возможно этот объект был "Докторская колбаса ГОСТ". При этом все реквизиты восстанавливаются путем ручного ввода.
- Подымается база данных и к ней цепляются (Com, OData и т.д.) и ищут объект по восстановленному GUID объекта. То есть, чтобы восстановить элемент справочника, нужна копия базы.
- Есть и другие методы. Разница в основном лишь в поиске битых ссылок.
Я НЕ ПРЕДЛАГАЮ еще одну обработку по поиску и восстановлению битых ссылок, Я ПРЕДЛАГАЮ использовать слова Александра Македонского: - «Лучшая защита - нападение».
Судите сами, в БСП есть подсистема «Версионирование объектов», в которой уже есть функционал "Создания версии объекта" и "Восстановления версии объекта". Остается только взять этот функционал, доработать и создать версию объекта «ПередУдалением», ну и добавить возможность восстановить объект по сохраненной версии.
За основу взяты механизмы из "Библиотеки стандартных подсистем", (3.0.1.279). Работает на конфигурациях с БСП и без БСП.
- Сохранение и хранение версий по выбранным Документам и Справочникам в виде Fast InfoSet (Чтение\Запись реализована в версии 8.3.10.2168.). Подписка на событие ПередУдалением
- Восстановление Документов и Справочников по битой ссылке. (Спасибо автору статьи Битые ссылки за его способ определения типов битой ссылки)
- Восстановление Документов и Справочников по GUID и типу.
- 1С:Предприятие 8.3 (8.3.12.1685)
- Не типовые конфигурации (Без БСП)
- Демонстрационное приложение (1.0.26.4)
- Демо "Библиотека стандартных подсистем", (3.0.1.279)
- Демо Управление торговлей, редакция 11 (11.4.5.111)
По ходу тестирования на других платформах и конфигурациях список буду обновлять.
Примеры:
- Механизм по поиску битых ссылок. Пока решаю писать свой или использовать чей-то готовый, но какую обработку взять? Подскажите в комментариях на какую обратить внимание. Или может быть вы автор одной из таких обработок, и хотите поучаствовать в данной нестандартной подсистеме.
- Создать единую базу по сбору версий. Обмен по средствам HTTP-Сервисов.
- Обмен версиями с подсистемой "Версионирование объектов".
Релизы: