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

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

Для чего нужна БСП 1С и как её использовать

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

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

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

Материал ниже объясняет, какие задачи решает библиотека, из чего она состоит, как её внедрить в собственную конфигурацию и каких ошибок стоит избегать при обновлении.

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

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

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

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

Какие задачи решает библиотека на практике

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

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

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

Нужны пользователи и праваДа, с разграничением

БСП даёт готовую модель пользователей, ролей и RLS

Планируются обменыС другими базами 1С

Подсистема обмена данными закрывает типовые сценарии

КонфигурацияОдна внутренняя обработка

Для простого инструмента БСП избыточна

КомандаНесколько разработчиков

Единые стандарты БСП упрощают совместную работу

Кому и когда стоит внедрять БСП

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

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

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

Как выбрать действие

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

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

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

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

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

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

Обновление БСП и работа с доработками

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

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

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

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

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

Отложенные обработчики
Норма

Все обработчики завершены без ошибок

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

Есть обработчики в статусе ошибки или зависшие

Права пользователей
Норма

Пользователи входят и видят свои данные

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

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

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

Документы печатаются штатно

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

Ошибки формирования макетов после обновления

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

Нет критических ошибок при полной проверке

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

Ссылки на несуществующие объекты, ошибки модулей

Типичные ошибки при работе с БСП

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

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

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

БСП и стандарты разработки 1С

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

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

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

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

БСП — это отдельная программа, в которой можно вести учёт?

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

Можно ли внедрить только одну подсистему, например присоединённые файлы?

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

Нужно ли покупать БСП отдельно?

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

Чем БСП отличается от типовой конфигурации?

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

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

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

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

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

Итог

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

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