Универсальный обмен данными с АСП.Склад WMS
- Отправка идёт по HTTP протоколу по персональному адресу на http://gateway.aspcom.ru/имя_базы/ws/DataExchange.1cws.
- Для отправки используется WSDL протокол, который позволяется обмениваться пакетами данным в формате XML. Пример описания данных: http://gateway.aspcom.ru/pa6/ws/DataExchange.1cws?wsdl
- Заголовки HTTP запроса:
- Authorization: Basic - логин и пароль на уровне базовой авторизации
- SOAPAction: http://gateway.aspcom.ru#DataExchange:КомандаЗапроса
Пример использования
Наглядный пример XML запросов и ответов можно посмотреть тут.
Например, для отправки запросов через HTTP может использоваться утилита curl32 curl64.
Так, допустим мы хотим создать номенклатуру на сборке:
1. База называется «pa6». | Имя, указанное при публикации базы АСП.Склад WMS на веб сервере. | |
2. Имя пользователя «admin». | Логин пользователя 1С для входа в АСП.Склад WMS. | |
3. Пароль «admin». | Пароль пользователя 1С для входа в АСП.Склад WMS. | |
4. Подключаемся через шлюз «http://gateway.aspcom.ru». | Адрес сервера, на котором выполнена публикация Шлюза. | |
5. Команда: «СоздатьНоменклатуру». | Список всех возможных операций можно можно увидеть, перейдя по ссылке. |
Подробное описание доступных операций можно посмотреть тут. | Подробное описание типов объектов можно посмотреть тут.
Подготавливаем XML запрос:
- request.xml
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Body> <ns0:СоздатьНоменклатуру xmlns:ns0="http://gateway.aspcom.ru"> <ns0:Номенклатура> <ns0:Код>test_0002695</ns0:Код> <!--Если выгрузка номенклатуры в сборку осуществлялась по коду--> <!--<ns0:КодЗагрузки></ns0:КодЗагрузки>--> <!--Если выгрузка номенклатуры в сборку осуществлялась по ПОЛНОМУ коду--> <ns0:Наименование>Тест номенклатура</ns0:Наименование> <ns0:НаименованиеПолное>Полное наименование тестовой номенклатуры</ns0:НаименованиеПолное> <ns0:ЕдиницаИзмерения> <ns0:Код>test_002695</ns0:Код> <ns0:Наименование>тШтука</ns0:Наименование> <ns0:Коэффициент>1</ns0:Коэффициент> <!--<ns0:КодЗагрузки>С0000002695</ns0:КодЗагрузки>--> <ns0:Основная>true</ns0:Основная> </ns0:ЕдиницаИзмерения> <ns0:GTIN>12345678987654</ns0:GTIN> <ns0:ШтрихКод>1122332211</ns0:ШтрихКод> <ns0:Артикул>01001001</ns0:Артикул> <ns0:Весовой>false</ns0:Весовой> </ns0:Номенклатура> </ns0:СоздатьНоменклатуру> </soap-env:Body> </soap-env:Envelope>
Выполняем команду curl:
curl -H "SOAPAction: \"http://gateway.aspcom.ru#DataExchange:СоздатьНоменклатуру\"" --data @request.xml --user admin:admin http://gateway.aspcom.ru/pa6/ws/DataExchange.1cws -o response.xml
В результате получаем файл:
- response.xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <m:СоздатьНоменклатуруResponse xmlns:m="http://gateway.aspcom.ru"> <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Номенклатура загружена: Тест номенклатура</m:return> </m:СоздатьНоменклатуруResponse> </soap:Body> </soap:Envelope>
Выполним детальный разбор команды curl:
- Используемое пространство имен / имя пакета web-сервисов. Данная часть запроса остается неизменной.
- Имя выполняемой операции из списка возможных операций.
- Ключ, после которого указываются добавляемые данные http запроса или файл (@file) передаваемый POST-запросом.
- Путь к xml-файлу, содержащему текст выполняемой операции. Можно указывать относительный или абсолютный путь.
- Имя пользователя : Пароль пользователя 1С:Предприятия, которые используются для аутентификации в программе АСП.Склад WMS.
- Адрес сервера, на котором выполнена публикация АСП.Склад WMS.
- Имя публикации информационной базы, указанное при публикации базы АСП.Склад WMS на веб сервере.
- Адрес web-сервисов. Данная часть запроса остается неизменной.
- Путь к xml-файлу, в который будет записан результат выполнения операции в АСП.Склад WMS. Можно указывать относительный или абсолютный путь.