Переход с 1С:Управление производственным предприятием (УПП) на 1С:ERP Управление предприятием — сложный процесс. Часто возникает ситуация, когда обе системы должны работать параллельно: например, производство и регламентированный учет ведутся в УПП, а казначейство и закупки уже перенесены в ERP. В таких случаях критически важно настроить стабильный обмен данными.
В этой статье мы подробно разберем, существуют ли типовые механизмы интеграции между этими конфигурациями, какой формат обмена выбрать и как включить скрытые настройки в УПП для работы с современными протоколами.
При планировании интеграции, когда необходимо заранее продумать формирование схемы обменов, перед нами встает выбор технологии. Рассмотрим два основных подхода, обсуждаемых в профессиональном сообществе:
Это классический подход "точка-точка", для реализации которого используется универсальный обмен данными в формате XML. Мы пишем правила, которые жестко описывают, как объект из базы-источника преобразуется в объект базы-приемника. Вся логика находится внутри правил.
Это современный стандарт обмена через универсальный формат. Система выгружает данные в промежуточный формат XDTO, а принимающая сторона читает их оттуда.
Для долгосрочного "постоянного" обмена, как правило, предпочтительнее использовать формат Enterprise Data, так как он поддерживается в ERP "из коробки" и является стандартом де-факто для современных решений 1С.
Многие разработчики считают, что между УПП и ERP нет типового обмена. Однако, если внимательно изучить возможности конфигураций, можно обнаружить встроенные механизмы, которые просто нужно правильно активировать. Разберем по шагам, как настроить типовую синхронизацию через формат EnterpriseData.
Главная сложность заключается в том, что УПП — конфигурация на обычных формах, и современные механизмы БСП (Библиотеки Стандартных Подсистем) в ней внедрены фрагментарно.
Для начала нам необходимо включить поддержку механизмов платформы 8.2 и выше внутри логики УПП. Без этого нужный план обмена будет недоступен или невидим в пользовательском режиме.
В конфигураторе этому механизму соответствует план обмена с именем:
СинхронизацияДанныхЧерезУниверсальныйФормат
Важно: УПП поддерживает формат Enterprise Data версий 1.5–1.8. Несмотря на то, что современная ERP работает с версиями 1.16 и выше, механизмы обратной совместимости позволяют настроить обмен. ERP "умеет" выгружать данные в более старых форматах.
В ERP настройка производится стандартным способом через помощник настройки синхронизации данных.
Обратим внимание, что ERP предлагает именно вариант через EnterpriseData. Это подтверждает, что разработчики фирмы 1С предусмотрели этот сценарий перехода.
Для передачи данных между базами нам потребуется выбрать транспорт. В типовом сценарии для связки УПП-ERP доступны следующие варианты:
При тестировании (как указано в обсуждении) обмен через FTP и локальную папку работает стабильно. Однако стоит учитывать, что файловый обмен имеет недостатки в скорости и может вызывать блокировки файлов при интенсивной работе.
Нюанс УПП: В старой конфигурации УПП (редакция 1.3) могут отсутствовать современные варианты подключения, такие как прямое подключение через COM или Web-сервис в том виде, как это реализовано в свежих БСП. Часто приходится ограничиваться обменом через файлы.
Несмотря на то, что мы настроили "трубу" для передачи данных, содержимое этой трубы потребует серьезной доработки. Проанализируем основные проблемы, с которыми придется столкнуться.
Архитектура УПП и ERP принципиально разная.
В УПП широко используются регистры накопления (например, "Партии товаров на складах"), которые формируются при проведении документа.
В ERP используется РАУЗ (в новой инкарнации) и механизмы отложенного проведения. Прямое сопоставление документов "один в один" часто невозможно.
Поскольку УПП больше не развивается активно, встроенные в неё правила конвертации (XDTO-пакеты) устаревают. При передаче новых объектов из ERP в УПП (если ERP обновилась, а УПП нет) могут возникать ошибки валидации формата. Вам придется вручную обновлять правила регистрации и конвертации в КД 3.0.
Организовывать полноценный двусторонний обмен документами — рискованная затея. Из-за различий в учете себестоимости, статусах и логике проведения, документ, пришедший из ERP в УПП (или наоборот), может "сломать" учет в базе-приемнике.
Рекомендация: Используйте стратегию "Мастер-системы". Например, НСИ и Закупки ведутся только в ERP и мигрируют в УПП. Производство ведется в УПП и выгружается в ERP. Избегайте ситуаций, когда один и тот же документ редактируется пользователями в обеих базах.
Даже при использовании типового плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат, вам, скорее всего, потребуется дорабатывать правила в конфигурации Конвертация данных 3.0.
Вам нужно будет:
Пример того, как может выглядеть код в модуле менеджера обмена для дозаполнения реквизитов при получении данных (псевдокод для понимания логики КД 3.0):
// Событие: ПриПолученииДанных
// Пример адаптации входящих данных из формата EnterpriseData в объект УПП
Если ДанныеXDTO.Свойство("SomeNewField") И ТипЗнч(Объект) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// В ERP есть поле SomeNewField, которого нет в УПП.
// Мы можем записать его в комментарий или дополнительное свойство
Объект.Комментарий = Объект.Комментарий + " [Инфо из ERP: " + ДанныеXDTO.SomeNewField + "]";
КонецЕсли;
Сделать постоянный обмен между 1С:ERP и 1С:УПП можно на типовых механизмах. Для этого:
Помните, что эта задача требует высокой квалификации разработчика, так как объединяет в себе знание архитектуры двух очень разных систем и технологий XDTO/EnterpriseData.