Универсальный обмен данными с АСП.Шлюз
- Отправка идёт по HTTP протоколу по персональному адресу на http://t2-gateway.aspcom.ru/имя_базы/ws/DataExchangeGatewayV2.1cws (тест) или http://gateway.aspcom.ru/имя_базы/ws/DataExchangeGatewayV2.1cws (продукт).
- Для отправки используется WSDL протокол, который позволяется обмениваться пакетами данным в формате XML. Пример описания данных: http://t2-gateway.aspcom.ru/gloria_test/ws/DataExchangeGatewayV2.1cws?wsdl
- Заголовки HTTP запроса:
- Authorization: Basic - логин и пароль на уровне базовой авторизации
- SOAPAction: http://88.99.106.214/Mercury#DataExchangeGatewayV2:КомандаЗапроса
Пример использования
Наглядный пример XML запросов и ответов можно скачать тут (поступление), а так же тут (реализация) и тут (производство).
Например, для отправки запросов через HTTP может использоваться утилита curl32 curl64.
Так, допустим мы хотим создать номенклатуру в АСП.Шлюз:
1. База называется «gloria_test» | Имя, указанное при публикации базы АСП.Шлюз на веб сервере | |
2. Имя пользователя «DefUser» | Логин пользователя 1С для входа в АСП.Шлюз | |
3. Пароль «DefUser» | Пароль пользователя 1С для входа в АСП.Шлюз | |
4. Подключаемся через тестовый АСП.Шлюз «http://t2-gateway.aspcom.ru» | Адрес сервера, на котором выполнена публикация АСП.Шлюз | |
5. Команда АСП.Шлюз: «СоздатьНоменклатуру» | Список всех возможных операций можно можно увидеть, перейдя по ссылке |
Подробное описание доступных операций можно посмотреть тут. | Подробное описание типов объектов можно посмотреть тут.
Подготавливаем XML запрос:
- request.xml
<?xml version='1.0' encoding='utf-8'?> <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Body> <ns0:СоздатьНоменклатуру xmlns:ns0="http://88.99.106.214/Mercury"> <ns0:Номенклатура> <ns0:Код>ЦБ056513</ns0:Код> <ns0:Наименование>PERFECT FIT 1,2кг Для стер.кошек и кастр. котов (6)</ns0:Наименование> <ns0:НаименованиеПолное>корм PERFECT FIT 1,2кг Для стер.кошек и кастр. котов (6) сухой</ns0:НаименованиеПолное> <ns0:Группа> <ns0:Код>ЦБ051542</ns0:Код> <ns0:Наименование>Сухие корма, ж/б</ns0:Наименование> <ns0:Родитель> <ns0:Код>ЦБ047054</ns0:Код> <ns0:Наименование>КОРМА</ns0:Наименование> <ns0:Родитель> <ns0:Код>ЦБ000001</ns0:Код> <ns0:Наименование>МАРС</ns0:Наименование> </ns0:Родитель> </ns0:Родитель> </ns0:Группа> <ns0:Артикул>10162233 </ns0:Артикул> <ns0:ЕдХранения/> <ns0:Скоропортящаяся>false</ns0:Скоропортящаяся> <ns0:Некачественная>false</ns0:Некачественная> </ns0:Номенклатура> </ns0:СоздатьНоменклатуру> </soap-env:Body> </soap-env:Envelope>
Выполняем команду curl:
curl -H "SOAPAction: \"http://88.99.106.214/Mercury#DataExchangeGatewayV2:СоздатьНоменклатуру\"" --data @request.xml --user DefUser:DefUser http://t2-gateway.aspcom.ru/gloria_test/ws/DataExchangeGatewayV2.1cws -o response.xml
В результате получаем файл:
- response.xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <m:СоздатьНоменклатуруResponse xmlns:m="http://88.99.106.214/Mercury"> <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Номенклатура загружена: PERFECT FIT 1,2кг Для стер.кошек и кастр. котов (6)</m:return> </m:СоздатьНоменклатуруResponse> </soap:Body> </soap:Envelope>
Выполним детальный разбор команды curl:
- Используемое пространство имен / имя пакета web-сервисов. Данная часть запроса остается неизменной.
- Имя выполняемой операции из списка возможных операций.
- Ключ, после которого указываются добавляемые данные http запроса или файл (@file) передаваемый POST-запросом.
- Путь к xml-файлу, содержащему текст выполняемой операции. Можно указывать относительный или абсолютный путь.
- Имя пользователя : Пароль пользователя 1С:Предприятия, которые используются для аутентификации в АСП.Шлюз.
- Адрес сервера, на котором выполнена публикация АСП.Шлюз.
- Имя публикации информационной базы, указанное при публикации базы АСП.Шлюз на веб сервере.
- Адрес web-сервисов. Данная часть запроса остается неизменной.
- Путь к xml-файлу, в который будет записан результат выполнения операции в АСП.Шлюз. Можно указывать относительный или абсолютный путь.