Конторе пришло коммерческое предложение от партнеров обмениваться электронными документами в формате EDI. Вспомнив, что подобный опыт уже имеется, решил пойти по пути наименьшего сопротивления и использовать для обмена Web-сервисы. Партнеры предложили провайдера Эдисофт и мы согласились.
Техподдержка Эдисофта выслала все материалы для подключения, а также тестовый логин и пароль. Ну всё, дело пошло, подумал я и довольно ухмыльнулся. Оказалось, рано....
Первое, что пришло в голову – создать в 1С новую WS–ссылку. Однако при попытке создания ссылки неожиданно выскочила табличка «Неверный формат». Неужели что то забыл…. Начал лихорадочно проверять – так, сертификаты в Cacert.pem добавил, прокси–сервера у меня нет (интернет включен «напрямую»), так, вроде всё верно… Хотя все равно не работает.
Ладно, нужно хотя бы посмотреть внимательно на этот Web – сервис. Сразу бросается в глаза внешнее сходство с сервисом провайдера Корус, разве только слегка видоизменены названия функций и другое пространство имен «urn:wsedi» (называется, найди десять отличий). Но у Коруса Web – сервис работает, а этот нет. В чем же причина? Видимо, придется проверять валидность WSDL ссылки.
Вот что пишет онлайн валидатор WSDL ссылок http://www.validwsdl.com/ когда мы задаем ему проверить строку https://service.ediweb.eu/wsedi/services/EDIServiceSoap?WSDL
Error : The received HTTP response could not be parsed as a WSDL document : see below
(Ответ Web–сервиса не парсится как WSDL документ). Всё понятно, не смог разобрать ответ. А всё – таки, в чем причина?
Проверим теперь ответ Web–сервиса с помощью хорошо знакомой нам программы SOAP UI. Выберем самую простую функцию RelationShips, для тестирования зададим тестовый логин и пароль, полученный у Эдисофт. Нажимаем «Выполнить» (зеленую стрелочку в уголке) и, о чудо, получаем ответ. Но не всё гладко, как кажется. Встаем на поле ответа и правой кнопочкой «Validate» («Проверить»).
Ошибка в строке 4: Результат работы RelationShipResult принадлежит к другому пространству имен – на входе указано пространство «urn:wsedi», а результат возвращает «http://www.comarch.com/».
Вот и вся разгадка. Странно, как местные программисты ещё до этого не додумались…
На их месте, я бы сел быстро править текст своего сервиса, дабы не оконфузится в следующий раз. Не очень приятно, когда на подобные «косяки» указывает совершенно посторонний человек. Будьте повнимательней, когда сдираете у других, да ещё и криво.
Чего и вам желаю….