Имя: Пароль:
1C
1С v8
Помогите разобрать XDTOобъект
0 web_profiler
 
01.03.15
14:50
Прокси = WSСсылки.ИнТайм.СоздатьWSПрокси("http://www.reality.sh/in-time/Api20";, "API20", "API20Soap");
    
    //Получаем тип параметра, который передается в метод GetCursOnDate.
    ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://www.reality.sh/in-time/Api20").Получить("CatalogList";);
    
    //Создаем параметр на основе типа и заполняем значение параметра On_Date.
    WSПараметр       = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
//тут я получил объект XDTO


когда в отладчике расскрываю его наблюдаю, что-то наподобие параметра CatalogListRequest с типом неопределено

А вообще мне необходимо сделать вот такой вот запрос:
<api2:CatalogList>
<api2:CatalogListRequest>
<int:AuthData>
<int:ID>123</int:ID>
<int:KEY>123</int:KEY>
</int:AuthData>
<int:CatalogNameEng>Cargo</int:CatalogNameEng>
<int:CatalogNameEng>Claim</int:CatalogNameEng>
</api2:CatalogListRequest>
</api2:CatalogList>

Подскажите че спараметром делать? я по коду виду, что его надо задействовать, но как?
1 web_profiler
 
01.03.15
14:50
на комменты типа GetCursOnDate - не обращайте внимание, копипастил
2 web_profiler
 
01.03.15
14:52
в <api2:CatalogList> зашел - он XDTOобъект
3 web_profiler
 
01.03.15
14:57
неужели никто не работал с XDTO?
4 web_profiler
 
01.03.15
14:59
WSПараметр       = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
WSПараметр.ID    = "123"

поле объекта не обнаружено, ID
Естественно, у CatalogList есть следующий параметр CatalogListRequest

Но как к нему обратиться? и как правильно в него передать параметы ID, KEY, CatalogNameEng?
5 web_profiler
 
01.03.15
15:02
мда
6 web_profiler
 
01.03.15
15:06
ну и ладно, сейчас сам разберусь и никому не скажу
7 Записьдампа
 
01.03.15
15:11
(0): 14.50
(6): 15.06
Сама придумала - сама обиделась, 16 минут. Тянет на рекорд, однако.
8 web_profiler
 
01.03.15
15:17
(7) ага так и думал, что сейчас троли полезут
9 web_profiler
 
01.03.15
15:17
а по делу - 0
10 tridog
 
01.03.15
15:33
(4) WSПараметр.CatalogListRequest.AuthData.ID и т.д. - иерархия свойств у XDTO-объекта аналогична иерархии свойств в типах wsdl-описания сервиса, из которого была создана WS-ссылка.
11 tridog
 
01.03.15
15:34
CatalogNameEng - кажись список, т.е. WSПараметр.CatalogListRequest.CatalogNameEng.Добавить(...)
12 web_profiler
 
01.03.15
15:55
список
13 web_profiler
 
01.03.15
15:55
(11) я уже думал за пивом идти :)
14 web_profiler
 
01.03.15
15:57
пробую, есть же еще добрые люди
15 web_profiler
 
01.03.15
15:57
(11)
16 web_profiler
 
01.03.15
15:59
Значение не является значением объектного типа (AuthData)
17 web_profiler
 
01.03.15
16:01
я так понял мне надо каждый тип получить?
Тип2 = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("CatalogListRequest";)

и так далее
18 web_profiler
 
01.03.15
16:58
а я сделал, не все так просто как оказалось
кому понабиться сложный разбор XDTO - в личку
(11) спасибо, всем остальным - нет спасибо
19 tridog
 
01.03.15
17:08
(16) Это я проглядел, показалось что ID лежит внутри AuthData.

Тогда просто WSПараметр.CatalogListRequest.ID

(18) Что в нем сложного то? Если уж совсем приперло, структуру объекта можно прямо в отладчике глянуть
20 web_profiler
 
01.03.15
18:55
(19) да нет у меня в объекте 3 макета XDTO, поэтому для них вначале надо их тип получить, ну типа

    Тип0 = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AllCatalogRequest";);
    AuthData = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AuthData";);

ну а потом работай с ними как хочешь
21 web_profiler
 
01.03.15
18:55
ссори 3 макета модели данных
22 web_profiler
 
01.03.15
18:56
Тип0 = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AllCatalogRequest";);
    AuthData = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AuthData";);
23 web_profiler
 
01.03.15
18:56
чето в (20) какие-то ссылки появились
24 web_profiler
 
01.03.15
18:58
(22) ; перед конечными скобками не нужны. копирую нормально - форум чето за меня доставляет
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.