К статье
Практический материал

Разработка и Конфигурация · 13 мин

Как обновить БСП в конфигурации 1С

Пошаговое обновление Библиотеки стандартных подсистем (БСП) в конфигурации 1С: подготовка, сравнение и объединение, перенос кода, типичные ошибки и проверка результата.

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

Обновление БСП отличается от обычного обновления конфигурации тем, что библиотека внедрена внутрь вашей конфигурации, а не поставляется как отдельный продукт. Поэтому процесс строится вручную: через сравнение с поставкой новой версии БСП, отбор нужных объектов и последующую доработку точек внедрения. Ниже — рабочий порядок действий, который применяют при переходе, например, с версии 3.1.x на более свежую.

Когда обновлять БСП и как оценить объём работ

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

Объём работ зависит от разрыва версий. Переход внутри одной редакции (например, с 3.1.10 на 3.1.15) обычно занимает от нескольких часов до пары дней. Переход через несколько редакций может потребовать недели, потому что меняются составы подсистем, сигнатуры процедур программного интерфейса и структура переопределяемых модулей. Оцените масштаб заранее: сравните номера версий и прочитайте описание изменений, которое фирма «1С» публикует вместе с дистрибутивом библиотеки.

Разрыв версий1–2 минорные версии

Обычно достаточно стандартного сравнения и объединения

Разрыв версийСмена редакции или несколько минорных версий

Планируйте ручную доработку переопределяемых модулей и тестирование

Доработки в модулях БСПИзменения внесены напрямую в стандартные модули

Потребуется ручной перенос каждой доработки в новую версию

Собственные подсистемыИспользуют программный интерфейс БСП

Проверьте, не изменились ли сигнатуры вызываемых процедур и функций

Подготовка: резервная копия и рабочее окружение

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

Далее подготовьте дистрибутив новой версии БСП. Его можно получить на портале 1С:Обновление программ при наличии действующего договора ИТС. В комплекте поставки находится файл конфигурации (.cf) — именно он нужен для сравнения. Полезно также развернуть демонстрационную базу новой БСП: по ней удобно смотреть, как устроены подсистемы и как должны быть заполнены переопределяемые модули.

Работайте на копии базы, а не на рабочей. Идеальная схема: копия базы → обновление → проверка → только потом перенос результата в рабочую среду. Если конфигурация находится на поддержке с возможностью изменения, убедитесь, что у вас есть актуальная выгрузка конфигурации в файлы или снимок в хранилище — это дополнительная страховка.

Обновление через сравнение и объединение конфигураций

Основной инструмент — режим сравнения и объединения в конфигураторе. Откройте конфигуратор вашей базы, снимите конфигурацию с замка (меню «Конфигурация → Открыть конфигурацию»), затем выберите «Конфигурация → Сравнить, объединить с конфигурацией из файла» и укажите .cf-файл новой версии БСП. Платформа построит дерево различий.

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

Особого внимания требуют объекты, которые БСП использует, но которые принадлежат вашей конфигурации: переопределяемые общие модули (например, модули с суффиксом «Переопределяемый» и «Локализация»), подписки на события, определяемые типы, планы обмена. Их нельзя слепо перезаписывать — в них живут ваши настройки внедрения. Для таких объектов используйте режим объединения с ручным разбором различий в тексте модулей.

Порядок обновления БСП
  1. 1
    Выгрузите рабочую базу в .dt и работайте на копии
  2. 2
    Получите дистрибутив новой версии БСП и файл .cf поставки
  3. 3
    В конфигураторе откройте сравнение и объединение с файлом новой БСП
  4. 4
    Отметьте к переносу новые и изменённые объекты подсистем БСП, исключая переопределяемые модули с вашими настройками
  5. 5
    Выполните объединение и вручную разберите конфликты в переопределяемых модулях
  6. 6
    Обновите конфигурацию базы данных (F7), согласившись с реструктуризацией
  7. 7
    Запустите базу в режиме предприятия и дождитесь выполнения отложенных обработчиков обновления
  8. 8
    Проверьте ключевые сценарии: обмены, печать, права, отчёты

Работа с переопределяемыми модулями и точками внедрения

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

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

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

Удобно вести отдельный текстовый файл-реестр собственных доработок БСП: какой модуль, какая процедура, что изменено и зачем. При следующем обновлении этот список экономит часы на поиске правок и снижает риск их потери при объединении.
ПЗ
Практическое замечание

Обновление информационной базы и отложенные обработчики

После объединения конфигураций выполните обновление конфигурации базы данных. Платформа предложит реструктуризацию — примите её, внимательно просмотрев список изменений: не должно быть удаления таблиц с данными, если только вы сознательно не отказались от какой-то подсистемы. На больших базах реструктуризация может занять продолжительное время, планируйте её на нерабочие часы.

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

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

Контрольные точки

Как проверить результат обновления

Версия БСП в информации о программе
Норма

Отображается новый номер версии библиотеки

Тревожный признак

Номер не изменился — обновление конфигурации БД не выполнено

Результаты обновления программы
Норма

Все обработчики в статусе «Выполнено»

Тревожный признак

Есть обработчики с ошибками или зависшие в очереди

Проверка конфигурации в конфигураторе
Норма

Нет ошибок о несуществующих методах и объектах

Тревожный признак

Ошибки обращения к удалённым или переименованным процедурам БСП

Ключевые сценарии работы
Норма

Обмены, печать, права и отчёты работают как раньше

Тревожный признак

Ошибки при открытии форм, пустые печатные формы, сбои обмена

Типичные ошибки и как их избежать

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

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

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

Типичные ошибки при обновлении БСП
01
Отметка всех объектов при объединении — затираются переопределяемые модули с настройками внедрения
02
Пропуск новых объектов подсистем — ошибки «Объект не обнаружен» после обновления
03
Работа без резервной копии — невозможность отката при сбое реструктуризации
04
Игнорирование отложенных обработчиков — пользователи работают с незавершённым обновлением данных
05
Перенос доработок прямо в стандартные модули без учёта — правки теряются при следующем обновлении
06
Обновление сразу на рабочей базе без тестирования на копии — простой учёта при ошибках

Альтернативные подходы и ограничения

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

Для конфигураций, где доработки реализованы через расширения, обновление проходит заметно легче: расширения не затираются при объединении, нужно лишь проверить их совместимость с новой версией и при необходимости адаптировать. Это веский аргумент в пользу архитектуры «минимум изменений в основной конфигурации, максимум в расширениях».

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

Итог

Что важно запомнить

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

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

Можно ли обновить БСП через обычное обновление конфигурации на поддержке?

Нет. Ваша конфигурация стоит на поддержке у своего поставщика, а БСП внедрена внутрь неё. Штатный механизм обновления через .cfu применим только к конфигурациям, поставляемым целиком. Библиотеку переносят вручную через сравнение и объединение с файлом поставки новой версии БСП.

Через сколько версий можно «перепрыгнуть» за один раз?

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

Что делать, если после обновления перестал работать обмен данными?

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

Нужно ли обновлять БСП, если конфигурация работает стабильно?

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

Как не потерять собственные доработки при обновлении?

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

Сколько времени занимает обновление БСП?

При небольшом разрыве версий и аккуратной архитектуре (доработки в расширениях и переопределяемых модулях) — от нескольких часов до одного-двух дней с тестированием. При большом разрыве версий и прямых правках стандартных модулей работы могут занять неделю и больше. Точную оценку даёт только предварительное сравнение конфигураций и аудит доработок.