Имя: Пароль:
1C
 
Работа с wsdl в 1С
0 Olesiusoriginalius
 
15.01.15
14:30
Доброго времени суток.

Появилась задача в которой требуется получать данные через wsdl.
Фабрику, прокси создала. Не могу разобраться как добавить в xml (Запрос) свои значения.
Описание файла запроса http://npchk.nalog.ru/FNSNDSCAWS?xsd=1
        

WSDLОпределение = Новый WSОпределения("http://npchk.nalog.ru/FNSNDSCAWS?wsdl");//
    WSСервис = WSDLОпределение.Сервисы[0];    
    Proxy = Новый WSПрокси(WSDLОпределение,WSСервис.URIПространстваИмен,WSСервис.Имя,WSСервис.ТочкиПодключения[0].Имя);
    Фабрика = Proxy.ФабрикаXDTO;
    ТипПараметра    =WSDLОпределение.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS/Request","NdsRequest";);
    Запрос = Фабрика.Создать(ТипПараметра);

///        Запрос.NP.Добавить();

    Proxy.NdsRequest(Запрос);
1 DmitrO
 
15.01.15
14:33
если NP это список, то в метод Добавить надо передавать экземпляр объекта - элемента этого списка. Соответственно этот объект надо сначала создать через фабрику.
2 Olesiusoriginalius
 
16.01.15
09:32
Спасибо за наводящую подсказку, немного прояснилось в голове. Но пока та том же месте.

В Файле сначала идет описание типов (ИНН, КПП, Дата). Я так понимаю, надо создать новый экземпляр для NP с данными типами и запихать все в NdsRequest.
Читаю справочник, все равно мало понимаю как это сделать.
ТипХДТОСхема = "http://www.w3.org/2001/XMLSchema";;
    НППараметр = WSDLОпределение.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema";, "ДатаТип");
    НПЗапрос = Фабрика.Создать(НППараметр);
3 Jaap Vduul
 
16.01.15
09:54
ВнутреннийТипПараметра = WSDLОпределение.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS/Request";, "NdsRequest_NP");
ЭлементЗапроса = WSDLОпределение.ФабрикаXDTO.Создать(ВнутреннийТипПараметра);
ЭлементЗапроса.DT = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
ЭлементЗапроса.INN = "7718872522";
ЭлементЗапроса.KPP = "771801001";

ТипПараметра = WSDLОпределение.ФабрикаXDTO.Тип("http://ws.unisoft/FNSNDSCAWS/Request";, "NdsRequest");
ПараметрЗапроса = WSDLОпределение.ФабрикаXDTO.Создать(ТипПараметра);
ПараметрЗапроса.NP.Добавить(ЭлементЗапроса);

Ответ = Proxy.NdsRequest(ПараметрЗапроса);
Сообщить("Ответ.NP[0].State: " + Ответ.NP[0].State);
4 Olesiusoriginalius
 
16.01.15
10:33
Спасибо) Я по пути NdsRequest_NP незнаю когда бы пошла...