Переход на новую версию Библиотеки стандартных подсистем в своей конфигурации
Содержание
Обновить БСП
в собственной конфигурации — значит сравнить и объединить её с новым файлом .cf библиотеки в Конфигураторе. Если библиотека стоит на поддержке, путь такой: Конфигурация → Поддержка → Обновить конфигурацию. Если нет — Конфигурация → Сравнить, объединить с конфигурацией из файла. После слияния идут проверка, обновление конфигурации
базы данных и запуск обработчиков обновления в режиме 1С:Предприятие.
Частое заблуждение — что обновление Библиотеки стандартных подсистем можно сделать «поверх» любой конфигурации. В типовых решениях (Бухгалтерия, ЗУП, УТ) БСП уже встроена, и её версию меняет только релиз самой конфигурации. Отдельно библиотеку 1С обновляют в своих разработках и в глубоко доработанных базах, снятых с поддержки. Об этом случае и пойдёт речь.
1. Подготовка: какая версия БСП стоит сейчас и что может сломаться
Начните с точного номера текущей версии. Он нужен, чтобы понять, сколько релизов вы перешагиваете и какие изменения читать.
Где посмотреть версию БСП:
- 🔍 В коде. Откройте общий модуль
ОбновлениеИнформационнойБазыБСП, процедуруПриДобавленииПодсистемы. Там строка видаОписание.Версия = "3.1.…". - 🔍 Программно. Функция
СтандартныеПодсистемыСервер.ВерсияБиблиотеки()возвращает версию библиотеки в метаданных. - 🔍 Версия данных.
ОбновлениеИнформационнойБазы.ВерсияИБ("СтандартныеПодсистемы")показывает, до какой версии дошли обработчики обновления в этой базе.
// Выполнить на сервере, например во внешней обработке
Сообщить("В метаданных: " + СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
Сообщить("В данных: " + ОбновлениеИнформационнойБазы.ВерсияИБ("СтандартныеПодсистемы"));
Если две версии различаются, прошлое обновление не завершилось: обработчики не отработали. Сначала разберитесь с этим, потом беритесь за новый релиз.
Дальше — инвентаризация доработок. Без неё слияние превращается в лотерею.
- Найдите объекты БСП, которые вы меняли напрямую: общие модули, формы, роли. На поддержке их видно по значку изменения в дереве конфигурации.
- Проверьте, что ваш код лежит в модулях с суффиксом
Переопределяемый(например,ОбщегоНазначенияПереопределяемый). Такие модули библиотека не перезаписывает по смыслу — они для разработчика. - Запишите, какие подсистемы БСП у вас внедрены. Лишние подтягивать при обновлении не нужно.
- Сверьте требования новой версии: минимальный номер платформы и режим совместимости. Номер платформы на сервере и у клиентов должен быть не ниже требуемого.
Работайте только на копии: отдельная база разработчика или хранилище, никогда — сразу в рабочей базе.
2. Где взять новую версию библиотеки и что в дистрибутиве
Дистрибутив БСП публикуется на портале обновлений фирмы 1С. Доступ к нему дают договор ИТС или партнёрский статус. Устанавливается он как обычный шаблон конфигурации: запускаете setup.exe, файлы раскладываются в каталог шаблонов.
Что пригодится из дистрибутива:
- 📦 Файл конфигурации библиотеки (
.cf) — с ним и выполняется сравнение. - 📦 Демонстрационная конфигурация — живой пример внедрения всех подсистем. Удобно подсмотреть, как заполнены переопределяемые модули.
- 📦 Документация — описание изменений по версиям и порядок перехода с предыдущих.
- 📦 Обработка первого внедрения (
ПервоеВнедрениеБСП.epf) — помогает выбрать нужные подсистемы и сохранить файл настроек сравнения и объединения.
Самый недооценённый файл — описание изменений. В нём перечислены переименованные и удалённые процедуры, новые обязательные переопределяемые методы. Если вы прыгаете через несколько версий, читайте разделы для каждой промежуточной.
При большом разрыве (например, со старой ветки 2.x на 3.x) переходите через промежуточные версии, если документация прямо требует этого. Обработчики обновления данных рассчитаны на определённые исходные версии.
3. Обновление БСП через Конфигуратор: пошагово
Порядок одинаков для любой версии. Разница — только в том, стоит ли библиотека на поддержке.
Шаг 1. Резервная копия
В Конфигураторе: Администрирование → Выгрузить информационную базу — получите файл .dt. Дополнительно сохраните текущую конфигурацию: Конфигурация → Сохранить конфигурацию в файл. Второй файл понадобится, если захотите откатить только метаданные.
Шаг 2. Запуск сравнения
| Ситуация | Команда | Что получите |
|---|---|---|
| БСП на поддержке | Конфигурация → Поддержка → Обновить конфигурацию | Трёхстороннее сравнение: старая версия поставщика, новая версия, ваша конфигурация |
| БСП не на поддержке | Конфигурация → Сравнить, объединить с конфигурацией из файла | Двустороннее сравнение; при первом объединении можно поставить библиотеку на поддержку |
| Конфигурация в хранилище | Сначала захватите корень конфигурации, затем одна из команд выше | Изменение поддержки возможно только при захваченном корне |
Трёхсторонний вариант заметно удобнее: платформа сама видит, что меняли вы, а что поменял поставщик. Поэтому при первом объединении стоит поставить БСП на поддержку с возможностью изменения.
Шаг 3. Загрузка файла настроек
В окне сравнения откройте меню Действия и загрузите файл настроек объединения, сохранённый обработкой первого внедрения. Он отметит только нужные подсистемы. Без него в вашу конфигурацию приедут все подсистемы библиотеки, включая те, что вам не нужны.
Шаг 4. Режимы объединения по объектам
Для каждого отмеченного объекта выбирается режим. Ориентир такой:
- ✅ Взять из файла — объекты БСП, которые вы не трогали.
- 🔀 Объединить — объекты, где есть и ваши правки, и правки поставщика.
- 🛑 Не объединять — ваши собственные объекты и переопределяемые модули, которые вы заполнили сами.
Отдельно разверните свойства составных объектов: определяемые типы, состав планов обмена, подписки на события, общие реквизиты, права ролей. Об этом подробно — в разделе про конфликты.
Шаг 5. Выполнение и проверка
Нажмите «Выполнить». Затем запустите Конфигурация → Проверка конфигурации с проверкой логической целостности и синтаксиса модулей. Ошибки вида «процедура не найдена» почти всегда означают, что библиотека переименовала метод, а ваш код его вызывает.
Шаг 6. Обновление базы и обработчики
Выполните Конфигурация → Обновить конфигурацию базы данных (F7). Затем запустите базу в режиме 1С:Предприятие под администратором. При первом входе БСП сама выполнит обработчики обновления — монопольные, оперативные и отложенные.
4. Обновление в файловой и клиент-серверной базе: в чём разница
Логика слияния одинакова. Различается то, как применить изменения структуры базы.
| Параметр | Файловая база | Клиент-серверная база |
|---|---|---|
| Резервная копия | .dt или копия каталога с файлом 1Cv8.1CD | .dt плюс резервная копия средствами СУБД |
| Обновление структуры | Требует монопольного доступа | Требует монопольного доступа; в актуальных версиях платформы доступно фоновое обновление конфигурации базы данных |
| Длительность | Обычно минуты | На больших таблицах — часы, реструктуризация идёт на стороне СУБД |
| Отложенные обработчики | Выполняются в фоне после входа | Выполняются регламентным заданием, могут идти долго |
Перед обновлением структуры выгоните пользователей. В конфигурациях на БСП для этого есть обработка «Блокировка работы пользователей» в разделе администрирования. В клиент-серверном варианте сеансы видны и в консоли кластера.
Установка блокировки и принудительное завершение сеансов обрывают работу пользователей, несохранённые данные теряются. Делайте это вне рабочего времени и предупредите людей заранее.
Для клиент-серверной базы есть приём, который экономит окно простоя. Сначала прогоните обновление на копии рабочей базы и засеките время реструктуризации. Так вы узнаете реальную длительность до того, как остановите работу всей компании.
5. Конфликты при слиянии БСП и как их разбирать
Большинство проблем после обновления — не ошибки библиотеки, а неверно выбранные режимы объединения. Вот где ломается чаще всего.
Определяемые типы
БСП использует определяемые типы (ВладелецПрисоединенныхФайлов, ВладелецДополнительныхСведений и другие), в которые вы добавляли свои справочники и документы. Если взять такой тип целиком из файла, ваши типы пропадут. Присоединённые файлы и дополнительные реквизиты у ваших объектов перестанут работать без единой ошибки при проверке.
Решение: у свойства «Тип» выбирайте объединение, а не замену.
Подписки на события и планы обмена
Та же история с составом источников подписок и составом планов обмена. Режим «взять из файла» сбрасывает ваши объекты из списка. После обновления пройдите по всем подпискам БСП и убедитесь, что ваши документы на месте.
Роли
Новые версии добавляют роли и права. Если роль ПолныеПрава заменена целиком, права на ваши объекты исчезнут. Объединяйте права, а новые роли БСП затем добавьте в профили групп доступа.
Изменённые общие модули
Если вы правили модуль БСП напрямую, при объединении появится конфликт кода. Разбирайте его по процедурам в окне сравнения модулей. Лучшее долгосрочное решение — перенести правку в переопределяемый модуль или расширение. Тогда при следующем обновлении модуль можно будет просто взять из файла.
6. Проверка после обновления БСП и перенос в рабочую базу
Тестовая база прошла обновление — это ещё не повод выкатывать. Сначала проверьте, что механизмы библиотеки живы в вашей конфигурации.
Расширения — отдельный риск. Они могут обращаться к объектам и процедурам, которые изменились. Если расширение не применилось, платформа покажет предупреждение при запуске, а в списке расширений будет видна проблема.
Перенос в рабочую базу обычно выглядит так:
- На базе разработки сохраните итоговую конфигурацию в файл
.cf. - В рабочей базе сделайте резервную копию:
.dtдля файловой, бэкап СУБД для серверной. - Установите блокировку работы пользователей в нерабочее время.
- Загрузите изменения: через хранилище, через обновление поддержки или через объединение с файлом
.cf— тем способом, которым вы ведёте поставки. - Обновите конфигурацию базы данных и войдите под администратором, чтобы отработали обработчики.
- Снимите блокировку и проследите за отложенным обновлением.
Не используйте Загрузить конфигурацию из файла в рабочей базе, если на ней стоит чужая поддержка или есть правки на месте. Команда заменяет конфигурацию целиком, без сравнения.
7. Частые ошибки при обновлении библиотеки
- ❌ Обновлять напрямую в рабочей базе. Любой конфликт оставляет базу в полуобновлённом состоянии посреди рабочего дня.
- ❌ Не читать описание изменений. Удалённые и переименованные методы всплывают потом в работе пользователей, а не при проверке.
- ❌ Тянуть все подсистемы. Без файла настроек в конфигурацию попадают ненужные объекты, растут база и время следующих обновлений.
- ❌ Откладывать обновления годами. Разрыв в несколько версий даёт десятки конфликтов вместо пары. Обновляйтесь хотя бы раз в несколько месяцев.
- ❌ Хранить доработки внутри модулей БСП. Каждое такое место — ручной разбор при каждом обновлении.
8. Частые вопросы
Нужно ли отдельно обновлять БСП в Бухгалтерии или ЗУП?
Можно ли обновить БСП без Конфигуратора?
Как обновить БСП, если проект ведётся в EDT?
Что делать, если обновление сорвалось на середине?
.dt или бэкапа СУБД. Затем найдите причину на тестовой копии и повторите обновление уже там.