Универсальный обмен данными с АСП.Сборка товаров

  • Отправка идёт по 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».Имя, указанное при публикации базы АСП.Сборка на веб сервере.
2. Имя пользователя «admin».Логин пользователя 1С для входа в АСП.Сборка.
3. Пароль «admin».Пароль пользователя 1С для входа в АСП.Сборка.
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:

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