Обновление библиотеки стандартных подсистем в 1С без потери доработок

· 9 мин

Содержание

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

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

Какой у вас случай: выбираем способ обновления

Сначала определите, как устроена ваша конфигурация. От этого зависит весь остальной план.

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

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

Номер версии библиотеки в базе виден в справке «О программе» и в свойствах конфигурации. Запишите его до начала работ: пригодится при откате и при разговоре с программистом.

Подготовка: что сделать до любого обновления

Библиотека меняет структуру данных и запускает обработчики обновления при первом входе. Откатить такое можно только из копии, поэтому подготовка — это не формальность.

Перед обновлением сделайте копию базы и проверьте, что она открывается. Просто файл на диске — ещё не гарантия.

Чек-лист подготовки:

Перед обновлением БСП
Выполнено: 0 / 7

Что стоит добавить к списку:

  • 🧪 Тестовая копия. Разверните копию рабочей базы и сначала обновите её. Так вы увидите время работы обработчиков и поймаете конфликты до боя.
  • 📋 Список доработок. Если конфигурацию правили, выпишите объекты, которые менял программист. Именно в них возникнут конфликты.
  • 🔌 Платформа. Новая БСП требует определённой минимальной версии платформы. Требование указано в описании релиза: сверьте номер своей платформы с ним и при необходимости обновите платформу заранее. Сравнивайте именно по номеру: «номер не ниже указанного».

Типовая конфигурация: БСП обновляется вместе с релизом

Для конфигурации без доработок всё просто. Отдельной процедуры для библиотеки нет.

Способ 1. Через интерфейс программы, если подключена интернет-поддержка:

  1. Откройте раздел Администрирование → Интернет-поддержка и сервисы и проверьте, что пользователь интернет-поддержки подключён.
  2. В разделе администрирования найдите настройку проверки обновлений и запустите её.
  3. Если релиз найден, программа предложит установить его. Согласитесь и дождитесь завершения.

Способ 2. Через конфигуратор с файлом обновления (.cfu или полная поставка):

  1. Закройте все сеансы и откройте базу в режиме Конфигуратор.
  2. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  3. Укажите файл обновления и пройдите мастер.
  4. Если конфликтов нет, конфигуратор предложит принять изменения. Подтвердите, затем примите обновление конфигурации базы данных (клавиша F7 или пункт Конфигурация → Обновить конфигурацию базы данных).

После этого запустите базу в обычном режиме. БСП сама выполнит обработчики обновления: на экране появится окно с ходом работ. Не закрывайте его, пока не завершится процесс.

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

Доработанная конфигурация: сравнение и объединение с новой БСП

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

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

  1. Откройте конфигуратор. Поддержка конфигурации должна быть включена, объекты — «на поддержке с возможностью изменения».
  2. Запустите Конфигурация → Поддержка → Обновить конфигурацию и укажите поставку нового релиза.
  3. В окне сравнения изучите дерево объектов. Объекты, изменённые и у вас, и у поставщика, помечены как конфликтные.
  4. Для каждого такого объекта решайте отдельно. Чаще всего разумно взять версию поставщика целиком, а вашу доработку потом повторить в новом коде.
  5. Не принимайте всё скопом. «Принять поставщика для всех» удалит ваши изменения, а «оставить моё для всех» заблокирует исправления библиотеки.

Если конфигурация на снятой поддержке (написана с нуля на БСП), порядок другой: нужен файл новой библиотеки или демонстрационной конфигурации из её поставки. Затем в конфигураторе идёте через Конфигурация → Сравнить, объединить с конфигурацией из файла. Обновлять приходится подсистемы по одной, начиная с базовых, и сверять изменённые общие модули.

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

Что делать с конфликтами в модулях

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

  • 🔍 Откройте конфликтный модуль в сравнении и найдите свои вставки по комментариям или по именам процедур.
  • ✂️ Возьмите новый модуль поставщика и вручную перенесите в него свою логику.
  • 🧱 Если в новой версии процедуры переименованы или перенесены, найдите их в справке по БСП и переделайте вызовы.
  • 📌 Сразу оставляйте комментарий с датой и причиной доработки: в следующий раз сэкономите час.

Как не запутаться в большом объёме правок

Крупная доработанная конфигурация даёт сотни конфликтных объектов. Чтобы не утонуть, разбейте работу на этапы:

  • 📂 Сначала примите объекты без конфликтов: они не требуют решений.
  • 🧭 Затем разберите общие модули и подсистемы БСП: от них зависят остальные.
  • 🧾 Формы, отчёты и печатные макеты оставьте на конец, их проверка занимает больше всего времени.
  • 💾 После каждого крупного этапа сохраняйте промежуточный .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 ЗапуститьОбновлениеИнформационнойБазы. Он запускает обновление и закрывает программу.

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

Проверка результата: как понять, что обновление прошло

Тишина на экране ещё не означает успех. Проверьте несколько вещей, прежде чем пускать людей.

  1. Номер версии. В справке «О программе» версия должна быть новой, как в описании релиза.
  2. Журнал регистрации. Откройте журнал: нет ли ошибок и предупреждений за время обновления. Отфильтруйте по уровню «Ошибка».
  3. Отложенные обработчики. Проверьте, что они выполняются или завершены, а не повисли.
  4. Ключевые сценарии. Откройте главный документ, проведите его, сформируйте один регламентированный отчёт, напечатайте форму.
  5. Права и роли. Зайдите под обычным пользователем, а не только под администратором: роли часто меняются в новых версиях.
  6. Проверка конфигурации. В конфигураторе запустите Конфигурация → Проверка конфигурации и посмотрите на ошибки в ваших доработанных модулях.

Если нашли дефект — не продолжайте работу в рабочей базе, а откатитесь на копию и разбирайтесь в тестовой.

Для серверной базы добавьте к скрипту ключ /S вместо /F, а перед стартом убедитесь, что соединения с базой запрещены. Защита простая: включите блокировку начала сеансов в консоли администрирования или в самой базе, чтобы никто не успел войти посреди загрузки. Код блокировки передаётся пользователям ключом /UC.

Ошибки при обновлении БСП и их разбор

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

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

Отдельно отметим повторяющуюся причину: база обновляется «через версию». Если вы пропустили несколько релизов подряд, часть обработчиков перехода может требовать промежуточной версии. В описании релиза всегда указано, с какой версии допустим прямой переход. Прочитайте его до начала.

Частые вопросы про обновление БСП

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