Имя: Пароль:
1C
1С v8
Сторонний веб-сервис и wsdl файл
, ,
0 Night_Wolf
 
24.12.14
12:14
Добрый день.
Подскажите как понять какие методы есть в стороннем веб-сервисе и как к ним обратиться? Хотелось бы знать вообще, независимо от сервиса. В данный момент делаю проверку контрагента по ИНН и КПП.

Есть только ссылка: http://npchk.nalog.ru/FNSNDSCAWS?WSDL

Делаю так:
Определения = Новый WSОпределения("http://npchk.nalog.ru/FNSNDSCAWS?WSDL",,,5);
        Сервис = Определения.Сервисы[0];
        Прокси = Новый WSПрокси(Определения,Сервис.URIПространстваИмен, Сервис.Имя,Сервис.ТочкиПодключения[0].Имя);

Это всё корректно отрабатывает. Но я не знаю какие там методы, сколько их, какие принимают параметры. Можете направить на путь истинный?
1 Эмбеддер
 
24.12.14
12:16
в WSСсылки импортировать
http://npchk.nalog.ru/FNSNDSCAWS?WSDL
2 Night_Wolf
 
24.12.14
12:24
(1) - Как импортировать? Я создавать в конфигурации не могу свой веб-сервис. хочу подключиться с помощью внешней обработки.
3 Господин ПЖ
 
24.12.14
12:28
4 Эмбеддер
 
24.12.14
12:30
(2) и даже в тестовой конфигурации нельзя импортировать?
5 EugeniaK
 
24.12.14
12:31
(0) Открой в браузере ссылку и смотри параметры и методы http://npchk.nalog.ru/FNSNDSCAWS?WSDL
6 Jaap Vduul
 
24.12.14
12:36
Если есть сложности с пониманием wsdl, то можно и программно описание получить:

для каждого ТочкаПодключения из Сервис.ТочкиПодключения цикл
            
            для каждого Операция Из ТочкаПодключения.Интерфейс.Операции цикл
                
                Сообщить(Операция.Имя);
                Сообщить("параметры:");
                
                для каждого Параметр Из Операция.Параметры цикл
                    
                    Сообщить(Параметр.Имя + " " + Параметр.НаправлениеПараметра + " " + Параметр.Тип);                    
                    
                конеццикла;
                
            конеццикла;
            
        конеццикла;
7 Jaap Vduul
 
24.12.14
12:42
+(5)
Только надо учесть, что там ещё две вложенных схемы:
http://npchk.nalog.ru:80/FNSNDSCAWS?xsd=1
http://npchk.nalog.ru:80/FNSNDSCAWS?xsd=2
8 Night_Wolf
 
24.12.14
12:46
Спасибо за ответы. Посмотрел файлик - понял что есть параметр NP. Пытаюсь получить:
ТипПараметра = Прокси.ФабрикаXDTO.Тип(Сервис.URIПространстваИмен,"NP");

пишет Неопределено. Как такое может быть?

(7) Непонятно насчет вложенных схем. Как-то по-другому обращение идет?
9 Night_Wolf
 
24.12.14
12:47
(4) - в тестовой можно. Но хотелось бы понять именно как смотреть по самому wsdl и понимать где там методы, где параметры и каких они типов.
10 Jaap Vduul
 
24.12.14
12:48
(8)
>>Посмотрел файлик - понял что есть параметр NP
Нет, есть параметр np_in со свойством NP.
Структура NP описана в http://npchk.nalog.ru:80/FNSNDSCAWS?xsd=1
11 DmitrO
 
24.12.14
12:49
есть универсальная обработка для испытания веб-сервисов:
http://www.dev.citykirov.ru/
WSTest
можно построить любой параметр, выполнить любой метод, и увидеть результат
12 Господин ПЖ
 
24.12.14
12:50
>Но хотелось бы понять именно как смотреть по самому wsdl и понимать где там методы, где параметры и каких они типов.

зачем?

нормальные среды по описанию сами генерят всю "обвязку" для работы с сервисом. Классы, свойства нужных типов...
13 DmitrO
 
24.12.14
12:54
(11)+ ну и методы посмотреть тоже можно
14 Night_Wolf
 
24.12.14
14:51
(10) Так тоже не получается:
Прокси.ФабрикаXDTO.Тип(Сервис.URIПространстваИмен,"np_in");
Сервис.URIПространстваИмен = "http://ws.unisoft";.
По идее тип параметра я должен получить из фабрики сторонней, но возвращает Неопредлено. Пространство имен не то?
15 Jaap Vduul
 
24.12.14
14:54
(14)
Во-первых, np_in это имя параметра, а не типа (NdsRequest).
Ну и пространство имён у него отличается (http://ws.unisoft/FNSNDSCAWS/Request).
16 Night_Wolf
 
24.12.14
14:58
(15) - про пространство догнал что надо такое http://ws.unisoft/FNSNDSCAWS/Request,  а про имя типа нет. Спасибо!
А ещё вопрос: Я получу структуру (насколько я понимаю), загоню в неё дату, ИНН и КПП, как потом обратиться к процедуре веб-сервиса, чтобы она отработала? Имя у неё будет NdsRequest?
17 Jaap Vduul
 
24.12.14
15:02
(16)>>NdsRequest
Да.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.