Переход с «1С:Управление производственным предприятием» (УПП) на «1С:ERP Управление предприятием» (ERP) редко происходит мгновенно. Часто возникает ситуация, когда управленческий учет и оперативная деятельность остаются в глубоко переписанной УПП, а регламентированный учет переносится в ERP. В этом случае перед нами встает задача организации надежного, регулярного и, что самое сложное, двустороннего обмена данными. Рассмотрим подробно, какие технологии выбрать, как включить типовые механизмы и как избежать распространенных архитектурных ошибок.
Перед тем как приступать к настройке, нам необходимо определиться с технологическим стеком. В сообществе разработчиков 1С существует два основных подхода к решению этой задачи, каждый из которых имеет свои плюсы и минусы.
1. Конвертация данных 2.0 (КД2) и обмен через XML
Это классический подход, основанный на правилах обмена (файлы XML), где мы жестко прописываем соответствие структуры источника структуре приемника.
2. Конвертация данных 3.0 (КД3) и формат EnterpriseData (XDTO)
Более современный подход, основанный на использовании универсального формата обмена (EnterpriseData). Система-источник выгружает данные в стандартизированный формат, а система-приемник их читает.
Проанализировав опыт внедрений, мы рекомендуем остановиться на EnterpriseData (КД3), так как ERP активно использует этот механизм, и он обеспечивает большую стабильность при обновлениях конфигураций.
Многие разработчики считают, что в УПП нет поддержки современного формата EnterpriseData, и начинают писать обмен «с нуля». Однако это не так. Рассмотрим, как активировать скрытые возможности типовой УПП.
В конфигурации УПП (редакция 1.3) механизм обмена через универсальный формат присутствует, но он может быть не виден в интерфейсе по умолчанию. Чтобы его задействовать, выполним следующие шаги:
ИспользоватьОбменДляКонфигурацийНа82 или ИспользоватьСинхронизациюДанных.Истина.В этом пункте меню используется план обмена СинхронизацияДанныхЧерезУниверсальныйФормат. Это именно то, что нам нужно для работы с КД3.
Настройка на стороне ERP:
Синхронизация данных.При настройке мы столкнемся с техническим нюансом: разницей версий формата.
Механизм синхронизации 1С умеет договариваться. При начале обмена ERP узнает, что УПП «понимает» только версию 1.8, и будет формировать файлы выгрузки именно в этом формате. Однако здесь кроется проблема: новые объекты или реквизиты, появившиеся в ERP в версиях формата 1.9+, просто не попадут в файл выгрузки для УПП. Поэтому для полноценного двустороннего обмена нам неизбежно потребуется доработка правил регистрации и правил конвертации.
Поскольку УПП скорее всего сильно переписана («управленка остается в УПП навечно»), типовые правила обмена нам не подойдут в чистом виде. Рассмотрим алгоритм действий программиста:
1. Подготовка правил для УПП:
Нам необходимо выгрузить структуру метаданных УПП и загрузить её в конфигурацию «Конвертация данных 3.0». Там же мы создадим или загрузим типовые правила конвертации для формата EnterpriseData. Основная задача — добавить в правила маппинг (сопоставление) наших нетиповых реквизитов (например, КатегорияЗаказа, ДополнительныйМенеджер) с полями формата.
2. Расширение формата (XDTO):
Если в стандартном формате EnterpriseData нет подходящего поля для передачи ваших данных, формат нужно расширить. Мы создаем пакет XDTO расширения (AddIn), добавляем туда наши свойства. Важно понимать: этот пакет XDTO должен быть внедрен и в УПП, и в ERP.
3. Использование менеджера обмена:
В УПП обработка обмена через универсальный формат часто реализована через общие модули, такие как ОбменДаннымиXDTOСервер. Если обмен падает с ошибками при чтении файлов от новой ERP, возможно, потребуется обновление процедур чтения данных в УПП, взяв за основу более свежие версии Библиотеки Стандартных Подсистем (БСП), адаптированные под обычные формы.
Самая большая опасность, которую обсуждают эксперты — это коллизии данных при обмене в обе стороны.
Проблема UUID (ГУИД) и дублей
Если мы создадим элемент справочника «Номенклатура» в УПП и выгрузим в ERP, они синхронизируются. Но если пользователь одновременно создаст похожую номенклатуру в ERP, при обмене мы получим дубли. Типовой механизм поиска (по полям поиска, например, Артикул или Наименование) работает, но не дает 100% гарантии.
Рекомендация: Внедрение политики MDM (Master Data Management)
Чтобы избежать хаоса, мы должны жестко разграничить зоны ответственности систем:
Проблема "Задвоения оборотов" и циклические ссылки
При двустороннем обмене есть риск зацикливания: УПП выгрузила документ -> ERP загрузила, провела, зарегистрировала изменение -> ERP выгрузила обратно в УПП. Для борьбы с этим в планах обмена используются механизмы фильтрации (в КД3 это реализовано на уровне правил регистрации). Мы должны настроить правила регистрации так, чтобы документ регистрировался к отправке обратно только при изменении ключевых реквизитов, важных для системы-приемника, а не при любом перепроведении.
Автор темы отметил, что обмен через файлы (FTP/Каталог) может быть медленным. Рассмотрим альтернативу.
Для ускорения обмена можно настроить транспорт через Web-сервисы. В этом случае ERP напрямую обращается к веб-сервису, опубликованному на базе УПП (или наоборот). Это исключает задержки на чтение/запись файлов на диск. В ERP в настройках синхронизации выбираем тип подключения: «Подключение к другой программе через Интернет». Указываем адрес публикации базы УПП.
Однако помните, что для УПП публикация веб-сервисов требует корректной настройки веб-сервера (IIS/Apache) и наличия лицензий. Плюс, при большой нагрузке, прямой вызов веб-сервиса может замедлять работу пользователей в базе-источнике.
ИспользоватьСинхронизациюДанных для доступа к плану обмена через универсальный формат.Этот подход позволит сохранить работающую управленческую систему в УПП и корректно передавать данные для регламентированного учета в ERP, минимизируя риски рассинхронизации.