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

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

  1. TopicStarter Overlay
    Hatycik
    Offline

    Hatycik

    Регистрация:
    15 янв 2013
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Нужна ваша помощь.
    Мне в распоряжение дали файл .wsdl, мне из него нужно получить данные. Но при этом примитивные типы нормально возвращаются, а вот массивы нет. Как правильно организовать с ними работу?
  2. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    в каком виде возвращает веб-сервис массив (просто ответ в xml покажите)? какие настройки xdto сделали?
  3. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    добрый день.
    я начинающий 1сник, поэтому сильно не пинайте

    есть внутренний веб-сервис для обмена данными между программами, wsdl-ссылка
    пишу функцию:

    Прокси = WSСсылки.WSСсылка.СоздатьWSПрокси(URI, "Service", "ServiceSoap");
    ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(URI).Получить("find");
    WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
    WSПараметр.partNumber = Артикул;
    WSПараметр.partnerId = id;
    Результат = Прокси.find(WSПараметр);

    у метода find всего 2 параметра, я их заполняю
    в ответ - недостаточно фактических параметров

    как я понимаю, пакет из 1с предприятия не уходит

    проверял этот сервис в soapui - там запросы проходят, ответ приходит
    пробовал в 1с предприятии сделать запрос к другому веб-сервису (http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL) - оттуда приходит нормальный ответ

    подскажите, пжл, что не так делаю?
  4. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    ставьте точку останова после получения "Прокси", проверьте получено ли у вас соединение

    возможно, нужно будет задать пользователя и пароль :
    Код:
     Прокси.Пользователь = ИмяПользователя;
    Прокси.Пароль  = Пароль;
    
  5. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    а как узнать, получено ли соединение?
    ошибка возникает на последней строке Результат = Прокси.find(WSПараметр);

    пробовал по динамической ссылке - результат то же

    пользователь и пароль не нужны - soapui без них данные получает
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не понял. В метод find вы передаете один параметр, а пишите что их должно быть два.
  7. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Поставьте точку останова на этой строке, отладчиком посмотрите, (выделяете фрагмент "Прокси" нажимаете Shift-F9 - "Вычислить выражение") в появившемся окне смотрим значения
  8. mikele
    Offline

    mikele

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

    mikele

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

    Вложения:

  10. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Если у вас "Артикул" и "id" примитивного типа, попробуйте задать их через "XMLСтрока()"
  11. mikele
    Offline

    mikele

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

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    В отладчике поразворачивайте свойства (как в #9 посте показано), не помню где конкретно находится, где-то в описании пакетов кажется, там в итоге будет определение процедур, с количеством параметров, и с указанием их обязательности. Убедитесь что в определении сервиса у процедуры действительно один параметр.

    Я например сталкивался с тем, что по руководству пользователя, у процедуры веб сервиса вообще нет параметров, а фактически она требует параметр, причем он отмечен как обязательный.
  13. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    XMLСтрока не помогла, я даже в функции напрямую строки вбил
  14. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    приведите скрин с SoapUI

    теста выбранного метода
  15. mikele
    Offline

    mikele

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

    Вложения:

    • soapui.jpg
      soapui.jpg
      Размер файла:
      44 КБ
      Просмотров:
      24
  16. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Откройте wsdl файл, примерно в первой "сотне" строк идет определение типов значений, поиском найдите тип "partnerId" по сей видимости его нужно будет доопределить

    ее в коде, аналогично с другим параметром
  17. mikele
    Offline

    mikele

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

    <xs:element minOccurs="0" name="partnerId" type="xs:string"/>
    <xs:element minOccurs="0" name="partNumber" type="xs:string"/>
  18. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Проверте пространство имен в которое входит "partnerId, partNumber"
  19. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    wsdl ссылку на сервис дайте.
  20. mikele
    Offline

    mikele

    Регистрация:
    27 ноя 2013
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    wsdl в локалке на сервере, внешнего доступа нет
Похожие темы
  1. Irys
    Ответов:
    8
    Просмотров:
    5.153
  2. Nat12345
    Ответов:
    1
    Просмотров:
    1.138
  3. Науменко
    Ответов:
    1
    Просмотров:
    864
  4. Bonderos
    Ответов:
    2
    Просмотров:
    2.270
Загрузка...

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