Где узнать версию Библиотеки стандартных подсистем в 1С

· 9 мин

Содержание

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

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

Где хранится номер версии БСП

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

Формат номера — четыре числа через точку, например 3.1.x.xxx. Сейчас актуальна ветка 3.1; в старых базах встречаются 3.0 и 2.x. Первые два числа (редакция и подредакция) важнее всего: именно они определяют состав подсистем и набор программных методов.

Физически текущий номер лежит в двух местах:

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

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

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

С чего начать проверку версии БСП?

Коротко, чем способы отличаются:

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

Способ 1. Окно «О программе»: платформа и конфигурация

Самый быстрый взгляд на версии даёт стандартное окно «О программе». Откройте его через Главное меню → Справка → О программе (кнопка главного меню — значок в левом верхнем углу в интерфейсе «Такси») или по значку ?.

В окне вы увидите:

  • 🖥 Платформа — версия ядра 1С:Предприятие, например 8.3.2x.xxxx;
  • 📂 Конфигурация — название прикладного решения и его номер;
  • 📁 каталог информационной базы и режим запуска.

В этом окне нет строки с версией БСП. Здесь показан номер конфигурации, а не библиотеки внутри неё. Поэтому «О программе» годится для быстрой проверки платформы и редакции конфигурации, но точный номер БСП придётся смотреть способами 2–4.

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

Способ 2. Регистр «Версии подсистем» через «Все функции»

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

Сначала включите команду «Все функции», если её не видно:

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

Теперь откройте список объектов:

  1. Главное меню → Все функции (в новых платформах пункт называется Функции для технического специалиста).
  2. Разверните ветку Регистры сведений.
  3. Откройте регистр Версии подсистем.

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

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

Способ 3. Конфигуратор: модуль обновления БСП

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

Порядок действий:

  1. Откройте базу в режиме Конфигуратор.
  2. Откройте дерево конфигурации: Конфигурация → Открыть конфигурацию.
  3. В ветке Общие → Общие модули найдите модуль ОбновлениеИнформационнойБазыБСП и откройте его.
  4. Перейдите к процедуре ПриДобавленииПодсистем.

Внутри этой процедуры библиотека регистрирует саму себя. Нужная строка выглядит так:

Процедура ПриДобавленииПодсистем(Описания)

    Описание = Описания.Добавить();
    Описание.Имя    = "СтандартныеПодсистемы";
    Описание.Версия = "3.1.x.xxx"; // <- здесь номер БСП вашей конфигурации

КонецПроцедуры

Значение в поле Описание.Версия для подсистемы СтандартныеПодсистемы — это и есть версия БСП. Остальные Описание.Добавить() в этой же процедуре описывают отдельные подсистемы библиотеки со своими версиями.

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

Способ 4. Получить версию программно, запросом из кода

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

Пример кода в серверном контексте (общий модуль с флагом Сервер, обработка, команда):

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   ВерсииПодсистем.Версия КАК Версия
    |ИЗ
    |   РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем
    |ГДЕ
    |   ВерсииПодсистем.ПодсистемаИмя = &ИмяПодсистемы";

Запрос.УстановитьПараметр("ИмяПодсистемы", "СтандартныеПодсистемы");

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    Сообщить("Версия БСП: " + Выборка.Версия);
Иначе
    Сообщить("Подсистема СтандартныеПодсистемы в регистре не найдена");
КонецЕсли;

Код возвращает строку вида 3.1.x.xxx. Проверку Если Выборка.Следующий() оставьте: в редких базах запись могла не создаться (обновление не завершилось), и обращение к пустой выборке приведёт к ошибке.

Если дальше в коде нужно сравнить версии, строку нельзя сравнивать как текст: "3.1.10.100" и "3.1.9.200" по алфавиту встанут неправильно, потому что "10" «меньше» "9" посимвольно. Разложите номер на числа по точке и сравнивайте по частям — сначала редакцию, потом подредакцию, потом сборку:

// Возвращает Истина, если ВерсияБСП не ниже ТребуемойВерсии
Функция ВерсияНеНиже(ВерсияБСП, ТребуемаяВерсия)

    Текущая  = СтрРазделить(ВерсияБСП, ".");
    Нужная   = СтрРазделить(ТребуемаяВерсия, ".");

    Для Сч = 0 По Нужная.Количество() - 1 Цикл
        Т = ?(Сч < Текущая.Количество(), Число(Текущая[Сч]), 0);
        Н = Число(Нужная[Сч]);
        Если Т <> Н Тогда
            Возврат Т > Н;
        КонецЕсли;
    КонецЦикла;

    Возврат Истина; // все части равны
КонецФункции

Функция сравнивает номера по-настоящему: 3.1.11 корректно окажется новее 3.1.9. Такую проверку удобно ставить в начало внешней обработки, чтобы она не запускалась на базе со слишком старой библиотекой.

Способ 5. История обновлений и журнал регистрации

Если нужно понять не только текущий номер, но и когда БСП поднимали, помогает история обновлений.

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

События обновления пишутся и в журнал регистрации:

  1. Откройте Главное меню → Все функции → Стандартные → Журнал регистрации.
  2. Задайте отбор по событиям обновления информационной базы.
  3. В записях видно время и состав обновления — по ним восстанавливается, когда менялась версия подсистем.

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

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

Как сравнить версии и проверить совместимость

Знать номер БСП нужно в основном ради совместимости. Вот где это всплывает на практике:

  • 🔌 Внешние обработки и печатные формы, написанные под программный интерфейс БСП. Метод, появившийся в новой ветке библиотеки, на старой базе просто не найдётся — обработка упадёт с ошибкой.
  • 🧩 Расширения конфигурации , которые опираются на объекты БСП. Если расширение делали под более свежую библиотеку, оно может не заработать на старой.
  • ⚙️ Платформа. Каждая версия БСП требует ядро 1С:Предприятие не ниже определённого номера. Сравнивайте однозначно — «номер платформы не ниже требуемого», а не «новее/старше».

Как сравнивать сами номера. Читайте слева направо: сначала редакцию (первое число), затем подредакцию (второе), потом сборку. Ветка 3.1 функционально богаче 3.0, а внутри ветки версия 3.1.11 новее 3.1.9 — но только если сравнивать числа, а не строки посимвольно.

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

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

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

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