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

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

Как внедрить БСП в конфигурацию 1С 8.3

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

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

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

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

Подготовка: версия БСП, платформа и резервная копия

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

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

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

Анализ конфигурации перед объединением

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

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

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

Маршрут решения

Как выбрать подсистемы

Нужна только базовая инфраструктура (события, общие модули, обновление версии)Внедряйте только обязательный блок «Стандартные подсистемы» — он требуется для работы любой другой подсистемы
Планируется разграничение доступа пользователейДобавьте подсистемы «Управление доступом» и «Пользователи», они зависят друг от друга
В конфигурации уже есть свои механизмы печати и они устраиваютНе включайте подсистему «Печать», иначе получите дублирование команд и путаницу у пользователей
Нужны дополнительные отчёты и обработки без изменения конфигурацииВключите «Дополнительные отчеты и обработки» вместе с зависимыми подсистемами безопасности

Сравнение и объединение с поставкой БСП

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

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

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

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

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

Настройка переопределяемых модулей

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

Ключевой модуль — ОбщегоНазначенияПереопределяемый и связанные с ним процедуры, где указываются, например, представление конфигурации, используемые объекты и обработчики событий. Для подсистемы пользователей заполняется ПользователиПереопределяемый, для печати — УправлениеПечатьюПереопределяемый с перечнем объектов, поддерживающих печать.

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

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

Первое обновление и запуск

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

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

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

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

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

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

Нет ошибок компиляции модулей и логической целостности

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

Ошибки в переопределяемых модулях или ссылки на отсутствующие объекты

Первый запуск в режиме предприятия
Норма

Отложенные обработчики обновления завершились, база открывается штатно

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

Обновление зависает или завершается с исключениями в журнале регистрации

Работа подсистем (например, список пользователей)
Норма

Формы открываются, данные создаются и сохраняются

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

Ошибки «объект не найден» или пустые служебные справочники

Журнал регистрации за период обновления
Норма

Только информационные сообщения обработчиков

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

Повторяющиеся ошибки обновления версии подсистем

Типичные ошибки и ограничения

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

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

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

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

Обновление БСП в дальнейшем

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

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

Итог

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

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

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

Можно ли внедрить БСП в конфигурацию, которая уже давно в эксплуатации и содержит данные?

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

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

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

Что делать, если после объединения сотни ошибок проверки конфигурации?

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

Как обновлять БСП, если пришлось всё-таки изменить код библиотеки?

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

Подходит ли расширение конфигурации вместо прямого внедрения БСП?

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

Сколько времени занимает внедрение БСП в типовую самописную конфигурацию?

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