Устав постоянно проводить следствие, кто, что и когда изменил в документе, справочнике, побудило меня разработать механизмы записи изменений практически всех документов и справочников конфигурации
Возможность хранить это все во встроенном журнале регистрации отмёл сразу-же, из-за того стандартный журнал регистрации в принципе неудобный инструмент для поиска необходимой информации, т.к. он является файлом хранящемся отдельно от базы. И чем размер этого файла больше тем дольше приходится производить поиски.
Хотелось чтобы пользователь, сам себе отвечал на свои вопросы "Кто", "Когда" и "Что на что поменял".
Выбрал вариант хранения об изменении реквизитов объектов в отдельной базе.
- В рабочей конфигурации добавил два дополнительных регистра сведений: в один из регистров сведений сливается на временное хранение информация об изменениях основных реквизитах объектов, во второй регистр сливается информация об изменениях основных реквизитах табличных частей объектов
- Добавил процедуры контроля изменения, как основных реквизитов, так и реквизитов табличных частей
- Добавил два подписчика событий: один подписчик контролирует на момент записи изменения в справочниках, второй следит за изменением в документах. В случае если выявляется какое-либо изменение, то информация об изменении регистрируется в одном из двух ранее созданных регистров
- Добавил регламентное задание, которое отрабатывает в рабочей базе с определённой периодичностью, и выгружает файлами в формате xml, изменения которые поднакопились в ранее созданных регистрах сведений. После удачной выгрузки записей регистров в файл, выгруженные записи убираются из регистров. В итоге объем информации, который храниться в этих двух регистрах незначительный
- Создана конфигурация, куда загружались файлы с информацией об изменениях реквизитов объектов
- В конфигурации журнала регистрации добавлено регламентное задание, которое загружает файлы с информацией об изменениях реквизитов объектов
- Так же решил из рабочей базы выгружать информацию из стандартного журнала регистрации, рабочей базы, в базу "журнал регистраций"
- Отдельными пакетами куски журнала регистрации также выгружаются из рабочей базы и загружаются на стороне базы "журнал регистрации"
- На стороне рабочей базы, добавлена внешняя обработка при помощи которой из любого документа, справочника можно выбрать информацию об изменениях реквизитов
- Также в рабочей базе добавлена внешняя обработка которая выводить привычный вид журнала регистрации, но по данных базы "журнал регистрации"
Плюсы разработки:
- количество спорных моментов сократилось
- пользователи самостоятельно могут проводить следствия и расследования
Минусы разработки:
- Хранение изменений всех справочников и документов, требует больших объемов на винтах.
- Винты, на которых хранится информация, должны быть скоростными
- При записи объектов запускаются дополнительные процедуры, которые хоть и незначительно, но замедляют работу пользователя
- При увеличении объема базы "Журнала регистрации", скорость формирования отчетов по изменениям реквизитов объектов снижается.
Надеюсь, мой опыт, может быть кому-нибудь быть полезен.
В данной разработке контролируется изменение только объектов типа "Документ" и "Справочник".
Многие идеи черпались на сайте infostart.ru