Новая версия библиотеки стандартных подсистем: типовая и своя конфигурация
Содержание
В типовой конфигурации (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) БСП отдельно не обновляют: новая версия библиотеки приходит вместе с очередным релизом программы. В собственной или сильно доработанной конфигурации обновить БСП
в 1С можно только через Конфигуратор: Конфигурация → Поддержка → Обновить конфигурацию с cf-файлом библиотеки из дистрибутива и последующим объединением.
Сложность всегда в одном месте — в объединении модулей, которые вы меняли сами. Поэтому сначала проверяют версию библиотеки, затем объединяют на копии базы и только потом переносят результат в рабочую.
Что такое БСП и зачем обновлять библиотеку
БСП — Библиотека стандартных подсистем. Это набор готовых механизмов, на которых собраны почти все типовые решения на 1С:Предприятии 8.3:
- 👤 пользователи и права доступа ;
- 🖨 печать и печатные формы;
- 📎 присоединённые файлы;
- 🔄 обновление информационной базы и обработчики обновления;
- 💾 резервное копирование и завершение работы пользователей;
- 🔐 работа с электронной подписью, дополнительные отчёты и обработки и многое другое.
Обновлять библиотеку нужно по трём причинам:
- Новая платформа. Свежие релизы БСП учитывают изменения платформы, а старая библиотека на новой платформе может давать предупреждения и ошибки.
- Исправления. В каждой версии закрывают ошибки и уязвимости.
- Совместимость с другими библиотеками. Библиотека электронных документов, библиотека интернет-поддержки и другие требуют минимальной версии БСП. Без неё их тоже не обновить.
Если вы бухгалтер и работаете в типовой программе без доработок — вся задача сводится к обновлению самой конфигурации. Разделы про cf-файл и объединение вам не понадобятся.
Как узнать текущую версию БСП в конфигурации
Версия библиотеки хранится в двух местах: в коде конфигурации и в данных базы. Если они расходятся, значит, конфигурацию обновили, а обработчики обновления ещё не отработали.
В Конфигураторе
- Откройте
Конфигурация → Открыть конфигурацию. - Найдите общий модуль
ОбновлениеИнформационнойБазыБСП(поиск по дереву —Ctrl+F). - В процедуре
ПриДобавленииПодсистемыесть строкаОписание.Версия = "3.1.х.х"— это версия БСП в коде.
В базе данных
Версию, до которой фактически обновлены данные, хранит регистр сведений
ВерсииПодсистем. Её показывает простой запрос, например в консоли запросов:
ВЫБРАТЬ
ВерсииПодсистем.ИмяПодсистемы,
ВерсииПодсистем.Версия
ИЗ
РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем
Строка с именем СтандартныеПодсистемы — версия БСП. В этом же списке видны версии остальных встроенных библиотек и самой конфигурации.
Из кода версию возвращает функция СтандартныеПодсистемыСервер.ВерсияБиблиотеки().
Способы обновить БСП: что выбрать
| Способ | Когда подходит | Риски |
|---|---|---|
| Обновление типовой конфигурации целиком | Типовая программа без доработок или с доработками в расширениях | Минимальные; БСП меняется вместе с релизом |
Поддержка → Обновить конфигурацию с cf-файлом БСП | Своя конфигурация, поставленная на поддержку библиотеки | Конфликты в изменённых модулях |
Сравнить, объединить с конфигурацией из файла | Конфигурация не на поддержке, БСП встраивали вручную | Высокие: нет базовой версии, всё сравнивается «в лоб» |
| Через хранилище конфигурации | Командная разработка | Нужно захватить все затронутые объекты |
Первый способ — для пользователей и администраторов. Остальные — работа разработчика, и делать её нужно на копии базы, а не в рабочей.
Обновление БСП в типовой конфигурации через обновление программы
Возьмём Бухгалтерию 3.0, ЗУП 3.1 или УТ 11 на поддержке без снятия с замка.
Порядок действий
- Сделайте резервную копию:
Администрирование → Обслуживание → Резервное копирование и восстановлениеили выгрузку.dtв Конфигураторе. - Откройте
Администрирование → Интернет-поддержка и сервисы → Обновление версии программы. - Подключите интернет-поддержку, если программа попросит логин и пароль портала.
- Нажмите проверку обновлений. Программа покажет доступный релиз и сама скачает цепочку промежуточных версий, если вы отстали.
- Запустите установку. Пользователи должны выйти из базы: для обновления структуры нужен монопольный доступ.
- После перезапуска дождитесь окончания обновления данных. Ход отложенной обработки смотрите в
Администрирование → Обслуживание → Результаты обновления и дополнительная обработка данных.
Если конфигурация доработана и снята с поддержки, автоматическое обновление
не сработает. Тогда релиз ставят через Конфигуратор с объединением — по той же логике, что и в следующем разделе, только cf-файлом служит файл обновления типовой конфигурации (.cfu или .cf).
Обновлять БСП внутри типовой конфигурации отдельно от релиза нельзя. Остальные подсистемы программы написаны под конкретную версию библиотеки, и «самодельное» обновление сломает их.
Ручное обновление БСП в своей конфигурации через cf-файл
Это основной сценарий для отраслевых и самописных решений на базе БСП.
Подготовка
- 📦 Скачайте дистрибутив нужной версии БСП с портала обновлений (доступ по договору ИТС). В нём есть cf-файл библиотеки, демонстрационная конфигурация и документация с перечнем изменений.
- 📖 Прочитайте перечень изменений между вашей и новой версией. Ищите раздел про изменения программного интерфейса: переименованные и устаревшие процедуры, новые обязательные методы в переопределяемых модулях.
- 🖥 Проверьте требования к платформе. У каждой версии БСП есть минимальный номер платформы и режим совместимости. Если ваша платформа ниже требуемой — сначала обновите её на сервере и всех клиентах.
- 💾 Сделайте выгрузку
.dtи сохраните текущую конфигурацию в cf:Конфигурация → Сохранить конфигурацию в файл.
Работайте на копии базы. В рабочую переносите уже проверенный cf.
Шаг 1. Запуск обновления
- Откройте Конфигуратор копии базы,
Конфигурация → Открыть конфигурацию. - Если конфигурация стоит на поддержке библиотеки:
Конфигурация → Поддержка → Обновить конфигурацию, выберите «Выбор файла обновления» и укажите новый cf-файл БСП. - Если не стоит:
Конфигурация → Сравнить, объединить с конфигурацией из файлаи тот же cf-файл.
С поддержкой платформа знает базовую версию — «как было у поставщика» — и делит различия на изменённые вами и изменённые поставщиком. Без поддержки такого деления нет, поэтому объединение идёт тяжелее.
Платформа 8.3 умеет держать конфигурацию на поддержке нескольких поставщиков сразу: БСП, библиотеки интернет-поддержки, библиотеки ЭДО. Если вы встраивали БСП впервые через сравнение, имеет смысл после обновления оформить поддержку — следующие обновления пойдут проще.
Шаг 2. Отбор объектов
В дереве сравнения отмечены все различия, включая подсистемы библиотеки, которые вы не внедряли. Их нельзя брать бездумно: в конфигурацию попадут лишние объекты.
- Снимите все отметки.
- В меню
Действияокна сравнения выберитеОтметить по подсистемам файла. - Отметьте те подсистемы БСП, которые реально используете, плюс новые обязательные — их список есть в документации версии.
Так в объединение попадут только нужные объекты.
Шаг 3. Режим объединения
Для каждого отмеченного объекта платформа предлагает режим:
- ✅ Взять из файла — для объектов, которые вы не меняли. Это большинство.
- 🔀 Объединить — для модулей и форм с вашими правками. Откройте модуль и пройдите конфликтные места вручную.
- ⛔ Не объединять — для переопределяемых модулей (имена с окончанием
Переопределяемый). В них ваш код, а изменения поставщика — новые пустые процедуры — переносите руками.
Отдельно проверьте объекты, которые в новой версии удалены. Если в вашем коде есть вызовы этих объектов, после удаления конфигурация не пройдёт синтаксический контроль.
Шаг 4. Проверка и обновление базы
- Нажмите
Выполнить, дождитесь объединения. - Запустите
Конфигурация → Проверка конфигурациис синтаксическим контролем и поиском ссылок на несуществующие объекты. - Исправьте вызовы устаревших и удалённых процедур. Устаревшие методы БСП собраны в модулях в области
УстаревшиеПроцедурыИФункции— ищите их черезПравка → Глобальный поиск. Конфигурация → Обновить конфигурацию базы данных(F7).- Запустите 1С:Предприятие под администратором. Отработают обработчики обновления БСП.
Для пакетного запуска обработчиков без участия пользователя используют параметр запуска /C ЗапуститьОбновлениеИнформационнойБазы.
Шаг 5. Тестирование
Пройдитесь по механизмам, которые трогала новая версия: вход пользователей, права, печать, присоединённые файлы, регламентные задания. Только после этого сохраняйте cf и переносите в рабочую базу.
Обновление БСП в облаке: 1С:Fresh и 1С:Линк
1С:Фреш
В сервисе 1С:Фреш вы не управляете конфигурацией. Типовые приложения обновляет поставщик сервиса, и новая БСП приходит вместе с ними. Загрузить в облачное приложение свою конфигурацию с другой версией библиотеки нельзя.
Доработки во Фреше делают расширениями. Если расширение обращается к процедурам БСП, после обновления приложения проверьте, что оно подключилось без ошибок: изменение программного интерфейса библиотеки может его отключить.
1С:Линк
1С:Линк — это удалённый доступ к базе, которая работает на вашем компьютере или сервере. База остаётся вашей, поэтому обновление идёт обычным путём: через обновление версии программы или через Конфигуратор. Особенность одна — запускайте обновление на машине, где стоит база, а не через удалённый клиент, чтобы не оборвать процесс сетевой задержкой.
Аренда сервера (IaaS) и хостинг 1С
Если база стоит у хостера на выделенной машине или в аренде с доступом к Конфигуратору — всё как в локальной установке. Если доступа к Конфигуратору нет, обновление выполняет поддержка хостера по заявке.
Ошибки при обновлении БСП и что с ними делать
Чаще всего проблемы дают переопределяемые модули. При обновлении через несколько версий в них накапливаются новые обязательные процедуры. Если их не перенести, механизм молча работает со значениями по умолчанию — и ошибку замечают уже пользователи.
Не прыгайте через много версий одним махом, если документация к новой версии описывает обязательный промежуточный переход. Ориентируйтесь на раздел про обновление с предыдущих версий в дистрибутиве.
Как откатить обновление БСП
Вариант отката зависит от того, как далеко зашло обновление.
| Этап | Как вернуться |
|---|---|
Объединили, но базу не обновляли (F7 не нажимали) | Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД |
| Обновили структуру, но обработчики не запускали | Загрузить сохранённый cf «до» и снова обновить конфигурацию БД; надёжнее — загрузить .dt |
| Обработчики обновления отработали | Только загрузка .dt из резервной копии |
| Работаете через хранилище | Откатить версию хранилища и получить её в конфигурацию |
После запуска обработчиков данные уже преобразованы под новую версию. Если вернуть только старую конфигурацию, старый код получит данные в новом формате. Поэтому на этом этапе откат — только из полной копии базы.
Загрузка .dt полностью заменяет базу. Все документы, внесённые после копии, пропадут. Выполняйте её, когда пользователи вышли из базы, и предупредите их заранее.
Чтобы откат вообще не понадобился в рабочей базе, весь цикл — объединение, проверка, запуск обработчиков, тест — проходят на копии. В рабочую загружают готовый cf.