Новая версия библиотеки стандартных подсистем: типовая и своя конфигурация

· 9 мин

Содержание

В типовой конфигурации (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) БСП отдельно не обновляют: новая версия библиотеки приходит вместе с очередным релизом программы. В собственной или сильно доработанной конфигурации обновить БСП в 1С можно только через Конфигуратор: Конфигурация → Поддержка → Обновить конфигурацию с cf-файлом библиотеки из дистрибутива и последующим объединением.

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

Что такое БСП и зачем обновлять библиотеку

БСП — Библиотека стандартных подсистем. Это набор готовых механизмов, на которых собраны почти все типовые решения на 1С:Предприятии 8.3:

  • 👤 пользователи и права доступа ;
  • 🖨 печать и печатные формы;
  • 📎 присоединённые файлы;
  • 🔄 обновление информационной базы и обработчики обновления;
  • 💾 резервное копирование и завершение работы пользователей;
  • 🔐 работа с электронной подписью, дополнительные отчёты и обработки и многое другое.

Обновлять библиотеку нужно по трём причинам:

  1. Новая платформа. Свежие релизы БСП учитывают изменения платформы, а старая библиотека на новой платформе может давать предупреждения и ошибки.
  2. Исправления. В каждой версии закрывают ошибки и уязвимости.
  3. Совместимость с другими библиотеками. Библиотека электронных документов, библиотека интернет-поддержки и другие требуют минимальной версии БСП. Без неё их тоже не обновить.

Если вы бухгалтер и работаете в типовой программе без доработок — вся задача сводится к обновлению самой конфигурации. Разделы про cf-файл и объединение вам не понадобятся.

Как узнать текущую версию БСП в конфигурации

Версия библиотеки хранится в двух местах: в коде конфигурации и в данных базы. Если они расходятся, значит, конфигурацию обновили, а обработчики обновления ещё не отработали.

В Конфигураторе

  1. Откройте Конфигурация → Открыть конфигурацию.
  2. Найдите общий модуль ОбновлениеИнформационнойБазыБСП (поиск по дереву — Ctrl+F).
  3. В процедуре ПриДобавленииПодсистемы есть строка Описание.Версия = "3.1.х.х" — это версия БСП в коде.

В базе данных

Версию, до которой фактически обновлены данные, хранит регистр сведений ВерсииПодсистем. Её показывает простой запрос, например в консоли запросов:

ВЫБРАТЬ
    ВерсииПодсистем.ИмяПодсистемы,
    ВерсииПодсистем.Версия
ИЗ
    РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем

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

Из кода версию возвращает функция СтандартныеПодсистемыСервер.ВерсияБиблиотеки().

Способы обновить БСП: что выбрать

СпособКогда подходитРиски
Обновление типовой конфигурации целикомТиповая программа без доработок или с доработками в расширенияхМинимальные; БСП меняется вместе с релизом
Поддержка → Обновить конфигурацию с cf-файлом БСПСвоя конфигурация, поставленная на поддержку библиотекиКонфликты в изменённых модулях
Сравнить, объединить с конфигурацией из файлаКонфигурация не на поддержке, БСП встраивали вручнуюВысокие: нет базовой версии, всё сравнивается «в лоб»
Через хранилище конфигурацииКомандная разработкаНужно захватить все затронутые объекты

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

Обновление БСП в типовой конфигурации через обновление программы

Возьмём Бухгалтерию 3.0, ЗУП 3.1 или УТ 11 на поддержке без снятия с замка.

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

  1. Сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование и восстановление или выгрузку .dt в Конфигураторе.
  2. Откройте Администрирование → Интернет-поддержка и сервисы → Обновление версии программы.
  3. Подключите интернет-поддержку, если программа попросит логин и пароль портала.
  4. Нажмите проверку обновлений. Программа покажет доступный релиз и сама скачает цепочку промежуточных версий, если вы отстали.
  5. Запустите установку. Пользователи должны выйти из базы: для обновления структуры нужен монопольный доступ.
  6. После перезапуска дождитесь окончания обновления данных. Ход отложенной обработки смотрите в Администрирование → Обслуживание → Результаты обновления и дополнительная обработка данных.

Если конфигурация доработана и снята с поддержки, автоматическое обновление не сработает. Тогда релиз ставят через Конфигуратор с объединением — по той же логике, что и в следующем разделе, только cf-файлом служит файл обновления типовой конфигурации (.cfu или .cf).

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

Ручное обновление БСП в своей конфигурации через cf-файл

Это основной сценарий для отраслевых и самописных решений на базе БСП.

