Журнал регистрации изменений во внешней информационной базе 1С

Начало работы

Подсистема работает в конфигурациях 8.2 и 8.3 в толстом, тонком и WEB-клиенте (обычные и управляемые формы). Сейчас сложилась парадоксальная ситуация. Есть конфигурации, которые используют обычные формы, есть которые работают на управляемых формах, а также есть те, которые работают и так, и так. Наша подсистема позволяет работать в любом режиме, причем если будет запущена в толстом клиенте, то будет интерфейс и формы толстого клиента, если в тонком или WEB, то на управляемых формах. При этом практически не будет никакой разницы с точки зрения функциональности.

Регистрируются изменения для следующих видов объектов: константы, справочники, документы, планы видов характеристик, планы счетов, планы видов расчета, бизнес-процессы, задачи и регистры сведений.

Для хранения истории изменений объектов используется внешняя информационная база 1C «Хранитель журнала регистрации». Был выбран именно механизм внешнего хранения изменений, т.к. он не влияет на размер основной информационной базы 1C, а работа напрямую с внешней базой данный позволяет быстро производить чтение и запись событий.

Алгоритм работы подсистемы такой: при произведении изменения объекта, полный образ изменённого объекта попадает в так называемый «кэш журнала регистрации» – справочник в подсистеме, в который попадают все данные по измененным объектам. Затем, фоновое задание запускает перенос данных из кэша во внешнюю базу данных хранителя, данные просто переносятся из кэша. Далее в информационной базе хранителя происходит определение изменений. Что это значит? Приведем пример. Допустим пользователь «А» создал номенклатуру, заполнил ее и сохранил. Затем пользователь «Б» через время открыл ее и изменил в ней один реквизит, после чего также сохранил. При этом наша подсистема позволит Вам увидеть, как то, что пользователь «Б» изменил без показа всех остальных реквизитов, табличных частей и т.д., так и полные образы объектов. Это позволяет точно сказать, что было изменено пользователем, а что нет. Удобно, не правда ли?

При просмотре истории данные по изменениям подгружаются из внешней базы хранителя и из кэша. Причем данные, которые находятся в кэше в журнале «подсвечиваются» темно-красным цветом, данные которые находятся в базе хранителя и не определены изменения отображаются светло-серым цветом, а данные которые обработаны обычным черным цветом. Как уже было сказано ранее, данные в кэше содержат полный образ объекта на момент изменения объекта (содержат все реквизиты, все табличные части, все предопределённые реквизиты), а в хранителе хранятся те же полные образы, но уже с определением изменений, т.е. как было и как стало.

После переноса «сжатых» данных из кэша в базу данных хранителя, изменения в кэше удаляются. Таким образом, общий размер информационной базы остается практически неизменным.

 Начать курс обучения