К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как определить версию БСП в конфигурации 1С

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

Библиотека стандартных подсистем (БСП) — основа большинства типовых и отраслевых конфигураций 1С. Знать её точную версию нужно при планировании обновления, диагностике ошибок, проверке совместимости расширений и при обращении в поддержку. Номер версии БСП не совпадает с номером версии самой конфигурации: например, в «1С:Бухгалтерии 3.0» может использоваться БСП 3.1.x, и это разные системы нумерации.

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

Что такое БСП и почему её версия отличается от версии конфигурации

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

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

Способ 1. Через конфигуратор: общий модуль СтандартныеПодсистемыПовтИсп

Самый надёжный способ узнать версию БСП, встроенную в конфигурацию, — посмотреть её прямо в метаданных. Откройте конфигуратор, в дереве конфигурации перейдите в раздел «Общие» → «Общие модули» и найдите модуль СтандартныеПодсистемыПовтИсп. В нём есть функция ВерсияБиблиотеки() (или константа с версией в тексте модуля), где номер указан литерально, например «3.1.9.123».

Если конфигурация закрыта от изменений, текст модуля всё равно доступен для просмотра. Альтернативный путь — открыть общий модуль ОбновлениеИнформационнойБазыБСП и посмотреть процедуру ПриДобавленииПодсистемы: там в описании подсистемы «СтандартныеПодсистемы» также фиксируется версия библиотеки.

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и разверните дерево конфигурации
  2. 2
    Перейдите: Общие → Общие модули → СтандартныеПодсистемыПовтИсп
  3. 3
    Найдите функцию ВерсияБиблиотеки() и посмотрите возвращаемую строку
  4. 4
    Сверьте номер с регистром «Версии подсистем», чтобы убедиться, что обновление данных завершено

Способ 2. Программно: код для получения версии БСП

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

bsl
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки(); Сообщить(ВерсияБСП); // например, "3.1.9.123"

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

Как узнать версию, до которой обновлены данные

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

Способ 3. Через регистр сведений «Версии подсистем»

В пользовательском режиме 1С:Предприятие откройте регистр сведений «Версии подсистем» (в типовых конфигурациях он доступен через «Все функции» → «Регистры сведений»). Найдите строку, где в поле «Подсистема» указано значение СтандартныеПодсистемы — в колонке «Версия» будет номер, до которого выполнено обновление данных этой подсистемы.

Если «Все функции» в меню нет, включите её: «Сервис» → «Параметры» → флажок «Отображать команду "Все функции"». Для просмотра регистра нужны права администратора.

Контрольные точки

Как проверить результат

Версия из модуля конфигурации
Норма

Совпадает с версией в регистре «Версии подсистем»

Тревожный признак

В регистре версия ниже — обновление данных не завершено

Наличие строки «СтандартныеПодсистемы» в регистре
Норма

Строка есть, версия заполнена

Тревожный признак

Строки нет — обновление ни разу не выполнялось или база пустая

Формат номера
Норма

Четыре числа через точку, например 3.1.9.123

Тревожный признак

Пустое значение или «0.0.0.0» — признак незавершённого первого запуска

Разница между версией в метаданных и версией в данных

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

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

Как определить версию БСП во внешней обработке или расширении

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

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

Типичные ошибки
01
Путать версию конфигурации с версией БСП — в окне «О программе» показана версия конфигурации, а не библиотеки
02
Судить о завершённости обновления по версии из модуля — она показывает только, что зашито в метаданные, а не состояние данных
03
Искать БСП в самописной конфигурации — если решение не построено на библиотеке, ни модуля, ни регистра не будет
04
Сравнивать версии как строки без разбора — «3.1.9» текстово «больше», чем «3.1.10», что ломает логику проверок

Что делать, если БСП в конфигурации нет

Не все конфигурации построены на БСП. Самописные решения, старые конфигурации и некоторые отраслевые продукты могут не содержать библиотеки. Признаки отсутствия БСП: нет общего модуля «СтандартныеПодсистемыСервер», нет регистра «Версии подсистем», нет подсистемы «СтандартныеПодсистемы» в дереве метаданных.

Проверить это быстро можно через глобальный поиск по конфигурации (Ctrl+Shift+F в конфигураторе): найдите строку «СтандартныеПодсистемы». Если совпадений нет — библиотека не встроена, и определять её версию бессмысленно. Частичное внедрение тоже встречается: разработчик мог заимствовать отдельные подсистемы БСП без полноценной интеграции механизма версионирования.

Где взять официальную информацию о версиях БСП

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

Итог

Что важно запомнить

Версию БСП смотрят в общем модуле СтандартныеПодсистемыПовтИсп, кодом через СтандартныеПодсистемыСервер.ВерсияБиблиотеки() или в регистре «Версии подсистем». Номер из метаданных и номер из регистра должны совпадать — расхождение означает незавершённое обновление данных.

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

Где в 1С:Предприятии посмотреть версию БСП без конфигуратора?

Откройте «Все функции» → «Регистры сведений» → «Версии подсистем» и найдите строку с подсистемой «СтандартныеПодсистемы». Нужны права администратора. Либо выполните код СтандартныеПодсистемыСервер.ВерсияБиблиотеки() через консоль кода или внешнюю обработку.

Почему версия БСП не совпадает с версией конфигурации?

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

В регистре версия ниже, чем в конфигурации — что это значит?

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

Как узнать версию БСП, если конфигурация на поддержке и закрыта?

Закрытость от изменений не мешает просмотру: текст общего модуля СтандартныеПодсистемыПовтИсп доступен для чтения, а регистр «Версии подсистем» виден в режиме предприятия независимо от режима поддержки.

Можно ли определить версию БСП по файлу выгрузки конфигурации (.cf)?

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

Что означает версия «0.0.0.0» в регистре версий подсистем?

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