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