я недавно делал нечто подобное, тоже столкнулся похоже с такими же проблемами:
решил таким образом: выгрузил WSDL сервиса SAP в файл, слегка поправил возвращаемый параметр сделал его type="xsd:anyType" и затем загрузил его в 1С, в таком варианте получается вернуть в 1С строку, соответственно в эту строку я упаковывал в виде XML всё что предполагалось вернуть
Интерфейс FM сервиса SAP:
Code:
FUNCTION Z?????????.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(BUKRS) TYPE BUKRS
*" VALUE(DTFROM) TYPE D
*" VALUE(DTTO) TYPE D
*" EXPORTING
*" VALUE(XML) TYPE STRING
*"----------------------------------------------------------------------
пример обработки на стороне 1С
Code:
&НаСервере
Процедура ЗагрузитьПлатежи()
//Создаем прокси для обращения к внешнему веб-сервису,
//передаем в функцию URI пространства имен, имя сервиса, имя порта.
// Прокси = WSСсылки.???????.СоздатьWSПрокси("urn:sap-com:document:sap:rfc:functions", "Z?????????Service", "Z?????????PortType");
Определения = Новый WSОпределения("C:\Users\xxxx\Desktop\WebService\xxx.Z?????????.wsdl.xml");
Прокси = Новый WSПрокси(Определения, "urn:sap-com:document:sap:rfc:functions", "Z?????????Service", "Z?????????PortType");
Прокси.Пользователь = "?????";
Прокси.Пароль = "????????";
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("urn:sap-com:document:sap:rfc:functions").Получить("Z?????????");
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
WSПараметр.BUKRS = "????"; // Балансовая единица
WSПараметр.DTFROM = "2012-08-01"; // Дата с
WSПараметр.DTTO = "2012-08-31"; // Дата по
Результат = Прокси.Z?????????(WSПараметр);
Сообщить(Результат.XML);
КонецПроцедуры