← На главную
При разделении единой информационной базы 1С на несколько независимых баз по организациям часто используется стандартная обработка Выгрузка и загрузка данных XML. Однако типовая проблема, с которой сталкиваются специалисты, заключается в том, что в файл выгрузки попадают абсолютно все элементы справочников (контрагенты, номенклатура, договоры), даже если в документах и отборах указана только одна конкретная организация.
Разберем причины такого поведения платформы, рассмотрим правильный алгоритм настройки обработки, а также изучим альтернативные и более надежные способы разделения информационных баз.
Почему в XML выгружаются лишние элементы справочников
Проанализируем механику работы обработки ВыгрузкаЗагрузкаДанныхXML. Избыточные данные попадают в выгрузку по двум основным причинам:
- Активен основной флаг полной выгрузки объекта. В дереве метаданных обработки есть две колонки: левая (основной признак выгрузки таблицы целиком) и правая (колонка «При необходимости» / «Выгружать по ссылке»). Если у справочника отмечен левый флаг, программа считывает всю таблицу подряд, игнорируя то, что для других объектов включен режим выгрузки только по ссылкам.
- Транзитивные ссылочные связи. Если в выгрузку случайно попали общие регистры сведений, константы или документы, содержащие ссылки на элементы других организаций, обработка принудительно включает эти справочники в XML-пакет для сохранения ссылочной целостности.
Пошаговая настройка обработки «Выгрузка и загрузка данных XML»
Рассмотрим, как правильно сконфигурировать дерево выгрузки, чтобы перенести только нужные документы и связанные с ними справочники:
- Снимаем основные флаги со всех справочников. Полностью убираем левые отметки со всех справочников, кроме самого справочника
Организации. Для объекта Организации устанавливаем отбор по значению нужной нам организации. - Настраиваем отборы на документах. Отмечаем флажками необходимые виды документов и устанавливаем для них отбор
Организация Равно [Наша Организация]. - Включаем выгрузку движений. Устанавливаем флаг Выгружать с документами все его движения, чтобы не переносить пустые регистры и не выгружать их отдельно.
- Активируем режим выгрузки по ссылке. Для зависимых справочников (
Контрагенты, Номенклатура, ДоговорыКонтрагентов, Склады и др.) включаем отметки только в колонке «При необходимости» (или нажимаем кнопку «Определить данные, выгружаемые по ссылке»). В этом случае в файл попадут исключительно те элементы, на которые ссылаются отобранные документы. - Исключаем независимые регистры. Снимаем отметки с независимых регистров сведений и регистров накопления, не привязанных к регистраторам выбранной организации, чтобы исключить вытягивание чужих данных по ссылочным цепочкам.
Альтернативный способ 1: Метод очистки копии базы («Отсечение лишнего»)
Если требуется разовое разделение базы, выгрузка через XML может быть сопряжена с потерей общих настроек (курсы валют, производственные календари, учетная политика, шаблоны проводок). В таком случае проще и надежнее пойти путем удаления ненужных данных из полной копии:
- Создаем полную копию рабочей информационной базы.
- Запускаем обработку группового удаления данных или очистки по организации (помечаем на удаление все документы по всем организациям, кроме целевой).
- Выполняем стандартное удаление помеченных объектов. При этом автоматически удалятся только те документы и неиспользуемые элементы справочников, которые не связаны с оставшейся организацией.
- Проверяем оставшиеся данные и тестируем работоспособность базы.
Альтернативный способ 2: Использование механизма РИБ с отбором
Для типовых конфигураций на базе БСП (1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP, 1С:КА) наиболее корректным и быстрым способом является создание начального образа распределенной информационной базы (РИБ):
- В базе-источнике создаем узел обмена РИБ с фильтром по организации и указываем отбор по нужной организации.
- Нажимаем Создать начальный образ информационной базы. Платформа сама корректно выгрузит всю нормативно-справочную информацию, системные регистры и документы выбранной организации.
- Открываем созданную дочернюю базу и программно отвязываем ее от главного узла, превращая в полностью автономную. Для этого воспользуемся внешней обработкой или выполним следующую команду:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После завершения разделения любым из способов рекомендуется выполнить процедуру Тестирование и исправление информационной базы в конфигураторе с пересчетом итогов регистров накопления и бухгалтерии.