Разработка и Конфигурация · 12 мин
Как внедрить БСП в конфигурацию 1С 8.3
Пошаговое внедрение Библиотеки стандартных подсистем (БСП) в конфигурацию 1С 8.3: подготовка, сравнение и объединение, настройка подсистем, типичные ошибки и проверка результата.
Библиотека стандартных подсистем (БСП) — это набор готовых механизмов от фирмы «1С»: управление пользователями и правами, версионирование объектов, работа с почтой, печать, обмен данными, хранение файлов и десятки других подсистем. Внедрение БСП в собственную конфигурацию избавляет от необходимости писать эту функциональность с нуля и упрощает дальнейшую поддержку решения.
Процедура внедрения нетривиальна: БСП содержит тысячи объектов метаданных, а ошибка на этапе объединения может привести к потере собственных доработок или неработоспособности конфигурации. Поэтому внедрение всегда выполняется на копии базы, с обязательным резервным копированием и поэтапной проверкой.
Ниже описан полный цикл работ: от выбора версии библиотеки и подготовки конфигурации до загрузки подсистем, настройки обязательных модулей и проверки результата. Материал ориентирован на разработчиков, внедряющих БСП в самописную или сильно доработанную конфигурацию на платформе 1С:Предприятие 8.3.
Подготовка: версия БСП, платформа и резервная копия
Первый шаг — определить совместимую версию библиотеки. Каждая версия БСП рассчитана на определённую минимальную версию платформы 1С:Предприятие 8.3 и режим совместимости. Эти требования указаны в документации к поставке библиотеки (файл описания в комплекте). Если платформа старше требуемой, конфигурация после внедрения либо не запустится, либо отдельные механизмы будут работать с ошибками.
Дистрибутив БСП распространяется через портал 1С:Обновление программ и включает файл поставки конфигурации, демонстрационную базу и документацию. Перед началом работ полезно развернуть демо-базу: она показывает, как выглядит правильно настроенная библиотека, и служит эталоном при разборе ошибок.
Обязательное условие — полная резервная копия рабочей базы и выгрузка конфигурации в файл .cf. Даже если вы работаете на копии, сохраните исходное состояние отдельно: при неудачном объединении проще начать заново, чем откатывать частичные изменения.
Анализ конфигурации перед объединением
До запуска объединения нужно понять, что в вашей конфигурации может конфликтовать с библиотекой. Типичные зоны риска — собственные подсистемы управления пользователями, свои механизмы печати, дополнительных отчётов и обработок, работы с файлами. Если такие механизмы уже реализованы, решите заранее: отказаться от них в пользу БСП или исключить соответствующие подсистемы библиотеки из внедрения.
Проверьте имена объектов метаданных. Совпадение имён общих модулей, ролей, подсистем или справочников с объектами БСП приведёт к слиянию или перезаписи при объединении. Собственные объекты с пересекающимися именами лучше переименовать заранее, добавив префикс проекта.
Также оцените объём внедряемой функциональности. Полное внедрение всех подсистем БСП значительно увеличивает размер конфигурации и время обновления. На практике чаще выбирают ограниченный набор: базовая функциональность (обязательна всегда), пользователи и права, печать, дополнительные отчёты и обработки, контактная информация, работа с файлами.
Как выбрать подсистемы
Сравнение и объединение с поставкой БСП
Основной инструмент внедрения — режим конфигуратора «Конфигурация → Поддержка → Сравнить, объединить с конфигурацией из файла» (для конфигураций на поддержке) либо «Загрузить конфигурацию из файла» с последующим сравнением. В качестве источника указывается файл поставки БСП.
В окне сравнения снимите отметки со всех объектов, затем отметьте только нужные подсистемы и их зависимости. Практический приём: отметить требуемые подсистемы в дереве и использовать фильтр, чтобы увидеть связанные объекты. Обязательный минимум — объекты, входящие в подсистему «СтандартныеПодсистемы» и базовые общие модули библиотеки.
Особое внимание уделите объектам, которые присутствуют в обеих конфигурациях: корню конфигурации (свойства, роли по умолчанию), общим ролям, планам обмена, определяемым типам. Для них нужно вручную установить правила объединения — как правило, «объединить с приоритетом» вашей конфигурации для собственных свойств и добавлением объектов библиотеки.
После объединения выполните проверку конфигурации (Конфигурация → Проверка конфигурации) с включённой проверкой логической целостности. На этом этапе типичны десятки ошибок в переопределяемых модулях — это нормально: библиотека требует заполнения «точек подключения» под вашу конфигурацию.
- 1Сделайте выгрузку .cf и резервную копию базы-копии
- 2Откройте сравнение/объединение с файлом поставки БСП
- 3Снимите все отметки, затем отметьте только нужные подсистемы и их зависимости
- 4Для пересекающихся объектов вручную задайте правила объединения
- 5Выполните объединение и сохраните конфигурацию
- 6Запустите проверку конфигурации и зафиксируйте список ошибок
- 7Заполните переопределяемые модули по списку ошибок
Настройка переопределяемых модулей
БСП построена по принципу «библиотека вызывает конфигурацию»: в составе каждой подсистемы есть модули с постфиксом «Переопределяемый», в которых разработчик описывает поведение своей конфигурации. Именно незаполненные или неправильно заполненные переопределяемые процедуры — главный источник ошибок после объединения.
Ключевой модуль — ОбщегоНазначенияПереопределяемый и связанные с ним процедуры, где указываются, например, представление конфигурации, используемые объекты и обработчики событий. Для подсистемы пользователей заполняется ПользователиПереопределяемый, для печати — УправлениеПечатьюПереопределяемый с перечнем объектов, поддерживающих печать.
Ориентиром служат комментарии в самих модулях и демонстрационная база БСП: в ней те же переопределяемые процедуры заполнены рабочим кодом, который можно адаптировать. Не копируйте демо-код бездумно — он ссылается на объекты демонстрационной конфигурации, которых у вас нет.
Также потребуется подключить обработчики подписки на события и регламентные задания библиотеки. Проверьте, что в плане обмена и ролях назначены права на новые объекты, а в свойствах конфигурации корректно указаны основная роль и режим использования модальности, совместимый с требованиями БСП.
Первое обновление и запуск
После устранения ошибок компиляции выполните обновление конфигурации базы данных (F7 в конфигураторе). Реструктуризация добавит новые справочники, регистры и константы библиотеки. На больших базах этот процесс может занять продолжительное время — запускайте его в монопольном режиме.
При первом запуске в режиме предприятия БСП выполняет отложенные обработчики обновления: заполняет служебные данные, создаёт предопределённые элементы, регистрирует версии подсистем. Эти обработчики могут выполняться заметное время. Не прерывайте процесс и не запускайте параллельные сеансы до его завершения — прерванное обновление оставляет данные в несогласованном состоянии.
После завершения обновления откройте информационную панель библиотеки (в демо-базе — раздел администрирования) и убедитесь, что версии всех подсистем зарегистрированы корректно, ошибок в журнале регистрации по обработчикам обновления нет.
Как проверить результат
Нет ошибок компиляции модулей и логической целостности
Ошибки в переопределяемых модулях или ссылки на отсутствующие объекты
Отложенные обработчики обновления завершились, база открывается штатно
Обновление зависает или завершается с исключениями в журнале регистрации
Формы открываются, данные создаются и сохраняются
Ошибки «объект не найден» или пустые служебные справочники
Только информационные сообщения обработчиков
Повторяющиеся ошибки обновления версии подсистем
Типичные ошибки и ограничения
Самая частая ошибка — попытка внедрить «всё и сразу». Полное объединение без фильтрации подсистем приводит к огромному числу конфликтов и десяткам часов разбора. Внедряйте библиотеку итерационно: сначала базовый блок, затем по одной функциональной подсистеме с проверкой после каждой.
Вторая группа проблем — ручное изменение объектов БСП вместо использования переопределяемых модулей. Любая правка «внутри» библиотеки усложняет будущие обновления: при переходе на новую версию БСП изменения придётся переносить вручную. Правило простое: библиотеку не трогаем, всё переопределяем в предусмотренных точках расширения.
Третья типичная ситуация — конфликт собственного механизма прав с подсистемой управления доступом БСП. Одновременная работа двух моделей прав даёт непредсказуемый результат: пользователи либо не видят нужных данных, либо получают избыточный доступ. Выбирайте одну модель и полностью переводите на неё роли.
Обновление БСП в дальнейшем
Внедрение — не разовая акция: библиотека регулярно обновляется, и вместе с ней придётся обновлять вашу конфигурацию. Чтобы обновления проходили управляемо, ведите учёт всех изменений, внесённых в объекты библиотеки (в идеале их не должно быть вовсе), и храните файл поставки той версии БСП, которая внедрена.
Процедура обновления аналогична первичному внедрению: сравнение с новой поставкой, объединение только объектов библиотеки, проверка переопределяемых модулей — в новых версиях в них иногда добавляются обязательные процедуры. Перед обновлением изучите документ изменений в поставке: там перечислены действия, которые разработчик должен выполнить вручную.
Что важно запомнить
Внедрение БСП — это управляемое объединение конфигураций с выбором только нужных подсистем, обязательным заполнением переопределяемых модулей и контролируемым первым обновлением. Работайте на копии, не изменяйте код библиотеки, обновляйтесь итерационно — и БСП станет надёжным фундаментом конфигурации.
Частые вопросы
Можно ли внедрить БСП в конфигурацию, которая уже давно в эксплуатации и содержит данные?
Да, библиотека добавляет собственные объекты и не требует пустой базы. Существующие данные не затрагиваются, кроме случаев, когда вы переводите на механизмы БСП существующую функциональность (например, справочник пользователей) — тогда потребуется перенос данных обработкой. Все работы выполняются на копии с последующим переносом результата.
Обязательно ли внедрять все подсистемы библиотеки?
Нет. Обязателен только базовый блок «Стандартные подсистемы» — от него зависят остальные. Остальные подсистемы выбираются по потребности, но нужно учитывать зависимости между ними: например, «Дополнительные отчеты и обработки» требуют нескольких сервисных подсистем. Документация к БСП содержит таблицу зависимостей.
Что делать, если после объединения сотни ошибок проверки конфигурации?
Это ожидаемая ситуация: большинство ошибок указывают на незаполненные переопределяемые процедуры и отсутствующие в вашей конфигурации объекты, на которые ссылаются необязательные подсистемы. Разберите ошибки по группам: сначала снимите лишние подсистемы из состава, затем последовательно заполняйте переопределяемые модули, сверяясь с демонстрационной базой.
Как обновлять БСП, если пришлось всё-таки изменить код библиотеки?
Ведите реестр таких изменений: объект, процедура, суть правки, причина. При обновлении сравнивайте новую поставку не только с вашей конфигурацией, но и со старой версией БСП — трёхстороннее сравнение покажет, где ваши правки пересекаются с изменениями разработчиков библиотеки. По возможности со временем переносите такие правки в переопределяемые модули или расширения конфигурации.
Подходит ли расширение конфигурации вместо прямого внедрения БСП?
Нет, саму библиотеку через расширение не внедрить: расширения не позволяют добавлять произвольный набор новых объектов метаданных нужного состава и не заменяют механизм поставки. Расширения полезны на следующем этапе — для адаптации поведения уже внедрённой БСП без изменения основной конфигурации.
Сколько времени занимает внедрение БСП в типовую самописную конфигурацию?
Сроки сильно зависят от объёма выбранных подсистем и степени конфликтов. Базовый блок с подсистемой пользователей в небольшую конфигурацию обычно внедряется за несколько рабочих дней с учётом тестирования. Полное внедрение с переносом существующих механизмов на механизмы библиотеки может занять недели — планируйте итерации и не совмещайте внедрение с другими крупными доработками.