Как организовать обмен данными между PDM Intermech (IPS) и 1С:ERP

Программист 1С v8.3 (Управляемые формы) Управленческий учет Промышленность, строительство и АПК
← На главную

Интеграция PDM-системы (Product Data Management) от компании «Интермех» с 1С:ERP является одной из наиболее востребованных и одновременно сложных задач при автоматизации производственного предприятия. Основная цель такой интеграции — исключить двойной ввод данных и обеспечить передачу конструкторско-технологической документации (спецификаций и маршрутных карт) из среды проектирования непосредственно в учетную систему для планирования производства. В этой статье мы подробно рассмотрим доступные методы интеграции, проанализируем возможности API и разберем архитектурные подходы к решению задачи.

Варианты интеграции: от готовых решений до собственной разработки

Прежде чем приступать к написанию кода, мы должны определить стратегию интеграции. Существует три основных пути, по которым обычно идут компании при внедрении связки «Интермех» — 1С:

  1. Использование готового модуля «IPS Коннектор к 1С:ERP». Это официальный программный продукт разработчика («Интермех»), который представляет собой шлюз между двумя системами. Он позволяет синхронизировать справочники номенклатуры, составы изделий и технологические процессы.
  2. Разработка собственного решения через API (COM или Web-сервисы). Этот путь выбирают, когда требуется специфическая логика переноса данных, которую сложно реализовать в рамках стандартного коннектора, или когда бюджет проекта ограничен.
  3. Обмен через промежуточные файлы (XML/XSD). Наиболее простой, но требующий постоянного контроля метод, при котором PDM выгружает данные в файл по расписанию или событию, а 1С их импортирует.

Рассмотрим подробнее технические аспекты каждого подхода, основываясь на опыте разработчиков и возможностях платформы IPS (Intermech Professional Solutions).

Работа с API через COM-соединение

Исторически системы «Интермех» (особенно старая версия Search) предоставляли доступ к своим данным через COM-интерфейсы. Рассмотрим, как мы можем взаимодействовать с системой на низком уровне для получения информации о документах и их версиях. Проанализируем пример использования функций для работы с базой данных PDM.

Для получения списка версий конкретного документа в системе используется запрос к таблице RC. Разберем логику работы с версиями:


// Пример логики запроса через COM к базе Intermech
// Функция OpenQuery позволяет выполнить SQL-подобный запрос к метаданным PDM
QueryText = "select * from rc where doc_id=" + Строка(ИдентификаторДокумента) + " order by version_id";
IntermechSystem.OpenQuery(QueryText);

// После выполнения запроса мы можем перебирать результаты
Пока НЕ IntermechSystem.EOF() Цикл
    ВерсияID = IntermechSystem.GetFieldValue("version_id");
    СостояниеДокумента = IntermechSystem.GetFieldValue("state_id");
    // Логика обработки каждой версии
    IntermechSystem.Next();
КонецЦикла;

Важно понимать, что для работы с конкретной версией документа необходимо использовать функцию OpenDocVersion. Она инициализирует контекст работы с объектом, после чего становятся доступны функции получения состава изделия. Синтаксис функции выглядит следующим образом: Procedure OpenDocVersion( DocID : Integer; VersionID : Integer );. Здесь DocID — уникальный идентификатор документа, а VersionID — идентификатор конкретной итерации (версии) этого документа.

Переход к современным методам: Web-API и SOA

Проанализируем недостатки использования COM в современных реалиях. Основная проблема заключается в привязке к разрядности систем (32/64 bit) и сложностях регистрации библиотек на серверах под управлением Linux. В современной платформе IPS реализована сервисно-ориентированная архитектура (SOA), которая позволяет использовать Web-сервисы (REST или SOAP).

Мы рекомендуем использовать Web-API для 1С:ERP по следующим причинам:

Синхронизация НСИ и справочников материалов (IMBase)

Выясним одну из самых важных причин ошибок при обмене данными — рассогласование нормативно-справочной информации (НСИ). «Интермех» использует систему IMBase для ведения справочников материалов, покупных и стандартных изделий. Прежде чем передавать спецификации, мы должны убедиться, что номенклатура в 1С:ERP соответствует данным в IMBase.

Рассмотрим алгоритм синхронизации:

  1. Сопоставление единиц измерения. В PDM могут использоваться «кг», в 1С — «Килограмм» с соответствующим кодом ОКЕИ. Необходимо настроить таблицу маппинга.
  2. Уникальные идентификаторы. Мы крайне не рекомендуем делать поиск по наименованию. Лучшим решением будет хранение GUID или уникального кода из IMBase в дополнительном реквизите справочника Номенклатура в 1С.
  3. Материалы и заготовки. Обратите внимание, что в PDM материал может быть указан как текстовая строка или ссылка на объект IMBase, в то время как в 1С:ERP это должна быть полноценная карточка номенклатуры с настроенными счетами учета.

Формирование ресурсных спецификаций в 1С:ERP

Теперь разберем процесс создания основного объекта производства — РесурсныеСпецификации. В отличие от старых систем (типа УПП), ресурсная спецификация в ERP 2.x является сложным многоуровневым объектом. Проанализируем, как правильно переносить данные из IPS TechCard (технологический модуль Интермеха).

При загрузке спецификации мы должны заполнить следующие разделы:

Пример кода для создания структуры спецификации (схематично):


НоваяСпецификация = Справочники.РесурсныеСпецификации.СоздатьЭлемент();
НоваяСпецификация.Наименование = "Спецификация из PDM: " + ИзделиеНаименование;
НоваяСпецификация.Статус = Перечисления.СтатусыСпецификаций.ВРазработке;

// Заполнение материалов
Для Каждого СтрокаСостава Из ПолученныйСоставPDM Цикл
    НоваяСтрока = НоваяСпецификация.МатериалыИРаботы.Добавить();
    НоваяСтрока.Номенклатура = НайтиНоменклатуруПоИД(СтрокаСостава.ID);
    НоваяСтрока.Количество = СтрокаСостава.Количество;
КонецЦикла;

НоваяСпецификация.Записать();

Рекомендации по успешному внедрению

Проанализировав опыт многих внедрений, мы можем дать несколько практических советов:

Во-первых, не пытайтесь реализовать прямой доступ к таблицам базы данных SQL, в которой хранятся данные IPS. Структура БД крайне сложна (сотни таблиц с неявными связями) и может измениться при очередном обновлении системы. Всегда используйте только штатные API или XML-выгрузки.

Во-вторых, уделите внимание версионности. В PDM-системе может быть множество итераций изделия. В 1С:ERP следует передавать только те версии, которые получили статус «Выпущено» или «Утверждено». При этом в 1С необходимо создавать новую версию ресурсной спецификации и устанавливать ее основной, чтобы производственные заказы формировались по актуальным данным.

В-третьих, рассмотрите возможность покупки готового коннектора. Несмотря на его стоимость (которая может достигать нескольких тысяч евро), затраты на самостоятельную разработку аналогичного функционала «с нуля», его отладку и последующую поддержку при обновлениях обеих систем могут оказаться значительно выше. Готовый модуль уже учитывает специфику объектов 1С:ERP, таких как ВидыРабочихЦентров и ВариантыНаладки, что сэкономит сотни часов работы программиста.

Таким образом, выбор пути интеграции зависит от масштаба предприятия и сложности ваших бизнес-процессов. Для небольших производств часто достаточно обмена через XML, в то время как крупные заводы требуют полноценной связки через Web-API или готовые интеграционные шины.

← На главную