Какая версия Библиотеки стандартных подсистем стоит в вашей базе

· 9 мин

Содержание

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

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

Что такое версия БСП и где она «живёт»

БСП — это набор общих подсистем (справочники, регистры, служебные модули), который разработчики 1С встраивают в типовые конфигурации. У библиотеки собственный цикл версий вида 3.1.xx.xx, не совпадающий с номером конфигурации.

Важный момент: у версии БСП есть два значения, и они могут не совпадать.

  • 🧩 Версия в коде (в метаданных). Та, что заложена в конфигурацию разработчиком. Её возвращает функция библиотеки.
  • 🗄️ Версия в информационной базе. Та, на которую база фактически обновлена. Хранится в данных и используется механизмом обновления ИБ.

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

Сам номер БСП — строка из четырёх частей вида 3.1.xx.xx. Первые две цифры задают линейку редакции (например, линейка 3.1), а последние две меняются с каждым промежуточным релизом библиотеки. Для совместимости доработок и проверки требований к платформе чаще всего важны именно первые две-три части: по ним понятно, на какое поколение БСП рассчитана ваша конфигурация.

Что у вас есть под рукой?

Способ через конфигуратор: читаем номер в модуле

Если есть доступ в Конфигуратор, выполнять код необязательно — номер версии записан прямо в тексте библиотечного модуля.

  1. Откройте конфигурацию на редактирование (Конфигурация → Открыть конфигурацию).
  2. В дереве раскройте ветку Общие → Общие модули.
  3. Найдите модуль СтандартныеПодсистемыСервер и откройте его.
  4. Через поиск по модулю (Ctrl+F) найдите функцию ВерсияБиблиотеки.
  5. Эта функция возвращает строковый литерал — например, Возврат "3.1.10.xxx";. Это и есть версия БСП, заложенная в конфигурацию.

Если не хотите открывать модуль вручную, воспользуйтесь глобальным поиском по конфигурации (Правка → Глобальный поиск) по строке ВерсияБиблиотеки. Он приведёт прямо к нужной функции.

Этот способ показывает версию из метаданных. Он работает даже на конфигурации, снятой с поддержки, и не требует запускать базу в пользовательском режиме.

Способ через код в 1С:Предприятии

Когда конфигуратор недоступен или просто неудобен, версию можно получить из пользовательского режима — через консоль кода или небольшую внешнюю обработку .

В серверном контексте выполните:

Сообщить("Версия БСП: " + СтандартныеПодсистемыСервер.ВерсияБиблиотеки());

Функция ВерсияБиблиотеки() вернёт строку вида 3.1.10.xxx. Это тот же номер, что заложен в коде конфигурации, — удобно, когда нужно быстро свериться перед обновлением или при разборе проблемы с совместимостью доработок.

Функция серверная. Выполняйте её в серверном контексте (внешняя обработка с процедурой на сервере или консоль кода, умеющая выполнять код на сервере). Из чисто клиентского кода вызов не отработает.

Если своей консоли кода под рукой нет, достаточно создать внешнюю обработку с одной серверной процедурой, вставить в неё строку выше и запустить. Прав на запись в базу для этого не нужно — только возможность открывать внешние обработки.

Такую обработку удобно держать под рукой и использовать перед каждым обновлением: один запуск сразу показывает, с какой версии БСП вы стартуете. Это дисциплинирует — вы фиксируете исходный номер до загрузки нового релиза, а не вспоминаете его потом по памяти.

Когда нужно поймать расхождение между кодом и базой, в той же обработке выводят оба значения рядом: версию из кода — функцией ВерсияБиблиотеки(), а фактическую версию базы — из реестра версий подсистем (о нём ниже). Если числа совпали — обновление информационной базы завершено; если версия из кода выше — обработчики обновления ещё не отработали.

Какая версия реально записана в информационной базе

Фактическую версию, на которую обновлена база, БСП хранит в своих данных — в реестре версий подсистем. Там для каждой встроенной подсистемы записана строка с её номером; у БСП имя подсистемы — СтандартныеПодсистемы.

Эта версия важна в одном сценарии: вы обновили конфигурацию, но обработчики обновления ещё не отработали. Тогда функция ВерсияБиблиотеки() уже покажет новый номер (он в коде), а база фактически живёт на старом. Расхождение — нормальное состояние «между обновлением и первым входом пользователя»; оно исчезает после того, как отработает обновление ИБ.

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

Механизм обновления ИБ сравнивает записанную в реестре версию с версией из кода и по разнице решает, какие обработчики обновления запускать. Именно поэтому «застрявшая» версия в базе — верный признак того, что обновление ещё не прошло до конца: платформа видит расхождение и ждёт сеанса, в котором отработает дообновление.

Отдельно про инструменты администрирования. Консоль кластера и утилита rac показывают данные платформы и кластера: список баз, сеансы, лицензии. Версию конфигурации и БСП они не содержат — эти номера лежат внутри самой информационной базы, а не в кластере. Поэтому через rac узнать версию библиотеки не получится, нужен один из способов выше.

А вот журнал регистрации помогает восстановить историю: по событиям обновления видно, когда база переводилась на новую версию. Это не даёт прямого номера БСП, но показывает даты обновлений — полезно, когда разбираетесь, после какого именно обновления изменилось поведение.

Как узнать версию из файла поставки .cf или обновления .cfu

