Добрый день.
Периодически возникает вопрос о получении версии объекта, который нельзя добавить стандартными методами в механизм ВО. Делюсь своим опытом. Для примера возьму свой документ ОбращениеКлиента (реквизиты и прочее неважны).
1 - в расширение нужно добавить:
- определяемые типы ВерсионируемыеДанные и ВерсионируемыеДанныеОбъект. Определить для них новый тип (ДокументСсылка.ОбращениеКлиента и ДокументСсылка.ОбращениеКлиента соответственно)
;
- справочники ИдентификаторыОбъектовМетаданных и ИдентификаторыОбъектовРасширений;
- регистр НастройкиВерсионированияОбъектов и его форму НастройкиХраненияИстории. На форме добавить в расширение ДЗ ДеревоОбъектовМетаданных и добавить тип СправочникСсылка.ИдентификаторыОбъектовРасширений
2 - изменить (с контролем, естественно) процедуру общего модуля ВерсионированиеОбъектов "ЗаписатьНастройкуВерсионированияПоОбъекту":
Для чего? При настройке в клиенте версионирования нового документа проверка ТипЗнч(ТипОбъекта) <> Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") будет не пройдена, сразу пойдет запись новых настроек по документу в ИБ.
3 - мой документ не делает движений по регистрам. Для записи ВО достаточно в модуле определить обработчик ПереЗаписью:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ВерсионированиеОбъектов.ЗаписатьВерсиюОбъекта(ЭтотОбъект, РежимЗаписи);
КонецПроцедуры
И на этом всё!
Абсолютно таким же образом можно добавить типовой документ в данный механизм (например, ОтветНаЗапросФССДляРасчетаПособия из 1С:ЗУП).
Тестировалось на 1С:УНФ 8. Управление предприятием общепита, редакция 3.0 (3.0.5.211) , платформа 8.3.25.1374. Версия БСП 3.1.8.476.