Имя: Пароль:
1C
 
как заполнить массив XDTO?
0 КоньЛапчатый
 
26.07.17
14:15
Надо передать массив чисел в веб-сервис, из того, что нашел в интернетах написал такой код:
Фабрика = Прокси.ФабрикаXDTO;
ТипЧисло = Фабрика.Тип("http://www.w3.org/2001/XMLSchema";, "integer");
ТипМассив = Фабрика.Тип("urn:SoapControllerwsdl", "intArray");
                
СписокБКИ = Фабрика.Создать(ТипМассив);
                
Значение = Фабрика.Создать(ТипЧисло, 3);
СписокБКИ.id1.Добавить(Значение);
Значение = Фабрика.Создать(ТипЧисло, 20);
СписокБКИ.id1.Добавить(Значение);
                
СтруктураДоговора.bki = СписокБКИ;

на который вот так ругается:
{Обработка.ВыгрузкаВБКИ.Форма.Форма1.Форма(97)}: Значение не является значением объектного типа (Добавить)
                СписокБКИ.id1.Добавить(Значение);

в отладчике у СписокБКИ есть 4 поля: arrayType, href, id1 и offset, все они типа Неопределено.

Собственно, что я делаю не так?
1 КоньЛапчатый
 
26.07.17
15:10
up
2 КоньЛапчатый
 
26.07.17
16:27
ещё раз ап
3 Мимохожий Однако
 
26.07.17
16:37
(0) Какой тип значения СписокБКИ показывает отладчик?
4 КоньЛапчатый
 
26.07.17
16:40
(3) ОбъектXDTO
5 Мимохожий Однако
 
26.07.17
17:00
У тебя Значение не имеет типа ЗначениеXDTO
6 КоньЛапчатый
 
26.07.17
17:02
(5) У Значение в отладчике тип тоже ЗначениеXDTO
7 Мимохожий Однако
 
26.07.17
17:03
у метода добавить два обязательных оператора
...
Вариант синтаксиса: Установка значения существующего произвольного свойства

Синтаксис:

Добавить(<Имя>, <ЭлементДанных>)
Параметры:

<Имя> (обязательный)

Тип: Строка.
Имя произвольного свойства.
<ЭлементДанных> (обязательный)

Тип: ЗначениеXDTO; ОбъектXDTO.
Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства.
8 Мимохожий Однако
 
26.07.17
17:04
Имя забыл
9 КоньЛапчатый
 
26.07.17
17:08
(8) спасибо, сейчас буду пробовать
10 КоньЛапчатый
 
26.07.17
17:13
(8) теперь так ругается:

Значение = Фабрика.Создать(ТипЧисло, 3);
СписокБКИ.Добавить("id1", Значение);


{Обработка.ВыгрузкаВБКИ.Форма.Форма1.Форма(97)}: Ошибка при вызове метода контекста (Добавить)
            СписокБКИ.Добавить("id1", Значение);
по причине:
Неизвестное свойство:
Свойство 'id1' не обнаружено
11 Ц_У
 
26.07.17
17:18
(10) из (7)
Установка значения существующего произвольного свойства
12 КоньЛапчатый
 
26.07.17
17:20
(11) 'id1' это одно из свойств СписокБКИ
13 Boroda
 
26.07.17
17:33
СписокБКИ.id1.Добавить(Значение);
В принципе, правильно. Только в этом случае id1 должен быть именем элемента массива.

У меня, например есть описание массива:
<s:complexType name="ArrayOfStatusItem">
   <s:sequence><s:element minOccurs="0" maxOccurs="unbounded" name="StatusItem" nillable="true" type="tns:StatusItem"/></s:sequence></s:complexType>
и строка, где вместо id1 у меня StatusItem работает.
14 КоньЛапчатый
 
26.07.17
17:37
(13) а если массив пустой и элементов нет?
15 Boroda
 
26.07.17
18:19
(14) Выгрузи в файл и посмотри.
что-то типа такого:
НоваяЗаписьXML = Новый ЗаписьXML();
НоваяЗаписьXML.ОткрытьФайл("C:\Test.xml");
Фабрика.ЗаписатьXML(НоваяЗаписьXML,СписокБКИ);
16 КоньЛапчатый
 
27.07.17
09:52
(15) вот такое записалось:
<?xml version="1.0"?>
<intArray xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns="urn:SoapControllerwsdl"/>
17 КоньЛапчатый
 
27.07.17
14:24
по прежнему актуально
18 КоньЛапчатый
 
27.07.17
15:22
ап
Закон Брукера: Даже маленькая практика стоит большой теории.