|   |   | 
| 
 | 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) Теперь понял, спасибо)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |