Ошибка SOAP сервера #748346


#0 by PsyTech
Всем привет! При обращении к методу сервиса 1с из 1с ошибка: "Ошибка SOAP сервера:  Неизвестная ошибка. {WebСервис.NumerationSF.Модуль}: Ошибка при вызове метода контекста (ПрочитатьXDTO) по причине: {WebСервис.NumerationSF.Модуль}: Ошибка при вызове метода контекста (ПрочитатьXDTO) по причине: Несоответствие типов (параметр номер '1')" Обращаюсь вот так:     Определения = Новый WSОпределения("ссылка на сервис");     Прокси = Новый WSПрокси(Определения, ";, "NumerationSF", "NumerationSFSoap");      из SOAPUI тот-же запрос работает. В чем ошибка?
#1 by PsyTech
Прокси тут лишний
#2 by PsyTech
тип параметра anyType
#3 by Остап Сулейманович
Нужно смотреть в модуле вот этого вот : "NumerationSF" в строке . Скорее всего неправильно с точки зрения сервиса выглядит содержимое вот этого вот : "СтрокаXML".
#4 by PsyTech
А при запросе из soapui этот же запрос срабатывает...
#5 by Остап Сулейманович
Ну так сравни "СтрокаXML" в 1С и тоже самое в soapui.
#6 by PsyTech
в soapui обертка только есть стандартно. Не мешала никогда. почему-то на тип ругается: "Несоответствие типов (параметр номер '1')"
#7 by Остап Сулейманович
"в soapui обертка только есть стандартно." Это как понять? Метод вызывается вообще без параметра?
#8 by Serginio1
Сразу несколько вопросов NumerationSF и пространство имен Если хочешь получить объект XDTO из строки то
#9 by Serginio1
#10 by PsyTech
Ошибка преобразования данных XDTO: НачалоСвойства: {    Форма: Элемент    Тип: { по причине:
#11 by PsyTech
В базе сервиса тип параметра "string", а при создании ws-ссылки "anyType"
#12 by Serginio1
используй динамическое подключение если не знаешь какое пространство имен используешь
#13 by PsyTech
Ошибка преобразования данных XDTO:
#14 by PsyTech
в браузере string. Не понимаю, почему anyType у меня
#15 by PsyTech
Ошибка преобразования данных XDTO: НачалоСвойства: {    Форма: Элемент    Тип: { по причине: Ошибка преобразования данных XDTO: НачалоСвойства: Body    Форма: Элемент    Тип: {
#16 by PsyTech
по причине: Ошибка преобразования данных XDTO: НачалоСвойства: Body    Форма: Элемент    Тип: {
#17 by PsyTech
откуда anyType, если в браузере и в конфе сервиса string? И что с этим делать?
#18 by cw014
Если string, тогда зачем ты туда пихаешь ОбъектXDTO? Пихай стринг
#19 by cw014
Определения = Новый WSОпределения("ссылка на сервис");     Прокси = Новый WSПрокси(Определения, ";;, "NumerationSF", "NumerationSFSoap");
#20 by Serginio1
Внимательно посмотри на 12. И посмотри какое пространство имен у WSСервис.URIПространстваИмен
#21 by PsyTech
WSСервис.URIПространстваИмен = ";
#22 by efim16rus
"СтрокаXML" у тебя какой тип имеет?
#23 by PsyTech
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (GetNumberSF)     Ответ = Прокси.GetNumberSF(СтрокаXML);     по причине: Несоответствие типов (параметр номер '1')
#24 by PsyTech
Строка
#25 by efim16rus
ТипWSПараметра = Прокси.ФабрикаXDTO.Тип(";;, "string");
#26 by efim16rus
ТипWSПараметра = Прокси.ФабрикаXDTO.Тип(";;;, "string");
#27 by efim16rus
Ответ = Прокси.GetNumberSF(Парам);
#28 by efim16rus
Попробуй так
#29 by Serginio1
Вообще то это стандартное пространство имен уже зашитое. А кто задал такое имя пространства имен? Если это сервис 1С
#30 by Serginio1
Ты бы хоть показал описание WSDL и типы используемые GetNumberSF
#31 by Serginio1
Или выложи WSDL
#32 by PsyTech
Параметр = неопределено
#33 by PsyTech
тип 1 - string
#34 by PsyTech
вот фрагмент описания: <definitions xmlns="; xmlns:soap12bind="; xmlns:soapbind="; xmlns:tns="; xmlns:xsd="; xmlns:xsd1="; name="NumerationSF" targetNamespace="; <types> <xs:schema xmlns:xs="; xmlns:xs1="; targetNamespace="; elementFormDefault="qualified">
#35 by PsyTech
Если в 1с создать ws-ссылку -  тип у параметра будет: anyType
#36 by efim16rus
Скинь wsdl целиком
#37 by PsyTech
Вариант работает, но на вход в процедуру сервиса приходит почему-то Строка, а не ОбъектXDTO. Из SOAPUI приходит ОбъектXDTO. Как сделать, чтоб приходил ОбъектXDTO?
#38 by cw014
Web-Service самописный? Где находится? Есть доступ к исходникам?
#39 by efim16rus
СтрокаТип = WSПрокси.ФабрикаXDTO.Тип(";);
#40 by efim16rus
Выдернул из обработки клиент банка. Если не поможет, скидывай wsdl целиком
#41 by Serginio1
Измените пространство имен у Веб сервиса Неправильно. targetNamespace=";; Замените на какойнибудь Ну и раз параметр строка Ответ = Прокси.GetNumberSF(СтрокаXML);
#42 by PsyTech
не, на входе получается Строка, а не ОбъектXDTO
#43 by PsyTech
на входе в сервисе все равно Строка получается
#44 by Serginio1
Еще раз задай нормальное пространство имен Судя по описанию у тебя параметр строка.
#45 by Serginio1
С с чем сравниваешь? Скачай Fiddler2 и смотри им какие запросы кто отправляет
#46 by Serginio1
#47 by PsyTech
а какое нормальное?
#48 by PsyTech
В отладке сервиса - если из 1с запрос приходит - на входе Строка, из других систем - ОбъектXDTO
#49 by Serginio1
Ну ты читай, что я тебе пишу в 41 Например Так, а что у тебя реально представляет параметр в сервисе?
#50 by PsyTech
Прошу прощения, немного напутал. Если отправляю запрос из SOAPUI - на входе сервиса ОбъектXDTO и все отрабатывает без ошибки. Если отправляю из 1С - на входе тоже ОбъектXDTO, но видимо другой и ошибка появляется при попытке прочитать ОбъектXDTO: Разница в объектах: от SOAPUI в отладке вижу просто ОбъектXDTO; от 1с в отладке видны еще его поля, т.е. тэги xml, которую я передаю. Видимо как-то не так отправляю?
#51 by PsyTech
А отправляю вот так:
#52 by PsyTech
Ваще не пойму - почему туда приходит ОбъектXDTO, а не строка? В моей конфе в сервисы на вход приходит строка всегда, но тут платформа 8.3 (8.3.5.1186), а там 8.3 (8.3.6.1977). Может в платформе дело?
#53 by PsyTech
Нет не в платформа, а в способе отправки. Вопрос - почему разные ОбъектXDTO приходят от SOAPUI и от 1с?
#54 by efim16rus
Скорее всего у тебя URIПространстваИменСервиса не , а собственные. Посмотри в wsdl какие используются пространства имен.
#55 by PsyTech
См.
#56 by efim16rus
Фидлером не смотрел какой запрос 1с формирует?
#57 by efim16rus
Сделай как в
#58 by Serginio1
Так пространство имен и не стал переименовывать?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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