Переход на новую версию Библиотеки стандартных подсистем в своей конфигурации

· 9 мин

Содержание

Обновить БСП в собственной конфигурации — значит сравнить и объединить её с новым файлом .cf библиотеки в Конфигураторе. Если библиотека стоит на поддержке, путь такой: Конфигурация → Поддержка → Обновить конфигурацию. Если нет — Конфигурация → Сравнить, объединить с конфигурацией из файла. После слияния идут проверка, обновление конфигурации базы данных и запуск обработчиков обновления в режиме 1С:Предприятие.

Частое заблуждение — что обновление Библиотеки стандартных подсистем можно сделать «поверх» любой конфигурации. В типовых решениях (Бухгалтерия, ЗУП, УТ) БСП уже встроена, и её версию меняет только релиз самой конфигурации. Отдельно библиотеку 1С обновляют в своих разработках и в глубоко доработанных базах, снятых с поддержки. Об этом случае и пойдёт речь.

1. Подготовка: какая версия БСП стоит сейчас и что может сломаться

Начните с точного номера текущей версии. Он нужен, чтобы понять, сколько релизов вы перешагиваете и какие изменения читать.

Где посмотреть версию БСП:

  • 🔍 В коде. Откройте общий модуль ОбновлениеИнформационнойБазыБСП, процедуру ПриДобавленииПодсистемы. Там строка вида Описание.Версия = "3.1.…".
  • 🔍 Программно. Функция СтандартныеПодсистемыСервер.ВерсияБиблиотеки() возвращает версию библиотеки в метаданных.
  • 🔍 Версия данных. ОбновлениеИнформационнойБазы.ВерсияИБ("СтандартныеПодсистемы") показывает, до какой версии дошли обработчики обновления в этой базе.
// Выполнить на сервере, например во внешней обработке
Сообщить("В метаданных: " + СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
Сообщить("В данных: " + ОбновлениеИнформационнойБазы.ВерсияИБ("СтандартныеПодсистемы"));

Если две версии различаются, прошлое обновление не завершилось: обработчики не отработали. Сначала разберитесь с этим, потом беритесь за новый релиз.

Дальше — инвентаризация доработок. Без неё слияние превращается в лотерею.

  1. Найдите объекты БСП, которые вы меняли напрямую: общие модули, формы, роли. На поддержке их видно по значку изменения в дереве конфигурации.
  2. Проверьте, что ваш код лежит в модулях с суффиксом Переопределяемый (например, ОбщегоНазначенияПереопределяемый). Такие модули библиотека не перезаписывает по смыслу — они для разработчика.
  3. Запишите, какие подсистемы БСП у вас внедрены. Лишние подтягивать при обновлении не нужно.
  4. Сверьте требования новой версии: минимальный номер платформы и режим совместимости. Номер платформы на сервере и у клиентов должен быть не ниже требуемого.

Работайте только на копии: отдельная база разработчика или хранилище, никогда — сразу в рабочей базе.

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. Проверка после обновления БСП и перенос в рабочую базу

Тестовая база прошла обновление — это ещё не повод выкатывать. Сначала проверьте, что механизмы библиотеки живы в вашей конфигурации.

Проверка после обновления БСП
Выполнено: 0 / 9

Расширения — отдельный риск. Они могут обращаться к объектам и процедурам, которые изменились. Если расширение не применилось, платформа покажет предупреждение при запуске, а в списке расширений будет видна проблема.

Перенос в рабочую базу обычно выглядит так:

  1. На базе разработки сохраните итоговую конфигурацию в файл .cf.
  2. В рабочей базе сделайте резервную копию: .dt для файловой, бэкап СУБД для серверной.
  3. Установите блокировку работы пользователей в нерабочее время.
  4. Загрузите изменения: через хранилище, через обновление поддержки или через объединение с файлом .cf — тем способом, которым вы ведёте поставки.
  5. Обновите конфигурацию базы данных и войдите под администратором, чтобы отработали обработчики.
  6. Снимите блокировку и проследите за отложенным обновлением.

Не используйте Загрузить конфигурацию из файла в рабочей базе, если на ней стоит чужая поддержка или есть правки на месте. Команда заменяет конфигурацию целиком, без сравнения.

7. Частые ошибки при обновлении библиотеки

  • ❌ Обновлять напрямую в рабочей базе. Любой конфликт оставляет базу в полуобновлённом состоянии посреди рабочего дня.
  • ❌ Не читать описание изменений. Удалённые и переименованные методы всплывают потом в работе пользователей, а не при проверке.
  • ❌ Тянуть все подсистемы. Без файла настроек в конфигурацию попадают ненужные объекты, растут база и время следующих обновлений.
  • ❌ Откладывать обновления годами. Разрыв в несколько версий даёт десятки конфликтов вместо пары. Обновляйтесь хотя бы раз в несколько месяцев.
  • ❌ Хранить доработки внутри модулей БСП. Каждое такое место — ручной разбор при каждом обновлении.

8. Частые вопросы

Нужно ли отдельно обновлять БСП в Бухгалтерии или ЗУП?
Нет. В типовых конфигурациях библиотека обновляется вместе с релизом. Отдельное объединение с БСП в типовой конфигурации на поддержке сломает её обновление.
Можно ли обновить БСП без Конфигуратора?
Нет. Изменение метаданных и объединение конфигураций выполняются только в Конфигураторе или в среде разработки EDT.
Как обновить БСП, если проект ведётся в EDT?
В EDT библиотека тоже обновляется сравнением и объединением с новой версией поставщика. Логика режимов объединения та же: свои правки сохраняем, неизменённые объекты берём от поставщика.
Что делать, если обновление сорвалось на середине?
Восстановите базу из резервной копии .dt или бэкапа СУБД. Затем найдите причину на тестовой копии и повторите обновление уже там.
Сколько времени занимает обновление БСП?
Слияние при свежей версии и аккуратных доработках — от часа. Переход через несколько версий в сильно доработанной конфигурации может занять несколько дней разбора конфликтов и тестирования.