Данные версий объектов хранятся в регистре ВерсииОбъектов в ресурсе ВерсияОбъекта. Это значений типа ХранилищеЗначения. При записи объекта сюда записывается данные в формате сжатого XML. У регистра 2 измерения:
Настройки версионирования объектов хранятся в одноименном регистре сведений (НастройкиВерсионированияОбъектов). Регистр имеет измерение ТипОбъекта.
При записи объекта, включенного в версионирование, предварительно определяется его тип, далее читаются настройки для определенного типа, и выполняется создание новой версии, если нужно.
У регистра есть своя форма, которая открывается в клиенте в разделе Администрирования. Чтобы нужный объект попал в дерево объектов формы, он должен быть включен в определяемый тип ВерсионируемыеДанные (этот тип указан в свойстве "Тип параметра команды" общей команды "ИсторияИзменений").
В соответствии с настройками, можно настроить момент создания версий объектов, хранение версий объектов по типам объектов.
Что нужно сделать для версионирования объекта:
1. Добавить в определяемый тип ВерсионируемыеДанные. Если не документ, дополнительно добавить в определяемый тип ВерсионируемыеДанныеОбъект.
2. В модуле формы объекта в процедуре ПриСозданииНаСервере добавить строки:
// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
3. В форме объекта в командном интерфейсе проверить наличие общей команды "История изменений", и при необходимости добавить (должна появиться сама).
4. Добавить объект в подписку
- для документа ЗаписатьВерсиюДокумента (добавить в источник)
- для других объектов ЗаписатьВерсиюОбъекта (источник для подписки определяется типом ВерсионируемыеДанныеОбъект)
5. Ну и главное, проверить, включено ли версионирование объектов в Администрирование / Общие настройки / История изменений / Хранить историю изменений
После выполненных настроек, запускаем клиента, открываем "Настройки хранения истории изменений" и устанавливаем когда сохранять версию. Если не укажем когда сохранять версию объекта, то форме объекта не появится общая команда "История изменений".
|