Имя: Пароль:
1C
1С v8
Передать параметр attachment в web сервис
0 Смотрящий от 1С
 
30.09.13
11:32
Имеем ссылку на сторонний веб сервис. Ссылку загрузили в конфигурацию.
Ссылка на загруженную структуру http://i60.fastpic.ru/big/2013/0930/7b/35806433a1a1c549a3834b8622c10b7b.jpg
Пытаюсь передать параметр <xs:element name="data" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream"/>
Ругается на несоответствие параметров .

WSDL:

<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://ws.dkbm.rsa.com/"; targetNamespace="http://ws.dkbm.rsa.com/"; name="KbmToService"> -<wsdl:types> -<xs:schema targetNamespace="http://ws.dkbm.rsa.com/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xmime="http://www.w3.org/2005/05/xmlmime"; xmlns:tns="http://ws.dkbm.rsa.com/"; version="1.0" elementFormDefault="unqualified"> <xs:import namespace="http://www.w3.org/2005/05/xmlmime"/>; <xs:element name="attachment" type="tns:attachment"/> <xs:element name="getKbmTo" type="tns:getKbmTo"/> <xs:element name="getKbmToResponse" type="tns:getKbmToResponse"/> -<xs:complexType name="getKbmTo"> -<xs:sequence> <xs:element ref="tns:attachment" minOccurs="0"/> </xs:sequence> </xs:complexType> -<xs:complexType name="attachment"> -<xs:sequence> <xs:element name="data" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream"/> </xs:sequence> </xs:complexType> -<xs:complexType name="getKbmToResponse"> -<xs:sequence> <xs:element name="return" type="tns:attachment" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> -<wsdl:message name="getKbmToResponse"> <wsdl:part name="parameters" element="ns1:getKbmToResponse"> </wsdl:part> </wsdl:message> -<wsdl:message name="getKbmTo"> <wsdl:part name="parameters" element="ns1:getKbmTo"> </wsdl:part> </wsdl:message> -<wsdl:portType name="KbmToService"> -<wsdl:operation name="getKbmTo"> <wsdl:input name="getKbmTo" message="ns1:getKbmTo"> </wsdl:input> <wsdl:output name="getKbmToResponse" message="ns1:getKbmToResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> </wsdl:definitions>

Мой код:

Определение = Новый WSОпределения("I:\Temp\тест выгрузки в РСА\wsdl\KbmToService_test.wsdl","пользователь","пароль",60);

Прокси = Новый WSПрокси(Определение, "http://ws.dkbm.rsa.com/";, "KbmToServiceService", "KbmToServicePort");
Прокси.Пользователь = "пользователь";
Прокси.Пароль = "пароль";


Тип = Прокси.ФабрикаXDTO.Тип("http://ws.dkbm.rsa.com/";, "attachment");
Файл = Прокси.ФабрикаXDTO.Создать(Тип);
Файл = Новый Файл("C:\Users\user\Desktop\Примеры файлов с Jira\zapros.xml.gz");

ФайлДвоичныеДанные = Новый ДвоичныеДанные(Файл.ПолноеИмя);
ФайлаХранилищеЗначения = Новый ХранилищеЗначения(ФайлДвоичныеДанные, Новый СжатиеДанных(0));

ФайлОбмена = ФайлаХранилищеЗначения.Получить();

ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://ws.dkbm.rsa.com/").Получить("attachment";);

WSПараметр       = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);     
WSПараметр.data =Base64Строка(ФайлОбмена);


Ответ = Прокси.getKbmTo(Base64Строка(ФайлОбмена));



На выходе ошибка "Ответ = Прокси.getKbmTo(Base64Строка(ФайлОбмена));
по причине:
Несоответствие типов (параметр номер '1')
"

Каким образом отдать требуемый параметр сервису?
1 Смотрящий от 1С
 
30.09.13
14:15
апну, WSDL  в читаемом виде  http://i57.fastpic.ru/big/2013/0930/30/597df913db07e0d275ecdd62fbe32230.jpg
2 Смотрящий от 1С
 
01.10.13
10:44
апну