|
v8: Передача параметра с типом Структура в XDTO | ☑ | ||
---|---|---|---|---|
0
svchernova
30.11.11
✎
13:54
|
Всем добрый день.
Работаю с веб-сервисами, цепляюсь к чужой базе данных. Веб-службы поставщика веб-услуг работают по протоколу SOAP При работе с веб-службами используются как примитивные типы данных, так и в некоторых методах сложные типы, например, такие, как Структура. Не могу взять в толк, как в 1С тип Структура приводится в соответствие с протоколом SOAP. Вот описание веб-сервиса: - <s:element name="GetMiddlemenByKeyFields"> - <s:complexType> - <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="aSessionID" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="aMiddleman" type="tns:MIDDLEMAN" /> </s:sequence> </s:complexType> </s:element> - <s:complexType name="MIDDLEMAN"> - <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="MIDDLEMAN_ID" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="CLIENT_ID" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="MIDDLEMAN_TYPE_ID" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="PARENT_MIDDLEMAN_ID" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="CONTRACT_NUMBER" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="CONTRACT_DATE" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LETTER_OF_ATTORNEY_NUMBER" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="BRANCH_ID" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="RECORD_CHANGED_AT" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="CREATED_BY_USER_ID" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="INPUT_DATE" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="CHANGED_BY_USER_ID" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="SYSTEM_DELIMITER_ID" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="USER_ID" type="s:int" /> </s:sequence> </s:complexType> Это мой код: Тип = Фабрика.Тип("https://icweb/IICWebService", "GetMiddlemenByKeyFields"); МоиПараметры = Фабрика.Создать(Тип); МоиПараметры.aMiddleman = Новый Структура("MIDDLEMAN_ID", СтрокаПолиса.MIDDLEMAN_ID); В качестве параметров передаю номер сессии и структуру, в которой только одна строчка с ключом "MIDDLEMAN_ID" Получаю ошибку : Несоответствие типов XDTO: Тип '{https://icweb/IICWebService}MIDDLEMAN' не найден Значение не может быть установлено свойству, имеющему объектный тип |
|||
1
svchernova
30.11.11
✎
14:03
|
Нашла решение, вопрос снят..
|
|||
2
Wobland
30.11.11
✎
14:05
|
(1) а мне интересно. я ни ч.. не понял, но там MIDDLEMAN_ID, а в ошибке MIDDLEMAN
|
|||
3
svchernova
30.11.11
✎
14:09
|
(2) http://pro1c.org.ua/index.php?showtopic=214
Здесь очень понятно написано, как работать с типами данных в XDTO, в том числе и со структурой |
|||
4
svchernova
30.11.11
✎
14:09
|
(2) сейчас попробую
|
|||
5
Wobland
30.11.11
✎
14:17
|
(4) чего попробую? я несоответствие увидел
|
|||
6
Wobland
30.11.11
✎
14:18
|
(3) ух ты! спасибо
|
|||
7
svchernova
30.11.11
✎
14:22
|
(5)- <s:complexType name="MIDDLEMAN">
Тип у них так называется.. ПАЖАЛСТА :))))) |
|||
8
Wobland
30.11.11
✎
14:24
|
(7) ах вон оно где..
|
|||
9
Wobland
30.11.11
✎
14:27
|
Тип = Фабрика.Тип("https://icweb/IICWebService", "MIDDLEMAN"); - вроде так по логике вещей
|
|||
10
Wobland
30.11.11
✎
14:28
|
GetMiddlemenByKeyFields - это же не тип
|
|||
11
svchernova
30.11.11
✎
14:43
|
(10) это наименование метода веб-сервиса
|
|||
12
Wobland
30.11.11
✎
14:45
|
(11) ну и я о том же. а пытаешься из него сделать тип. что там в (1)?
|
|||
13
svchernova
30.11.11
✎
14:47
|
Не поняла.. мы тут плюшками баловались.. сейчас работать буду, выложу сюда код
|
|||
14
svchernova
30.11.11
✎
16:55
|
(12) Смысл в том, что нужно создать структурный тип и затем подсунуть его в качестве параметра скрипта.
CтруктурныйТип = Фабрика.Тип("https://icweb/IICWebService", "MIDDLEMAN"); aMIDDLEMAN = Фабрика.Создать(CтруктурныйТип); aMIDDLEMAN.MIDDLEMAN_ID = СтрокаПолиса.MIDDLEMAN_ID; aMIDDLEMAN.CLIENT_ID = СтрокаПолиса.CLIENT_ID; ПосредникиXDTO = Прокси.GetMiddlemenByKeyFields( НомерСессии,aMIDDLEMAN).MIDDLEMAN; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |