Взаимодействие 1С и сервисов сайта ПартКом

Компания ПартКом предоставляет для интеграции с другими системами возможность программного взаимодействия через web-сервисы. Это сервис поиска, сервис заказа, сервис истории заказов и сервис финансов.

К сожалению, программа 1С очень «придирчиво» относится к описаниям типов данных в WSDL, и непосредственно из 1C связаться с сервисами не удается. Причины описывать не будем, т.к. надо было искать рабочее решение для связки Парт-Ком и 1С:Управления торговлей 11.

Анализ запросов к сервисам сайта и ответов позволил определить, что, несмотря на отсутствие взаимопонимания между 1С и сервисами сайта, при использовании сторонних программ, способных формировать SOAP запросы, все же данные с сайта возвращаются. Осталось как-то «подружить» эти данные с 1С.

Результатом стала внешняя компонента 1С, реализующая как бы «провайдера» данных с сайта. Компонента реализует все функции web-сервисов, декларированные на сайте ПартКом, и возвращает результат в виде массива 1С. В дальнейшем массив обрабатывается для получения результатов.

Компонента разработана по технологии COM, что позволило создавать «родные» для 1С массивы структур. Выбор типов возвращаемых значений позволяет обрабатывать результат запроса как на сервере, так и на клиенте.
Немного о технологии интеграции 1С и web сервисов.

При загрузке программы подключается ВК :

Если ПодключитьВнешнююКомпоненту("AddIn.SOAP_PARTCOM") Тогда
ПК_ВК = Новый("AddIn.SOAP_1C");
    ПК_ВК.ПарольПользователя = ПК_Сервер.ПК_ПолучитьПарольПользователя();
КонецЕсли;

 

Процедура заказа деталей на сайте начинается с формирования документа в «1С:Управление торговлей «Заказ клиента».  В этом документе есть кнопка заказа с сайта ПартКом, при нажатии которой открывается форма запроса деталей с сайта.


Результат поиска по  требуемым параметрам – таблица со списком деталей. Поля таблицы почти те же, что и на web-версии поиска, поэтому не нужно привыкать к новому интерфейсу. Еще одним отличием таблицы является формирование цен – они выводятся сразу с торговой наценкой, определяемой в настройках. Так что оператору не нужен калькулятор, чтобы определиться с ценой для клиента.

Когда деталь для заказа выбрана, оператор нажатием кнопки переносит ее в документ Заказ клиента. При этом в 1С заказанная деталь сопоставляется с элементом справочника номенклатура (если элемент не найден – создается новый по определенным правилам). Кроме того, фиксируется цена номенклатуры поставщика, производитель и некоторые служебные параметры.

На основании «Заказа клиента» создается документ «Заказ поставщику» (заполняется автоматически). На форме «Заказа поставщику» присутствуют кнопки «Проверить заказ» и «Отправить заказ на сайт».

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

Конечно, описание очень поверхностно и не освещает множество нюансов – от обработки ошибок до автоматического ввода приходных накладных. Однако надеюсь, что общее представление о механизме интеграции нам удалось показать.