Обновление Библиотеки стандартных подсистем (БСП) в конфигурациях, которые были значительно доработаны или сняты с поддержки, — это одна из самых трудоемких задач для разработчика 1С. Ситуация осложняется, когда целью обновления является внедрение новых функций, таких как бесшовная интеграция с 1С:Документооборотом (ДО), требующая конкретной минорной версии библиотеки (например, переход с ветки 2.3 на 2.4). Разберем пошагово, как подступиться к этой задаче, какие инструменты использовать и каких ошибок избежать.
Первым делом нам необходимо проанализировать, насколько глубоко БСП интегрирована в текущее решение. Если конфигурация "сильно переписана", это означает, что типовые объекты БСП могли быть модифицированы. Простая замена объектов через механизм "Сравнить и объединить" в данном случае не сработает и, скорее всего, приведет к полной неработоспособности базы.
Рассмотрим основные технические сложности, с которыми мы столкнемся:
Многие разработчики совершают ошибку, пытаясь обновиться только средствами конфигуратора. Для работы с БСП компания 1С поставляет специальную обработку — «Помощник внедрения БСП». Она находится в составе дистрибутива библиотеки на ИТС.
Разберем, почему это важно. Помощник позволяет:
Важно понимать, что нельзя просто "прыгнуть" с версии 2.3.6 на 2.4.6. БСП, как и любая типовая конфигурация, содержит обработчики обновления данных. Если пропустить промежуточные версии, данные в регистрах сведений самой БСП не будут корректно реструктуризированы.
Проанализируем правильный алгоритм:
БСП версии 2.4 и выше требует использования актуальных возможностей платформы. Посмотрим на критический момент: если ваша отраслевая конфигурация работает в режиме совместимости 8.3.5 или ниже, вам придется его повысить (обычно до 8.3.10 или выше, в зависимости от требований конкретного релиза БСП).
Внимание: Изменение режима совместимости влияет на работу всей базы. Могут измениться правила работы запросов, механизмы блокировок и поведение интерфейса. Перед этим шагом обязательно полное тестирование всего функционала "Учебного центра".
Выясним важную деталь: сама по себе БСП не содержит "бесшовную интеграцию". Для этого используется отдельная библиотека — БИД (Библиотека интеграции с документооборотом). Она встраивается поверх БСП. Поэтому наш план действий расширяется:
Поскольку ваша конфигурация уже сильно переписана, лучшим стратегическим решением будет попытка изолировать типовой код БСП от ваших правок. Рассмотрим, как это сделать:
Если вам нужно изменить логику типовой функции БСП, не правьте её в основной конфигурации. Используйте расширение:
&НаСервере
&Вместо("ТиповаяПроцедураБСП")
Процедура Расш_ТиповаяПроцедураБСП()
// Ваша логика
ПродолжитьВызов(); // Если нужно выполнить и стандартный код
КонецПроцедуры
Это позволит в будущем обновлять БСП гораздо легче, так как количество конфликтов при сравнении-объединении значительно снизится.
После того как вы объединили метаданные в конфигураторе, процесс не закончен. Нужно обязательно запустить обработчики обновления. Это делается либо при первом запуске системы, либо принудительно через командную строку.
Для гарантированного запуска всех процедур обновления используйте параметр запуска:
/ЗапуститьОбновлениеИнформационнойБазы
Проанализируем ситуацию: если после запуска в регистре сведений ВерсииПодсистем версия БСП не обновилась, значит, обработчики не отработали. Это критическая ситуация, при которой интеграция с Документооборотом работать не будет, так как программные интерфейсы (API) останутся старыми.
Современные версии БСП (начиная с 2.4) полностью ориентированы на работу в немодальном режиме (без использования модальных окон Вопрос, Предупреждение). Если ваш "Учебный центр" активно использует модальность, при интеграции с ДО вы столкнетесь с ошибками выполнения. Вам придется либо переписывать вызовы на асинхронные, либо (в крайнем случае) временно разрешить модальность в свойствах конфигурации, хотя БСП будет выдавать предупреждения.
Подведем итог: обновление БСП — это не просто копирование объектов. Это сложный процесс рефакторинга. Если объем изменений в вашей базе слишком велик, рассмотрите вариант внедрения только необходимых кусков кода из БИД, но помните, что это лишит вас поддержки со стороны 1С и усложнит жизнь в будущем. Лучший путь — последовательное обновление версий БСП с использованием Помощника внедрения и обязательным тестированием каждого промежуточного этапа.