В отраслевых конфигурациях на БСП может случиться ситуация, когда вендор не добавил интеграцию с 1С:ДО (т.н. бесшовная интеграция с 1С:Документооборотом для конфигураций на базе БСП - https://its.1c.ru/db/bid304doc. Кратко: БИД). А компании очень нужно обмениваться документами с Документооборотом.
Такая интеграция может быть добавлена коллегами. И, возможно, добавлена не через описанный на ИТС способ сравнения-объединения с основной конфигурацией (https://its.1c.ru/db/bid304doc/content/4/hdoc), а простым копированием объектов подсистемы “ИнтеграцияС1СДокументооборотом” из какой-нибудь типовой конфигурации, например, ЗУП (из того что есть в наличии у компании) в расширение интегрируемой конфигурации. По пути некоторые объекты могут не перенестись (например, роль БазовыеПраваБИД). И даже если в компании используется только ДО 2 и не планируется переходить на ДО 3, все равно в расширении может оказаться вся подсистема “ИнтеграцияС1СДокументооборотом”: и базовая функциональность “ИнтеграцияС1СДокументооборотомБазоваяФункциональность” , и интеграция с ДО 2 “ИнтеграцияС1СДокументооборотомРедакции2” и интеграция с ДО 3 “ИнтеграцияС1СДокументооборотомРедакции3”. Как в типовых конфигурациях 1С.
Гулять, так на все.
На заметку: если не планируется использовать интеграцию с обеими версиями ДО, не нужно переносить объекты неиспользуемой подсистемы (рекомендация с ИТС - https://its.1c.ru/db/bid304doc#content:4:hdoc). “ИнтеграцияС1СДокументооборотомБазоваяФункциональность” должна быть обязательно. Остальные подсистемы - по необходимости.
Спустя какое-то время, вендор выкатывает очередной релиз, в котором добавляет бесшовную интеграцию с ДО, но только для ДО 3. Это понятно, ДО 2 уже не модный и нужно шагать в ногу со временем. И вот в поддерживаемой вами отраслевой конфигурации появляются объекты подсистем “ИнтеграцияС1СДокументооборотомБазоваяФункциональность” и “ИнтеграцияС1СДокументооборотомРедакции3”. Такие же объекты (с такими же именами) присутствуют в расширении. При этом вендор внедрил и более новую версию БИД.
Тут перед вами встает задача: необходимо поднять релиз конфигурации, но есть конфликт в пространстве имен объектов подсистем “ИнтеграцияС1СДокументооборотомБазоваяФункциональность” и “ИнтеграцияС1СДокументооборотомРедакции3” в основной конфигурации и в расширении. После обновления конфигурации БД расширение перестает применяться, отваливаются все наработанные за долгое время инхаус доработки. Все ведь в одном расширении.
Необходимо разрешить конфликт, удалив дублирующие объекты из расширения, но оставив все данные интеграции с ДО, наработанные за время использования этой интеграции. Нужно адаптировать расширение, для этого понадобятся:
-
Демо-конфигурация с БИД версии из расширения, чтобы посмотреть, что коллеги изменили в сравнении с типовой поставкой, а также изменения в Базовой функциональности вынести в расширение в &ИзменениеИКонтроль. Скачивается там же, где и все релизы конфигураций 1С
-
Демо-конфигурация с БИД версии из релиза вендора. Чтобы поднять релиз ДО 2 в расширении.
Последовательность подготовки адаптированного под новый релиз расширения:
-
Можно начать с самого легкого. Интеграция с ДО 3 не используется. Прекрасно, объекты подсистемы “ИнтеграцияС1СДокументооборотомРедакции3” можно смело удалять из расширения. Нужно быть готовым к тому, что придется потратить некоторое количество времени на чистку ссылок.
-
Самое интересное: удалить объекты подсистемы “ИнтеграцияС1СДокументооборотомБазоваяФункциональность”, но сохранить данные и все изменения в расширении. Данные в объектах этой подсистемы хранятся в константах и регистрах сведений. Проще всего переименовать все удаляемые объекты (вообще все, не только с данными), добавив “_Удалить” (потом при удалении из расширения проще отобрать все эти объекты). Написать обработку для переноса данных из объектов с “_Удалить” в аналогичные объекты основной конфигурации. После обновления релиза конфигурации, наката адаптированного расширения и переноса данных все объекты с “_Удалить” удалить. Нужно быть готовым, что на этот пункт уйдет больше всего времени.
-
Не забыть поднять версию БИД для ДО 2 (подсистема “ИнтеграцияС1СДокументооборотомРедакции2”) в соответствии с версией БИД из основной конфигурации, при этом не затереть все доработки коллег. Это можно сделать через сравнение файлов. Личное предпочтение: сравнение файлов в VS Code. Показывает отличия вплоть до пробелов. Если добавить разметку синтаксиса BSL, то совсем красота.
На заметку: Лучше обновление и накат адаптированного расширения, со всеми манипуляциями переноса данных и удаления объектов расширения погонять на тестовой пару раз. Вероятно, в первые разы что-то слетит и отвалится. Особенно, если про БИД вы узнали пару недель назад. Убедиться что все готово, написать себе алгоритм действий, попросить тех.окно на 2-3 часа (возможно больше, зависит от размера базы и времени на обновление релиза) и приступать.
На заметку: если подготовку к обновлению релиза и размежеванию подсистем БИД вы готовите, попутно дорабатывая функционал конфигурации в расширении (текущую работу никто не отменял), нужно не забыть все эти доработки не затереть при подготовке адаптированного под новый релиз расширения. Показалось удобным использовать для этого локальный репо в Git:
- Залить актуальные файлы расширения прода до наката обновления, коммит.
- Обновить релиз конфигурации, накатить адаптированное расширение, провести все манипуляции.
- После успешного обновления релиза, снова залить файлы расширения в репо, коммит. После этого прощелкать все измененные файлы в Git. Удобно в том же VS Code, развернуть в Source Control последний коммит. Будет много удаленного/измененного в файлах подсистемы БИД. Скорее всего будут файлы объектов, адаптированных под новый релиз конфигурации. Среди этого разнообразия могут встретиться файлы объектов с недавними доработками. Таким образом удалось вернуть пару доработок, внесенных буквально за пару часов до тех.окна, выделенного на обновление релиза. Мелочь, а приятно. Ну чтобы наверняка.
Как видится, можно было бы упростить внедрение и последующую поддержку интеграции с ДО:
-
Использовать рекомендации с ИТС и добавлять бесшовную интеграцию с ДО через сравнение-объединение в основную конфигурацию, а не в расширение.
-
В расширение выносить все доработки БИД. Удобно всегда видеть, что изменено, в т.ч. используя проверку возможности применения расширения через &ИзменениеИКонтроль. Удобно не затереть доработки при поднятии версии БИД. Не нужно вручную сравнивать все файлы библиотеки.
-
Когда вендор добавляет интеграцию с ДО в свой очередной релиз, уже существующие объекты БИД ставятся на поддержку, а все доработки остаются в расширении. Обновление объектов подсистемы БИД не на поддержке идет через сравнение-объединение конфигураций. Не нужно удалять объекты-дубли из расширения, тратить время на анализ устройства самой библиотеки (хотя это тоже полезный опыт), разрабатывать перенос данных.
Уважайте своих коллег и по возможности не усложняйте то, что можно не усложнять, предварительно проанализировав задачу. Хорошего дня, спасибо что дочитали :)
Вступайте в нашу телеграмм-группу Инфостарт