Имя: Пароль:
1C
1С v8
Загрузка данных с web-сервиса
0 daringer
 
31.07.12
08:56
Здравствуйте. Есть веб сервис, мне нужно получить данные с него. Данные хочу загружать с помощью фабрики XDTO. В хелпе сервиса есть методы которые возвращают файл xml. Так же есть описание схем xml. Что я делаю: Загрузил схемы в 1С, получил файл xml, сохранил на диске, читаю xml
структурныйТип =ФабрикаXDTO.Тип("http://tempuri.org/","BaseVehicleModel");
ИмяФайла = "C:\1.xml";
МойXML = Новый ЧтениеXML;
МойXML.ОткрытьФайл(ИмяФайла);
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(МойXML,структурныйТип);

В результате ошибка:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://tempuri.org/}BaseVehicleModel - [1,334]
Проверка дополнительного свойства:
   форма: Элемент
   имя: {http://tempuri.org/}Entities
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://tempuri.org/}BaseVehicleModel

Подскажите, как быть в такой ситуации?

Ссылка на описание операции сервиса с которой я пытаюсь работать:
http://srv-1.ru/yes/service.svc/monitoring/help/operations/GetEntities
1 daringer
 
31.07.12
08:58
часть xml файла

<GetEntitiesResult>
<Entities>
<a:anyType i:type="BaseVehicleModel">
<CreateTime>2012-04-23T06:35:58</CreateTime>
<ExternalID i:nil="true"/>
<Guid>97d03242-a92c-4d84-8261-0f2893068ba7</Guid>
<IsDeleted>false</IsDeleted>
<OwnerGuid>00000000-0000-0000-0000-000000000000</OwnerGuid>
<UpdateTime>2012-04-23T06:35:58</UpdateTime>
<Name>КАМАЗ</Name></a:anyType>
</Entities>
</GetEntitiesResult>
2 Широкий
 
31.07.12
09:14
А где описание веб сервиса?
3 daringer
 
31.07.12
09:26
WSDL?
4 daringer
 
31.07.12
09:29
сервис работает не по протоколу SOAP, а WCF, вроде бы
5 daringer
 
31.07.12
09:45
кто то ж полюбому должен знать!
6 daringer
 
31.07.12
10:18
Ап
7 Serginio1
 
31.07.12
11:00
Многие схемы 1С не понимает. Например DataTable итд.
Приходится писать прослойку v8: Доступ к WEB-сервису из 1С 8.2 через https
8 daringer
 
31.07.12
11:12
Щас гляну
9 daringer
 
31.07.12
11:18
На C# нужно писать что ли? Я его не знаю, без этого никак?
10 Serginio1
 
31.07.12
11:59
(9) Не знаю. Но есить большая вероятность, что 1С не понимает описание. Ну выход либо вручную разбирать xml например
v8: Веб-сервис и передача-прием XML
Да и в типовых есть аналогичный разбор.
11 Флик
 
31.07.12
12:41
(0) У тебя тип изначально неправильно указан. Возвращает сервис не тип BaseVehicleModel, а тип GetEntitiesResult (для которого базовым является OperationResult). А уже свойством типа GetEntitiesResult является Entities, имеющее тип anyType, В нашем случаем этот самый anyType является ArrayOfanyType, у которого свойство anyType может встречаться от 0 до произвольного количества раз и имеет тип (в тобой приведенном примере) BaseVehicleModel.
12 daringer
 
31.07.12
13:30
Елы палы (11). Точно! Ошибки нет, буду разбираться что делать дальше)) Спасибо!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.