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

Администрирование · 10 мин

Как создать области данных в 1С

Как создать области данных в 1С: настройка разделителей, менеджер сервиса, работа в режиме SaaS, типичные ошибки и проверка результата.

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

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

Материал ориентирован на администраторов и разработчиков, которые разворачивают сервис 1С:Фреш, собственный SaaS на базе Библиотеки технологии сервиса (БТС) или просто хотят понять механику разделённых баз.

Что такое область данных и когда она нужна

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

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

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

Подготовка конфигурации: разделители и их состав

Прежде чем создавать области, убедитесь, что конфигурация к этому готова. Откройте конфигуратор и проверьте ветку «Общие → Общие реквизиты». У разделителя (в типовых решениях это обычно «ОбластьДанныхОсновныеДанные» и «ОбластьДанныхВспомогательныеДанные») должно быть установлено свойство «Разделение данных», а в состав разделителя включены нужные объекты метаданных.

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

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

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

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

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

Порядок создания области в менеджере сервиса
  1. 1
    Откройте базу менеджера сервиса под учётной записью администратора сервиса
  2. 2
    Создайте абонента и привяжите его к приложению (рабочей базе)
  3. 3
    Дождитесь выполнения задания очереди «Создание области» — статус виден в карточке абонента
  4. 4
    Проверьте, что область появилась в списке областей приложения и находится в статусе «Используется»
  5. 5
    Выполните тестовый вход в область под пользователем абонента

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

Создание области вручную и программно

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

Программно это делается через стандартные механизмы БСП/БТС. Ключевые операции — установка значения разделителя для сеанса и вызов обработчиков заполнения области:

bsl
// Установка области для текущего сеанса
УстановитьМонопольныйРежим(Истина);
ПараметрыСеанса.ЗначениеРазделителя... // через РаботаВМоделиСервиса
РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, НомерОбласти);
// Запуск первоначального заполнения области
РаботаВМоделиСервиса.ЗаполнениеОбластиДанных(НомерОбласти);

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

Проверка результата

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

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

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

Статус области в регистре «Области данных»
Норма

Статус «Используется» (или аналогичный рабочий)

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

Статус «Ошибка подготовки» или длительное «Создаётся»

Вход пользователя в область
Норма

Сеанс открывается, интерфейс соответствует роли

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

Ошибка установки разделения сеанса

Изоляция данных
Норма

Видны только записи текущей области

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

В списках присутствуют чужие данные или списки пусты при заполненной области

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

Типичные ошибки и ограничения

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

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

Перед промышленной эксплуатацией создайте две тестовые области и проверьте на них полный цикл: создание, заполнение, обновление конфигурации, резервное копирование и удаление области. Большинство проблем SaaS-контура всплывает именно на обновлении и удалении, а не на создании.
ПЗ
Практическое замечание

Удаление и обслуживание областей

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

Для регулярного обслуживания контролируйте очередь заданий (зависшие задания блокируют создание новых областей), следите за ростом базы и периодически проверяйте области в нештатных статусах. Резервное копирование выполняется на уровне всей базы — восстановить отдельную область из общей копии штатными средствами нельзя, поэтому для критичных абонентов настраивайте индивидуальные выгрузки.

Итог

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

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

Частые вопросы

Можно ли создать области данных в обычной файловой базе?

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

Чем область данных отличается от отдельной информационной базы?

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

Почему после создания область пустая?

Чаще всего не завершились обработчики первоначального заполнения — проверьте очередь заданий и статус области в регистре «Области данных». Если задание завершилось с ошибкой, смотрите журнал регистрации, исправляйте причину и перезапускайте заполнение.

Можно ли перенести данные из области в локальную базу?

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

Сколько областей можно создать в одной базе?

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