Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 окт 2024, 03:17

1С 8.3. Не получается получать значения из веб-сервиса wsdl

Автор gulnyr, 11 окт 2024, 16:53

0 Пользователей и 1 гость просматривают эту тему.

gulnyr

Код:
СервКурс = WSСсылки.WSСсылка1.СоздатьWSПрокси("http://ddm.yanin.ru/ws/eCommerce", "eCommerce", "eCommerceSoap");
 ТипКурс = СервКурс.ФабрикаXDTO.Тип("http://ddm.yanin.ru/ws/eCommerce", "GetCounterpartyInfo");
 ПараметрыКурс = СервКурс.ФабрикаXDTO.Создать(ТипКурс);
 ПараметрыКурс.Login = "User123";
 ПараметрыКурс.Password = "pass456";   
 ДанныеКурс = СервКурс.GetCounterpartyInfo(ПараметрыКурс);

Но данные ДанныеКурс выдает пустое значение. Что здесь не так?

Screenshot_3 ws.png

Screenshot_3 3.png

Screenshot_3 5.png

Screenshot_3 ws2.png   

gulnyr

Цитата: gulnyr от 11 окт 2024, 16:53Код:
СервКурс = WSСсылки.WSСсылка1.СоздатьWSПрокси("http://ddm.yanin.ru/ws/eCommerce", "eCommerce", "eCommerceSoap");
 ТипКурс = СервКурс.ФабрикаXDTO.Тип("http://ddm.yanin.ru/ws/eCommerce", "GetCounterpartyInfo");
 ПараметрыКурс = СервКурс.ФабрикаXDTO.Создать(ТипКурс);
 ПараметрыКурс.Login    = "User123";
 ПараметрыКурс.Password    = "pass456";   
 ДанныеКурс = СервКурс.GetCounterpartyInfo(ПараметрыКурс);

Но данные ДанныеКурс выдает пустое значение. Что здесь не так?

Screenshot_3 ws.png

Screenshot_3 3.png

Screenshot_3 5.png

Screenshot_3 ws2.png   

Кто-нибудь знает в чем причина? Что поправить?

Максим75

gulnyr, а вообще работало данное подключение к веб-сервису?

gulnyr

Максим75, wsdl файл показывает xml-страницу. Данные не могу получать. Непонятно, то ли с логином/паролем беда, или в коде что-то упущено

Максим75

gulnyr, смотрите, я когда-то нечто подобное делал. только на другом ресурсе.

//Создаем прокси для обращения к внешнему веб-сервису,
// передаем в функцию URI пространства имен, имя сервиса, имя порта.
Прокси = WSСсылки.Банк_кацапии_вонючей.СоздатьWSПрокси(
                                     "http://web.cbr.ru/", "DailyInfo", "DailyInfoSoap"); //или так, если создана WS-ссылка на этот веб-сервис

//или динамическое обращение в модуле к веб-сервису
//Определения = Новый WSОпределения("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL");
//Прокси = Новый WSПрокси(Определения, "http://web.cbr.ru/", "DailyInfo", "DailyInfoSoap");

//Для Каждого ТипПараметра из Прокси.ФабрикаXDTO.Пакеты.Получить("http://web.cbr.ru/") цикл
//КонецЦикла;

//Получаем тип параметра, который передается в метод GetCursOnDate.
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(
                                        "http://web.cbr.ru/").Получить("GetCursOnDate");
//Создаем параметр на основе типа и заполняем значение параметра On_Date.
WSПараметр    = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
WSПараметр.On_Date = фДатаЗагрузки;

//Вызываем метод веб-сервиса, записываем результат в переменную КурсыВалют.
КурсыВалют = Прокси.GetCursOnDate(WSПараметр);

//Перебираем таблицу ValuteCursOnDate, каждое значение таблицы
// добавляем в таблицу на форме (колонки заполняем соответствующими значениями).
Для Каждого Элемент Из КурсыВалют.GetCursOnDateResult.diffgram.ValuteData.ValuteCursOnDate Цикл
НоваяСтрокаТЗ = ТаблицаКурсовВалют.Добавить();
НоваяСтрокаТЗ.НазваниеВалюты      = Элемент.Vname;
НоваяСтрокаТЗ.Номинал             = Элемент.Vnom;
НоваяСтрокаТЗ.ЦифровойКодВалюты   = Элемент.Vcode;
НоваяСтрокаТЗ.СимвольныйКодВалюты = Элемент.VChCode;
НоваяСтрокаТЗ.КурсВалюты          = Элемент.Vcurs;
КонецЦикла;

т.е. я вначале получал тип параметра м потом создавал параметра на основе типа и уже потом передавал в параметр нужное значение
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(
                                        "http://web.cbr.ru/").Получить("GetCursOnDate");
   //Создаем параметр на основе типа и заполняем значение параметра On_Date.
   WSПараметр      = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
   WSПараметр.On_Date   = фДатаЗагрузки;

У Вас в модели данных в Пакете должен быть тоже GetCounterpartyInfo. И в нем показаны параметры.

скорее всего вот здесь ТипКурс = СервКурс.ФабрикаXDTO.Тип("http://ddm.yanin.ru/ws/eCommerce", "GetCounterpartyInfo");
Вам надо вначале получить Тип параметра, потом уже

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск