|
Настройка обмена со сторонним web сервисом |
☑ |
0
Dimban
23.09.19
✎
10:46
|
Добрый день форумчане.
Настраиваю обмен 1С с вэб сервисом. Поставщик сервиса предоставил их 2: LoginWSService - получение ID сесии и WebServService - непостредственно роабота с данными.
В документации написано, что прежде чем вызывать методы WebServService необходимо войти в сеанс с помощью сервиса LoginWSService. Предоставили пример реализации на C#. Помогите перевести с языка C# на язык 1С, как это реализовать.
К сервису LoginWSService обращаюсь успешно, получаю ID сесии. Непонятно, как сервису WebServService указать работать в рамках этой сесии.
Вот пример вызова метода ConsEnvEstados web сервиса WebServService.
C#
WebService.WebServService wsWebService = new WebService.WebServService();
wsWebService.ROClientIDHeaderValue = new WebService.ROClientIDHeader();
wsWebService.ROClientIDHeaderValue.ID = --ID DE SESIÓN RECOGIDO EN EL LOGIN--;
string xmlResult = wsWebService.ConsEnvEstados("agencia-cargo", "agencia-origen", "albaran");
|
|
1
Dimban
23.09.19
✎
11:59
|
Вот ссылка на документацию, чтобы было ясней
|
|
2
DrWatson
23.09.19
✎
12:10
|
А login ты как посылал?
|
|
3
Dimban
23.09.19
✎
12:15
|
НаименованиеВебСервиса = "LoginWSService";
НаименованиеПорта = "LoginWSServicePort";
ВебСервис = WSСсылки.Envialia_LoginWSService.СоздатьWSПрокси(InputParam.URI, НаименованиеВебСервиса, НаименованиеПорта);
ВебСервис.LoginCli2(InputParam.strCodAge, InputParam.strCliente, InputParam.strPass, OutputParam.Result,
OutputParam.strCodAgeOut, OutputParam.strCod, OutputParam.strNom,
OutputParam.strCodCR,OutputParam.strTipo, OutputParam.strVersion, OutputParam.strError,
OutputParam.strSesion, OutputParam.strURLDetSegEnv);
В параметр OutputParam.strSesion возвращается примерно такая строка {C5C720BF-94B9-4F64-A93C-F1E14FD5E9E4}
|
|
4
mzelensky
23.09.19
✎
12:20
|
(0) Не знаю как сейчас, на свежих платформах, но раньше реализовать подобное было нельзя, т.к. 1С-ка не хранит куки\сессии по веб-сервисам.
Каждый запрос - свое отдельное государство со своей авторизацией и набором данных.
|
|
5
DrWatson
23.09.19
✎
12:29
|
(3) Не нашел решение, если вызывать метод через WSПрокси.
Попробуй через вариант:
Other possibility of use for languages that do not support .wsdl consists in launching a POST
petition to the desired address and port, passing a XML carrying input data, and the server will return the output data.
|
|
6
Dimban
23.09.19
✎
12:45
|
Видимо придется. А так хотелось облегчить себе жизнь
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший