Имя: Пароль:
1C
1С v8
Чтение данных "стороннего web" сервиса
0 Black-Rain_
Mista
 
29.07.16
14:13
Добрый день.

Нужна помощь с чтением данных вэб-сервиса на стороне 1с.

Определения = Новый WSОпределения("http://localhost:8090/wsdl/IOrionPro";);
    Прокси = Новый WSПрокси(Определения, "http://tempuri.org/";, "IOrionProservice", "IOrionProPort");

ТЗ = Прокси.GetAccessZones();

Ошибка при вызове метода объекта модели XDTO.
Неверный параметр.



**********************

GetAccessZones(...)
TOperationResult<TAccessZone[]> GetAccessZones()- получение списка зон доступа.
Входные данные: НЕТ
Результирующие данные
Метод возвращает объект класса TOperationResult<TAccessZone[]>, содержащий список уровней доступа или
информацию об ошибке

************************

TAccessZone
Свойства типа
Свойство | Тип    | Описание
Id       | int    | Уникальный идентификатор
Name     | string | Наименование зоны доступа

************************

TOperationResult<T>
Свойства типа
Свойство | Тип           |Описание
Success  | bool          | Признак успешности операции
Result   |  T            | Результат операции
Error    | TserviceError | Информация об ощибке
В случае успеха - результат записывается в свойство Result<T> и имеет соответствующий тип T.
В случае ошибки — информация об ошибке записывается в TOperationResult.Error, а свойство Result равно Null.
1 Black-Rain_
Mista
 
29.07.16
14:15
Получается, что 1с-ка не может разобрать ответ.
2 Black-Rain_
Mista
 
29.07.16
14:16
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">;
   <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:NS1="urn:OrionProIntf-IOrionPro" xmlns:NS2="urn:OrionProIntf">
      <NS1:GetAccessZonesResponse>
         <return href="#1"/>
      </NS1:GetAccessZonesResponse>
      <SOAP-ENV:TOperationResultAccessZones id="1" xsi:type="NS2:TOperationResultAccessZones">
         <Success xsi:type="xsd:boolean">true</Success>
         <ServiceError xsi:nil="true"/>
         <OperationResult xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="NS2:TAccessZone[7]">
            <item href="#2"/>
            <item href="#3"/>
            <item href="#4"/>
            <item href="#5"/>
            <item href="#6"/>
            <item href="#7"/>
            <item href="#8"/>
         </OperationResult>
      </SOAP-ENV:TOperationResultAccessZones>
      <SOAP-ENV:TAccessZone id="2" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">1</Id>
         <Name xsi:type="xsd:string">Внешний мир</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="3" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">2</Id>
         <Name xsi:type="xsd:string">Автосалон</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="4" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">9</Id>
         <Name xsi:type="xsd:string">Столовая 1 этаж</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="5" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">10</Id>
         <Name xsi:type="xsd:string">Столовая щитовая</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="6" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">11</Id>
         <Name xsi:type="xsd:string">Столовая ЛК Офисов</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="7" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">12</Id>
         <Name xsi:type="xsd:string">Ст подвал с ЛК офмсов</Name>
      </SOAP-ENV:TAccessZone>
      <SOAP-ENV:TAccessZone id="8" xsi:type="NS2:TAccessZone">
         <Id xsi:type="xsd:int">13</Id>
         <Name xsi:type="xsd:string">Ст подвал с улицы</Name>
      </SOAP-ENV:TAccessZone>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
3 Serginio1
 
29.07.16
14:23
PHP?
4 Serginio1
 
29.07.16
14:24
5 Black-Rain_
Mista
 
29.07.16
14:33
Сам вэб сервис предоставлен разработчиком системы контроля доступа, моя задача прочитать данные в 1с 8.2 (8.3)

Но при вызове функции возникает описанная выше ошибка.

Ответ от вэб сервиса для анализа я получил SoapUI.
6 Black-Rain_
Mista
 
29.07.16
14:34
То есть задача не в создании вэб-сервиса. А в его использовании 1с-кой.
7 Black-Rain_
Mista
 
29.07.16
15:09
Где то видимо в этом месте у 1с запара
OperationResult xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="NS2:TAccessZone[7]"
8 Black-Rain_
Mista
 
29.07.16
15:09
не может массив разобрать
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.