Как настроить обмен данными между двумя идентичными конфигурациями 1С:ERP 2.4 с использованием фильтров?

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

В процессе эксплуатации систем на базе 1С:ERP часто возникает задача разделения данных или передачи части информации в другую, идентичную базу. Например, это может быть необходимо для выделения отдельного юридического лица в самостоятельную информационную базу или для передачи данных в управленческий контур. В данной статье мы подробно разберем, как реализовать периодическую выгрузку данных из одной 1С:ERP 2.4 в другую с возможностью гибкой фильтрации по организациям, периодам и видам документов.

Выбор оптимального механизма обмена данными

Перед тем как приступать к кодингу, проанализируем доступные механизмы, которые предлагает платформа 1С и типовая конфигурация ERP 2.4. Выбор метода зависит от того, насколько гибко нужно управлять составом данных и насколько часто будут происходить обновления конфигурации.

  1. РИБ (Распределенные информационные базы): Рассмотрим этот вариант первым, так как он является штатным для идентичных конфигураций. РИБ позволяет «из коробки» настроить фильтрацию по организациям. Однако у него есть критический недостаток для независимых баз: РИБ жестко синхронизирует структуру метаданных. Если вы планируете вносить изменения в конфигурацию одной базы, не обновляя другую, РИБ вам не подойдет.
  2. EnterpriseData (Синхронизация через универсальный формат): Это современный стандарт обмена в 1С. Мы рекомендуем этот метод, так как он менее чувствителен к различиям в версиях конфигураций (например, если одна база обновится до ERP 2.5, а другая останется на 2.4). В ERP 2.4 уже встроены типовые планы обмена, работающие по этому протоколу.
  3. Конвертация данных 2.0 (КД 2.0): Классический метод обмена через XML-правила. Он дает максимальную гибкость. Если вам нужно прописать сложную логику, например: «выгружать только проведенные счета, у которых заполнен реквизит Проект», то КД 2.0 будет лучшим выбором.

Реализация фильтрации через планы обмена

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

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

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

Пример программного кода для фильтрации регистрации документа по организации в модуле подписки на событие ПриЗаписи:


Процедура ПередЗаписьюДокументаДляОбмена(Источник, Отказ) Экспорт
    // Проверяем, что объект не помечен на удаление и соответствует организации
    Если Источник.ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    Если Источник.Организация <> Справочники.Организации.НайтиПоРеквизиту("ИНН", "7700000000") Тогда
        // Отменяем регистрацию для данного узла обмена
        // Здесь должна быть логика работы с планами обмена
    КонецЕсли;
КонецПроцедуры

Настройка фильтров при выгрузке (EnterpriseData)

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

Перейдем в раздел Администрирование — Синхронизация данных. При настройке нового обмена в мастере настройки есть этап «Настроить правила отправки и получения данных». Именно здесь мы задаем:

Однако, как справедливо заметили участники обсуждения, если нужно исключить конкретные типы документов, которых нет в стандартном фильтре, придется дорабатывать «Правила отправки». Для этого используется конфигурация «Конвертация данных 3.0», где в правилах обработки данных (ПОД) прописываются условия выгрузки.

Синхронизация по уникальным идентификаторам (GUID)

Проанализируем важнейший аспект обмена между идентичными ERP: сопоставление справочников. Если базы создавались независимо (не из одного бэкапа), то одни и те же контрагенты или номенклатура будут иметь разные внутренние идентификаторы (GUID).

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

  1. Настроить «Поля поиска» в правилах обмена (например, поиск по ИНН/КПП для контрагентов и по Артикулу для номенклатуры).
  2. Перед первым запуском обмена провести аудит НСИ и, по возможности, синхронизировать GUID ключевых справочников обработками.

Подводные камни и вопросы сопровождения

Выясним, почему задачи обмена часто недооцениваются по стоимости и времени. Рассмотрим типичные проблемы, которые возникают после запуска системы:

1. Нарушение ссылочной целостности. Если мы настроили фильтр «Выгружать только проведенные документы», может возникнуть ситуация, когда документ выгрузился, а его основание (например, «Заказ клиента», который не проведен) — нет. В принимающей базе мы получим «битую» ссылку или документ, который невозможно перепровести.

2. Изменения задним числом. Если пользователь в базе-источнике изменит документ за прошлый период (который исключен из обмена), данные в базах разойдутся. Проанализируем это: суммы в отчетах не сойдутся, и бухгалтерия будет тратить часы на поиск причин. Рекомендуется устанавливать дату запрета редактирования синхронно в обеих базах.

3. Регистрация изменений (очередь). В ERP 2.4 при интенсивной работе таблица регистрации изменений (ПланОбмена.ИмяПлана.Изменения) может разрастаться до огромных размеров, что замедлит работу всей системы. Необходимо мониторить количество сообщений в очереди и вовремя проводить очистку или квитирование (подтверждение) приема данных.

Заключение и рекомендации по стоимости

Исходя из анализа форума и технических особенностей ERP 2.4, настройка такого обмена — это не просто «нажать две кнопки». Реальная работа включает аудит баз, написание правил фильтрации и тестирование. Мы рекомендуем закладывать в бюджет не менее 30–40 часов рабочего времени программиста для качественной реализации, включающей обработку исключений и сопоставление справочников. Помните, что грамотно настроенная фильтрация на уровне регистрации объектов (ПРО) значительно экономит трафик и ресурсы серверов в будущем.

← На главную