|
XDTO WebServiceSoap Ошибка получения данных | ☑ | ||
---|---|---|---|---|
0
pal_vas
13.07.16
✎
10:38
|
Приветствую уважаемые форумчане! На фирме есть курьерская служба, у курьерской службы есть api, задача делать заказы на доставку прям из 1с.
Пытаюсь разобраться с api,и элементарно получить список валют для работы. вот описание процедуры GETREFERENCEDATA: ВАЛЮТЫ Функция позволяет получить список валют, необходимых для использования в других функциях при вызове web-сервиса. ПАРАМЕТРЫ ЗАПРОСА: string login имя пользователя string password пароль Element parameters список параметров ОПИСАНИЕ ПАРАМЕТРА PARAMETERS Структура parameters должна содержать свойство Key, заполненное значением «parameters». Сами параметры передаются списком через свойство List, которое не может быть пустым. Список возможных передаваемых параметров: Параметр (Key) Тип (ValueType) Обязательный Описание Reference string Да Имя справочника, должно быть равно «Currencies» Вот мой код Прокси = WSСсылки.Курьер.СоздатьWSПрокси("http://www.cargo3.ru", "WebService", "WebServiceSoap"); Прокси.Пользователь = "web"; Прокси.Пароль = "web"; ТипElement = Прокси.ФабрикаXDTO.Тип("http://www.cargo3.ru", "Element"); ПараметрыКурьер = Прокси.ФабрикаXDTO.Создать(ТипElement); ПараметрыКурьер.Key = "parameters"; ПараметрСправочник = Прокси.ФабрикаXDTO.Создать(ТипElement); ПараметрСправочник.Key = "Reference"; ПараметрСправочник.Value = "Currencies"; ПараметрСправочник.ValueType = "string"; ПараметрыКурьер.List.Добавить(ПараметрСправочник); Cпр = Прокси.GetReferenceData("web", "web", ПараметрыКурьер); При получении данных выдает ошибку "Cпр = Прокси.GetReferenceData("web", "web", ПараметрыКурьер); по причине: Ошибка вызова операции сервиса: {http://www.cargo3.ru}:WebService:GetReferenceData() по причине: Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: {http://www.cargo3.ru}Element - [12,24] Проверка свойства 'Properties': форма: Элемент имя: {http://www.cargo3.ru}Properties тип: {http://www.cargo3.ru}Element по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: {http://www.cargo3.ru}Element - [12,24] Проверка свойства 'Properties': форма: Элемент имя: {http://www.cargo3.ru}Properties тип: {http://www.cargo3.ru}Element по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://www.cargo3.ru}Element Проверка свойства 'Properties': форма: Элемент имя: {http://www.cargo3.ru}Properties тип: {http://www.cargo3.ru}Element Не установлено значение одного из следующих свойств: Key" Вроде все делаю по описанию, но не пашет зараза, посмотрите не замыленым глазом, где я мог промазать. |
|||
1
Serginio1
13.07.16
✎
10:56
|
||||
2
pal_vas
13.07.16
✎
11:17
|
(1) Спасибо, а другие варианты то есть? Чтобы все таки напрямую работало из 1с?
|
|||
3
pal_vas
13.07.16
✎
11:32
|
Тем более что тут в api не используется защищенного соединения, да и пристыковывать dll, регить их это как то уж слишком, мой вопрос был собственно не напорол ли я где с кодом судя из описания?
|
|||
4
Serginio1
13.07.16
✎
12:00
|
(3) Тебе нужно зарегить только одну библиотеку. Все остальные библиотеки она сама подгружает.
Скорее всего не понимает 1С описание. Но у тебя ПараметрыКурьер = Прокси.ФабрикаXDTO.Создать(ТипElement); И ПараметрСправочник = Прокси.ФабрикаXDTO.Создать(ТипElement); имеют один и тот же тип. Навереое курьер должен иметь тип PARAMETERS |
|||
5
pal_vas
13.07.16
✎
12:17
|
(4) Да вот как раз и нет, Тип данных у них одинаковый
Для передачи и получения параметров web-сервиса используются два типа параметров: простые строковые (string) параметры, которые используются, например, для передачи данных пользователя (имени и пароля) и универсальные структуры данных Element, которые позволяет передавать и получать данные для функций любой необходимой сложности используя вложенные друг в друга структуры Element и Row. Везде, где не используется простой тип данных подразумевается, что используется структура Element. |
|||
6
Serginio1
13.07.16
✎
12:18
|
Значит 1С не понимает эту структуру.
Продолжай информировать нас о своих успехах |
|||
7
Serginio1
13.07.16
✎
12:21
|
Именно ошибка ответа. Посмотри фиддлером ответ
|
|||
8
pal_vas
13.07.16
✎
12:26
|
(4) Вряд ли в этом проблема.
|
|||
9
Serginio1
13.07.16
✎
12:41
|
(8) Ты посмотри для начала.
Вот здесь тоже были проблемы Помощь с Web сервисом |
|||
10
pal_vas
13.07.16
✎
13:14
|
Вот такой ответе Фиддером получаю
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <m:GetReferenceDataResponse xmlns:m="http://www.cargo3.ru"> <m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <m:Properties> <m:Key>Error</m:Key> <m:Value xsi:type="xs:boolean">true</m:Value> <m:ValueType>boolean</m:ValueType> <m:List> <m:Key>Description</m:Key> <m:Value xsi:type="xs:string">03010</m:Value> <m:ValueType>string</m:ValueType> </m:List> </m:Properties> </m:return> </m:GetReferenceDataResponse></soap:Body> </soap:Envelope> |
|||
11
Serginio1
13.07.16
✎
13:37
|
Скорее всего 1С не понимает рекурсивные структуры
|
|||
12
pal_vas
13.07.16
✎
14:25
|
(11) Да нет, понимает
|
|||
13
pal_vas
13.07.16
✎
14:25
|
Вот структура выгрузки за образец
|
|||
14
pal_vas
13.07.16
✎
14:25
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/> <soap:Body> <m:GetReferenceData xmlns:m="http://www.cargo3.ru"> <m:login xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">LOGIN</m:login> <m:password xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">PASSWORD</m:password> <m:parameters xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <m:Key>Parameters</m:Key> <m:List> <m:Key>Reference</m:Key> <m:Value xsi:type="xs:string">Currencies</m:Value> <m:ValueType>string</m:ValueType> </m:List> </m:parameters> </m:GetReferenceData></soap:Body> </soap:Envelope> |
|||
15
pal_vas
13.07.16
✎
14:26
|
та выгрузка которая делается из 1с моим кодом отличается....надо разбираться
|
|||
16
Serginio1
13.07.16
✎
14:35
|
(12) Если бы понимала, ошибку бы не выдавала. Продолжай наблюдение.
|
|||
17
pal_vas
13.07.16
✎
17:16
|
Вопрос решен. Проблема была в авторизации при обращении... Serginio1 Спасибо!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |