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

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

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

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

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

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

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

Что такое БСП и когда её внедрение оправдано

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

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

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

Подготовка: что проверить до начала переноса

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

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

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

Выбор подсистем и порядок их переноса

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

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

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

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

Настройка переопределяемых модулей и точек интеграции

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

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

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

Интеграция с объектами вашей конфигурации

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

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

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

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

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

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

Наиболее частые ошибки внедрения связаны с неполным переносом зависимостей и невнимательностью к переопределяемым модулям. Ниже — сводка типичных проблем и к чему они приводят.

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

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

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

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

Обновление конфигурации базы данных
Норма

Выполняется без ошибок и предупреждений о недостающих объектах

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

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

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

Отрабатывают обработчики обновления, служебные данные заполнены

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

Ошибки в журнале регистрации, пустые профили групп доступа

Работа под пользователем без полных прав
Норма

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

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

Ошибки нарушения прав доступа к регистрам и справочникам БСП

Базовый сценарий каждой подсистемы
Норма

Пользователь создаётся, файл прикрепляется, версия документа фиксируется

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

Сценарий обрывается с ошибкой или молча не выполняется

FAQ: частые вопросы по внедрению БСП

Можно ли внедрить только одну подсистему, например «Работа с файлами»?

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

Что делать, если конфигурация на обычных формах?

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

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

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

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

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

Сколько времени занимает внедрение?

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

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

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

Итог

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

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