Иногда версию нужно определить ещё до установки — по дистрибутиву. Чистый файл .cf (полная поставка конфигурации) или .cfu (файл обновления) сам по себе номер в имени содержит не всегда, поэтому надёжнее заглянуть внутрь через конфигуратор.

Для файла полной поставки .cf:

  1. В конфигураторе откройте Конфигурация → Сравнить, объединить с конфигурацией из файла….
  2. Укажите нужный .cf.
  3. В шапке окна сравнения 1С покажет версии обеих конфигураций — основной и загружаемой из файла. Там и виден номер поставки.

Не загружайте незнакомый .cf в рабочую базу, чтобы «посмотреть версию». Сравнение ничего не меняет, а вот загрузка конфигурации из файла перезапишет метаданные. Для осмотра используйте отдельную пустую базу или только режим сравнения.

Для файла обновления .cfu версия и список применимых исходных релизов видны в диалоге обновления конфигурации из файла поставки — платформа проверяет, к какому релизу применимо обновление, и показывает целевой номер. Если же у вас есть каталог шаблонов обновлений, версии удобнее смотреть там: релизы разложены по папкам с номерами, и по структуре каталога сразу видно цепочку промежуточных версий. Это тот же принцип, что и в самой библиотеке: .cfu переводит базу не на любой номер, а строго с одного релиза на следующий по порядку, поэтому пропускать промежуточные версии при обновлении нельзя.

Сравнение методов — в таблице.

СпособКогда подходитЧто покажет
Модуль в конфигуратореЕсть доступ в конфигураторВерсию из метаданных (из кода)
Код ВерсияБиблиотеки()Работаете в 1С:ПредприятииВерсию из метаданных (из кода)
Реестр версий подсистемНужна версия самой базыВерсию, на которую обновлена ИБ
Сравнение с файлом .cfЕсть только дистрибутивВерсию поставки до установки

Совместимость БСП и версии платформы

Версия БСП жёстко связана с минимальным номером платформы. Каждый релиз библиотеки требует платформу не ниже определённого номера 8.3.xx — точное значение указано в документации к конкретной версии БСП. Сравнивать нужно именно по номеру: платформа должна быть не ниже требуемой, иначе часть механизмов библиотеки работать не будет или конфигурация просто не запустится.

Где это проверить в вашей базе:

  • 🔢 Номер платформы. Главное меню → О программе (Справка → О программе): первая строка — версия 1С:Предприятия вида 8.3.хх.хххх.
  • ⚙️ Режим совместимости. В конфигураторе откройте свойства корня конфигурации — свойство Режим совместимости задаёт, с каким поколением платформы работает конфигурация. Для актуальных версий БСП он должен быть не ниже требуемого.

Практический вывод простой: перед обновлением БСП сначала проверьте номер платформы. Если он ниже требования новой версии библиотеки, сперва обновляют платформу, и только потом — конфигурацию. Иначе после загрузки обновления база может не стартовать.

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

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

Ошибки тут почти всегда про то, что сравнивают не те числа. Разберём, что именно путают.

  • ❌ Номер конфигурации принимают за номер БСП. «Бухгалтерия 3.0.хх» — это релиз прикладного решения. Версия библиотеки внутри него другая и смотрится отдельными способами из этой статьи.
  • ❌ Версию из кода считают версией базы. Сразу после загрузки обновления ВерсияБиблиотеки() показывает новый номер, хотя обработчики обновления ещё не отработали. Если важна именно фактическая версия ИБ — смотрите реестр версий подсистем.
  • ❌ Ищут БСП в консоли кластера. Там версии библиотеки нет: консоль и rac отвечают за платформу и сеансы, а номер БСП хранится в данных самой базы.
  • ❌ Пытаются «открыть» .cf двойным кликом. Файл поставки не открывается как документ — его смотрят через сравнение конфигураций в конфигураторе.
Проверка версии БСП перед обновлением
Выполнено: 0 / 5

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

Почему функция `ВерсияБиблиотеки()` и реестр версий показывают разные номера?
Функция возвращает версию из кода конфигурации, а реестр — версию, на которую фактически обновлена база. Они расходятся в промежутке между загрузкой обновления и отработкой обработчиков обновления ИБ. После первого входа с запуском обновления числа совпадут.
Можно ли узнать версию БСП, не заходя в конфигуратор?
Да. В режиме 1С:Предприятие выполните СтандартныеПодсистемыСервер.ВерсияБиблиотеки() через консоль кода или внешнюю обработку с серверной процедурой. Конфигуратор для этого не нужен.
Версия БСП не меняется после обновления конфигурации — почему?
Скорее всего, обновление конфигурации базы данных прошло, а обработчики обновления ещё не выполнились. Зайдите в базу первым сеансом и дайте отработать обновлению информационной базы — после этого версия в данных обновится.
Как понять, поддерживает ли моя платформа нужную версию БСП?
Сравните номер платформы из окна «О программе» с требованием конкретного релиза БСП. Платформа должна быть не ниже требуемого номера. Если ниже — сначала обновляют платформу, затем конфигурацию.
Где смотреть версию БСП в тонком клиенте без прав разработчика?
Через внешнюю обработку с серверным вызовом функции ВерсияБиблиотеки() — права на разработку для этого не требуются, достаточно возможности открывать внешние обработки. Если и её нет, номер придётся запрашивать у администратора базы.