Как правильно выгрузить данные по одной организации через XML и разделить базу в 1С

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

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

Почему в XML выгружаются лишние элементы справочников

Проанализируем механику работы обработки ВыгрузкаЗагрузкаДанныхXML. Избыточные данные попадают в выгрузку по двум основным причинам:

  1. Активен основной флаг полной выгрузки объекта. В дереве метаданных обработки есть две колонки: левая (основной признак выгрузки таблицы целиком) и правая (колонка «При необходимости» / «Выгружать по ссылке»). Если у справочника отмечен левый флаг, программа считывает всю таблицу подряд, игнорируя то, что для других объектов включен режим выгрузки только по ссылкам.
  2. Транзитивные ссылочные связи. Если в выгрузку случайно попали общие регистры сведений, константы или документы, содержащие ссылки на элементы других организаций, обработка принудительно включает эти справочники в XML-пакет для сохранения ссылочной целостности.

Пошаговая настройка обработки «Выгрузка и загрузка данных XML»

Рассмотрим, как правильно сконфигурировать дерево выгрузки, чтобы перенести только нужные документы и связанные с ними справочники:

  1. Снимаем основные флаги со всех справочников. Полностью убираем левые отметки со всех справочников, кроме самого справочника Организации. Для объекта Организации устанавливаем отбор по значению нужной нам организации.
  2. Настраиваем отборы на документах. Отмечаем флажками необходимые виды документов и устанавливаем для них отбор Организация Равно [Наша Организация].
  3. Включаем выгрузку движений. Устанавливаем флаг Выгружать с документами все его движения, чтобы не переносить пустые регистры и не выгружать их отдельно.
  4. Активируем режим выгрузки по ссылке. Для зависимых справочников (Контрагенты, Номенклатура, ДоговорыКонтрагентов, Склады и др.) включаем отметки только в колонке «При необходимости» (или нажимаем кнопку «Определить данные, выгружаемые по ссылке»). В этом случае в файл попадут исключительно те элементы, на которые ссылаются отобранные документы.
  5. Исключаем независимые регистры. Снимаем отметки с независимых регистров сведений и регистров накопления, не привязанных к регистраторам выбранной организации, чтобы исключить вытягивание чужих данных по ссылочным цепочкам.

Альтернативный способ 1: Метод очистки копии базы («Отсечение лишнего»)

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

  1. Создаем полную копию рабочей информационной базы.
  2. Запускаем обработку группового удаления данных или очистки по организации (помечаем на удаление все документы по всем организациям, кроме целевой).
  3. Выполняем стандартное удаление помеченных объектов. При этом автоматически удалятся только те документы и неиспользуемые элементы справочников, которые не связаны с оставшейся организацией.
  4. Проверяем оставшиеся данные и тестируем работоспособность базы.

Альтернативный способ 2: Использование механизма РИБ с отбором

Для типовых конфигураций на базе БСП (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP, 1С:КА) наиболее корректным и быстрым способом является создание начального образа распределенной информационной базы (РИБ):

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

ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

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

← На главную