Имя: Пароль:
1C
 
Проблема с параметром (веб-сервис)
0 1ctube
 
10.07.19
11:49
Добрый день. Изучаю веб-сервисы, хочу попробовать "яндекс speller".
Вот код:
Прокси = WSСсылки.Speller.СоздатьWSПрокси("http://speller.yandex.net/services/spellservice";, "SpellService", "SpellServiceSoap");

ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://speller.yandex.net/services/spellservice").Получить("checkText";);
  WSПараметр   = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);

Ошибка возникает на последней строчке: "Несоответствие типов (параметр номер '1')".
Смотрю в отладчике, "ТипWSПараметра " имеет Тип: Неопределено.

Кто-нибудь работал с этим веб-сервисом? Можете подсказать почему не получается получить тип параметра?
П.С. Метод "checkText" имеет обязательный параметр "text" тип String
1 Cyberhawk
 
10.07.19
12:03
Ну так отладчиком в пакеты загляни для начала
2 Nikifforoff96
 
10.07.19
12:04
я всегда начинаю с создания WSОпределения, потом получаю из него сервис, из сервиса получаю точку подключения, из точки подключения операцию сервиса. Параметры создаю через WSОпределения. Примерно так

ВСОпределение = Новый WSОпределения(АдресСервера, ИмяПользователя, ПарольПользователя);
        ВСервис = ВСОпределение.Сервисы.Получить("URI пространство имён","Сервис");
        ВТочкаВхода = ВСервис.ТочкиПодключения.Получить("ТвойсервисSoap");
        ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить("НужнаяФункцияВСервисе");
        
        ПараметрXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВОперация.Параметры.Получить("Параметр").Тип, Параметр);
        ВСПрокси = Новый WSПрокси(ВСОпределение,"URI пространство имён","Сервис","СервисSoap",,,, АдресСервера);
        ВСПрокси.Пользователь = ИмяПользователя;
        ВСПрокси.Пароль = ПарольПользователя;
        Авторизация = ВСПрокси.НужнаяФункцияВСервисе(ПараметрXDTO);
3 1ctube
 
10.07.19
12:09
(1) В отладчике "Переменная не определена(Пакеты)"...
4 PiotrLoginov
 
10.07.19
12:17
(3) Прокси.ФабрикаXDTO.Пакеты
5 1ctube
 
10.07.19
12:20
(4) В отладчике: КоллекцияПакетовXDTO.
Когда раскрываю значение, то 2 строчки, первая с пространством имён "http://www.w3.org/2001/XMLSchema";
Вторая: "http://speller.yandex.net/services/spellservice";
6 catena
 
10.07.19
12:25
Прокси = WSСсылки.Speller.СоздатьWSПрокси("http://speller.yandex.net/services/spellservice";, "SpellService", "SpellServiceSoap");
ТипWSПараметра = Прокси.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string";);
WSПараметр   = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
7 Cyberhawk
 
10.07.19
13:26
(5) А зачем ты получаешь тип с именем метода?
И зачем получать тип по имени от конкретно пакета, а не от фабрики?
8 ptiz
 
10.07.19
14:04
(0) С яндекс.спеллером вообще можно готовый текст передавать:
Ответ = ПроксиВебСервиса.checkText(ТекстДляПроверки);
Основная теорема систематики: Новые системы плодят новые проблемы.