Добрый день,
Появилась задача проверять контрагентов в нашей доблестной налоговой службе.
У них есть веб-сервис по адресу
http://npchk.nalog.ru/
Там есть даже некоторое описание и ссылки на WSDL.
B вроде все не плохо, и даже Аксапта без ругани цепляет этот WSDL.
Но дальше возникла трудность с которой я не могу справится, может я туплю жестко, помогите пожалуйста!
X++:
public static str GetVendStatus(VendTable _vend)
{
NalogCheck.FNSNDSCAWS2_PortClient proxy;
NalogCheck.NdsRequest2NP[] ndsReqArray;
NalogCheck.NdsRequest2NP ndsReq;
NalogCheck.NdsResponse2 ndsResp;
NalogCheck.NdsResponse2NP[] ndsRespArray;
NalogCheck.NdsResponse2NP ndsNP;
str ret;
;
new InteropPermission(InteropKind::ClrInterop).assert();
proxy = new NalogCheck.FNSNDSCAWS2_PortClient();
ndsReq = New NalogCheck.NdsRequest2NP();
ndsReq.set_INN(_vend.INN_RU);
ndsReq.set_KPP(_vend.KPP_RU);
ndsReq.set_DT(date2str(SystemDateGet(), 123, DateDay::Digits2, DateSeparator::Dot, DateMonth::Digits2, DateSeparator::Dot, DateYear::Digits4));
ndsReqArray = New NalogCheck.NdsRequest2NP[1](); // Ошибка "Отсутствуют ссылки на сборку, содержащую тип NalogCheck.NdsRequest2NP. Ошибка вызова статического метода ClrObject."
ndsReqArray.SetValue(ndsReq,0);
ndsResp = New NalogCheck.NdsResponse2();
ndsResp = proxy.NdsRequest2(ndsReqArray);
ndsRespArray = New NalogCheck.NdsResponse2NP[1]();
ndsRespArray = ndsResp.get_NP();
ndsNP = New NalogCheck.NdsResponse2NP();
ndsNP = ndsRespArray.GetValue(0);
ret = ndsNP.get_State();
CodeAccessPermission::revertAssert();
return ret;
}
Все отлично компилируется, но при вызове возникает ошибка "Отсутствуют ссылки на сборку, содержащую тип NalogCheck.NdsRequest2NP. Ошибка вызова статического метода ClrObject."
Соответственно как правильно инициализировать массив из вот таких неправильных типов?
Если же написать просто
X++:
ndsReqArray[0] = ndsReq;
не компилируется с ошибкой "Переменная не является массивом."
Спасибо!