Хранение удаленных документов в отдельной базе. Часть 1.

Опубликовал Антон Егоров (egorovntn) в раздел Администрирование - Архивирование (backup)

Резервное хранение данных.
Пример работы с внешними источниками данных.
Работа с файлами.
Подписка на событие.
Работа с XML файлами.
Сериализатор XDTO.

Решил опубликовать эту статью думаю, она будет многим полезна, заодно хороший пример работы с механизмами платформы.

Рассмотрим на примере УТ 11 задачу хранения и восстановления удаленных документов, дабы они не загрязняли нашу базу будем хранить их в файлах, а в следующей статье - в отдельной конфигурации. Ниже приведена пошаговая инструкция.

Берем УТ 11

 

УДАЛЕНИЕ ОБЪЕКТА

 

Необходимо создать новую подписку на событие «ВыгрузкаУдаляемогоОбъекта» указав в источниках объекты которые мы будем сохранять пусть для примера это будут документы и справочники ну и укажем когда будет она будет срабатывать «ПередУдалением»

 

Для определения обработчика подписки создадим серверный общий модуль «МодульОбработчикаСобытияУдаленияОбъекта»

 

Укажем наш модуль в подписке в пункте "Обработчик" 

Теперь в модуле «МодульОбработчикаСобытияУдаленияОбъекта» пропишем процедуру.



Удаляем документы в УТ 11.

 

Сначала пометим документ на удаление 

 

Удаляем их непосредственно

 Это наши удаленные объекты один файл на объект.

 Так выглядит содержание нашего файла.

 

ВОССТАНОВЛЕНИЕ ОБЪЕКТА

 

Теперь наша задача восстановить удаленный объект.

 

Для этого создадим в Общих командах команду «ВосстановитьОбъект» по следующими процедурами. Добавим команду в подсистему «Администрирование»

 

В Предприятии 

В итоге при выборе файла получаем востановленный объект.

Вы скажете, а если объектов тысячи? Конечно хранить их в виде файлов в каталоге, да еще с именем фала в виде ID не целесообразно, но эту задачу решим в следующем примере.

Если считаете, что лучше выложить пишите об этом, тогда выложу на каркасной конфигурации для сдачи на специалист.А  УТ 11 выкладывать не будем Cool

PS. Ждем продолжение ставим плюсики ;-). Будут плюсы разберем вопрос создания конфигурации для хранения удаленных объектов.

 

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. Гость 12.12.12 15:39 Сейчас в теме
2. Виктор Желтко (ViksVik) 19.12.12 14:42 Сейчас в теме
Интересно. С удовольствием бы познакомился с продолжением. Отдельная база данных для удалённых объектов - хороший механизм контроля для руководителя.
3. Fomix (fomix) 19 19.12.12 15:09 Сейчас в теме
Вполне подходящий вариант. Однако, как минимум, есть одно предложение по его доработке:
1. Загружать файлы с удаленными объектами все сразу, а не по одному. Причем перед загрузкой в базу, показывать их в таблице с возможностью отбора объектов, которые требуется загрузить.
4. Антон Егоров (egorovntn) 211 19.12.12 21:42 Сейчас в теме
Согласен, просто этот функционал возложу на дополнительную конфигурацию, для хранения и систематизации удаленных данных.(3) fomix,
5. Антон Егоров (egorovntn) 211 23.12.12 00:38 Сейчас в теме
6. Никита Коротаев (bforce) 312 24.12.12 10:20 Сейчас в теме
Необычно и интересно. В некоторых ситуациях вполне применимо (особенно, если удаление непосредственное).
7. Ярослав Радкевич (WKBAPKA) 199 24.12.12 11:12 Сейчас в теме
а я бы сделал попроще, с использование РИБ... единственное, что при удалении объектов, очищал регистрацию этого события... а дальше, одна обработка по сравнению объектов в базе и все... ну можно еще хранить ссылки на удаленные объекты в базе источнике, для упрощения задачи... это позволило бы быстро находить копии объектов в базе приемнике...

а синхронизация автоматическая в фоновом режиме... красота :)
8. Максим Зудин (kasper076) 18 29.12.12 09:44 Сейчас в теме
В случае изменения структуры объекта, в том числе изменения имени реквизита, объект не загрузится.
9. Антон Егоров (egorovntn) 211 19.01.13 23:45 Сейчас в теме
(8) Да по этой причине, нужно внести изменения в алгоритм загрузки, сделаю в следующих релизах