Содержание:
1. Что такое история данных в 1С
2. Для каких видов объектов метаданных 1С реализована история хранения данных
3. Как включить механизм версионирования в 1С
Нередко возникают ситуации, когда необходимо определить пользователя, от имени которого были выполнены некие изменения в данных в 1С. При помощи журнала регистрации в 1С 8.3 можно прояснить лишь общую картину: факт сохранения изменений в объекте (например, элементе справочника или документе) или удаления данных. При этом никакой конкретики по изменениям журнал регистрации в 1С 8.3 не предоставляет: нельзя точно определить, кто и когда изменил значение одного из реквизитов или исправил допущенную ранее ошибку.
1. Что такое история данных в 1С
В этом случае может помочь механизм платформы 1С, называемый историей (или версионированием в 1С) данных.
История данных – механизм платформы 1С, позволяющий хранить историю изменения данных пользователями, упорядоченную по времени. При этом в базе данных хранится не полная копия объекта до и после изменения, а только «разница». Также при настройке можно указать, что версионирование в 1С требуется не для всех объектов, а только для интересующих.
Данные возможности положительно сказываются на производительности и позволяют производить экономию дискового пространства.
2. Для каких видов объектов метаданных 1С реализована история хранения данных
Хранение истории реализовано для следующих видов объектов метаданных 1С:
- справочники
- документы
- задачи
- бизнес-процессы
- регистры сведений
- общие реквизиты
- планы счетов
- планы видов расчетов
Начиная с версии платформы 8.3.13.1513 в список видов объектов с поддержкой истории данных добавлены:
- константы
- планы обмена
- планы видов характеристик
По умолчанию для большинства объектов отключено ведение истории данных в 1С, разработчик сам решает, в каких случаях требуется установить использование механизма.
3. Как включить механизм версионирования в 1С
Включение механизма версионирования в 1С возможно как из режима конфигуратора, так и из режима 1С:Предприятия (путем выполнения обработки). Нужно указать, данные каких объектов требуется версионировать в 1С.
При настройке 1С:Предприятия можно выбрать полный режим хранения объекта или частичный (хранение изменений значений отдельных реквизитов, измерений, также могут быть сохранены изменения значений реквизитов табл. частей).
Программная работа с историей данных осуществляется через свойство глобального контекста ИсторияДанных типа МенеджерИсторииДанных. Предлагаемые методы позволяют производить запись версий, получать различия версий, выполнять поиск версий в соответствии с отбором, дополнять версию комментарием, удалять версии.
Рассмотрим, как выполняется запись версии.
Запись версии может быть выполнена 2 способами:
- автоматически механизмами платформы 1С (основной вариант использования)
- обработкой на встроенном языке методом ЗаписатьВерсию().
Автоматическое формирование истории данных выполняется в несколько этапов:
1. Фиксируется необходимость создания версии. При этом есть возможность указать, что запись должна произойти в ускоренном режиме (свойство версионируемого объекта «Обновлять историю данных сразу после записи» программно меняется через параметр ОбновлятьИсториюСразуПослеЗаписи), или требуется выполнение постобработки после записи версии в истории данных (свойство «Выполнять обработку после записи версии истории данных» программное обращение через параметр ВыполнитьОбработкуПослеЗаписиВерсии), или требуется добавить дополнительные данные (метод ДобавитьДополнительныеДанные()).
Стоит отметить, что свойство «Обновлять историю данных сразу после записи» не рекомендуется устанавливать для видов объектов метаданных 1С, для которых предполагается большое количество элементов и частое их изменение.
2. Фактическая запись версии в базу.
3. Постобработка после записи в историю данных.
Последний этап выполняется в том случае, если ранее в настройках 1С:Предприятия был установлен флаг «Выполнять обработку после записи версии истории данных» либо программно установлен параметр ВыполнитьОбработкуПослеЗаписиВерсии.
Специалист компании ООО «Кодерлайн»
Кондренко Анна