![]() |
![]() |
![]() |
|
Загрузка данных с 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). Точно! Ошибки нет, буду разбираться что делать дальше)) Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |