|
Необязательный параметр web сервис | ☑ | ||
---|---|---|---|---|
0
NWsFF
15.10.13
✎
14:11
|
Как передать необязательный параметр методу веб сервиса
getAll(id<int>, status<int, nillable>) передаю вместо status null, неопрделено, просто оставляю getAll(id,) пишет ошибку Ошибочный порядок записи XML |
|||
1
Serginio1
15.10.13
✎
14:19
|
Передавай неопределено. Необязательный это минимальное количество 0
|
|||
2
NWsFF
15.10.13
✎
14:22
|
(1) Передаю неопределено
тоже Ошибочный порядок записи XML Передаю ТипInt = Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "int"); ПустойInt = Фабрика.Создать(ТипInt, 0); думает на 0 что это параметр 0 |
|||
3
Serginio1
15.10.13
✎
14:28
|
Ты показал описание WSDL с описанием.
Ну и не фабрика.Тип а Прокси.Фабрика.Тип, но это большой роли не играет |
|||
4
NWsFF
15.10.13
✎
14:29
|
(3)Ты показал описание WSDL с описанием.
не понял |
|||
5
NWsFF
15.10.13
✎
14:30
|
как заставить 1с записать в сообщение нечто типа
<tt:type xsi:nil="true"></tt:type> |
|||
6
Serginio1
15.10.13
✎
14:31
|
попрбуй
Фабрика=Прокси.Фабрика; ТипNull=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","anySimpleType"); СсылкаNull=Фабрика.Создать(ТипNull); (4) Покажи описание функции в WSDL |
|||
7
Serginio1
15.10.13
✎
14:33
|
Например
Фабрика=ФабрикаXDTO; ТипNull=Фабрика.Тип("http://www.w3.org/2001/XMLSchema","anySimpleType"); СсылкаNull=Фабрика.Создать(ТипNull); Тип=Фабрика.Тип("http://www.TestShema.ru/sample","getCurrencyList"); Объект=Фабрика.Создать(Тип); Объект.apiId="demo_api"; Объект.login="[email protected]"; Объект.pass="demo"; Объект.idList=Неопределено;//СсылкаNull; Сообщить("Привет "+Объект.idList); так и так будет в структуре idList показывать <idList xsi:nil="true"/> |
|||
8
kiruha
15.10.13
✎
14:38
|
(0)
Что есть необязательный параметр ??? Необязательный параметр может быть только у параметра сложного типа Формируешь этот тип и предаешь в качестве параметра |
|||
9
kiruha
15.10.13
✎
14:39
|
В 1С допускается максимум "возможно пустое" , т.е "" для string
|
|||
10
NWsFF
15.10.13
✎
14:40
|
||||
11
NWsFF
15.10.13
✎
14:45
|
(8) делал так начинает ругаться что параметров мало
|
|||
12
kiruha
15.10.13
✎
14:46
|
вебсервис внешний или 1С ?
|
|||
13
Serginio1
15.10.13
✎
14:46
|
Ну там другое
-<wsdl:message name="getEvents"> <wsdl:part name="sessionId" element="tns:sessionId"> </wsdl:part> <wsdl:part name="objectId" element="tns:objectId"> </wsdl:part><wsdl:part name="type" element="tns:type"> </wsdl:part><wsdl:part name="timeBegin" element="tns:timeBegin"> </wsdl:part><wsdl:part name="timeEnd" element="tns:timeEnd"> </wsdl:part></wsdl:message> |
|||
14
kiruha
15.10.13
✎
14:47
|
Если 1С ставь пробел, если внешний - формируй входной параметр, заполняй его свойства , необязательный параметр не заполняешь
|
|||
15
kiruha
15.10.13
✎
14:49
|
пробел это если галочка "возможно пустое" и тип string
|
|||
16
NWsFF
15.10.13
✎
14:52
|
||||
17
NWsFF
15.10.13
✎
14:53
|
описание getEvents
String sessionId - идентификатор сессии, полученный во время авторизации Integer objectId - идентификатор ТС. Необязательный параметр, если идентификатора нет, то возвращаются данные для всех ТС Integer type – тип события, необязательный. Если тип события не задан, возвращается список событий всех типов Unixtimestamp timeBegin (секунды) – время начала интервала Unixtimestamp timeEnd (секунды) -время окончания интервала |
|||
18
Serginio1
15.10.13
✎
14:56
|
Вместо всех этих параметров пропиши неопределено и все будет хорошо.
Смотри описание параметров. |
|||
19
Serginio1
15.10.13
✎
14:57
|
<xs:element name="sessionId" type="xs:string" nillable="true"/><xs:element name="objectId" type="xs:int" nillable="true"/><xs:element name="timeBegin" type="xs:long" nillable="true"/><xs:element name="timeEnd" type="xs:long" nillable="true"/>
Необязательный параметр это где у типа минимальное количество 0, максимальное количетво 1 |
|||
20
NWsFF
15.10.13
✎
14:59
|
(18) я так делал, писал неопределено, ругается Ошибочный порядок записи XML
|
|||
21
kiruha
15.10.13
✎
15:00
|
Забей в Soap Gui свой веб сервис - там сразу видны все параметры.
Параметр это не только простой тип - это может быть сложная иерархическая цепочка |
|||
22
kiruha
15.10.13
✎
15:00
|
В 1С цепочка формируется через XDTO
|
|||
23
Serginio1
15.10.13
✎
15:01
|
(20) То есть для всех параметров?
|
|||
24
NWsFF
15.10.13
✎
15:02
|
(19) я кажется тебя понял, в оболочке 1с у видел "может быть пустым", это <> nillable="true", верно, тоесть ошибка в схеме?
|
|||
25
NWsFF
15.10.13
✎
15:03
|
(23) первый параметр там обязательный, как и последние 2
|
|||
26
Serginio1
15.10.13
✎
15:03
|
У табя 5 параметров.
то есть вызов должен быть таким Прокси.getEvents(sessionId ,неопределено,неопределено,неопределено,неопределено) |
|||
27
NWsFF
15.10.13
✎
15:05
|
2 последних тоже обязательные, но суть ведь не в том, я полагаю что в схеме у параметров просто не указано свойство nillable
|
|||
28
Serginio1
15.10.13
✎
15:05
|
(25) Они у тебя по схеме все nillable
|
|||
29
Serginio1
15.10.13
✎
15:06
|
(27) В схеме указаны смотри 19.
Ты в конфигурацию схему загружал? Там у всех параметров стоит возможно пустое истина |
|||
30
NWsFF
15.10.13
✎
15:09
|
да загружал, стоит , а в тексте схемы это не нашел, но тем неменее неопределно он не принимает
я выложил обработку с тестом, запусти потрать минуту ткни меня носом , я походу туплю |
|||
31
NWsFF
15.10.13
✎
15:09
|
||||
32
NWsFF
15.10.13
✎
15:11
|
<wsdl:message name="getEvents">
<wsdl:part element="tns:sessionId" name="sessionId"></wsdl:part> <wsdl:part element="tns:objectId" name="objectId"></wsdl:part> <wsdl:part element="tns:type" name="type"></wsdl:part> <wsdl:part element="tns:timeBegin" name="timeBegin"></wsdl:part> <wsdl:part element="tns:timeEnd" name="timeEnd"></wsdl:part> </wsdl:message> Это ведь параметры метода, здесь не должно быть nillable? |
|||
33
NWsFF
15.10.13
✎
15:13
|
увидел что в определении типов стоит nillable
|
|||
34
kiruha
15.10.13
✎
15:14
|
<xs:element name="sessionId" nillable="true" type="xs:string"/>
|
|||
35
NWsFF
15.10.13
✎
15:17
|
Обработку кто нить скачал, она простая и ничего не требует от конфы, дайте мне в щщи
|
|||
36
kiruha
15.10.13
✎
15:21
|
В Соап гуи
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:anal="http://omnicomm.ru/analyticalserver"> <soapenv:Header/> <soapenv:Body> <anal:sessionId>?</anal:sessionId> <anal:objectId>?</anal:objectId> <anal:type>?</anal:type> <anal:timeBegin>?</anal:timeBegin> <anal:timeEnd>?</anal:timeEnd> </soapenv:Body> </soapenv:Envelope> т.е. все параметры обязательны Нормально отработал <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:anal="http://omnicomm.ru/analyticalserver"> <soapenv:Header/> <soapenv:Body> <anal:sessionId>1</anal:sessionId> <anal:objectId>1</anal:objectId> <anal:type></anal:type> <anal:timeBegin>0</anal:timeBegin> <anal:timeEnd>0</anal:timeEnd> </soapenv:Body> </soapenv:Envelope> |
|||
37
kiruha
15.10.13
✎
15:22
|
anal это 5 )
|
|||
38
NWsFF
15.10.13
✎
15:23
|
(37) я тоже оценил )
|
|||
39
NWsFF
15.10.13
✎
15:23
|
в анал гуи не интересно интересны выкаблуки 1С
|
|||
40
kiruha
15.10.13
✎
15:25
|
Так тоже самое
Прокси.getEvents(sessionId ,objectId,"",0,0) |
|||
41
NWsFF
15.10.13
✎
15:29
|
1С:Предприятие 8.2 (8.2.16.368)
не работает {Форма.Форма.Форма(30)}: Ошибка при вызове метода контекста (getEvents) события = Service.getEvents(sign.sessionID, id, "", Дата(2013,9,1) - базоваяДата, ТекущаяДата() - базоваяДата); по причине: Несоответствие типов (параметр номер '3') |
|||
42
NWsFF
15.10.13
✎
15:30
|
(40) у тебя какая платформа?
|
|||
43
NWsFF
15.10.13
✎
15:30
|
или ты не пробовал?
|
|||
44
Serginio1
15.10.13
✎
15:32
|
(41) Там проблема может быть в ответе. Посмотри, что реально возвращает. Например через SoapUI или v8: Сторонний Веб сервис, XDTO
|
|||
45
kiruha
15.10.13
✎
15:33
|
Прокси.getEvents(sessionId ,objectId,0,0,0)
|
|||
46
kiruha
15.10.13
✎
15:34
|
<xs:element name="type" nillable="true" type="xs:int"/>
|
|||
47
NWsFF
15.10.13
✎
15:38
|
(45) так он понимает 0 как тип события не то что нужно
|
|||
48
NWsFF
15.10.13
✎
15:39
|
(41) Не посмотрел сниффером там и до вопроса дело не дошло, 1с не смогло сформировать его
|
|||
49
NWsFF
15.10.13
✎
15:39
|
(41)->(44)
|
|||
50
kiruha
15.10.13
✎
15:40
|
Неопределено не работает ?
Пусть сформирует значение XDTO type пустое и его передаст |
|||
51
NWsFF
15.10.13
✎
15:41
|
Ладно, ребят голова совсем не соображает уже сегодня, попробую завтра поразбираться, всем спасибо
(50) Пусть сформирует значение XDTO type пустое и его передаст на сколько я пооксперементировал пустое XDTO = неопределно |
|||
52
kiruha
15.10.13
✎
15:58
|
Ну если у тебя в конфе есть схема
typeТипЗначенияXDTO=ФабрикаXDTO.Тип(ПространствоИмен,"type"); typeПустоеЗначениеXDTO=ФабрикаXDTO.Создать(typeТипЗначенияXDTO); |
|||
53
Serginio1
15.10.13
✎
16:02
|
(49) В 41 не проходит, а
Service.getEvents(sign.sessionID, id, неопределено, Дата(2013,9,1) - базоваяДата, ТекущаяДата() - базоваяДата); пройдет. Там ошибки разные. А вот возвращаемый тип xs:complexType name="responseEntryWrapper">-<xs:sequence><xs:element name="return" type="xs:anyType" minOccurs="0"/></xs:sequence> Если определить нулями то возвращает eventsResponseEntry А вот оно наследуется от другого. Кстати эту проблему уже решали v8: вебСервис |
|||
54
kiruha
15.10.13
✎
16:04
|
Через typeПустоеЗначениеXDTO по крайней мере не будет ошибки типов.
|
|||
55
kiruha
15.10.13
✎
16:05
|
Но если схемы нет в конфе - придется создавать свою фабрику
|
|||
56
NWsFF
15.10.13
✎
17:35
|
(53) Да не проходит я 10 раз попробовал
По ссылке, это одна и таже проблема, которые мы решили уже, она была на стороне сервиса, а вот продолжение проблем уже у самой 1с, завтра попробую на партнерском поспрашивать |
|||
57
Jaap Vduul
15.10.13
✎
17:46
|
(56)
Я твой сервис из c# потрогал, передав null в параметр type: в итоге в objectEvents пусто, а в error "Bad event type" |
|||
58
NWsFF
15.10.13
✎
18:40
|
(57) 2 3 параметры должны быть null, c питона у меня тоже работает, а вот с 1с нет
|
|||
59
Serginio1
15.10.13
✎
19:02
|
(58) Что возвращает? Сейчас какой то пакет {.} появился
|
|||
60
Serginio1
15.10.13
✎
19:06
|
<xs:import namespace=","/>
|
|||
61
NWsFF
15.10.13
✎
19:10
|
(59) Сейчас не могу проверить, возможно с сервисом что-то делают, но днем в питоне возвращалась структура со списком событий
(60) что это? |
|||
62
kiruha
16.10.13
✎
09:59
|
Ну что там с необязательным параметром ?
Даже интересно, почему Неопределено не работает |
|||
63
Serginio1
16.10.13
✎
10:15
|
(61) Посмотри WSDL
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |