8.х WEB Web-сервисы

Тема в разделе ""1C:Web-Сервер"", создана пользователем Hatycik, 13 авг 2013.

  1. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Отладчиком по "прокси" смотрите какие пакеты Фабрики XDTO вы получаете и доопрелеляете соотв. типом из соотв. пакета "partnerId, partNumber"
  2. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    [xml]This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://mouser" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="MouserService" targetNamespace="http://mouser">
    <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://mouser" elementFormDefault="unqualified" targetNamespace="http://mouser" version="1.0">
    <xs:element name="findByCategory" type="tns:findByCategory"/>
    <xs:element name="findByCategoryResponse" type="tns:findByCategoryResponse"/>
    <xs:element name="findByKeyword" type="tns:findByKeyword"/>
    <xs:element name="findByKeywordResponse" type="tns:findByKeywordResponse"/>
    <xs:element name="findByPartNumber" type="tns:findByPartNumber"/>
    <xs:element name="findByPartNumberResponse" type="tns:findByPartNumberResponse"/>
    <xs:element name="isAvailable" type="tns:isAvailable"/>
    <xs:element name="isAvailableResponse" type="tns:isAvailableResponse"/>
    <xs:complexType name="isAvailable">
    <xs:sequence/>
    </xs:complexType>
    <xs:complexType name="isAvailableResponse">
    <xs:sequence>
    <xs:element name="return" type="xs:boolean"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByPartNumber">
    <xs:sequence>
    <xs:element minOccurs="0" name="partnerId" type="xs:string"/>
    <xs:element minOccurs="0" name="partNumber" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByPartNumberResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="tns:articul"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="articul">
    <xs:sequence>
    <xs:element minOccurs="0" name="available" type="xs:boolean"/>
    <xs:element minOccurs="0" name="category" type="xs:string"/>
    <xs:element minOccurs="0" name="datasheetUrl" type="xs:string"/>
    <xs:element minOccurs="0" name="description" type="xs:string"/>
    <xs:element minOccurs="0" name="detailUrl" type="xs:string"/>
    <xs:element minOccurs="0" name="imageUrl" type="xs:string"/>
    <xs:element minOccurs="0" name="leadTime" type="xs:string"/>
    <xs:element minOccurs="0" name="lifecycle" type="xs:string"/>
    <xs:element minOccurs="0" name="manufacturer" type="xs:string"/>
    <xs:element minOccurs="0" name="moq" type="xs:string"/>
    <xs:element minOccurs="0" name="mouserPartNumber" type="xs:string"/>
    <xs:element minOccurs="0" name="mult" type="xs:string"/>
    <xs:element minOccurs="0" name="partNumber" type="xs:string"/>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="prices" nillable="true" type="tns:price"/>
    <xs:element minOccurs="0" name="reeling" type="xs:boolean"/>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="replacements" nillable="true" type="xs:string"/>
    <xs:element minOccurs="0" name="rohs" type="xs:string"/>
    <xs:element minOccurs="0" name="weight" type="xs:decimal"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="price">
    <xs:sequence>
    <xs:element minOccurs="0" name="amount" type="xs:decimal"/>
    <xs:element minOccurs="0" name="currency" type="xs:string"/>
    <xs:element name="quantity" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByKeyword">
    <xs:sequence>
    <xs:element minOccurs="0" name="partnerId" type="xs:string"/>
    <xs:element minOccurs="0" name="keyword" type="xs:string"/>
    <xs:element name="offset" type="xs:int"/>
    <xs:element name="count" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByKeywordResponse">
    <xs:sequence>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:articul"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByCategory">
    <xs:sequence>
    <xs:element minOccurs="0" name="partnerId" type="xs:string"/>
    <xs:element minOccurs="0" name="category" type="xs:string"/>
    <xs:element minOccurs="0" name="categoryRus" type="xs:string"/>
    <xs:element name="offset" type="xs:int"/>
    <xs:element name="count" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="findByCategoryResponse">
    <xs:sequence>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:articul"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="findByPartNumberResponse">
    <wsdl:part element="tns:findByPartNumberResponse" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="isAvailableResponse">
    <wsdl:part element="tns:isAvailableResponse" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="isAvailable">
    <wsdl:part element="tns:isAvailable" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="findByCategoryResponse">
    <wsdl:part element="tns:findByCategoryResponse" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="findByKeyword">
    <wsdl:part element="tns:findByKeyword" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="findByPartNumber">
    <wsdl:part element="tns:findByPartNumber" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="findByCategory">
    <wsdl:part element="tns:findByCategory" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="findByKeywordResponse">
    <wsdl:part element="tns:findByKeywordResponse" name="parameters"></wsdl:part>
    </wsdl:message>
    <wsdl:portType name="MouserService">
    <wsdl:eek:peration name="isAvailable">
    <wsdl:input message="tns:isAvailable" name="isAvailable"></wsdl:input>
    <wsdl:eek:utput message="tns:isAvailableResponse" name="isAvailableResponse"></wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="findByPartNumber">
    <wsdl:input message="tns:findByPartNumber" name="findByPartNumber"></wsdl:input>
    <wsdl:eek:utput message="tns:findByPartNumberResponse" name="findByPartNumberResponse"></wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="findByKeyword">
    <wsdl:input message="tns:findByKeyword" name="findByKeyword"></wsdl:input>
    <wsdl:eek:utput message="tns:findByKeywordResponse" name="findByKeywordResponse"></wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="findByCategory">
    <wsdl:input message="tns:findByCategory" name="findByCategory"></wsdl:input>
    <wsdl:eek:utput message="tns:findByCategoryResponse" name="findByCategoryResponse"></wsdl:eek:utput>
    </wsdl:eek:peration>
    </wsdl:portType>
    <wsdl:binding name="MouserServiceSoapBinding" type="tns:MouserService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:eek:peration name="findByPartNumber">
    <soap:eek:peration soapAction="" style="document"/>
    <wsdl:input name="findByPartNumber">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:eek:utput name="findByPartNumberResponse">
    <soap:body use="literal"/>
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="isAvailable">
    <soap:eek:peration soapAction="" style="document"/>
    <wsdl:input name="isAvailable">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:eek:utput name="isAvailableResponse">
    <soap:body use="literal"/>
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="findByKeyword">
    <soap:eek:peration soapAction="" style="document"/>
    <wsdl:input name="findByKeyword">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:eek:utput name="findByKeywordResponse">
    <soap:body use="literal"/>
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    <wsdl:eek:peration name="findByCategory">
    <soap:eek:peration soapAction="" style="document"/>
    <wsdl:input name="findByCategory">
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:eek:utput name="findByCategoryResponse">
    <soap:body use="literal"/>
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    </wsdl:binding>
    <wsdl:service name="MouserService">
    <wsdl:port binding="tns:MouserServiceSoapBinding" name="MouserServiceSoap">
    <soap:address location="http://vdatasrv:8080/mouserdb/api/soap/MouserService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    [/xml]
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Вместо
    Код:
    Результат = Прокси.find(WSПараметр);
    Поставить
    Код:
    Результат = Прокси.findByPartNumber(WSПараметр);
  4. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    если передаю параметры xdto-пакетом, то ошибка "недостаточно фактических параметров"

    если напрямую
    partnerId = "";
    partNumber = "";
    результат = WSПрокси.findByPartNumber(partnerId ,partNumber);
    то
  5. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    метод называется findByPartNumber, я в начале сокращенно все писал

    по поводу типа - везде прописано string, я передаю тоже строковые параметры
  6. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Попробуйте передовать не пустые значения
    Код:
    результат = WSПрокси.findByPartNumber(XMLСтрока(partnerId) ,XMLСтрока(partNumber));
    
  7. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    значения передавал и заполненные и пустые - без разницы
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Если правильно понимаю - вы должны передавать 2 параметра, т.е. думаю что верен такой вызов:
    WSПрокси.findByPartNumber(partnerId ,partNumber)

    Под отладчиком разверните "WSПрокси.Определение.Сервисы[0].ТочкиПодключения[0].Интерфейс.Операции", там найдите эту операцию (findByPartNumber), и далее посмотрите у нее свойство "Параметры". Что там?

    На сколько вижу, у вас при вызове с двумя параметрами ведь ругается на возвращаемое значение "<xs:element minOccurs="0" name="available" type="xs:boolean"/>". Почему - не знаю.

    Т.е. типа такого скрин покажите:
    Посмотреть вложение 16881

    Вложения:

    • скрин.PNG
      скрин.PNG
      Размер файла:
      441,9 КБ
      Просмотров:
      8
  9. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    там коллекция параметров

    Вложения:

  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Тип параметров не вижу на скрине, колонки узкие, но предполагаю что string. Причем помечено что они не обязательные.

    Итого - верный формат вызова "WSПрокси.findByPartNumber(partnerId, partNumber)".

    У вас ругается на возвращаемое значение (тип articul). Почему - сказать не могу.
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    З.Ы. Загуглите по словам "Ошибка проверки данных XDTO: Структура объекта не соответствует типу". Возможно у вас что-то с объявлением типов (точнее 1С возможно что-то не так понимает в объявлении типов).
  12. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    то есть запрос правильный, но его неправильно интерпретирует веб-вервис? или он правильно интерпретирует, посылает ответ, а 1с не может его распознать?
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Если я правильно понял гугл, то скорее "или он правильно интерпретирует, посылает ответ, а 1с не может его распознать".
  14. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    спасибо за помощь. буду общаться с разработчиками веб-сервиса
Похожие темы
  1. Irys
    Ответов:
    8
    Просмотров:
    5.154
  2. Nat12345
    Ответов:
    1
    Просмотров:
    1.139
  3. Науменко
    Ответов:
    1
    Просмотров:
    865
  4. Bonderos
    Ответов:
    2
    Просмотров:
    2.273
Загрузка...

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