Как настроить выгрузку и загрузку данных между идентичными конфигурациями БП 3.0 с отбором по организации и периоду?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Способ 1. Использование стандартной обработки «Выгрузка и загрузка данных XML»

Рассмотрим самый очевидный и доступный инструмент — универсальную обработку ВыгрузкаЗагрузкаДанныхXML.epf. Этот инструмент позволяет передавать данные между базами с идентичной структурой метаданных без написания правил обмена.

Разберем алгоритм работы с этой обработкой:

  1. Запустим обработку в базе-источнике. На вкладке «Выгрузка» выберем необходимые типы документов.
  2. Для установки фильтра по организации нам необходимо зайти в настройки каждого выбранного объекта. Важный нюанс: в стандартной версии обработки для управляемых форм отбор часто приходится устанавливать для каждого типа метаданных отдельно. Если у вас 15 видов документов, придется 15 раз указать фильтр по реквизиту Организация.
  3. Для упрощения процесса проанализируем возможность использования раздела «Дополнительные объекты для выгрузки». Здесь мы можем добавить объекты запросом, где в условии ГДЕ сразу пропишем нужную организацию и период.
  4. После настройки нажмем кнопку «Выгрузить данные» и укажем путь к файлу XML.
  5. В базе-приемнике откроем ту же обработку на вкладке «Загрузка» и выберем полученный файл.

Посмотрим на технические ограничения: стандартная обработка под управляемые формы может не иметь кнопки «Скопировать отбор на все объекты». Как отмечалось в обсуждении, если требуется массовая установка фильтров, можно либо доработать форму обработки, добавив цикл обхода дерева объектов, либо использовать версию обработки для обычных форм.

Способ 2. Создание распределенной информационной базы (РИБ) по организации

Проанализируем ситуацию, когда данных очень много или структура базы «замусорена». В этом случае создание обмена через механизм РИБ может оказаться более стабильным и быстрым решением. Механизм РИБ изначально спроектирован для синхронизации идентичных конфигураций и корректно обрабатывает предопределенные данные и ссылки.

Выполним следующие шаги для настройки:

  1. Перейдем в раздел «Администрирование» — «Синхронизация данных».
  2. Создадим новую синхронизацию типа «Распределенная информационная база с фильтром по организации».
  3. В настройках укажем конкретную организацию, данные которой должны попасть в подчиненный узел.
  4. Сформируем начальный образ подчиненного узла.
  5. Выполним первый обмен. После этого все документы по выбранной организации и связанные с ними справочники будут перенесены.

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

Способ 3. Синхронизация через универсальный формат EnterpriseData

В современных версиях БП 3.0 реализован штатный механизм синхронизации между идентичными конфигурациями. Это наиболее «цивилизованный» способ, не требующий внешних файлов обработки.

Разберем по шагам настройку в интерфейсе:

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

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

Способ 4. Использование «Инструментов разработчика» (ИР)

Если вы опытный специалист, выясним, как ускорить процесс с помощью консоли инструментов разработчика. В составе этих инструментов есть «Многотабличный редактор» или «Подбор и обработка объектов».

Проанализируем алгоритм работы в ИР:

  1. Откроем «Подбор и обработку объектов» в многотабличном режиме.
  2. Выделим все необходимые типы документов в дереве метаданных.
  3. Применим «Сложный фильтр» сразу ко всем выделенным таблицам. Это делается буквально за несколько кликов: выбираем поле Организация, вид сравнения Равно и нужное значение.
  4. После того как объекты подобраны, используем функцию выгрузки в XML.

Этот способ значительно экономит время по сравнению с ручной настройкой стандартной обработки XML.

Важные технические нюансы и рекомендации

При любом способе обмена данными между идентичными базами необходимо учитывать следующие критические моменты:

1. Идентификация объектов (GUID): Стандартные механизмы обмена (особенно через XML) сопоставляют объекты по их внутреннему уникальному идентификатору (GUID). Если в базе-приемнике уже есть та же организация, но созданная вручную, у нее будет другой GUID. Это приведет к созданию дубля организации при загрузке. Чтобы избежать этого, перед началом обмена убедитесь, что GUID ключевых справочников совпадает, или используйте типовую обработку «Поиск и замена дублей» после загрузки.

2. Регистры сведений и константы: Помните, что не все объекты в 1С имеют реквизит Организация. Например, многие настройки учетной политики или константы не связаны с организацией напрямую. При массовой установке фильтров обработка может пропустить такие объекты или выдать ошибку. Рекомендуется выгружать справочную информацию (НСИ) без жесткого фильтра по периоду, чтобы не потерять ссылки в документах.

3. Доработка обработки под Управляемые Формы: Если вы решили использовать стандартную обработку ВыгрузкаЗагрузкаДанныхXML, но вам не хватает функционала массовой установки отбора, вы можете добавить в код формы следующий фрагмент для автоматизации:


Для Каждого СтрокаДерева Из ДеревоОбъектов.Строки Цикл
    Если СтрокаДерева.Выбран Тогда
        // Здесь логика поиска реквизита "Организация" в метаданных 
        // и установка значения отбора в структуру настроек
    КонецЕсли;
КонецЦикла;

4. Режим работы: Как отмечалось в дискуссии, некоторые старые версии обработок требуют запуска в режиме «Толстый клиент». Для БП 3.0 это может потребовать включения возможности изменения конфигурации или использования расширений для запуска обычных форм в управляемом приложении.

Подводя итог, можно сказать: для разового и быстрого переноса лучше всего подходит EnterpriseData или РИБ, так как они штатно поддерживают фильтрацию по организации. Если же требуется гибкий выбор конкретных наборов данных, оптимальным выбором станут Инструменты разработчика.

← На главную