Безопасное удаление в программе 1С Предприятие
или
Как вернуть удаленный документ / элемент справочника
Задача
Обеспечить систему быстрого восстановления записей / справочников / документов в программе 1С Предприятие.
Описание
Возможности непосредственного удаления документов и элементов справочников выданы руководителям соответствующих подразделений, с учетом ролей и прав пользователей 1С. Удаление не нужных объектов не производится и они нагружают таблицы базы данных лишними записями, таким образом порядка 50% данных – это не используемые элементы справочников и не нужные документы.
Необходимо обеспечить автоматическое удаление таких объектов с возможностью быстрого их восстановления и исключить из повторного удаления ранее восстановленные документы.
Решение:
1. Для каждого из указанного типа объекта метаданных (справочников и документов), создается дубликат (копированием), в имени которого добавляется «Удален», а также добавляются реквизиты:
- Ссылка на оригинал;
- Дата и время удаления;
- Ответственный за удаление.
В модулях объектов перед удалением создаются процедуры создания копий объектов в дублирующих метаданных(1*).
1*- Модули создания копий удобно генерировать с помощью предварительно написанного помощника, который генерирует код программы перебирая реквизиты указанного объекта.
2. На формах списков объектов – копий добавляется кнопка восстановить, при нажатии на которую происходит обратное действие.
Доступ к формам списков организуется в соответствии с правами пользователей 1С.
Для исключения повторного удаления после восстановления в оригиналах объектов устанавливается дополнительный флаг «Восстановлено», а также добавляются реквизиты:
- Дата и время восстановления;
- Ответственный за восстановление.
3. Создается регламентное задание, которое отбирает нужные (помеченные на удаление и не восстановленные ранее) объекты и удаляет их, предварительно выполнив создание резервных копий.
4. Создается служебный справочник с перечнем названий объектов и сроком хранения резервных копий.
5. Создается регламентное задание, которое считывает служебный справочник с перечнем названий объектов и сроком хранения резервных копий, после чего, если указан срок, программа отбирает копии удаленных объектов, которые старше срока хранения и удаляет их(если срок не указан объект не обрабатывается).