Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 13:55

MS SOAP 3.0

Автор lowuser, 01 мар 2013, 14:00

0 Пользователей и 1 гость просматривают эту тему.

lowuser

Имеется WEB серивис (не мой), у него есть метод SendWareHouseBalanseDRP, часть WSDL схемы приведена ниже. Как этому методу средствами 1С 7.7 передать массив значений? Используется MSOSOAP.SoapClient30

Кусок WSDL:
   <s:element name="SendWareHouseBalanseDRP">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="_wareHouseBalanceData" type="tns:ArrayOfWareHouseBalanse"/>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfWareHouseBalanse">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="WareHouseBalanse" nillable="true" type="tns:WareHouseBalanse"/>
        </s:sequence>
      </s:complexType>
      <s:complexType name="WareHouseBalanse">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="SkuID" type="s:int"/>
          <s:element minOccurs="1" maxOccurs="1" name="DistribID" type="s:int"/>
          <s:element minOccurs="1" maxOccurs="1" name="WareHouseID" type="s:int"/>
          <s:element minOccurs="1" maxOccurs="1" name="Nums" type="s:double"/>
        </s:sequence>
      </s:complexType>

Кусок кода:
КлиентSOAP = СоздатьОбъект("MSOSOAP.SoapClient30");
КлиентSOAP.MSSOAPInit(ПутьКWSDLСхеме, "","","" );
КлиентSOAP.ConnectorProperty("Timeout", 600000);
Запрос = «<ArrayOfWareHouseBalanse><WareHouseBalanse>
    <SkuID>1</SkuID>
    <DistribID>1</DistribID>
    <WareHouseID>1</WareHouseID>
    <Nums>1</Nums>
</WareHouseBalanse>
«</ArrayOfWareHouseBalanse>»
ОтветСервераSOAP = КлиентSOAP.SendWareHouseBalanseDRP(Запрос);


Код выдает ошибку: Client: Client:Type conversion failure for element _wareHouseBalanceData  HRESULT=0x80020005: Type mismatch. - Client:Unspecified client error. HRESULT=0x80020005: Type mismatch.

Кошки рулят

А что не понятного?
Тебе надо передать массив, а 7.7 в своих переменных массивы типа SAFEARRAY хранить не умеет.
А ту строку, которую ты передал клиенту вместо массива он сконвертировать в массив не смог, о чем тебе и сообщает ...

Теги:
Рейтинг@Mail.ru

Поиск