Подготовка

  • 📦 Скачайте дистрибутив нужной версии БСП с портала обновлений (доступ по договору ИТС). В нём есть cf-файл библиотеки, демонстрационная конфигурация и документация с перечнем изменений.
  • 📖 Прочитайте перечень изменений между вашей и новой версией. Ищите раздел про изменения программного интерфейса: переименованные и устаревшие процедуры, новые обязательные методы в переопределяемых модулях.
  • 🖥 Проверьте требования к платформе. У каждой версии БСП есть минимальный номер платформы и режим совместимости. Если ваша платформа ниже требуемой — сначала обновите её на сервере и всех клиентах.
  • 💾 Сделайте выгрузку .dt и сохраните текущую конфигурацию в cf: Конфигурация → Сохранить конфигурацию в файл.

Работайте на копии базы. В рабочую переносите уже проверенный cf.

Шаг 1. Запуск обновления

  1. Откройте Конфигуратор копии базы, Конфигурация → Открыть конфигурацию.
  2. Если конфигурация стоит на поддержке библиотеки: Конфигурация → Поддержка → Обновить конфигурацию, выберите «Выбор файла обновления» и укажите новый cf-файл БСП.
  3. Если не стоит: Конфигурация → Сравнить, объединить с конфигурацией из файла и тот же cf-файл.

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

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

Шаг 2. Отбор объектов

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

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

Так в объединение попадут только нужные объекты.

Шаг 3. Режим объединения

Для каждого отмеченного объекта платформа предлагает режим:

  • ✅ Взять из файла — для объектов, которые вы не меняли. Это большинство.
  • 🔀 Объединить — для модулей и форм с вашими правками. Откройте модуль и пройдите конфликтные места вручную.
  • ⛔ Не объединять — для переопределяемых модулей (имена с окончанием Переопределяемый). В них ваш код, а изменения поставщика — новые пустые процедуры — переносите руками.

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

Шаг 4. Проверка и обновление базы

  1. Нажмите Выполнить, дождитесь объединения.
  2. Запустите Конфигурация → Проверка конфигурации с синтаксическим контролем и поиском ссылок на несуществующие объекты.
  3. Исправьте вызовы устаревших и удалённых процедур. Устаревшие методы БСП собраны в модулях в области УстаревшиеПроцедурыИФункции — ищите их через Правка → Глобальный поиск.
  4. Конфигурация → Обновить конфигурацию базы данных (F7).
  5. Запустите 1С:Предприятие под администратором. Отработают обработчики обновления БСП.

Для пакетного запуска обработчиков без участия пользователя используют параметр запуска /C ЗапуститьОбновлениеИнформационнойБазы.

Шаг 5. Тестирование

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

Перед переносом обновлённой БСП в рабочую базу
Выполнено: 0 / 6

Обновление БСП в облаке: 1С:Fresh и 1С:Линк

1С:Фреш

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

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

1С:Линк

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

Аренда сервера (IaaS) и хостинг 1С

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

Ошибки при обновлении БСП и что с ними делать

Диагностика: выберите симптом

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

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

Как откатить обновление БСП

Вариант отката зависит от того, как далеко зашло обновление.

ЭтапКак вернуться
Объединили, но базу не обновляли (F7 не нажимали)Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД
Обновили структуру, но обработчики не запускалиЗагрузить сохранённый cf «до» и снова обновить конфигурацию БД; надёжнее — загрузить .dt
Обработчики обновления отработалиТолько загрузка .dt из резервной копии
Работаете через хранилищеОткатить версию хранилища и получить её в конфигурацию

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

Загрузка .dt полностью заменяет базу. Все документы, внесённые после копии, пропадут. Выполняйте её, когда пользователи вышли из базы, и предупредите их заранее.

Чтобы откат вообще не понадобился в рабочей базе, весь цикл — объединение, проверка, запуск обработчиков, тест — проходят на копии. В рабочую загружают готовый cf.

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

Можно ли обновить только БСП, не обновляя Бухгалтерию?
Нет. Подсистемы типовой конфигурации написаны под конкретную версию библиотеки. БСП в Бухгалтерии обновляется только новым релизом программы.
Где взять cf-файл БСП?
В дистрибутиве библиотеки на портале обновлений. Доступ к нему даёт действующий договор ИТС.
Нужно ли снимать конфигурацию с поддержки, чтобы обновить БСП?
Нет. Наоборот, поддержка с возможностью изменения упрощает обновление: платформа знает базовую версию и показывает, что меняли вы, а что поставщик.
Сколько времени занимает обновление БСП в своей конфигурации?
При обновлении на соседнюю версию и небольших доработках — от нескольких часов. При переходе через много версий и правках в переопределяемых модулях — несколько дней с тестированием.
Почему после обновления версия в регистре ВерсииПодсистем старая?
Обработчики обновления ещё не запускались. Войдите в Предприятие под администратором — после их выполнения версия в регистре сравняется с версией в коде.