Имя: Пароль:
1C
1С v8
проверить есть ли элемент в ответе XDTO (soap)
0 бегинер
 
27.07.16
13:29
есть сервис по soap дает ответ - иерархический, по самому нижнему уровню в цикле обхожу весь массив параметров-элементов, в ответе грубо 10 столбцов(параметров), но бывает что одного из параметров нет в ответе, как проверить есть ли элемент с определенным именем в ответе?

можно через попытка и по ошибке, но наверно есть более правильный способ.

Определения = новый WSОпределения("http://www.xxx.ru/WebServices/WebService.asmx?WSDL";);
    прокси=wsссылки.WSСсылка1.СоздатьWSПрокси("http://www.xxx.ru/","WebService","WebServiceSoap";);
    ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://www.xxx.ru/").Получить("Get4Group";);
    //Создаем параметр на основе типа и заполняем значение параметра On_Date.
    WSПараметр       = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
    WSПараметр.UserID    = "11";
    WSПараметр.GroupID    = "12";
    ответ = Прокси.Get4Group(WSПараметр);
    Для Каждого Элемент Из ответ.Get4GroupResult.diffgram.Setx.ResponseTable Цикл
        
        сообщить(элемент.Number);
        сообщить(элемент.Param1);
        сообщить(элемент.Param2);
конеццикла;

вот бывает что param2 нет в ответе, нужно проверить его на наличие в ответе
1 бегинер
 
27.07.16
13:39
обойти ошибку "Поле объекта не обнаружено (Param2)"
2 Avalone2010
 
27.07.16
13:51
(0)элемент.Свойства.Получить(Param2) = неопределено
Так не пойдет?
3 Serginio1
 
27.07.16
13:51
4 Avalone2010
 
27.07.16
13:52
к(2), опечатка, должно быть *.свойства().*
5 Serginio1
 
27.07.16
13:52
Свойство=ОбъектXDTO.Свойства().получить(ИмяТвоегоСвойства);
Если ОбъектXDTO.Установлено(Свойство) Тогда
6 mTema32
 
27.07.16
13:54
(5)+1
Или получай в цикле всю коллекцию элементов и записывай в структуру например. А потом уже обрабатывай наличие/отсутствие параметров.
7 Fragster
 
гуру
27.07.16
13:57
если доступны разработчики, то попинать их на тему правильного wsdl и тогда в случае отсутствия там будет неопределено.
А вообще в СП у ОбъектXDTO все написано, например про .Свойства
8 бегинер
 
27.07.16
14:19
(5) спасибо!