Как подключить документ расширения к версионированию БСП

Заметки к статье https://infostart.ru/1c/tools/1665934/ после подключения документов своего расширения в 2026 году.
Версия 1С 8.3.27.1989

Шаг 5. Находим в основной конфигурации общую команду «ИсторияИзменений» и копируем в расширение. Именно копируем, а не заимствуем! В типе параметров команды указываем наши документы.

У меня прекрасно работает с заимствованием общей команды. Если копировать, то на форме документа появляются две одинаковые кнопки управления версиями.

Шаг 6. Находим в основной конфигурации подписку на событие «Записать версию документа» и тоже копируем в расширение. В качестве источника указываем наш документ.

У меня прекрасно работает с заимствованием.

Шаг 7. Заимствуем в расширение форму «НастройкиХраненияИстории» регистра сведений «НастройкиВерсионированияОбъектов».

Нужно только для того чтобы при настройке наш документ находился в отдельной группе «Документы», обособленно от документов основной конфигурации.
При этом в дереве с остальными документами он и так появляется.

Но в дереве с остальными документами неверно отображается настройка версионирования. Помогла вставка:

&НаСервере
&ИзменениеИКонтроль("ЗаполнитьТипыОбъектовВДеревеЗначений")
Процедура Кафедры_ЗаполнитьТипыОбъектовВДеревеЗначений()
....
НайденныеНастройки = НастройкиВерсионирования.НайтиСтроки(Новый Структура("ТипОбъекта", НоваяСтрокаТаблицы.ТипОбъекта));
    #Вставка
НайденныеНастройки = НастройкиВерсионирования.НайтиСтроки(Новый Структура("ТипОбъекта", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип)));
    #КонецВставки
...

 

Шаг 8. Заимствуем в расширение функцию общего модуля ОбщегоНазначения.ИдентификаторОбъектаМетаданных() и немного дорабатываем.

 ОбщегоНазначения.ИдентификаторОбъектаМетаданных()
&ИзменениеИКонтроль("ИдентификаторОбъектаМетаданных")
Функция ВерсСО_ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение)
    #Вставка
    Если ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Строка") Тогда
        ИдентификаторРасширения = Справочники.ИдентификаторыОбъектовРасширений.НайтиПоНаименованию(ОписаниеОбъектаМетаданных, Истина);
        Если ЗначениеЗаполнено(ИдентификаторРасширения) Тогда
            Возврат ИдентификаторРасширения; 
        КонецЕсли; 
    КонецЕсли;
    #КонецВставки
    Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(
	ОписаниеОбъектаМетаданных, ВызыватьИсключение);
КонецФункции

А вот без этой доработки программа при настройке версий не могда найти объект метаданных .

 

Похожие записи