Имя: Пароль:
1C
 
Веб-сервисы 8.1 не соответствуют стандарту?
0 Asmody
 
модератор
31.03.08
20:00
Заморачиваюсь "по взрослому" с веб-сервисами 8.1
Нарисовал простой веб-сервис, опубликовал - все чин-чинарем.
Клиент на 8.1 срабатывает "на ура", клиент на java тоже (правда пришлось отказаться от передачи параметра типа "Дата", но не суть).
Застопорился на клиенте под 7.7 на MS SOAP Toolkit 3.0.
MSSoapInit упорно дает ошибку на 1с-овский wsdl:

WSDLOperation:No soapaction attribute  for operation getItemsList

потратил полдня на RTFM. Выяснил, что в стандарте w3c атрибут soapAction является обязательным при использовании протокола http. Цитирую:
[The soapAction attribute specifies the value of the SOAPAction header for this operation. This URI value should be used directly as the value for the SOAPAction header; no attempt should be made to make a relative URI value absolute when making the request. For the HTTP protocol binding of SOAP, this is value required (it has no default value). For other SOAP protocol bindings, it MUST NOT be specified, and the soap:operation element MAY be omitted. ]
http://www.w3.org/TR/2001/NOTE-wsdl-20010315#_soap:operation

А в том wsdl, который генерит 1Ско, вообще нет атрибутов soapAction!
При всем при этом трассировщик MSSoapT показывает, что сама 1Ско вполне обходится без значений soapAction, т.е. в ее запросах он есть, но содержит пустую строку, клиент на java поступает точно так же.

И как вот теперь заставить работать ее через SOAP Toolkit - хз.
Народ, может есть у кого возможность, гляньте на партнерском - ну не может быть, чтобы я первый на эти грабли наступил...
1 ШтушаКутуша
 
31.03.08
21:11
2 Drock
 
31.03.08
21:14
глянь асю
3 Asmody
 
модератор
31.03.08
22:58
(1) в общем, это попытки сделать то, что ты подумал :)
4 Asmody
 
модератор
01.04.08
14:38
апну
5 Господин ПЖ
 
01.04.08
14:46
При разборе любого сервиса 1С Прелприятие 8.1 (в том числе из демо конфигурации на ИТС), объект

MSSOAP.SoapClient30 из комплекта MSSOAP30sdk выдает ошибку:



WSDLReader: Analysing the WSDL file failed

WSDLOperation: No soapaction for attirbute for operation ... (тут идет имя первого по порядку метода сервиса).



При чем большинство других WEB-сервисов разбираются без проблем.



Может сталкивались?



Заодно спрошу - кто-нибудь пытался реализовать клиента WEB-сервиса из 7.7?



Спасибо.


***

Попробуйте получить wsdl и руками вставить в каждую операцию привязки (<binding><operation>):

<soap:operation soapAction=""/>



См. стандарт WSDL 1.1:  www.w3.org/TR/wsdl. »»



MSSOAP имеет довольно старую реализацию, которая завязана на маршрутизацию сообщений не по телу сообщения, а по специальному http заголовку SOAPAction. К сожалению такой стиль

работы не поддерживается сервером 1С:Предприятия (клиент этот заголовок игнорирует). Можете проверить, возможно после добавления в WSDL пустого soapAction, MSSOAP заработает.

***

Это в общем было понятно. Переформулирую вопрос - известны ли COM объекты которые корректно работают с WEB-сервисами 1C предприятие ?

***

Любой .Net web-сервис. Корректно работает с 1С:Предприятием и может являться COM объектом.

***

Спасибо. Будем учить .Net.
6 Господин ПЖ
 
01.04.08
14:48
хз - в тему или нет...
7 Asmody
 
модератор
01.04.08
14:56
(5) мдя... "доступно и всерьез"...
[MSSOAP имеет довольно старую реализацию] - которая, однако, соответствует стандарту.
т.е. предлагается нарисовать клиента на .net и как-то ухитриться причепить его в 7.7
жестко
8 Господин ПЖ
 
01.04.08
14:58
(7) ИМХО 7.7 + web  - это изврат
9 Asmody
 
модератор
01.04.08
15:08
(8) почему? что плохого в том, что я из 7.7 хочу получать данные с веб-сервиса 8.1?
10 Господин ПЖ
 
01.04.08
15:10
(9) В желании ничего плохого нет. Реализация через ж. + глюкавая. В свое время потыкавшись бросил эту затею.
11 Asmody
 
модератор
01.04.08
15:34
(10) в чем глюкавость?
12 Asmody
 
модератор
02.04.08
15:52
еще мыслей?
13 Steban
 
17.06.08
19:20
Вот нашел одну хреновину, которая динамически генерит прокси к веб-сервису на основании WDSL-описания : http://www.gotnet.biz/Blog/post/Invoking-a-SOAP-based-Web-Service-with-PowerShell.aspx
После небольшой правки исходников вполне можно юзать как COM-объект.
14 Steban
 
17.06.08
19:22
Работает с веб-сервисами 1с 8.1