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

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

БСП в 1С: что это такое и как использовать библиотеку стандартных подсистем

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

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

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

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

Что такое БСП и зачем она создана

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

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

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

Из чего состоит библиотека: основные подсистемы

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

Среди наиболее востребованных функциональных подсистем:

  • Работа с файлами — хранение присоединённых файлов в базе или в томах на диске;
  • Печать — механизм печатных форм, подключаемых к документам и справочникам;
  • Обмен данными — универсальные механизмы синхронизации между конфигурациями;
  • Версионирование объектов — хранение истории изменений документов и справочников;
  • Работа с почтой — отправка и получение писем из учётных записей;
  • Дополнительные реквизиты и сведения — расширение объектов пользовательскими полями без доработки конфигурации;
  • Запрет редактирования реквизитов, групповое изменение объектов, напоминания пользователя и другие.
Префиксы модулейМодули вида «ОбщегоНазначения», «Пользователи», «ОбновлениеИнформационнойБазы»

Откройте список общих модулей — типовые имена подсистем БСП узнаваемы сразу

Раздел «Администрирование»Настройки обмена, печати, файлов, версионирования

Большинство пунктов этого раздела — интерфейс подсистем БСП

Подсистемы в конфигуратореВетка «СтандартныеПодсистемы» и смежные

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

Как БСП используется в типовых конфигурациях

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

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

bsl
// Получение представления предмета для печатной формы
Представление = ОбщегоНазначения.ПредметСтрокой(СсылкаНаДокумент);

// Проверка роли у текущего пользователя
Если Пользователи.ЭтоПолноправныйПользователь() Тогда
	// ...
КонецЕсли;

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

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

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

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

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

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

Обновление БСП и доработанных конфигураций

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

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

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

Когда БСП использовать, а когда — собственный механизм

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

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

Как выбрать подход

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

Сравнение вариантов

Полное внедрение БСП

Подходит для новых конфигураций с длительным жизненным циклом; ограничение — требует следования стандартам и аккуратного обновления

Выборочное внедрение подсистем

Оптимально для существующих конфигураций; ограничение — нужно отслеживать зависимости между подсистемами

Собственная разработка без БСП

Допустимо для малых изолированных решений; ограничение — вся функциональность и её поддержка ложатся на вашу команду

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

После внедрения или обновления полезно пройти контрольные точки. Это занимает немного времени и позволяет обнаружить проблемы до того, как с ними столкнутся пользователи.

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

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

Первый запуск после обновления
Норма

Обработчики обновления отрабатывают, версия конфигурации в информации о программе актуальна

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

Ошибки обработчиков, зависание на этапе обновления, сообщения о незавершённом обновлении

Работа с пользователями и ролями
Норма

Пользователи входят, права применяются согласно ролям

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

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

Печатные формы и файлы
Норма

Печать формируется, файлы прикрепляются и открываются

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

Пустые печатные формы, ошибки при сохранении или чтении вложений

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

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

Частые вопросы о БСП в 1С

БСП — это отдельная программа, которую нужно покупать?

Нет. БСП входит в состав поставки типовых конфигураций и доступна как отдельная конфигурация-библиотека для разработчиков в рамках партнёрских и подписочных условий фирмы «1С». Отдельной прикладной программой для ведения учёта она не является.

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

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

Чем БСП отличается от технологической платформы 1С?

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

Что делать, если доработка требует изменить типовой модуль БСП?

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

Подходит ли БСП для разработки мобильных или узкоспециализированных решений?

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

Как узнать, какая версия БСП используется в конфигурации?

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

Итог

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

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