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

08.06.22

Разработка - БСП (Библиотека стандартных подсистем)

Пример расширения, в котором добавлен новый документ и он же подключен к подсистеме версионирования объектов. Важно! Основную конфигурацию нужно переключить в режим совместимости 8.3.20.

Скачать файлы

Наименование Файл Версия Размер
Как подключить документ расширения к версионированию БСП:
.cfe 36,48Kb
9
.cfe 1.0.0.0 36,48Kb 9 Скачать

Порядок действий

Можете просто скачать расширение и наслаждаться результатом. Ниже я указал, на что следует обратить внимание при разработке своих расширений.

Шаг 1. В конфигураторе в меню "Конфигурация" - "Поддержка" - "Настройка поддержки" необходимо включить возможность изменения конфигурации и установить правила поддержки в положение "Объект поставщика редактируется с сохранением поддержки".

 

 

Шаг 2. Установить режим совместимости конфигурации в положение "Не использовать", если у вас платформа 8.3.20 или в положение "8.3.20", если пользуетесь более старшей версией платформы.

Шаг 3. Если прямо сейчас запустить 1С в режиме Предприятие то увидите ошибку, что конфигурация не может работать в режиме совместимости 8.3.20. По этому отключаем эту проверку. Создаём расширение и заимсвуем в него процедуру общего модуля СтандартныеПодсистемыСервер.ПередЗапускомПрограммы().

 
 СтандартныеПодсистемыСервер.ПередЗапускомПрограммы()

Теперь программа должна открываться без ошибок. 

Шаг 4. В расширении создаём новый документ и для красоты сразу прицепляем его в отдельную подсистему. 

При необходимости, указываем служебные реквизиты в модуле менеджера документа, чтобы скрыть их из отчёта версионирования.

 
 Модуль менеджера документа

В модуле формы документа в событии ПриСозданииНаСервере() должна быть инициализация.

 
 Модуль формы документа

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

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

Шаг 7. Заимствуем в расширение форму «НастройкиХраненияИстории» регистра сведений «НастройкиВерсионированияОбъектов». Добавляем в расширение код, который будет выполняться после процедуры ЗаполнитьТипыОбъектовВДеревеЗначений(). Здесь смысл в том, чтобы дополнить типами объектов расширения массив типов.

Обратите внимание на те строчки, где стоит комментарий //ёё
Адаптируйте под свои названия эти строчки.

 
 Модуль формы регистра сведений «НастройкиВерсионированияОбъектов»

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

 
 ОбщегоНазначения.ИдентификаторОбъектаМетаданных()

Шаг 9. Запускаем программу в режиме 1С:Предприятие. Заходим в «НСИ и администрирование» - «Администрирование» - «Общие настройки» - «История изменений» - «Настроить»

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

 

 

Шаг 10. Тестируем и наслаждаемся результатом

 

 

Используемые статьи и идеи

Требования к ПО

Предложенное расширение протестировано на платформе 1С:Предприятие 8.3.20.1710
Конфигурация, на основе которой было создано расширение: 1С:ERP Управление предприятием 2 (2.5.8.171)

БСП РежимСовместимости Расширение ERP Версионирование

См. также

Консоль кода для подсистемы БСП Групповое изменение реквизитов

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширения для внедрения консоли кода в обработку подсистемы БСП Групповое изменение реквизитов. Просто, чтобы было удобнее.

2 стартмани

03.12.2023    823    3    vandalsvq    1    

16

Настройка истории изменений. Подключение новых объектов (которых нет в списке) к системе версионирования (БСП) без изменения конфигурации

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

Много материалов и видео в сети о том, как подключить объект, которого нет в списке настроек, к системе версионирования БСП. Суть сводится к изменению определяемого типа, на который все завязано. Но это предполагает изменение конфигурации. Недавно встала задача подключить объект, которого нет в определяемом типе без снятия замков. Пришлось изучить вопрос глубже. Здесь пояснения и краткая инструкция с картинками. Как подключиться, используя только расширение.

20.11.2023    711    user1374747    0    

22

Как включить привилегированный режим для дополнительных отчетов и обработок

БСП (Библиотека стандартных подсистем) Конфигурации 1cv8 Бесплатно (free)

Как отключить безопасный режим для дополнительных отчетов и обработок РазрешениеНаИспользованиеПривилегированногоРежима

14.10.2023    2218    SpecRam    16    

32

Справочник по методам БСП

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Абонемент ($m)

Данная конфигурация представляет собой инструмент для изучения документации и набора методов для стандартных подсистем БСП (Библиотека стандартных подсистем) в среде 1С:Предприятие. Может помочь разработчикам для быстрого поиска кода и переноса его в другие конфигурации, а также изучения БСП. Это конфигурация не в является заменой сервиса ИТС , а только помогает разработчикам в изучении БСП.

2 стартмани

11.10.2023    4800    106    plm    13    

52
Отзывы
2. EvgeTrofi 123 27.05.22 11:22 Сейчас в теме
(1) Только на платформе 8.3.20 с режимом совместимости 8.3.20 или выше можно документ созданный, в расширении записать в поле таблицы базы данных основной конфигурации.

Записи версионирования записываются в таблицу регистра сведений «Версии объектов». Там есть измерение «Объект», которое имеет тип ДокументСсылка. Но до 8.3.20 туда можно было записывать только любые документы основной конфигурации.

При переключении режима совместимости на 8.3.20 происходит существенная реструктуризация хранения данных базы. После этого поле Объект сможет в себя записать любой документ, созданный в расширениях.

Я ответил на Ваш вопрос?
Прикрепленные файлы:
Pelageya_Prime; zykov_vitaliy; sapervodichka; +3 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1691 27.05.22 09:44 Сейчас в теме
Режим совместимости 8.3.20 нужен только для строк вида Документы.ТипВсеСсылки()?
2. EvgeTrofi 123 27.05.22 11:22 Сейчас в теме
(1) Только на платформе 8.3.20 с режимом совместимости 8.3.20 или выше можно документ созданный, в расширении записать в поле таблицы базы данных основной конфигурации.

Записи версионирования записываются в таблицу регистра сведений «Версии объектов». Там есть измерение «Объект», которое имеет тип ДокументСсылка. Но до 8.3.20 туда можно было записывать только любые документы основной конфигурации.

При переключении режима совместимости на 8.3.20 происходит существенная реструктуризация хранения данных базы. После этого поле Объект сможет в себя записать любой документ, созданный в расширениях.

Я ответил на Ваш вопрос?
Прикрепленные файлы:
Pelageya_Prime; zykov_vitaliy; sapervodichka; +3 Ответить
3. ixijixi 1691 27.05.22 11:37 Сейчас в теме
(2) Исчерпывающе, благодарю
4. sapervodichka 6602 27.05.22 12:36 Сейчас в теме
(2) О! Я немного другое для себя понял, что начиная с 8.3.20 и планы обмена можно чисто в расширении делать, (там все также тип не проставлялся в регистре сведений основной конфы если план в расширении) спс за инфу + 1
5. vvh74 27.09.22 14:31 Сейчас в теме
(2) Сорри за некропостинг, но напрашивается вопрос: а что будет с типовой ERP/КА/УТ, если её с 17 поднять до 20? Не умрёт?
Вопрос не просто так, у меня при обновлении и поднятии режима совместимости с 8.3.14 на 8.3.16 отваливались расширения, т.к. менялось поведение встроенных функций.
6. EvgeTrofi 123 27.09.22 19:50 Сейчас в теме
(5) У меня не отвалилось на указанных в статье версиях. Работает по сей день.
7. sdemon72 24 28.11.22 12:41 Сейчас в теме
У меня получилось немножко красивее. Сделал пункты 1,2,3,4 (у меня, правда, справочники), как у автора.
Позаимствовал определяемые типы "ВерсионируемыеДанные" и "ВесионируемыеДанныеОбъект" и добавил туда объекты расширения.
Позаимствовал форму "НастройкиХраненияИстории", но вместо изменения кода поменял тип реквизита "ТипОбъекта" в "ДеревоОбъектовМетаданных" - добавил тип "ИдентификаторыОбъектовРасширений".
Позаимствовал модуль ОбщегоНазначения.ИдентификаторОбъектаМетаданных() и добавил туда код (немножко отличается от п.8.):
&ИзменениеИКонтроль("ИдентификаторОбъектаМетаданных")
Функция LS_ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение)
	
	#Вставка
	ИдентификаторРасширения = Неопределено;
	Если ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Строка") Тогда
		ИдентификаторРасширения = Справочники.ИдентификаторыОбъектовРасширений.НайтиПоНаименованию(ОписаниеОбъектаМетаданных, Истина);
	ИначеЕсли ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Тип") Тогда
		МетаданныеОбъекта = Метаданные.НайтиПоТипу(ОписаниеОбъектаМетаданных);
		Если МетаданныеОбъекта <> Неопределено Тогда
			ПолноеИмя = МетаданныеОбъекта.ПолноеИмя();
			ИдентификаторРасширения = Справочники.ИдентификаторыОбъектовРасширений.НайтиПоРеквизиту("ПолноеИмя",ПолноеИмя);
		КонецЕсли;
	ИначеЕсли ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
		ИдентификаторРасширения = ОписаниеОбъектаМетаданных;
	КонецЕсли;
	Если ЗначениеЗаполнено(ИдентификаторРасширения) Тогда
		Возврат ИдентификаторРасширения;
	КонецЕсли;
	#КонецВставки

	Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(
	ОписаниеОбъектаМетаданных, ВызыватьИсключение);

КонецФункции
Показать


В результате не надо переносить команду и подписку на событие, и в форме настроек версионирования не дублируются группы объектов метаданных
8. sdemon72 24 28.11.22 12:43 Сейчас в теме
Единственная неприятность - в какой-то момент на всех формах объектов расширения пропала кнопка "История изменеий". Раньше точно была, и не пойму, когда пропала. Пытаюсь разобраться....
9. sdemon72 24 28.11.22 21:26 Сейчас в теме
Разобрался. На платформе 8.3.21.1622 кнопки выводились, а при обновлении на 8.3.22.1709 исчезли. Значит пункты 5 и 6 выполняем в соответствии с инструкциями автора.
Автору респект!
EvgeTrofi; +1 Ответить
10. creatermc 26 23.06.23 14:29 Сейчас в теме
(7)
Позаимствовал определяемые типы "ВерсионируемыеДанные" и "ВесионируемыеДанныеОбъект" и добавил туда объекты расширения.


up

Ни в коем случае не заимствуйте в расширение определяемые типы «ВерсионируемыеДанные». А особенно «ВерсионируемыеДанныеОбъект».
!!!
11. creatermc 26 23.06.23 14:49 Сейчас в теме
@EvgeTrofi в 7 м исходнике в двух местах

ОбщегоНазначения.ИдентификаторОбъектаМетаданных


на

ОбщегоНазначения.моя_ИдентификаторОбъектаМетаданных
user1147041; +1 Ответить
Оставьте свое сообщение