Подключение к Web-сервису стороннего разработчика (не 1С) #684039


#0 by yurii-syrkin
Всем здравствуйте. В общем немного прояснилось, оказывается стандартный механизм платформы (WS ссылка) на данный момент как я понимаю имеют ограниченный функционал для работы с soap. Далеко не каждый wsdl способен определиться, пусть даже в soap ui проблем с ним не возникает. У 1С на этот счет свои требования, о которых мне в результате двухнедельных боев так и не посчастливилось узнать. Теперь вопрос в следующем: как мне подключиться через COM к web-сервису. Операционная система windows 2008 r2 поэтому MSSOAP.SoapClient30 никак не получается воспользоваться, может что не так делаю, вылетает с ошибкой "класс не зарегистрирован"
#1 by Asmody
веб-сервис, видимо, на java? Можно взять wsdl, допилить до вида, который прожует 1С, но это долго и муторно. Можно написать "прослойку" на чем-то, что понимает ws с той стороны и устроит 1С
#2 by shuhard
+1
#3 by yurii-syrkin
wsdl я допиливал, только пришлось убирать теги, которые отвечают за авторизацию. Видимо именно со способами авторизации у 1С не все хорошо. А вот с прослойкой это интересно. Под силу ли это 1С программисту?)
#4 by yurii-syrkin
А вы сами пробовали этим пользоваться? Может чего не понимаю, но я скачал, поставил, посмотрел мануал, эти два общих модуля ни слова про soap, ни слова про wsdl. Что это такое не пойму. http get и post они и без этого работают. Кому интересно это пригодится. Сейчас еще посмотрю, конечно
#5 by Смотрящий от 1С
если не секрет с каким внешним сервисом возитесь? Я сам бодаюсь с одним уже недели три
#6 by yurii-syrkin
Заказчики говорили это конфиденциально, хотя ничего такого в принципе, но вы бы все равно не смогли его открыть в браузере, там ограничение по ip-адресам установлено. На всякий случай писать не буду, вдруг в поиск зададут) На сколько сильно продвинулись? Что перепробовали?
#7 by yurii-syrkin
Вот концовка wsdl, без которой все определяется:
#8 by yurii-syrkin
Хорошо. К примеру  я убрал эти теги, у меня ws ссылка нормально определилась в конфигураторе. Почему у меня вылетает ошибка на строке WSСсылки.WS_АСУ_ОДС.СоздатьWSПрокси(" Ошибка по причине: Сервис не найден.
#9 by Смотрящий от 1С
не мой, вижу)). Где то встречал статью Гения1С, он там писал, про то, что 1С не любит Policy в WSDL
#10 by yurii-syrkin
Да, я тоже читал, благодаря этому и смог хоть как-то загрузить этот wsdl. Только теперь при создании ошибка лезет. Вообще, конечно, не понятно, возможно ли такое, что в 1С один wsdl, а там на web-сервисе другой, пусть не на много, но отличный. Будет это работать или нет?
#11 by Balonbl4
Будь мужиком! Сформируй xml "руками" и скорми его сервису POST запросом
#12 by Serginio1
#13 by Leksus
плюсану
#14 by Serginio1
Ты секцию service то оставь Удали только то, что после нё.
#15 by yurii-syrkin
Выдает: "Internal Server Error" на строке: Сообщить("" + xmlHttp.statusText);
#16 by yurii-syrkin
hostName ставлю ip адрес сервера, а urlAddress - значение soap:address location из WSDL. Правильно?
#17 by Serginio1
да
#18 by Serginio1
У меня был один сайт так я его через сборку .Net использовал Сейчас с 7.7 буду использовать.
#19 by yurii-syrkin
Вообще, конечно MSXML2.xmlHttp это то что нужно в моем случае, но что я похоже не так делаю:     If DOC.parseError.errorCode <> 0 Then         Сообщить("Ошибка разбора XML " + DOC.parseError.reason);     If DOCToSave.parseError.errorCode <> 0 Then
#20 by Serginio1
#21 by yurii-syrkin
Это безусловно очень важная и интересная информация и я её себе сохранил на всякий случай, но как мне воспользоваться этим для решения своих проблем?
#22 by Serginio1
Попробуй воспользоваться C#. А прочитать стоит, что бы понять, что напрямую соединиться не получится
#23 by yurii-syrkin
Да вот я уже тоже сейчас в этом направлении работаю. Никогда не приходилось сталкиваться, а тут на тебе. Учитывая мой исключительно 1С-овский уклад, мне похоже непросто придется, да?) Я так понял надо написать внешнюю компоненту и обращаться к ней из 1С?
#24 by Serginio1
Нет не надо. Нужно сделать сборку с подключением к Вэб сервису. А затем через   через COM использовать её обернув объекты через AutoWrap. Заходишь в Вижуал студию,Создаешь библиотеку, добавляешь ссылку на службу (совместимость с 2.0) Добавляешь класс который возвращает объект соединения обернутый в AutoWrap     [ClassInterface(ClassInterfaceType.AutoDispatch)]     [Guid("Создаешь свой ГУИД")]         {             return new AutoWrap(new   ПодключениеКТвоемуВэбСервису);         } А с этим объектом работаешь из 1С как с COM объектом
#25 by Serginio1
Можно и без совместимости
#26 by yurii-syrkin
В общем, ребят, удалось все таки повлиять на разработчиков веб сервиса, чтобы они изменили способ аутентификации. 1С принимает только базовый способ.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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