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