Не вызывается метод из 1с на веб-сервисе SOAP #651849


#0 by zenaXXX
Помогите пожалуйста, не могу разобраться. Есть веб сервис сторонний, подключаюсь к нему через 1с на последней строчке выдает ошибку: {Форма.Форма.Форма}: Метод объекта не обнаружен (addComment) Proxy.addComment("tasks",45578,"Тест","ACCOUNTING","");     В чем может быть дело. Из других систем этот метод работает
#1 by Serginio1
#2 by Serginio1
Прошу прощения. Это к 1С. Для сторонних может быть не так. Хотя кроме АдресВэбСервиса должно быть одинаково. Смотри в отладчике
#3 by sapphire
wsdl?
#4 by zenaXXX
В отладчике у меня есть только одна точка подключения, ее я и прописываю в Новый WSПрокси, если вызываю с окончанием soap, она ругается что порт не найден
#5 by zenaXXX
Пробовала и "ПутьКМоемуСервису?wsdl" и "ПутьКМоемуСервису разницы нет
#6 by sapphire
Проверь имя метода по wsdl
#7 by Asmody
создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает
#8 by sapphire
Если подумать, то ПутьКМоемуСервису?wsdl забив в браузер ты увидишь описание web-сервиса....
#9 by sapphire
web-сервисы чувствительны к регистру букв.
#10 by zenaXXX
создай в пустой конфе WSСсылку, закинь в нее свой wsdl и посмотри, какие методы 1Ска распознает Она ругается, что формат неверен, в каком формате нужно указывать url
#11 by Asmody
а в браузере открывается?
#12 by zenaXXX
Путь у меня ПутьКМоемуСервису.xml?wsdl
#13 by zenaXXX
открывается в xml формате
#14 by Asmody
так и прописывй
#15 by sapphire
в формате URI
#16 by sapphire
Есть веб сервис сторонний - как правило, в виде URI...
#17 by zenaXXX
Пишет что неверный формат, может нужно каку-нибудь библитеку подгрузить?
#18 by sapphire
:)))))))))))))))))))))))))))))))))))))))))))
#19 by sapphire
адрес сервера секретный такой что ли?
#20 by zenaXXX
ага
#21 by Asmody
значит не судьба с этим сервисом из 1Ски поработать. SOAP он такой SOAP, слишком вольно местами трактуемый
#22 by sapphire
Адрес стороннего web-сервиса какой?
#23 by sapphire
Не факт, Вить
#24 by sapphire
Да не нужен мне твой сервант, сама проверь, открывается ли в браузере wsdl-ка
#25 by sapphire
Если там еще и https то вообще песня :)
#26 by zenaXXX
открывая ПутьКМоемуСервису.xml?wsdl я получаю тоже что и когда пишу ПутьКМоемуСервису.xml
#27 by sapphire
использовать платформу 8.3 в качестве ws2ws-proxy :)))
#28 by Balonbl4
ТС, у меня была схожая ситуация, вот статья с моими изысканиями:
#29 by sapphire
И что получаешь? *уже просто интересно*
#30 by zenaXXX
не могу использовать 8.3
#31 by Balonbl4
В моем случае это не помогло(сторонний веб сервис был на Oracle Fusion Middlewere)
#32 by sapphire
без разницы. Можно использовать любое MQ с поддержкой SOAP в качестве ws2ws-proxy
#33 by sapphire
Ну не можешь и не можешь. Короче, ты описание сервиса через обычный браузер видишь?
#34 by Balonbl4
Можно поподробнее?
#35 by zenaXXX
я вижу его в формате xml
#36 by sapphire
Ищи метод addComment и смотри что он должен получить.
#37 by zenaXXX
<part name="type" type="xsd:string"/><part name="id" type="xsd:int"/><part name="comment" type="xsd:string"/><part name="user" type="xsd:string"/><part name="attachments" type="soap-enc:Array"/>
#38 by sapphire
MQ = Message Queue, например, RabbitMQ
#39 by zenaXXX
это параметры метода addcomment
#40 by sapphire
Метод в том пространстве имен?
#41 by sapphire
>>Из других систем этот метод работает Из каких других, 1С или что-то иное?
#42 by zenaXXX
что-то иное, код на perl
#43 by sapphire
на той же машине, что и сервер 1С? :)
#44 by zenaXXX
нет
#45 by zenaXXX
на другой машине
#46 by sapphire
ты с регистром имя метода точно не путаешься, дело в том, что метод addcomment из и addComment из с точки зрения SOAP - разные
#47 by sapphire
на perl имя метода как звучит?
#48 by zenaXXX
на perl они вызывают my $obj = $soap->addComment( $tw_type, $tw_id, $tw_comment, $tw_user, $tw_attachments );
#49 by sapphire
у сервиса есть эхо-метод?
#50 by sapphire
в скорее всего ошибка. в perl пространство имен и прочее статично или дергает из определения?
#51 by zenaXXX
что за эхо-метод?
#52 by sapphire
обычно метод echo реализуют у сервисов для диагностики связи.
#53 by Serginio1
Можешь создать класс на Net для подключения вэб сервиса а затем через вот этот прокиси подключить его как ком
#54 by sapphire
+ в передача параметров неправильная согласно : и. т. п.
#55 by sapphire
Да там в создании WSProxy косяк, ИМХО
#56 by Balonbl4
1ска же нормально преобразует в xml примитивные типы, мне кажется, это излишество
#57 by zenaXXX
с фабрикой я тоже пробовала, но проблема именно в том что 1с-ка не видит этот метод
#58 by sapphire
Проблема в создании WSProxy
#59 by sapphire
на ответь
#60 by zenaXXX
Точно сказать не могу
#61 by sapphire
Причина? Ты не знаешь статично оно в perl или динамично?
#62 by zenaXXX
я не вижу весь код
#63 by zenaXXX
мне дали только пример
#64 by Asmody
проблема в том, что wsdl скорее всего не соответствует спецификации. из-за чего 1Ска не может преобразовать его в XTDO.
#65 by sapphire
ИМХО, там она просто из другого пространства имен цепляет.
#66 by sapphire
врядли
#67 by sapphire
Меня вот это смущает:
#68 by zenaXXX
что именно
#69 by sapphire
Для сложных и included type есть такая фича
#70 by sapphire
URIПространстваИмен и прочее точно соответсвует определению?
#71 by sapphire
сервис на закрытом порту?
#72 by sapphire
а то играем в "Угадай мелодию"....
#73 by Serginio1
Для anyType нужно явное создание типа. Но в данном случае ругается на метод. Если же в она WS ссылку не может загрузить, то возможно, что 1С не понимает. Если бы была ссыдка можно было бы проверить
#74 by zenaXXX
как это можно проверить
#75 by zenaXXX
</portType> <binding name="Binding" type="tns:WSСервис.ИмяТочкиПодключения"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="addComment"></operation></binding> <service name="Сервис"><port name="WSСервис.ИмяТочкиПодключения" binding="tns:Binding"><soap:address location="URIПространстваИмен"/></port></service><message name="addCommentIn"><part name="type" type="xsd:string"/><part name="id" type="xsd:int"/><part name="comment" type="xsd:string"/><part name="user" type="xsd:string"/><part name="attachments" type="soap-enc:Array"/></message> Что типа этого, в чем может быть ошибка
#76 by zenaXXX
и закрывается все </definitions>
#77 by fisher
Я давно разочаровался в 1с-овском SOAP. Сплошь и рядом продвинутые веб-сервисы юзают SOAP шире, чем его поддерживает 1С. В итоге 1С их "не понимает".
#78 by zenaXXX
Помогите, очень надо
#79 by Balonbl4
Вы статью читали, ссылку на которую я давал в самом начале? Делайте как там.
#80 by На стороне добра
Сохрани WSDL-описание в xml-файл, и загрузи WSссылку, если будет ошибка "неверный формат", значит надо редактировать xml. Я так раздел за разделом отлаживал. Еще проверь веб-сервис на валидность, можно через сайт
#81 by fisher
Хорошая идея. Я тоже как-то было так отлаживал. Избавлял от циклических ссылок в пространствах имен (1С этого не переваривает). Думал, что победа близка. wsdl успешно загрузился. А потом выяснилось, что сервис использует хитрый способ авторизации через установку каких-то заголовков (подробности уже плохо помню), а 1С эту фигню не поддерживает. Было очень обидно.
#82 by zenaXXX
файл сохранила, пишет что неверный формат, можно ли какой-нибудь прогой его проверить. Сайт не подходит
#83 by zenaXXX
Может кто знает, что может не нравиться в wsdl 1с, почему она может писать неверный формат?
#84 by zenaXXX
и что такое  циклические ссылки в пространствах имен
#85 by Asmody
SoapUI тебе в помощь. невалидный wsdl
#86 by zenaXXX
wsdl валидный, я отправляла запрос с помощью soap-клиента, все нормально отрабатывает
#87 by zenaXXX
дело именно в 1с, ей что-то не нравиться(
#88 by На стороне добра
Скинь wsdl сюда
#89 by zenaXXX
Нашла))))) Может кому поможет: ошибка была в том что в узле <portType name="WSСервис.ИмяТочкиПодключения"><operation name="Com"><documentation>яяя</documentation><input message="tns:addCommentIn"/></operation>  не было выходного <output message="tns:addCommentIn"/> и в самом начале было просто <?xml version='1.0'?>, я поставила <?xml version='1.0' encoding='UTF-8'?>
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С