8.х WEB Ошибка проверки данных XDTO: Структура объекта не соответствует типу

Тема в разделе ""1C:Web-Сервер"", создана пользователем o_O, 28 мар 2017.

  1. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    Всем добра!

    Создал пакет XDTO: таблица (Tabl) с одной колонкой код (cde)

    upload_2017-3-28_14-28-55.png

    <xs:schema xmlns:tns="urn:test.ru:CEI" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:test.ru:CEI" attributeFormDefault="unqualified" elementFormDefault="unqualified">
    <xs:complexType name="Tabl">
    <xs:sequence>
    <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="cde">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="15"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>

    А также создал web-сервис с операцией GetInfo, в которую передаю дату и таблицу
    Функция GeInfo(дт, табл)
    возврат "";
    КонецФункции


    При попытке отправить запрос НЕ с пустой таблицей получаю ошибку:

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Body>
    <soap:Fault>
    <soap:Code>
    <soap:Value>soap:Sender</soap:Value>
    </soap:Code>
    <soap:Reason>
    <soap:Text xml:lang="ru_RU">Неизвестная ошибка. Ошибка преобразования данных XDTO:
    Чтение объекта типа: {urn:test.ru:CEI}Tabl - [14,4]
    Проверка дополнительного свойства:
    форма: Элемент
    имя: {urn:test.ru:CEI}item
    по причине:
    Ошибка преобразования данных XDTO:
    Чтение объекта типа: {urn:test.ru:CEI}Tabl - [14,4]
    Проверка дополнительного свойства:
    форма: Элемент
    имя: {urn:test.ru:CEI}item
    по причине:
    Ошибка проверки данных XDTO:
    Структура объекта не соответствует типу: {urn:test.ru:CEI}Tabl</soap:Text>
    </soap:Reason>
    </soap:Fault>
    </soap:Body>
    </soap:Envelope>


    Запрос:

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="192.168.1.1" xmlns:urn="urn:test.ru:CEI">
    <soap:Header/>
    <soap:Body>
    <ns:GetInfo>
    <ns:Date>2017-03-01</ns:Date>
    <ns:Tab>
    <urn:item>
    <urn:cde>1234</urn:cde>
    </urn:item>
    </ns:Tab>
    </ns:GetInfo>
    </soap:Body>
    </soap:Envelope>


    При попытке отправить запрос с пустой таблицей ошибки нет.

    Не понимаю почему не работает и что надо исправить?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.271
    Симпатии:
    966
    Баллы:
    204
    Вы к чему такую структуру наворотили?

    Если нужно передавать таблицу, то нужно сделать объект СтрокаТаблицы и создать объект "Таблица", который будет списком объектов СтрокаТаблицы.
  3. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    нужно передавать именно в таком виде:

    <ns:Tab>
    <urn:item>
    <urn:cde>1234</urn:cde>
    </urn:item>
    </ns:Tab>
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.271
    Симпатии:
    966
    Баллы:
    204
    Вот пример:

    upload_2017-3-28_15-14-3.png

    upload_2017-3-28_15-15-30.png
  5. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    та же ошибка. Это может быть связано с IIS v.6.0 ?
  6. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    Поставил в пакете у типов объектов "Открытый" и заработало.
    Причем обе схемы работают.

    Спасибо, nomad_irk!
    Последнее редактирование: 28 мар 2017
  7. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    поторопился.
    если сделать "открытый" то не видит строки входящей таблицы.

    При такой схеме не проходи запрос (Ошибка проверки данных XDTO:Структура объекта не соответствует типу)
    upload_2017-3-28_16-58-25.png

    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="192.168.1.1" xmlns:urn="urn:test.ru:CEI">
    <soap:Header/>
    <soap:Body>
    <ns:GetInfo2>
    <ns:Date>2017-01-01</ns:Date>
    <ns:Tabl2>
    <urn:item>
    <urn:cde>123</urn:cde>
    </urn:item>
    </ns:Tabl2>
    </ns:GetInfo2>
    </soap:Body>
    </soap:Envelope>
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.271
    Симпатии:
    966
    Баллы:
    204
    Предлагаю создать новый пакет правильной структуры с нуля. Этот - удалить.
  9. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    275
    Симпатии:
    0
    Баллы:
    26
    Создал заново - запрос проходит, но если убрать ns:, то пишет "Неверный формат."; если убрать urn:, то пишет "Структура объекта не соответствует типу".
    Как избавиться от ns и urn ?

Поделиться этой страницей