|
Передача данных из 1с на стронний веб-сервис | ☑ | ||
---|---|---|---|---|
0
santapod
06.09.12
✎
15:08
|
Ситуация такая: надо передать xml на веб-сервис. Получил нужный xml в строку Стр = ЗаписьXML.Закрыть(); (Стр и есть этот xml).
Теперь возникает вопрос непосредственно с отправкой на веб-сервис. Код такой: Прокси = WSСсылки.Локальный.СоздатьWSПрокси("http://wwwSQLWEBServices.usoft.ru/","Service","ServiceSoap"); XMLStringТип =Прокси.ФабрикаXDTO.Пакеты.Получить("http://wwwSQLWEBServices.usoft.ru/").Получить("DataTransfer1c"); Парам = Прокси.ФабрикаXDTO.Создать(XMLStringТип); Парам.StringText =1; Результат = Прокси.DataTransfer1c(Парам); Парам.Добавить(Стр) Пишет что недостаточно фактических параметров (Парам.Добавить(Стр) ). Подскажите что не так делаю. |
|||
1
Fragster
гуру
06.09.12
✎
15:14
|
Купи СП уже у кого-нибудь...
ОбъектXDTO (XDTODataObject) Добавить (Add) Вариант синтаксиса: Установка значения нового произвольного свойства Описание: Добавляет значение произвольного свойства. Имя свойства будет создано автоматически, на основе локального имени XML представления свойства. В случае, если произвольное свойство с полученным именем уже существует и, если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей. В противном случае будет инициировано исключение. Тип создаваемого свойства всегда устанавливается anyType пространства имен схемы XML. Синтаксис: Добавить(<Форма>, <URI пространства имен>, <Локальное имя>, <Элемент данных>) Параметры: <Форма> (обязательный) Тип: ФормаXML. Форма XML представления произвольного свойства. Может принимать значения Элемент или КартинкаКнопкиВыбора. <URI пространства имен> (обязательный) Тип: Строка. URI пространства имен XML представления произвольного свойства. <Локальное имя> (обязательный) Тип: Строка. Локальное имя произвольного свойства. <Элемент данных> (обязательный) Тип: ЗначениеXDTO, ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства. Вариант синтаксиса: Установка значения существующего произвольного свойства Описание: Добавляет значение произвольного свойства с указанным именем. Если свойства с указанным именем не существует, то будет инициировано исключение. Если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей. В противном случае будет инициировано исключение. Синтаксис: Добавить(<Имя>, <Элемент данных>) Параметры: <Имя> (обязательный) Тип: Строка. Имя произвольного свойства. <Элемент данных> (обязательный) Тип: ЗначениеXDTO, ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства. Описание: Добавляет в объект значения произвольного свойства. Примечание: Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение. |
|||
2
santapod
06.09.12
✎
15:22
|
(1) "Купи СП уже у кого-нибудь..." что это?
|
|||
3
Serginio1
06.09.12
✎
15:28
|
||||
4
santapod
06.09.12
✎
15:30
|
(3) Описанный пример работает на получение данных со стороннего сервиса,мне же нужно на сторонний сервис передавать свои данные
|
|||
5
santapod
06.09.12
✎
15:33
|
(1) вот нашел полное описание http://forum-1c.ru/index.php?PHPSESSID=a7bt13tbi18ignc8ol9tbn04c7&topic=11521.0
я вот только не пойму,этот пример подходит для использования со сторонним веб-сервисом(не 1с)??? Тут разве описан не веб-сервис 1с? |
|||
6
Fragster
гуру
06.09.12
✎
15:34
|
(2) это когда контрол+ф1 нажимаешь - такая фигня справа
|
|||
7
santapod
06.09.12
✎
15:36
|
(6) спасибо за совет...учту
|
|||
8
Serginio1
06.09.12
✎
16:08
|
(4) А чем получение данных с передачей параметров отличается от от передачи данных? Кстати параметры могут быть с пометкой OUT только располагаться они должны в конце описания параметров. Если ты их опишешь не в конце, то система при описании Вэб сервиса и при вызове все равно поместит в конце
|
|||
9
santapod
07.09.12
✎
12:07
|
Подскажите с чем может быть связана эта ошибка:
Несоответствие типов XDTO: Тип '{http://wwwSQLWEBServices.usoft.ru/}DataTransfer1c' не найден Тип объекта не является открытым |
|||
10
zladenuw
07.09.12
✎
12:17
|
я делал так и все работает.
Определения = Новый WSОпределения(АдресВебСервиса + "?wsdl", Пользователь, Пароль); ТекСервисEurocar=Новый WSПрокси(Определения, "eurocar.com.ua", "Main", "MainSoap"); ТекСервисEurocar.Пользователь = Пользователь; ТекСервисEurocar.Пароль = Пароль; ТипДок = ТекСервисEurocar.Определение.ФабрикаXDTO.Тип("itek", "Документ"); Док =ТекСервисEurocar.Определение.ФабрикаXDTO.Создать(ТипДок); И все работает |
|||
11
santapod
07.09.12
✎
12:24
|
(10) а где добавление данных?
|
|||
12
zladenuw
07.09.12
✎
12:31
|
а поиск где ? погугли или Яндексни.
|
|||
13
santapod
07.09.12
✎
12:36
|
(12) Все идентично,за исключением того,что ты подключаешься через динамическую ссылку
Прокси = WSСсылки.Локальный.СоздатьWSПрокси("http://wwwSQLWEBServices.usoft.ru/","Service","ServiceSoap"); //XMLStringТип =Прокси.ФабрикаXDTO.Пакеты.Получить("http://wwwSQLWEBServices.usoft.ru/").Получить("DataTransfer1c"); Прокси.Пользователь = "wwwSQLWEBServices"; Прокси.Пароль = "FZQwGizK2BKgWVP"; XMLStringТип = Прокси.ФабрикаXDTO.Тип("http://wwwSQLWEBServices.usoft.ru/","DataTransfer1c"); XMLString = Прокси.ФабрикаXDTO.Создать(XMLStringТип); Результат = Прокси.DataTransfer1c(XMLString); XMLString.Добавить(ФормаXML.Элемент,"http://wwwSQLWEBServices.usoft.ru/",Стр,XMLString) |
|||
14
santapod
07.09.12
✎
12:37
|
Я только прошу объяснить как решить эту проблему? Куда копать? Как сделать открытым?
Несоответствие типов XDTO: Тип '{http://wwwSQLWEBServices.usoft.ru/}DataTransfer1c' не найден Тип объекта не является открытым |
|||
15
santapod
07.09.12
✎
12:39
|
Объясните пожалуйста надо ли в ветке конфигурации создавать пакетXDTO?
|
|||
16
zladenuw
07.09.12
✎
12:43
|
ФабрикаXDTO (XDTOFactory)
Создать (Create) Вариант синтаксиса: Создание значения из значения Синтаксис: Создать(<Тип>, <Значение>) Параметры: <Тип> (обязательный) Тип: ТипЗначенияXDTO. Тип, значение которого необходимо создать. <Значение> (обязательный) Тип: Произвольный. Произвольное значение, на основе которого должно быть создано значение XDTO. Вариант синтаксиса: Создание значения по лексическому представлению Синтаксис: Создать(<Тип>, <Строка>) Параметры: <Тип> (обязательный) Тип: ТипЗначенияXDTO. Тип, значение которого необходимо создать. <Строка> (обязательный) Тип: Строка. Лексическое представление значения. Вариант синтаксиса: Создание объекта Синтаксис: Создать(<Тип>) Параметры: <Тип> (обязательный) Тип: ТипОбъектаXDTO. Тип, объект которого необходимо создать. |
|||
17
zladenuw
07.09.12
✎
12:43
|
(15) нет не обязательно. у тебя ошибка тут XMLString = Прокси.ФабрикаXDTO.Создать(XMLStringТип);
|
|||
18
zladenuw
07.09.12
✎
12:43
|
читай СП
|
|||
19
santapod
07.09.12
✎
12:55
|
(18) Спасибо.То есть мне нужно делать вот так Создать(<Тип>, <Значение>) ?
|
|||
20
zladenuw
07.09.12
✎
13:00
|
а хотя соврал.
Можно и 1 параметр. У тебя тут не так что то Результат = Прокси.DataTransfer1c(XMLString); XMLString.Добавить(ФормаXML.Элемент,"http://wwwSQLWEBServices.usoft.ru/",Стр,XMLString) Что ты пытаешься добавить ? |
|||
21
santapod
07.09.12
✎
13:03
|
(20) Записал XML в строку: ЗаписьXML.ЗаписатьКонецЭлемента();
Стр = ЗаписьXML.Закрыть(); А затем хочу этот Стр добавить |
|||
22
zladenuw
07.09.12
✎
13:04
|
такс. почитай как надо работать с ХДТО.
вот кусок с СП. читай там смотри ФабрикаXDTO (XDTOFactory) ЗаписатьXML (WriteXML) Синтаксис: ЗаписатьXML(<ЗаписьXML>, <Элемент>, <ЛокальноеИмя>, <URIПространстваИмен>, <Форма>, <УказаниеТипа>) Параметры: <ЗаписьXML> (обязательный) Тип: ЗаписьУзловDOM, ЗаписьFastInfoset, ЗаписьXML. Объект записи XML. <Элемент> (обязательный) Тип: ЗначениеXDTO; ОбъектXDTO; Неопределено. Записываемое значение. <ЛокальноеИмя> (необязательный) Тип: Строка. Локальное имя записываемого элемента данных. <URIПространстваИмен> (необязательный) Тип: Строка. URI пространства имен записываемого элемента данных. <Форма> (необязательный) Тип: ФормаXML. Форма представления элемента данных в XDTO. Значение по умолчанию: Элемент <УказаниеТипа> (необязательный) Тип: НазначениеТипаXML. Вариант назначения типа элемента данных XDTO. Значение по умолчанию: Неявное Описание: Записывает указанный элемент данных XDTO в объект записи XML. |
|||
23
santapod
07.09.12
✎
13:08
|
(22) Спасибо,щас буду разбираться.
|
|||
24
santapod
07.09.12
✎
13:18
|
(22) А еще вопрос: мне придется отбросить вариант с записью XML в строку и заполнять фабрикуXDTO и записывать вот так
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, XMLString); ЗаписьXML.Закрыть(); Правильно? |
|||
25
santapod
11.09.12
✎
12:10
|
Подскажите пожалуйста как бороться с этой ошибкой?
{Форма.Отчет(128)}: Ошибка при вызове метода контекста (Добавить): Несоответствие типов XDTO: Тип '{http://wwwSQLWEBServices.usoft.ru/}DataTransfer1cResponse' не найден Тип объекта не является открытым Ответ = Результат.Добавить(ФормаXML.Элемент,"http://wwwSQLWEBServices.usoft.ru/",Стр,XMLString) по причине: Несоответствие типов XDTO: Тип '{http://wwwSQLWEBServices.usoft.ru/}DataTransfer1cResponse' не найден Тип объекта не является открытым Вот код: Прокси = WSСсылки.Локальный.СоздатьWSПрокси("http://wwwSQLWEBServices.usoft.ru/","Service","ServiceSoap"); XMLStringТип = Прокси.ФабрикаXDTO.Тип("http://wwwSQLWEBServices.usoft.ru/","DataTransfer1c"); XMLString = Прокси.ФабрикаXDTO.Создать(XMLStringТип); Результат = Прокси.DataTransfer1c(XMLString); Ответ = Результат.Добавить(ФормаXML.Элемент,"http://wwwSQLWEBServices.usoft.ru/",Стр,XMLString) Если раскрыть ветку WS-ссылки, то там на вкладке Типы объектов у DataTransfer1c стоит "Открытый - Ложь". Где можно поменять это свойство на "Открытый"? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |