Обновление библиотеки стандартных подсистем в 1С без потери доработок
Содержание
Способ обновления БСП зависит от одного: меняли ли вы конфигурацию. Типовая конфигурация на поддержке получает свежую БСП вместе с обычным релизом, отдельно ничего делать не нужно. Если же конфигурация доработана или написана самостоятельно на базе библиотеки, БСП переносят вручную: сравнением и объединением с новой поставкой в конфигураторе.
Библиотека стандартных подсистем (БСП) — набор готовых механизмов, на которых стоят типовые конфигурации: пользователи и права, обновление версии базы, печать, отчёты, свойства, заметки, регламентные задания. Зашита она внутри самой конфигурации, отдельной программой не ставится. Поэтому «обновить БСП» на практике значит «обновить конфигурацию , где она встроена».
Какой у вас случай: выбираем способ обновления
Сначала определите, как устроена ваша конфигурация. От этого зависит весь остальной план.
| Ситуация | Как обновляется БСП | Трудоёмкость |
|---|---|---|
| Типовая конфигурация, поддержка включена, правил нет | Вместе с релизом конфигурации, через файл обновления | Минимальная |
| Типовая, но на поддержке с изменёнными объектами | Релиз с объединением: конфигуратор покажет конфликты | Средняя |
| Поддержка снята, конфигурация своя на базе БСП | Сравнение и объединение с новой поставкой библиотеки | Высокая |
| Расширение конфигурации | Обновляется основная конфигурация, расширение проверяется после | Низкая, но нужна проверка |
Как посмотреть статус: откройте конфигуратор, меню Конфигурация → Поддержка → Настройка поддержки. Если там написано «на поддержке» и объекты не сняты с неё — вы в первой или второй строке таблицы. Если поддержка отключена — в третьей.
Номер версии библиотеки в базе виден в справке «О программе» и в свойствах конфигурации. Запишите его до начала работ: пригодится при откате и при разговоре с программистом.
Подготовка: что сделать до любого обновления
Библиотека меняет структуру данных и запускает обработчики обновления при первом входе. Откатить такое можно только из копии, поэтому подготовка — это не формальность.
Перед обновлением сделайте копию базы и проверьте, что она открывается. Просто файл на диске — ещё не гарантия.
Чек-лист подготовки:
Что стоит добавить к списку:
- 🧪 Тестовая копия. Разверните копию рабочей базы и сначала обновите её. Так вы увидите время работы обработчиков и поймаете конфликты до боя.
- 📋 Список доработок. Если конфигурацию правили, выпишите объекты, которые менял программист. Именно в них возникнут конфликты.
- 🔌 Платформа. Новая БСП требует определённой минимальной версии платформы. Требование указано в описании релиза: сверьте номер своей платформы с ним и при необходимости обновите платформу заранее. Сравнивайте именно по номеру: «номер не ниже указанного».
Типовая конфигурация: БСП обновляется вместе с релизом
Для конфигурации без доработок всё просто. Отдельной процедуры для библиотеки нет.
Способ 1. Через интерфейс программы, если подключена интернет-поддержка:
- Откройте раздел
Администрирование → Интернет-поддержка и сервисыи проверьте, что пользователь интернет-поддержки подключён. - В разделе администрирования найдите настройку проверки обновлений и запустите её.
- Если релиз найден, программа предложит установить его. Согласитесь и дождитесь завершения.
Способ 2. Через конфигуратор с файлом обновления (.cfu или полная поставка):
- Закройте все сеансы и откройте базу в режиме
Конфигуратор. - Выберите
Конфигурация → Поддержка → Обновить конфигурацию. - Укажите файл обновления и пройдите мастер.
- Если конфликтов нет, конфигуратор предложит принять изменения. Подтвердите, затем примите обновление конфигурации
базы данных (клавиша
F7или пунктКонфигурация → Обновить конфигурацию базы данных).
После этого запустите базу в обычном режиме. БСП сама выполнит обработчики обновления: на экране появится окно с ходом работ. Не закрывайте его, пока не завершится процесс.
Обновление структуры базы требует монопольного доступа. Если кто-то в базе — конфигуратор сообщит об этом и не даст продолжить. Прогонять людей лучше по плану, а не посреди работы.
Доработанная конфигурация: сравнение и объединение с новой БСП
Здесь начинается настоящая работа. Если вы расширяли типовую конфигурацию прямыми правками, при обновлении релиза конфигуратор покажет окно сравнения и попросит решить, что оставить: ваше, новое или объединить.
Порядок действий:
- Откройте конфигуратор. Поддержка конфигурации должна быть включена, объекты — «на поддержке с возможностью изменения».
- Запустите
Конфигурация → Поддержка → Обновить конфигурациюи укажите поставку нового релиза. - В окне сравнения изучите дерево объектов. Объекты, изменённые и у вас, и у поставщика, помечены как конфликтные.
- Для каждого такого объекта решайте отдельно. Чаще всего разумно взять версию поставщика целиком, а вашу доработку потом повторить в новом коде.
- Не принимайте всё скопом. «Принять поставщика для всех» удалит ваши изменения, а «оставить моё для всех» заблокирует исправления библиотеки.
Если конфигурация на снятой поддержке (написана с нуля на БСП), порядок другой: нужен файл новой библиотеки или демонстрационной конфигурации из её поставки. Затем в конфигураторе идёте через Конфигурация → Сравнить, объединить с конфигурацией из файла. Обновлять приходится подсистемы по одной, начиная с базовых, и сверять изменённые общие модули.
Выносите доработки в расширения. Тогда обновление основной конфигурации идёт чисто, а расширение остаётся в стороне. Это единственный способ раз и навсегда снять боль с обновлениями БСП.
Что делать с конфликтами в модулях
Конфликты в общих модулях обычно связаны с процедурами, которые вы вставили прямо в код библиотеки. Практичный алгоритм:
- 🔍 Откройте конфликтный модуль в сравнении и найдите свои вставки по комментариям или по именам процедур.
- ✂️ Возьмите новый модуль поставщика и вручную перенесите в него свою логику.
- 🧱 Если в новой версии процедуры переименованы или перенесены, найдите их в справке по БСП и переделайте вызовы.
- 📌 Сразу оставляйте комментарий с датой и причиной доработки: в следующий раз сэкономите час.
Как не запутаться в большом объёме правок
Крупная доработанная конфигурация даёт сотни конфликтных объектов. Чтобы не утонуть, разбейте работу на этапы:
- 📂 Сначала примите объекты без конфликтов: они не требуют решений.
- 🧭 Затем разберите общие модули и подсистемы БСП: от них зависят остальные.
- 🧾 Формы, отчёты и печатные макеты оставьте на конец, их проверка занимает больше всего времени.
- 💾 После каждого крупного этапа сохраняйте промежуточный
.cf: при ошибке вернётесь на шаг назад, а не в начало.
Разбирать конфликты лучше вдвоём: программист знает код, а бухгалтер подскажет, какие формы и отчёты нельзя ломать.
Первый запуск после обновления: что делает БСП
После принятия конфигурации и обновления структуры БД первый вход запускает процесс обновления информационной базы. Именно здесь библиотека проверяет номер версии, находит нужные обработчики и выполняет их по порядку.
Что вы увидите на экране:
- окно «Обновление информационной базы» с ходом выполнения;
- возможное предложение выполнить отложенные обработчики в фоне, которые дообработают данные позже;
- в конце — окно с описанием изменений в версии (если оно задано поставщиком).
Первый вход делайте под пользователем с полными правами. Если обработчик упадёт, вы увидите конкретный текст ошибки: его сохраните целиком, в нём указан модуль и строка.
Обновление из командной строки и по расписанию
Для нескольких баз или ночных окон обновление автоматизируют. Конфигуратор умеет работать без окон: ключ DESIGNER с параметрами.
Пример скрипта для файловой базы (.bat):
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1445\bin\1cv8.exe"
set BASE=D:\bases\buh
set CFU=D:\upd\update.cfu
set LOG=D:\upd\upd.log
%V8% DESIGNER /F %BASE% /N Админ /P Пароль /UpdateCfg %CFU% /UpdateDBCfg /Out %LOG% /DisableStartupMessages
Номер платформы в пути подставьте свой. Главные ключи:
| Ключ | Что делает |
|---|---|
DESIGNER | Запускает конфигуратор |
/F | Путь к файловой базе (для серверной вместо него /S сервер\база) |
/UpdateCfg | Загружает файл обновления в конфигурацию |
/UpdateDBCfg | Обновляет структуру базы данных |
/Out | Пишет протокол в файл |
/DisableStartupMessages | Убирает диалоги при старте |
Конфликты в таком режиме не разрешить: скрипт подходит только для типовых релизов без доработок. Если в обновлении есть расхождения, результат лучше проверить по протоколу из /Out.
После работы скрипта запустите базу в режиме 1С:Предприятие, чтобы БСП выполнила обработчики. Для этого есть и свой параметр запуска: /C ЗапуститьОбновлениеИнформационнойБазы. Он запускает обновление и закрывает программу.
Перед ночным автоматическим запуском убедитесь, что в базе не осталось пользователей: завершение сеансов обрывает их работу, несохранённые данные пропадут. Такие запуски ставят на время, согласованное с людьми.
Проверка результата: как понять, что обновление прошло
Тишина на экране ещё не означает успех. Проверьте несколько вещей, прежде чем пускать людей.
- Номер версии. В справке «О программе» версия должна быть новой, как в описании релиза.
- Журнал регистрации. Откройте журнал: нет ли ошибок и предупреждений за время обновления. Отфильтруйте по уровню «Ошибка».
- Отложенные обработчики. Проверьте, что они выполняются или завершены, а не повисли.
- Ключевые сценарии. Откройте главный документ, проведите его, сформируйте один регламентированный отчёт, напечатайте форму.
- Права и роли. Зайдите под обычным пользователем, а не только под администратором: роли часто меняются в новых версиях.
- Проверка конфигурации. В конфигураторе запустите
Конфигурация → Проверка конфигурациии посмотрите на ошибки в ваших доработанных модулях.
Если нашли дефект — не продолжайте работу в рабочей базе, а откатитесь на копию и разбирайтесь в тестовой.
Для серверной базы добавьте к скрипту ключ /S вместо /F, а перед стартом убедитесь, что соединения с базой запрещены. Защита простая: включите блокировку начала сеансов в консоли администрирования или в самой базе, чтобы никто не успел войти посреди загрузки. Код блокировки передаётся пользователям ключом /UC.
Ошибки при обновлении БСП и их разбор
Ниже — симптомы, которые встречаются чаще других. Сначала определите, на каком этапе возникла проблема.
.cf, сравните с текущим и перенесите нужные фрагменты вручную.Отдельно отметим повторяющуюся причину: база обновляется «через версию». Если вы пропустили несколько релизов подряд, часть обработчиков перехода может требовать промежуточной версии. В описании релиза всегда указано, с какой версии допустим прямой переход. Прочитайте его до начала.