Универсальный обмен данными с Шлюзом АСП Меркурий

Наглядный пример 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:

  1. Используемое пространство имен / имя пакета web-сервисов. Данная часть запроса остается неизменной.
  2. Имя выполняемой операции из списка возможных операций.
  3. Ключ, после которого указываются добавляемые данные http запроса или файл (@file) передаваемый POST-запросом.
  4. Путь к xml-файлу, содержащему текст выполняемой операции. Можно указывать относительный или абсолютный путь.
  5. Имя пользователя : Пароль пользователя 1С:Предприятия, которые используются для аутентификации в программе АСП Шлюз.
  6. Адрес сервера, на котором выполнена публикация Шлюза.
  7. Имя публикации информационной базы, указанное при публикации базы АСП Шлюз на веб сервере.
  8. Адрес web-сервисов. Данная часть запроса остается неизменной.
  9. Путь к xml-файлу, в который будет записан результат выполнения операции в Шлюзе. Можно указывать относительный или абсолютный путь.