Как настроить синхронизацию контрагентов и партнеров из УПП в ERP через Конвертацию данных 2.0?

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

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

Понимание архитектуры ERP: почему нельзя просто перенести справочник в справочник?

В ERP заложена гибкая логика: один Партнер (например, крупный холдинг) может объединять несколько Контрагентов (юридических лиц, входящих в этот холдинг). Прежде чем приступать к написанию правил, проанализируем настройки целевой базы ERP. Зайдем в раздел НСИ и администрирование -> Настройка НСИ и разделов -> CRM и маркетинг и проверим опцию Независимые партнеры и контрагенты:

  1. Если опция выключена, система поддерживает связь «один-к-одному». В этом случае для каждого контрагента всегда создается ровно один партнер с тем же наименованием.
  2. Если опция включена, связь становится «один-ко-многим». Это требует более строгого подхода к синхронизации, так как автоматические механизмы платформы могут не сработать.

Важно помнить, что при использовании «Универсального обмена данными в формате XML» в ERP объект записывается с установленным флагом ОбменДанными.Загрузка = Истина. В этом режиме стандартные проверки и обработчики (такие как автоматическое создание партнера при записи контрагента) отключаются. Поэтому наша задача — настроить правила так, чтобы и партнер, и контрагент создавались явно.

Настройка ПКО для синхронизации «Партнеров»

Первым делом создадим Правило Конвертации Объектов (ПКО) для партнеров. Источником в УПП будет выступать справочник Контрагенты, а приемником в ERP — справочник Партнеры.

Рассмотрим основные моменты настройки этого ПКО:

Пример настройки сопоставления типов отношений в ПКС (Правила Конвертации Свойств):


// В ПКС для свойства "Клиент"
Значение = Источник.Покупатель;

// В ПКС для свойства "Поставщик"
Значение = Источник.Поставщик;

Настройка ПКО для «Контрагентов» и связывание с «Партнером»

Теперь создадим второе ПКО для Контрагентов (Источник: Контрагенты УПП -> Приемник: Контрагенты ERP). Самый ответственный момент здесь — заполнение реквизита Партнер в карточке контрагента.

Разберем по шагам, как это сделать:

  1. В списке свойств ПКО Контрагентов найдем свойство Партнер.
  2. В колонке «Правило» выберем созданное ранее ПКО для Партнеров.
  3. В обработчике ПередВыгрузкой для этого свойства укажем:

Значение = Источник; // Передаем ссылку на текущего контрагента УПП в правило поиска партнера

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

Оптимизация при больших объемах данных (280 000 записей)

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

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

2. Использование Пюре-кода для поиска.
Если поиск по ИНН неизбежен, попробуйте кэшировать данные. Однако в рамках КД 2.0 лучше всего работает грамотная настройка полей поиска в ПКО. Убедитесь, что для полей поиска установлены соответствующие индексы в базе данных.

3. Порционная выгрузка.
Не пытайтесь выгрузить 280 000 записей в один XML-файл. Это приведет к переполнению оперативной памяти. Разделите выгрузку на части (например, по 20-50 тысяч объектов), используя отборы в обработке выгрузки (по коду, по группам или по дате изменения).

Обработка физлиц и розничных покупателей

Посмотрим на ситуацию с розничными продажами. В ERP часто используется один предопределенный партнер «Розничный покупатель» для множества контрагентов-физлиц. Чтобы не плодить сотни тысяч лишних записей в справочнике Партнеры, в ПКО можно прописать условие:


Если Источник.ЭтоФизЛицо Тогда
    ИмяПКО = "ПредопределенныйПартнерРозничныйПокупатель";
    // Или программно находим ссылку на нужного партнера
КонецЕсли;

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

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

Таким образом, раздельный перенос партнеров и контрагентов с явным указанием правил сопоставления — это наиболее надежный и контролируемый метод миграции данных из УПП в ERP. Мы проанализировали основные риски, связанные с режимом загрузки, и определили оптимальную стратегию связывания объектов через КД 2.0.

← На главную