Где узнать версию Библиотеки стандартных подсистем в 1С
Содержание
Версия Библиотеки стандартных подсистем записана в служебном регистре сведений ВерсииПодсистем — в строке, где имя подсистемы равно СтандартныеПодсистемы. Быстрее всего её увидеть без Конфигуратора: включить команду «Все функции» и открыть этот регистр. Разработчику удобнее посмотреть номер прямо в общем модуле ОбновлениеИнформационнойБазыБСП.
Зачем вообще знать номер БСП. От него зависит, какие возможности библиотеки доступны в базе, подойдёт ли внешняя печатная форма или обработка, которая опирается на программный интерфейс БСП, и установится ли конкретное расширение. Версия конфигурации и версия БСП — это разные числа. Их часто путают: «Бухгалтерия предприятия, редакция 3.0» — это версия прикладного решения, а БСП внутри неё может быть, например, из ветки 3.1.
Где хранится номер версии БСП
БСП — это общая библиотека от фирмы «1С», встроенная почти в каждую типовую конфигурацию (Бухгалтерия, ЗУП, УТ, ERP и другие). Разработчик прикладного решения берёт определённую версию библиотеки и «вшивает» её в свою конфигурацию. Отдельно, как платформу, пользователь БСП не обновляет — её номер меняется вместе с релизом конфигурации.
Формат номера — четыре числа через точку, например 3.1.x.xxx. Сейчас актуальна ветка 3.1; в старых базах встречаются 3.0 и 2.x. Первые два числа (редакция и подредакция) важнее всего: именно они определяют состав подсистем и набор программных методов.
Физически текущий номер лежит в двух местах:
- 📦 регистр сведений
ВерсииПодсистем— то, что реально записано в базе после последнего обновления; - 🧩 код модуля
ОбновлениеИнформационнойБазыБСП— то, какая версия заложена в саму конфигурацию поставки.
В штатно обновлённой базе оба значения совпадают. Если номер в модуле новее, чем в регистре, — значит, конфигурацию поставки уже загрузили, но обработчики обновления информационной базы ещё не отработали. Обычно они запускаются при первом входе пользователя в 1С:Предприятие после обновления. Перезапустите базу от имени пользователя с полными правами, дождитесь завершения обновления — и значение в регистре подтянется к версии из модуля.
Именно поэтому для «что сейчас в базе» смотрят регистр, а для «что заложено в конфигурацию» — модуль. Оба ответа нужны в разных ситуациях: первый — при разборе работы базы, второй — при планировании доработок.
ОбновлениеИнформационнойБазыБСП — способ 3, это самый точный вариант для разработчика.ВерсииПодсистем — способ 4.Коротко, чем способы отличаются:
| Способ | Что показывает | Нужен Конфигуратор | Когда удобен |
|---|---|---|---|
| «О программе» | Платформа и конфигурация (не БСП) | Нет | Быстро свериться с платформой |
| Регистр «Версии подсистем» | Текущий номер в базе | Нет | Пользователю без Конфигуратора |
Модуль ОбновлениеИнформационнойБазыБСП | Номер из поставки | Да | Разработчику, самый точный |
| Запрос из кода | Текущий номер в базе | Нет | Для отчёта, обработки, проверки |
| История обновлений | Когда поднимали | Нет | Нужна хронология, а не номер |
Способ 1. Окно «О программе»: платформа и конфигурация
Самый быстрый взгляд на версии даёт стандартное окно «О программе». Откройте его через Главное меню → Справка → О программе (кнопка главного меню — значок в левом верхнем углу в интерфейсе «Такси») или по значку ?.
В окне вы увидите:
- 🖥 Платформа — версия ядра 1С:Предприятие, например
8.3.2x.xxxx; - 📂 Конфигурация — название прикладного решения и его номер;
- 📁 каталог информационной базы и режим запуска.
В этом окне нет строки с версией БСП. Здесь показан номер конфигурации, а не библиотеки внутри неё. Поэтому «О программе» годится для быстрой проверки платформы и редакции конфигурации, но точный номер БСП придётся смотреть способами 2–4.
Зачем тогда этот способ. Во-первых, версия БСП требует платформу не ниже определённого номера — платформу как раз проверяют здесь. Во-вторых, зная редакцию конфигурации, проще понять, в какой примерно ветке БСП искать (старые редакции почти всегда несут старую БСП).
Способ 2. Регистр «Версии подсистем» через «Все функции»
Это основной способ для тех, у кого нет Конфигуратора. Он показывает именно то, что записано в базе.
Сначала включите команду «Все функции», если её не видно:
- Нажмите значок
Сервис и настройкив правом верхнем углу (стрелка вниз рядом со знаком вопроса). - Выберите
Настройки → Параметры. - Поставьте флажок
Отображать команду «Все функции»и нажмитеОК.
Теперь откройте список объектов:
Главное меню → Все функции(в новых платформах пункт называетсяФункции для технического специалиста).- Разверните ветку
Регистры сведений. - Откройте регистр
Версии подсистем.
В открывшемся списке найдите строку, где имя подсистемы — СтандартныеПодсистемы. Значение в колонке Версия и есть номер БСП. Рядом вы увидите версии других подсистем библиотеки (например, расширений вроде «Работа с файлами» или «Контактная информация») — это нормально, у них собственная нумерация.
Просмотр регистра — операция только на чтение. Монопольный доступ не нужен, пользователей выгонять не придётся. Если регистр в списке не виден — скорее всего, у вашего пользователя нет прав на служебные данные; зайдите под учётной записью с полными правами или попросите администратора.
Способ 3. Конфигуратор: модуль обновления БСП
Для разработчика это самый надёжный источник — он показывает версию, заложенную в саму конфигурацию поставки, независимо от того, отработало обновление базы или нет.
Порядок действий:
- Откройте базу в режиме
Конфигуратор. - Откройте дерево конфигурации:
Конфигурация → Открыть конфигурацию. - В ветке
Общие → Общие модулинайдите модульОбновлениеИнформационнойБазыБСПи откройте его. - Перейдите к процедуре
ПриДобавленииПодсистем.
Внутри этой процедуры библиотека регистрирует саму себя. Нужная строка выглядит так:
Процедура ПриДобавленииПодсистем(Описания)
Описание = Описания.Добавить();
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "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С показывает окно Результаты обновления программы — в нём перечислено, что изменилось. Открыть его повторно можно через раздел Администрирование → Обслуживание (в части конфигураций — Поддержка и обслуживание), пункт о результатах последнего обновления.
События обновления пишутся и в журнал регистрации:
- Откройте
Главное меню → Все функции → Стандартные → Журнал регистрации. - Задайте отбор по событиям обновления информационной базы.
- В записях видно время и состав обновления — по ним восстанавливается, когда менялась версия подсистем.
Журнал регистрации не показывает «чистый» номер БСП отдельной строкой — он фиксирует факт и время обновления. Для точного номера всё равно возвращайтесь к регистру ВерсииПодсистем (способ 2) или к модулю (способ 3). Журнал полезен как лог «что и когда поднимали», а не как табличка с версией.
По имени файла обновления тоже кое-что видно: поставки .cf и .cfu именуются по версии конфигурации, а не БСП, поэтому версию библиотеки из имени файла напрямую не прочитать — только версию прикладного решения.
Как сравнить версии и проверить совместимость
Знать номер БСП нужно в основном ради совместимости. Вот где это всплывает на практике:
- 🔌 Внешние обработки и печатные формы, написанные под программный интерфейс БСП. Метод, появившийся в новой ветке библиотеки, на старой базе просто не найдётся — обработка упадёт с ошибкой.
- 🧩 Расширения конфигурации , которые опираются на объекты БСП. Если расширение делали под более свежую библиотеку, оно может не заработать на старой.
- ⚙️ Платформа. Каждая версия БСП требует ядро 1С:Предприятие не ниже определённого номера. Сравнивайте однозначно — «номер платформы не ниже требуемого», а не «новее/старше».
Как сравнивать сами номера. Читайте слева направо: сначала редакцию (первое число), затем подредакцию (второе), потом сборку. Ветка 3.1 функционально богаче 3.0, а внутри ветки версия 3.1.11 новее 3.1.9 — но только если сравнивать числа, а не строки посимвольно.
Практический пример. Коллега прислал внешнюю печатную форму, которая на вашей базе выдаёт ошибку «метод объекта не обнаружен ». Первое, что стоит проверить, — версию БСП: форму почти наверняка писали под более свежую библиотеку, и нужного метода в вашей базе просто нет. Посмотрели номер способом 2, сравнили с требованиями формы — и сразу понятно, обновлять конфигурацию или просить автора адаптировать форму под вашу версию.
Отдельно обновить БСП «одной кнопкой», как платформу, обычный пользователь не может: новая версия библиотеки приходит внутри очередного релиза конфигурации. Поднять БСП изолированно — это уже доработка: разработчик сравнивает конфигурацию с новой поставкой библиотеки и переносит изменения в Конфигураторе. Для рабочей базы такое делают планово и с резервной копией.