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

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

БТС 1С: что это и зачем нужна Библиотека технологии сервиса

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

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

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

Наиболее известное применение БТС — сервис 1С:Фреш, где типовые конфигурации (Бухгалтерия, Управление нашей фирмой и другие) работают в режиме облачного сервиса. Однако БТС может использоваться и в частных облаках: франчайзи, хостинг-провайдеры и крупные компании строят на ней собственные сервисы.

Что входит в состав БТС и какие задачи она решает

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

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

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

Чем БТС отличается от БСП

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

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

КритерийБСПБТС
НазначениеБазовая функциональность любой конфигурацииРабота конфигурации в модели сервиса (SaaS)
Ключевые механизмыПользователи, права, отчёты, обменыРазделение данных, абоненты, очередь заданий
Когда обязательнаПрактически всегда в новых разработкахТолько при построении облачного сервиса
ЗависимостиПлатформа 1С:ПредприятиеПлатформа + БСП соответствующей версии

Как устроено разделение данных

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

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

Безопасный режим и программный интерфейс

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

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

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

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

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

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

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

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

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

Когда БТС нужна, а когда нет

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

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

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

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

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

Как проверить, что сервис работает корректно

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

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

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

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

Видны только данные своей области

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

Отображаются записи других абонентов или ошибки разделения

Выполнение регламентных операций
Норма

Задания стоят в очереди и выполняются с привязкой к области

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

Задания не создаются, зависают или выполняются без контекста

Создание нового абонента через менеджер сервиса
Норма

Область данных создаётся, пользователь получает доступ

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

Ошибки обмена сообщениями, абонент не активируется

FAQ: частые вопросы о БТС 1С

БТС — это отдельная конфигурация, которую нужно купить?

Нет. БТС — это библиотека (набор подсистем), которая встраивается внутрь вашей конфигурации на этапе разработки. Она не является самостоятельным прикладным решением и не работает отдельно от прикладной конфигурации и БСП.

Можно ли добавить БТС в уже существующую конфигурацию?

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

Обязательна ли БТС для публикации в 1С:Фреш?

Да, соответствие требованиям технологии сервиса — обязательное условие публикации приложения в 1С:Фреш. Конфигурация должна корректно работать в разделённом режиме и пройти проверку по регламенту сервиса.

Чем разделение данных отличается от RLS?

RLS ограничивает доступ на уровне прав пользователя внутри общих данных, а разделение данных физически (на уровне платформы) изолирует записи разных абонентов. RLS подходит для филиалов одной компании, разделение — для независимых клиентов сервиса.

Замедляет ли БТС работу конфигурации?

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

Итог

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

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