Неверный формат. WS-ссылки. #620135


#0 by AllJoke
День добрый всем. Вопрос возник в следующем. По примере подключения ws-ссылок на ЦБРФ пытаюсь подрубиться к нашему тестовому веб-сервису. Разница там в расщирениях asmx(ЦБРФ) и svc(НашВебСервис). Код следующий: В чем может быть беда? МОжет ли это в каких либо ограничениях? Платформа 8.2.14.540
#1 by AllJoke
- вот модель веб-сервиса
#2 by Serginio1
Ну тебе нужно заполнить все параметры и проверить тип параметра? А не проще тип получить через СервисОхБил.ФабрикаXDTO.Тип("http://tower.ru/requestTest","Message");
#3 by AllJoke
А не в курсе как заполняются составные объекты? Например у меня в Message есть Adress, он составной (берётся из Message_Adress). Как мне его заполнить? Типа: И вот этот полученный список значений нужно запихнуть в Message.Adress.
#4 by Serginio1
Так же как и Параметр1_1
#5 by AllJoke
А подробнее можно? Вот каким макаром я делаю:
#6 by AllJoke
джае после этого "неверный формат"
#7 by AllJoke
кстати - типы параметров везде строковые, кроме Address и PlaceOfBirth - они составные. Но и там все "строка".
#8 by Serginio1
Вообще 1С плохо как то с высокой вложенностью. Уже сейчас не помню, но мучился. Если бы параметры не были заполнены то ругалсьбы на незаполненные параметры. Попробуй для интереса .__content заменить? Или посмотреть на структуру
#9 by Serginio1
Да и Смирнов то надо с Большой буквы. Обижаешь.
#10 by Serginio1
Или можешь использовать сначало простую структуру. Затем добавить составную итд. Для того что бы понять откуда ноги растут.
#11 by AllJoke
Попробую щас структуру посмотреть. "смирнова" изменю на "Смирнов" ))
#12 by Саша Питерский
Если указанный веб сервис в виде wsссылки загрузить в конфигурацию, то какой тип будет у параметра веб сервиса с операцией operation1? Параметр_Message является ли типом ОбъектXDTO и совпадает ли его тип значения с типом, который указан в качестве параметра operation1?
#13 by AllJoke
#14 by AllJoke
тип будет у параметра веб сервиса с операцией operation1 - Тип "Message" воторое щас проверю.
#15 by AllJoke
Параметр_Message - да, это "ОбъектXDTO"
#16 by AllJoke
А по поводу типа значения в Параметр_Message, так там же только свойства.
#17 by Саша Питерский
Вот этого ответа не понял.
#18 by AllJoke
имеется ввиду что здесь - Параметр_Message - содержатся же только свойства, т.е. не могу я посомтреть тип. А вот кстати наводящая мысль, которая пришла после вопросов: Так выдаёт ошибку - Несоотв-ие параметров, параметр 2
#19 by Саша Питерский
Вроде можно написать Параметр_Message.Тип
#20 by AllJoke
{Обработка.Обработка1.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Создать)    part = СервисОхБил.ФабрикаXDTO.Создать(ТипПараметра_Message, Параметр_Message); по причине: Несоответствие типов (параметр номер '2')
#21 by AllJoke
неа.
#22 by AllJoke
{
#23 by AllJoke
можно, сорри.
#24 by AllJoke
а как понять - лексическое представление значения?
#25 by Саша Питерский
Внимательно посмотрел твой код в , вроде код правильный. Потом посмотрел картинку в , у меня родилось единственное предположение, что у тебя Свойство и Тип объекта называются одинаково, возможно это причина ошибки? Попробуй тип объекта переименовать в MessageType
#26 by AllJoke
Тип именно какого объекта? В модели сервиса или в коде?
#27 by Саша Питерский
На картинке из есть группа Типы объектов. Первый из них называется Message. Вот его предлагаю переименовать. Переименовывать конечно в модели сервиса.
#28 by AllJoke
{Обработка.Обработка1.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Создать)   part = СервисОхБил.ФабрикаXDTO.Создать(ТипПараметра_Message, Параметр_Message); по причине: Несоответствие типов (параметр номер '2')
#29 by AllJoke
f yf 'nj yt vj;tim jndtnbnm&
#30 by AllJoke
а на это не можешь отвтетить?
#31 by AllJoke
Переименование не решило проблему. Всё равно "неверный формат".
#32 by Serginio1
Какой то странный у тебя <PlaceOfBirth code="11">001</PlaceOfBirth> сравни с Address
#33 by AllJoke
сказали так и должно быть. Типа code - 'nj fnhb,en
#34 by AllJoke
это атрибут
#35 by AllJoke
Вообщем. Не работает.
#36 by AllJoke
Уже все ваши советы проделали - не пашет.
#37 by Саша Питерский
Тогда без доступа к коду у меня закончились предположения. Можно еще попробовать Параметр_Message.Проверить сделать, может объект неправильно заполнен. Попробуй указать вторым параметром имя типа строкой.
#38 by AllJoke
Либо 1с с *.svc не умеет работать.
#39 by AllJoke
Параметр_Message.Проверить - {}: Обращение к процедуре объекта как к функции (Проверить)
#40 by Саша Питерский
В отладчике бесполезно, пропиши в код.
#41 by AllJoke
+ - это в отлоадчике
#42 by AllJoke
- ничего не выдаёт. всё нормально.
#43 by Serginio1
.__content? Попробуй создать метод который принмает структуру без PlaceOfBirth. Если не будет ошибки значит проблема в ней
#44 by AllJoke
сейчас попробуем.
#45 by Serginio1
Или .__content заменить на content
#46 by AllJoke
я кстати знаечние изменил на "001" в PlaceOfBirth
#47 by Serginio1
или сделайте его структурой
#48 by AllJoke
избавимся и глянем
#49 by AllJoke
Не помогло и удаление PlaceOfBirth
#50 by AllJoke
СашаПитерский - может подрубишься по тиму и глянешь?
#51 by Саша Питерский
подрубишься по тиму это что значит?
#52 by Serginio1
Покажи какой тип у параметра
#53 by Serginio1
А без Address и их обеих?
#54 by AllJoke
можешь по тиму подрубиться? Или Ами Админ.
#55 by AllJoke
И что самое странное - ведь именно 1с ругается а не BizTalkServer.
#56 by AllJoke
Вообщем итог - всё сделали строками. "неверный формат"
#57 by AllJoke
Не работает.
#58 by AllJoke
Скиньте пжлста конфу по работе с Веб-Сервисами. Говорят на диске ИТС такая есть.
#59 by Serginio1
То есть это не 1С вэб сервис? У меня вообще сейчас 8 ки нет. А вообще не все форматы 1С понимает. Приходится использовать наприме C#. Если нельзя сервисописателей подвинуть. Ну а так нужны структуры совместимые с 1С. И все стараются писть так, что бы и 1С понимало
#60 by AllJoke
Нет. Это сервис от BizTalk. Пытаемся тестовый сделать. Я так и думал что 1С не всё понимает. Поговорю с нашими писателями, может чего накумекают.
#61 by AllJoke
а конфа вышеупомянутая есть у кого?
#62 by Serginio1
А вообще попробуй пойти по другому пути. Создать пакет  в 1С. Экспортировать схему. А в биз талке её импортировать.
#63 by AllJoke
в продолжении темы. Решил оттестить веб-сервис ЗАГСа. Там в него закладываются три параметра: Делаю так: {Обработка.Обработка1.Форма.Форма.Форма}: Ошибка при вызове метода контекста (getDaysZB) по причине: Ошибка вызова операции сервиса:  { по причине: Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: { - [1,227] Проверка дополнительного свойства:    форма: Элемент    имя: item по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [1,227] Проверка дополнительного свойства:    форма: Элемент    имя: item по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {
#64 by AllJoke
Я параметры неправильно передаю в веб сервис или чего?
#65 by AllJoke
Может мне кто-нибудь объяснить с какими вообще веб-сервисами дружит 1С. Я уже беру самый наипростейший, с двумя параметрами: строка и перечесление, - и всё равно ошибка "Структура объекта не соответствует типу". Хотя с сервисом ЦБРФ всё проходит на ура.
#66 by Serginio1
Ну вообщето если тип в параметре не AnyType то можно передавать параметры без преобразования к объекту XDTO По поводу массивов в примере C# я не нашел решение. Хотя можно добавлять значения как атрибут. Кстати а как отображается тип данных
#67 by Nexux
делайте через mssoap
#68 by AllJoke
Вот банальщина: У метода "getMinMaxDaysZB" два параметра: idZags - тип "string", torj - тип "EnumZBTorj". Почему же он ругается??? Метод возращает значение типа - "DateRange (". Ругается на всё ту же структуру и всё. Что ей (1С) надо....?
#69 by AllJoke
Это ещё как?
#70 by Serginio1
Так EnumZBTorj это не строка. Что это за тип?
#71 by AllJoke
Тип значения XDTO. Базовый тип  - string. Но как видно из схемы - это перечисление:
#72 by Serginio1
Так какую ошибку выдает? В первом случае ругалось на dateTimeArray Опять же можно и проще Рез = СервисЗАГС.getMinMaxDaysZB("0030", Парам_EnumZBTorj);
#73 by Serginio1
Уточнение параметров для простых типов нужно для типов AnyType.
#74 by AllJoke
Уже выдаёт ошибку: Структура объекта не соответствует типу: { Теперь про уточнение - если я в коде каждый тип уточняю, это разве не верно? Как то разве влияет? И вообще, 1С толком не даёт вразумительных ответом по ошибке. Что за структура, какого объекта, типу я так понял "DateRange"/
#75 by AllJoke
И ещё, может и вправду 1С ни со всеми веб-сервисами дружит. На примере ЦБРФ всё проходит на ура. Правда там и параметр один, но всё же.
#76 by Serginio1
А где запись данных в Парам_Range А зачем плодить лишние сущности,там где можно обойтись бе уточнения типа? Очень много структур и массивов не понимает. Смотри 59 (1 и 8)
#77 by Serginio1
Вернее что представляет Пар?
#78 by AllJoke
Это сейчас не актуально. Я уже без дат делаю. Должен возвратить две даты, такак в редакторе SOAP 4.0 работает.
#79 by Serginio1
А с Парам_EnumZBTorj работает?
#80 by Serginio1
То есть ругается на возвращаемый тип? Еще для 1С все out параметры должны идти в конце параметров. При чем если out параметр сделать не в конце 1С не ругнется, но при вызове ве равно поставит его в конец. А потом думай поставил одно а получил другое. Но это относистся к собственым сервисам
#81 by AllJoke
такого сервиса нет с одним параметром. Эти два (в коде 78) и так минимальны
#82 by AllJoke
а ругается на структру объекта которая не соответствует типу. Что за структура? Какого объекта? Какому типу? Об этом информации воообще ноль!
#83 by Serginio1
А что  возвращает getMinMaxDaysZB. Надо понимать DateRange?
#84 by Serginio1
Посмотри
#85 by AllJoke
да
#86 by AllJoke
Так там вообще стандартные средства не используются.
#87 by Serginio1
Ну 1С не все понимает. Мало того, они еще и собственные структуры по разному записывать например СериализаторXDTO и ОбъектXDTO по той же схеме по разному запишут регистр сведений.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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