Как подключить документ расширения к версионированию БСП
Заметки к статье https://infostart.ru/1c/tools/1665934/ после подключения документов своего расширения в 2026 году.
Версия 1С 8.3.27.1989
Шаг 5. Находим в основной конфигурации общую команду «ИсторияИзменений» и копируем в расширение. Именно копируем, а не заимствуем! В типе параметров команды указываем наши документы.
У меня прекрасно работает с заимствованием общей команды. Если копировать, то на форме документа появляются две одинаковые кнопки управления версиями.
Шаг 6. Находим в основной конфигурации подписку на событие «Записать версию документа» и тоже копируем в расширение. В качестве источника указываем наш документ.
У меня прекрасно работает с заимствованием.
Шаг 7. Заимствуем в расширение форму «НастройкиХраненияИстории» регистра сведений «НастройкиВерсионированияОбъектов».
Нужно только для того чтобы при настройке наш документ находился в отдельной группе «Документы», обособленно от документов основной конфигурации.
При этом в дереве с остальными документами он и так появляется.
Но в дереве с остальными документами неверно отображается настройка версионирования. Помогла вставка:
&НаСервере
&ИзменениеИКонтроль("ЗаполнитьТипыОбъектовВДеревеЗначений")
Процедура Кафедры_ЗаполнитьТипыОбъектовВДеревеЗначений()
....
НайденныеНастройки = НастройкиВерсионирования.НайтиСтроки(Новый Структура("ТипОбъекта", НоваяСтрокаТаблицы.ТипОбъекта));
#Вставка
НайденныеНастройки = НастройкиВерсионирования.НайтиСтроки(Новый Структура("ТипОбъекта", ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип)));
#КонецВставки
...
Шаг 8. Заимствуем в расширение функцию общего модуля ОбщегоНазначения.ИдентификаторОбъектаМетаданных() и немного дорабатываем.
&ИзменениеИКонтроль("ИдентификаторОбъектаМетаданных")
Функция ВерсСО_ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение)
#Вставка
Если ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Строка") Тогда
ИдентификаторРасширения = Справочники.ИдентификаторыОбъектовРасширений.НайтиПоНаименованию(ОписаниеОбъектаМетаданных, Истина);
Если ЗначениеЗаполнено(ИдентификаторРасширения) Тогда
Возврат ИдентификаторРасширения;
КонецЕсли;
КонецЕсли;
#КонецВставки
Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(
ОписаниеОбъектаМетаданных, ВызыватьИсключение);
КонецФункции
А вот без этой доработки программа при настройке версий не могда найти объект метаданных .