|
Web-сервис: помогите найти ошибку плиз.. | ☑ | ||
---|---|---|---|---|
0
dave2000
11.03.15
✎
19:31
|
С веб-сервисами ранее не работал, начал с простого примера по этой ссылке http://www.odincplus.com/stati-programmistam/veb-servysy-v-1s.html
Уперся в тупик, почему-то в результате запроса возвращается только строчка Товар, а должна бы по идее со свойствами (Код и Наименование). Вот скрины из 1С и SoapUI: http://i.piccy.info/i9/52eb45532dfa1e92f91893a5b584c9b9/1426091395/64916/881839/Screenshot_1.png http://i.piccy.info/i9/47becf6b0ee95da2604ac7b6f6e3d75c/1426091425/171522/881839/Screenshot_2.png Где ошибка? |
|||
1
dave2000
11.03.15
✎
20:55
|
Перенес процедуру во внешнюю обработку для отладки.
&НаСервере Процедура ТестXDTOНаСервере() // получим типы из XDTO ТипXDTOРезультатОперации = ФабрикаXDTO.Тип("http://www.sample-package.org", "РезультатОперации"); ТипXDTOСвойства = ФабрикаXDTO.Тип("http://www.sample-package.org", "Свойства"); // создадим значение XDTO для свойства XDTOСвойства = ФабрикаXDTO.Создать(ТипXDTOСвойства); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл // создадим значение XDTO для результата XDTOПозиции = ФабрикаXDTO.Создать(ТипXDTOРезультатОперации); // заполним результат ЗаполнитьЗначенияСвойств(XDTOПозиции, Выборка); // добавим результат в товары XDTOСвойства.Товар.Добавить(XDTOПозиции); КонецЦикла; КонецПроцедуры Стопорнул в отладчике посреди цикла на ЗаполнитьЗначенияСвойств(), вижу такую картину: Переменная "Выборка" имеет тип ссылки на справочник Номенклатура, у которого есть строковые Код и Наименование. Переменная "XDTOПозиции" имеет тип ОбъектXDTO, у которого есть поля Код и Номенклатура типа СписокXDTO (список элементов ОбъектXDTO). Как теперь заполнить свойства ОбъектXDTO Код и Номенклатура их текстовыми представлениями из номенклатуры? |
|||
2
dave2000
11.03.15
✎
21:00
|
Схема XDTO пакета в конфигурации:
<xs:schema xmlns:tns="http://www.sample-package.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sample-package.org" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="РезультатОперации"> <xs:sequence> <xs:element name="Код" type="xs:string" maxOccurs="unbounded"/> <xs:element name="Наименование" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Свойства"> <xs:sequence> <xs:element name="Товар" type="tns:РезультатОперации" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:schema> |
|||
3
koreav
11.03.15
✎
22:09
|
можно заполнять через точку, но вначале максимальное количество свойства(у кода и наименования) нужно поставить 1
|
|||
4
Fragster
гуру
11.03.15
✎
22:47
|
(2) почему у тебя у кода и наименования максимальное количество -1? поставь 1 и все заработает...
|
|||
5
dave2000
12.03.15
✎
10:47
|
(3) (4) Точно! поменял, заработало, спасибо!
Думал, что -1 означает неограниченное максимальное количество. Или это справедливо только для объектных типов (таких, как "РезультатОперации" в данном примере)? А для простых типов (описанных в http://www.w3.org/2001/XMLSchema) минимальное и максимальное количество всегда должно быть 1, я правильно понял? |
|||
6
Fragster
гуру
12.03.15
✎
14:41
|
(5) все правильно, но зачем тебе в одном объекте РезультатОперации бесконечное количество наименований и кодов?
|
|||
7
vi0
12.03.15
✎
14:52
|
(5) -1 это СПИСОК с неограниченным количеством элементов
|
|||
8
dave2000
13.03.15
✎
11:37
|
(6) (7) Теперь понял, спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |