Как организовать постоянный обмен данными между 1С:ERP и 1С:УПП?

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

Переход с 1С:Управление производственным предприятием (УПП) на 1С:ERP Управление предприятием — сложный процесс. Часто возникает ситуация, когда обе системы должны работать параллельно: например, производство и регламентированный учет ведутся в УПП, а казначейство и закупки уже перенесены в ERP. В таких случаях критически важно настроить стабильный обмен данными.

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

Выбор технологии обмена: XML или Enterprise Data?

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

  1. Конвертация данных 2.1 (КД 2.1) — Обмен через XML

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

    • Плюсы: Можно реализовать любую, даже самую нестандартную логику.
    • Минусы: При обновлении ERP (структура которой часто меняется) правила придется переписывать, даже если используется автоматизированная регистрация изменений для XML обмена. Высокая зависимость систем друг от друга.
  2. Конвертация данных 3.0 (КД 3.0) — Формат Enterprise Data (ED)

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

    • Плюсы: Слабая связность систем. Если ERP обновится, формат обмена (Interface) скорее всего останется прежним, и обмен не сломается.
    • Минусы: В старых конфигурациях (вроде УПП) поддержка этого формата может быть ограничена или скрыта.

Для долгосрочного "постоянного" обмена, как правило, предпочтительнее использовать формат Enterprise Data, так как он поддерживается в ERP "из коробки" и является стандартом де-факто для современных решений 1С.

Типовой механизм обмена: скрытые настройки УПП

Многие разработчики считают, что между УПП и ERP нет типового обмена. Однако, если внимательно изучить возможности конфигураций, можно обнаружить встроенные механизмы, которые просто нужно правильно активировать. Разберем по шагам, как настроить типовую синхронизацию через формат EnterpriseData.

Главная сложность заключается в том, что УПП — конфигурация на обычных формах, и современные механизмы БСП (Библиотеки Стандартных Подсистем) в ней внедрены фрагментарно.

Шаг 1. Активация функционала в 1С:УПП

Для начала нам необходимо включить поддержку механизмов платформы 8.2 и выше внутри логики УПП. Без этого нужный план обмена будет недоступен или невидим в пользовательском режиме.

  1. Зайдем в настройки параметров учета или константы (меню Операции — Константы).
  2. Найдем и установим флаг Использовать обмен для конфигураций на 8.2.
  3. После установки этого флага в меню Сервис должен появиться пункт Обмен данными с продуктами на платформе 8.2 (название может незначительно отличаться в разных релизах, ищите ключевые слова "на платформе 8.2").

В конфигураторе этому механизму соответствует план обмена с именем:

СинхронизацияДанныхЧерезУниверсальныйФормат

Важно: УПП поддерживает формат Enterprise Data версий 1.5–1.8. Несмотря на то, что современная ERP работает с версиями 1.16 и выше, механизмы обратной совместимости позволяют настроить обмен. ERP "умеет" выгружать данные в более старых форматах.

Шаг 2. Настройка на стороне 1С:ERP

В ERP настройка производится стандартным способом через помощник настройки синхронизации данных.

  1. Перейдем в раздел НСИ и Администрирование — Синхронизация данных.
  2. Установим флаг Синхронизация данных.
  3. Нажмем Настройки синхронизации данных и выберем Новая синхронизация.
  4. В списке доступных конфигураций выберем пункт: Управление производственным предприятием, редакция 1.3 (EnterpriseData).

Обратим внимание, что ERP предлагает именно вариант через EnterpriseData. Это подтверждает, что разработчики фирмы 1С предусмотрели этот сценарий перехода.

Настройка транспорта сообщений

Для передачи данных между базами нам потребуется выбрать транспорт. В типовом сценарии для связки УПП-ERP доступны следующие варианты:

При тестировании (как указано в обсуждении) обмен через FTP и локальную папку работает стабильно. Однако стоит учитывать, что файловый обмен имеет недостатки в скорости и может вызывать блокировки файлов при интенсивной работе.

Нюанс УПП: В старой конфигурации УПП (редакция 1.3) могут отсутствовать современные варианты подключения, такие как прямое подключение через COM или Web-сервис в том виде, как это реализовано в свежих БСП. Часто приходится ограничиваться обменом через файлы.

Ограничения и подводные камни

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

1. Различия в модели данных

Архитектура УПП и ERP принципиально разная.
В УПП широко используются регистры накопления (например, "Партии товаров на складах"), которые формируются при проведении документа.
В ERP используется РАУЗ (в новой инкарнации) и механизмы отложенного проведения. Прямое сопоставление документов "один в один" часто невозможно.

2. Версионирование формата

Поскольку УПП больше не развивается активно, встроенные в неё правила конвертации (XDTO-пакеты) устаревают. При передаче новых объектов из ERP в УПП (если ERP обновилась, а УПП нет) могут возникать ошибки валидации формата. Вам придется вручную обновлять правила регистрации и конвертации в КД 3.0.

3. Двусторонний обмен

Организовывать полноценный двусторонний обмен документами — рискованная затея. Из-за различий в учете себестоимости, статусах и логике проведения, документ, пришедший из ERP в УПП (или наоборот), может "сломать" учет в базе-приемнике.
Рекомендация: Используйте стратегию "Мастер-системы". Например, НСИ и Закупки ведутся только в ERP и мигрируют в УПП. Производство ведется в УПП и выгружается в ERP. Избегайте ситуаций, когда один и тот же документ редактируется пользователями в обеих базах.

Практический пример доработки правил (КД 3.0)

Даже при использовании типового плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат, вам, скорее всего, потребуется дорабатывать правила в конфигурации Конвертация данных 3.0.

Вам нужно будет:

  1. Выгрузить структуру метаданных из УПП и ERP.
  2. Загрузить их в КД 3.0.
  3. Загрузить типовые правила конвертации (они обычно идут в комплекте поставки ERP в папке с шаблонами).
  4. Вносить изменения в модуль менеджера обмена.

Пример того, как может выглядеть код в модуле менеджера обмена для дозаполнения реквизитов при получении данных (псевдокод для понимания логики КД 3.0):


// Событие: ПриПолученииДанных
// Пример адаптации входящих данных из формата EnterpriseData в объект УПП

Если ДанныеXDTO.Свойство("SomeNewField") И ТипЗнч(Объект) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    // В ERP есть поле SomeNewField, которого нет в УПП.
    // Мы можем записать его в комментарий или дополнительное свойство
    Объект.Комментарий = Объект.Комментарий + " [Инфо из ERP: " + ДанныеXDTO.SomeNewField + "]";
КонецЕсли;

Заключение

Сделать постоянный обмен между 1С:ERP и 1С:УПП можно на типовых механизмах. Для этого:

  1. В УПП включите константу Использовать обмен для конфигураций на 8.2.
  2. Используйте план обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
  3. В ERP выбирайте предустановку для УПП ред. 1.3.
  4. Будьте готовы к глубокому изучению Конвертации данных 3.0 для адаптации правил под специфику вашего предприятия.

Помните, что эта задача требует высокой квалификации разработчика, так как объединяет в себе знание архитектуры двух очень разных систем и технологий XDTO/EnterpriseData.

← На главную