|
Создание простейшего веб сервиса | ☑ | ||
---|---|---|---|---|
0
kimba
07.10.11
✎
17:10
|
Хочу сделать простейший пример веб сервиса.
Есть 2 базы 1с82, в одной веб сервис с функцией "GetNumbers" с параметрами data1 и data2 (тип указал date (http://www.w3.org/2001/XMLSchema)). Возвращаться должен список номеров документов в периоде между data1 и data2. Опубликовал на апаче. Что не получилось: 1) Пытаюсь добавить web ссылку во вторую базу, она добавляется но при экспорте wsdl ничего не происходит. Я так понял что должно нарисоваться дерево параметров. 2) Функция получения такая: Функция GetSamples(ДатаНач, ДатаКон) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Заявка.Номер |ИЗ | Документ.Заявка КАК Заявка |ГДЕ | Заявка.Дата МЕЖДУ &ДатаНач И &ДатаКон"; Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ДатаКон", ДатаКон); Результат = Запрос.Выполнить(); СписокНомеров = Новый СписокЗначений; Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл СписокНомеров.Добавить(Выборка.Номер); КонецЦикла; Возврат СписокНомеров; КонецФункции Понятно конечно что она щас не работает как надо, вопрос как из date (http://www.w3.org/2001/XMLSchema) преобразовать в дату и вопрос как вернуть список в виде XDTO. 3) Как будет выглядеть процедура получения данных во второй базе? |
|||
1
kimba
07.10.11
✎
18:17
|
АП
|
|||
2
Asmody
07.10.11
✎
18:28
|
пакет XDTO в 1 базе создал?
|
|||
3
kimba
07.10.11
✎
19:10
|
Да, теперь создал, добавил туда элемент тип:
Именя: ListOfNumbers Вариант: список Тип элемента: string (http://www.w3.org/2001/XMLSchema) Указал его использование в веб сервисе и добавил выходной параметр Results в веб сервис с типом ListOfNumbers. Что дальше? во второй базе при импорте WSDL ничего не изменилось |
|||
4
Asmody
07.10.11
✎
19:11
|
(3) пакет к сервису привязал?
|
|||
5
kimba
07.10.11
✎
19:13
|
(4) Ну да, на закладке "прочее" у сервиса в поле "Пакеты XDTO", ты это имеешь ввиду?
|
|||
6
kimba
07.10.11
✎
19:19
|
не верно ссылку на wsdl задал для второй базы, изменил и теперь выдает ошибку при импорте:
Ошибка при выполнении файловой операции 'http://Admin:[email protected]/base/ws/GetNumbersOfDocuments?wsdl' по причине: Ошибка работы с Интернет: внутренняя ошибка сервера (500). <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <soap:Fault> <faultcode>soap:Client</faultcode> <faultstring>Операция не найдена: {http://www.altey.ru}:GetNumbersOfDocuments:GetSamples()</faultstring> <detail>Операция не найдена: {http://www.altey.ru}:GetNumbersOfDocuments:GetSamples()</detail> </soap:Fault> </soap:Body> </soap:Envelope> по причине: Ошибка работы с Интернет: внутренняя ошибка сервера (500) Я так понимаю проблеммы с настройкой апача? |
|||
7
kimba
10.10.11
✎
11:47
|
Разобрался, проблема была в другом.
Теперь есть еще один вопрос: Объявил объект в 1 базе в пакете XDTO Выглядит так: <xs:schema xmlns:tns="http://www.altey.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.altey.ru" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="OrderParam"> <xs:sequence> <xs:element name="order_mis_id" type="xs:string"/> <xs:element name="order_barcode" type="xs:string"/> <xs:element name="patient_mis_id" type="xs:string"/> <xs:element name="patient_number" type="xs:string"/> <xs:element name="patient_family" type="xs:string"/> <xs:element name="patient_name" type="xs:string"/> <xs:element name="patient_patronum" type="xs:string"/> <xs:element name="patient_sex" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> Создал новую функцию и добавил ей один параметр, тип которого этот объект. Вопрос: как из второй базы передать в эту функцию параметр в виде этого объекта? Я так понимаю нужно создать этот объект XDTO и заполнить его, КАК? |
|||
8
kimba
10.10.11
✎
12:29
|
апппп
|
|||
9
Serginio1
10.10.11
✎
12:33
|
Прокси.ФабрикаXDTO
|
|||
10
Serginio1
10.10.11
✎
12:34
|
||||
11
kimba
10.10.11
✎
12:55
|
Не работает, код:
СервисAltey = WSСсылки.WSСсылка.СоздатьWSПрокси("http://www.altey.ru", "LIS_Service", "LIS_ServiceSoap"); ПараметрыЗаказаТип = СервисAltey.ФабрикаXDTO.Тип("http://www.altey.ru", "OrderParam"); ПараметрыЗаказа = ФабрикаXDTO.Создать(ПараметрыЗаказаТип); Выдает ошибку: Несоответствие типов XDTO: Тип '{http://www.altey.ru}OrderParam' не найден Тип принадлежит пакету, отсутствующему в фабрике типов XDTO Хотя данный код работает в базе №1. Видимо где то что-то я не добавил. Где? |
|||
12
kimba
10.10.11
✎
12:58
|
Блин не так создание написал, надо:
СервисAltey.ФабрикаXDTO.Создать(ПараметрыЗаказаТип); |
|||
13
kimba
16.10.11
✎
19:26
|
Еще вопрос необходимо чтобы 1с предоставляло список номенклатуры своей. Соответственно это не фиксированный массив объектов XDTO. Как?
Создал тип объекта в XDTO объектах с 2мя реквизитами: "наименование" и "код". Что должна возвращать функция у веб сервиса? Как сформировать этот список? |
|||
14
Serginio1
17.10.11
✎
16:26
|
Сделай Тип данных с двумя праметрами. Создай еще Тип данных и добаввь поле типа ранее созданной структуры.
У этого поля Минимальное Количество 0 максимальное количество -1 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |