Имя: Пароль:
1C
1С v8
Настройка обмена со сторонним 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
Вот ссылка на документацию, чтобы было ясней
https://drive.google.com/open?id=1pWfAwEyOfn5tVI6pwkF0fUwJhWxOkOjH
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
Видимо придется. А так хотелось облегчить себе жизнь