1С Веб-сервис. Работа с XDTO. #680090


#0 by kevin
Проблема: есть веб-сервис на 1С. Там открыта функция Fun. Есть клиент на C#, где добавлена ссылка (Web Reference) на этот веб-сервис. Fun должна иметь возвращаемое значение объектXDTO (Имя и Номер), а студия видит string. Только начал работать с 1С. Созданный клиент на 1С адекватно отрабатывает. Код C# Я понимаю, что SOAP это XML и его можно передавать строкой, но почему студия не адекватно видит возвращаемый тип функции Fun? С веб-сервисами на других языках всё отлично. Или как указать явно в 1С возвращаемый тип?
#1 by Asmody
и как выглядит этот Fun со стороны 1С?
#2 by kevin
Также принимается без указания типа, как в скриптах, где результат сам как-то преобразуется куда нравится.
#3 by catena
В указанном пакете XDTO должны быть прописаны возвращаемые элементы с типами.
#4 by Asmody
вернул пустой объект, а в чем Fun?
#5 by kevin
wsdl <types> <xs:schema xmlns:tns="adress" xmlns:xs="; targetNamespace="adress" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:schema xmlns:xs="; xmlns:xs1="adress" xmlns:xs2="Service" targetNamespace="Service" elementFormDefault="qualified"> FunResponse имеет string - здесь указывается тип возвращаемых данных? Почему тогда в FunResponse? Почему не указан возврат у Fun? Что-то здесь не то.
#6 by kevin
Fun не важно что внутри, она возвращает результат на клиенте 1С, проблема со студией.
#7 by Asmody
а это вам читать стандарты. WSDL не 1С придумало. Но причина скорее в том, что у вас пакет XDTO неверно настроен
#8 by Asmody
полный бред и непонимание
#9 by kevin
в C# вываливается ошибка анализа XML. При добавлении ссылки на веб-сервис должны сгенерироваться описания классов по wsdl, но этого не происходит.
#10 by Asmody
это тебе 1Ска такой wsdl сгенерировала?
#11 by kevin
Да, как-то она криво генерит.
#12 by Asmody
проверь, что у тебя стоит в типе возвращаемого значения в функции веб-сервиса
#13 by Serginio1
У него и стоит string
#14 by Serginio1
А возвращает он MassAdress
#15 by Asmody
так я ему и пытаюсь намекнуть, куда смотреть
#16 by Serginio1
Смотри что у тебя возвращает, а типы 1С сама добавляет. В типах можно добавлять возможно пустое.
#17 by kevin
короче, сделал. В 1С есть так называемые операции. Так вот, нужно не только создать соответствующий тип, указать в функции возвращаемый тип и вернуть данные в этом самом типе, но и указать в операции, которая ссылается на эту функцию тип возвращаемого значения. Как-то всё не правильно в этом 1С. Вопрос закрыт. Теперь не понятно, почему сама 1С данные принимала нормально, а студия не хотела?
#18 by kevin
Всё верно, в нескольких местах нужно прописать тип.
#19 by Serginio1
Нужно определить тип в пакете и указать тип возвращаемого значения. А ты вызывал как сервис или просто как функцию? Если как функцию на толстом клиенте, то 1С не контролирует тип.
#20 by kevin
Да, указал тип пакета, тип возвращаемого значения в функции, и нужно было еще тип значения операции, которая ссылалась на эту функцию. Вызывал как сервис, в нем была проблема.
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С