Работа с веб-сервисами

26 Comments

  1. vasiliy_b

    А как это использовать и зачем?

    Reply
  2. ghostaz

    Аналог soapUI. Обработка позволяет выполнить операцию веб-сервиса и отобразить результат в виде xml или дерева.

    Reply
  3. opx

    Через wsопредеелния делали?

    Reply
  4. ghostaz

    Да, делал с использованием WSОпределения и WSПрокси.

    Reply
  5. superman

    а чем soapUI не устраивает?

    Reply
  6. ghostaz

    Устраивает полностью. Хотя в последнее время мне быстрее и проще запустить собственную обработку.

    Правда soapUI подтормаживает при различного рода анимациях (например всплывающие окна skype) под XP.

    В бесплатной версии запрос предсталвен в виде текста. Для ввода даты надо помнить формат.

    Замечено, что 1С может принять чуть больший обьем данных, чем soapUI.

    Reply
  7. CagoBHuK

    1. WSОпределения смогут обработать далеко не все файлы WSDL. Что Вы будете делать, когда человек, купивший Вашу обработку, пользоваться ей не сможет?

    2. 1С далеко не всегда правильно обрабатывает HTTPS соединения. Например, могут быть проблемы с истекшими сроками сертификатов. В таком случае WSОпределения работать не будут

    3. У Вас зачем-то необходимо явно указывать пространство имен веб-сервиса. Я, конечно, прекрасно понимаю, зачем Вы это сделали, но обычному пользователю это будет непонятно. Помимо всего прочего у Вас будет некорректно обрабатываться ситуация, когда в HTTP-заголовке указано одно пространство имен и SOAPAction, а в XML — другое. До кучи еще и в команде SOAP может быть указано свое пространство имен.

    В общем короче считаю недоработанным сей механизм. За вывод результата в управляемую форму — плюс. За использование WSОпределения — минус. Перепишите на XMLHTTP, и цены Вашему решению не будет.

    Reply
  8. ghostaz

    Спасибо за замечания. На 1 и 2 пока не замечал проблем, наверно потому что работал с веб-сервисами созданными в 1С да и сертификат был не просроченным и про эту особенность я не знал. На счет третьего пункта — наоборот, пространство имен веб-сервиса нельзя менять, оно берется из описания веб-сервиса, но если кому и надо это — легко изменить в обработке. А на счет XMLHTTP это мысль хорошая, алmтернатива нужна. В любом случае это одна из первых версий и в дальнеших версиях функционал будет улучшаться.

    Reply
  9. DitriX

    В чем отличие от http://infostart.ru/public/95062/ ?

    Reply
  10. ghostaz

    Если бы я увидел ее раньше, то наверно свою бы не писал), а доработал бы эту.

    Основа та же — WSОпределления, разница больше в удобстве.

    Различия:

    1 — WSReader2 в управляемой форме

    2 — WSReader2 позволяет хранить список WSDL и данных авторизациии, та обработка хранит только данные одного веб-сервиса

    3 — WSReader2 сохраняет список веб-сервисов в файл, та обработка использует функцию СохранитьЗначение()

    4 — WSReader2 определяет тип входных параметров ws-операции, что поволяет пользователю вводить параметры в поле соответствуюущего типа, правда пока что только простые типы. Та обработка всегда всегда предлагает ввести строку — в этом случае придется например помнить формат представления даты

    5 — WSReader2 может вывести на экран как результат строкового типа, так и результат типа ОбъектXDTO. В последнем случае возможно получить представление в виде дерева значений, что приятнее просматривать. Сравнимаемая обработка выводит, если я не ошибся, только результат типа Строка.

    6 — WSReader2 выводит типы параметров, типы возвращаемых значений операций, типы объектов

    7 — В сравниваемой обработке, почему то, жестко забито пространоство имен веб сервиса… Возможно автор просто забыл убрать

    Это лишь косметические различия, но главное различие в том, что WSReader2 развивается и получает новые функции.

    Reply
  11. Kamik

    на wsdl из подвески уходит в бесконечный цикл.

    Reply
  12. smaximaa

    Хорошая альтернатива SoapUI.

    Reply
  13. smaximaa

    Кто нибудь знает, что за ошибка у меня возникает при нажатии на кнопку «Выполнить операцию»?

    Текст ошибки:

    {(1)}: Ошибка при вызове метода контекста (GetProductByGuid)

    Результат = WSПрокси.GetProductByGuid(«57a674fd-ca2b-c523-6853-72d27b4ae32c»);

    по причине:

    Ошибка вызова операции сервиса: {http://api.vetrf.ru/schema/cdm/registry/service}:ProductServiceBindingQSService:GetProductByGuid()

    по причине:

    Неизвестная ошибка. Ошибка работы с Интернет: Failure when receiving data from the peer

    по причине:

    Ошибка работы с Интернет: Failure when receiving data from the peer

    Reply
  14. rokhin

    Огромнейшее спасибо!!!

    Перестал работать SoapUI, даже не понятно почему.

    Но это лучше!!!!

    Reply
  15. ghostaz

    Вы льстите. SoapUI функциональнее.

    Предполагаю почему SoapUI перестал работать. Ошибка в новой платформе https://bugboard.v8.1c.ru/error/000025093.html

    Если нет доступа то процитирую:

    «При обращении к объектам WebСервис, HTTPСервис и сервисам OData клиенту возвращается некорректное значение поля HTTP заголовка WWW-Authenticate в случае, если произошла ошибка авторизации — значение не содержит «realm=»1C:Enterprise 8.3″».»

    Исправлена в 8.3.10.1877

    Reply
  16. DenisCh

    Если 8.2 — это обычно подразумевает обычные формы…

    Внесите изменение в заголовок, чтобы не смущать других…

    Reply
  17. DenisCh

    Кроме того

    СертификатыУдостоверяющихЦентровWindows доступна с 8.3

    Так что в заголовке обман потребителя.

    ВЕРНИТЕ МНЕ мои $m )))))))))))

    Шутка.

    Reply
  18. ghostaz

    Да согласен. Обработка менялась, а заголовок нет.

    Reply
  19. Serg O.

    не понимаю… желания изобрести велосипед… но «+» за усердие

    Reply
  20. ghostaz

    (19) велосипед, но не просто так, на практике работа с веб сервисами платформой отличается от того же SoapUI. Наши клиенты в основном используют наш API из 1С и нам нужно было тестировать вызовы на 1С. Не помню уже точно в чем отличия, по моему были проблемы с типом Неопределено, передачей пустых значений, сертификаты SSL. Сейчас уже используем сценарное тестирование на 1С и потому обработку эту не используем.

    Reply
  21. AndKovalchuk

    Интересно, а почему у меня нет возможности занести местоположение WSDL

    Reply
  22. AndKovalchuk

    Вроде разобрался. Но хочется добавить, что мне, как чайнику не хватает еще одно поля «описание операции»

    Reply
  23. ghostaz

    (21) Андрей здравствуйте. Поля сверху просто отображают свойства текущего веб сервиса.

    1 — Сначала надо в таблицу WSОпераций добавить строку в которой указать ссылку на WSDL, логин и пароль

    2 — Далее надо нажать кнопку получить WSDL. Обработка прочитает веб сервисы, операции и точки подключения.

    3 — Выбрать Веб сервис

    4 — Выбрать точку доступа. У 1С их две различаются версией SOAP

    5 — Выбрать операцию которую надо выполнить

    После этих шагов все поля сверху будут заполнены. И можно переходить на вторую вкладку для ввода параметров, а потом и на вкладку для вызова операции и получения результата.

    Предложение на счет описания интересное. Я сам не описывал операции, потому даже не подумал про это.

    Я вижу вы уже добавили нужное вам поле, я бы мог выложить ваш вариант, если вы не против.

    Reply
  24. AndKovalchuk

    (23) Скажите куда вам отправить файл с обработкой. Сюда не хочется прикреплять.

    Reply
  25. ghostaz

    (24) Написал вам в личку. Но продублирую ghostaz@mail.ru

    Reply
  26. AndKovalchuk

    Хорошо. Вечером пришлю. Она у меня осталась на домашнем компе.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *