Имя: Пароль:
1C
1С v8
Пакет XDTO
0 john_ddd
 
01.11.12
18:19
- <s:element name="HelloWorld">
- <s:complexType>
- <s:sequence>
 <s:element minOccurs="0" maxOccurs="1" name="strParam" type="s:string" />
 <s:element minOccurs="0" maxOccurs="1" name="strArray" type="tns:ArrayOfString" />
 </s:sequence>
 </s:complexType>
 </s:element>
- <s:complexType name="ArrayOfString">
- <s:sequence>
 <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
 </s:sequence>
 </s:complexType>

Есть такая схема ХDTO. Веб-сервис создан в шарепоинте...
Сервис HelloWorld у него два параметра. Второй параметр массив.
Как описать объект ХDTO чтобы передать массив в этот параметр из 1с?
1 Asmody
 
01.11.12
18:30
через фабрику веб-сервиса создавай тип xdto, потом через ту же фабрику создавай объект xdto этого типа, потом заполняй объект
2 john_ddd
 
01.11.12
18:36
(1)спасибо, а есть какой-нибудь похожий пример посмотреть?
3 Serginio1
 
01.11.12
18:43
4 Serginio1
 
01.11.12
18:48
А вообще с таким типом как ArrayOfString 1С очень тяжело. Кстати как он отображается при импорте схемы или добавлении Ws ссылки?
В свое время пришлось писать обертку на Net
Serginio1
5 Serginio1
 
01.11.12
18:49
6 Serginio1
 
01.11.12
19:05
7 john_ddd
 
02.11.12
10:41
(6)спасибо)
8 Serginio1
 
02.11.12
11:02
Попробуй
Фабрика = Прокси.ФабрикаXDTO;
ТипМассива=Прокси.Тип(пространствоИмен,"ArrayOfString");
Массив=Прокси.Создать(ТипМассива);

ДетальТип = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string");
   ДетальXDTO = Фабрика.Создать(ДетальТип, "Деталь такая то");
Массив.Добавить(ФормаXML.Элемент,ПространствоИмен,"string",ДетальXDTO);
9 john_ddd
 
02.11.12
11:07
(8)получилось уже (6)помогло)..так сделал:
Фабрика = Прокси.ФабрикаXDTO;
ТипМассив = Фабрика.Тип("http://tempuri.org/", "ArrayOfString");
Массив =  Фабрика.Создать(ТипМассив);
Массив.string.Добавить("аа");
Массив.string.Добавить("бб");
10 Serginio1
 
02.11.12
11:19
(9) Просто в 8 тоже должен работать и он универсален, но он больше подходит для anyType, так как для anyType нужно добавлять XDTOОбъект.
Если тип указан, то твой вариант.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн