|
Web-сервис :: Тип возвращаемого значения ₽ |
☑ | ||
|---|---|---|---|---|
|
0
Faso1
24.02.09
✎
16:31
|
Доброго дня!
Имеется глобальная функция ПолучитьОстатки(КодТов) возвращающая xml-файл(либо текстовый - что проще) с данными о номенклатуре и остатком. Есть веб-сервис обращающийся к ней: [WebMethod] public string GetOst(string kodnom) { using (V8DbConnection conn = new V8DbConnection( System.Configuration.ConfigurationManager.AppSettings[V8Consts.Database], System.Configuration.ConfigurationManager.AppSettings[V8Consts.UserName], System.Configuration.ConfigurationManager.AppSettings[V8Consts.UserPassword])) { conn.Open(); object ret = (object)V8.Call(conn, conn.Connection, "ПолучитьОстатки", kodnom); string ret1=V8.ConvertValueV8ToNet(ret, conn).ToString(); return ret1; } } После выполнения получаю в браузере: <?xml version="1.0" encoding="utf-8" ?> <string xmlns="http://localhost/V8WebService/">_1C.V8.Data.ComObject</string> Вопрос: как заставить сервис возвращать xml либо текст вместо объекта 1С? |
|||
|
1
Faso1
25.02.09
✎
10:31
|
Аааааап
|
|||
|
2
skunk
25.02.09
✎
10:33
|
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://localhost/V8WebService/">_1C.V8.Data.ComObject</string> а это по твоему что если не xml |
|||
|
3
Faso1
25.02.09
✎
10:35
|
В объекте 1C.V8.Data.ComObject хранится большой листинг. Тип объекта 1с - текст или xml. Тут получаю строковое представление объекта: 1C.V8.Data.ComObject а не сам листинг.
|
|||
|
4
skunk
25.02.09
✎
10:44
|
(3)что попросил, то она и вернула... выполни в 8.1 тоже самое... получишь ... 1C.V8.Data.ComObject
|
|||
|
5
Faso1
25.02.09
✎
10:58
|
Вопрос в том как вернуть текст
|
|||
|
6
skunk
25.02.09
✎
10:59
|
пригласить специалиста...
|
|||
|
7
regniws
25.02.09
✎
11:06
|
небость ПолучитьОстатки возвращает ТексотвыйДокумент? или XML файл! да? А как он должен сериализоваться не думали!? И к чему такие извраты с веб-сервисами? может их проще на самой эске написать!? а не так извращаться?
|
|||
|
8
skunk
25.02.09
✎
11:07
|
(7)попробуй из 1С к саповскому серверу из самой эсины цепануться... узнаешь к чему такие извраты
|
|||
|
9
Faso1
25.02.09
✎
11:09
|
Так и есть, возвращает файлы. Вопрос как раз в том как возвращать не файлы, либо их на стороне веба преобразовывать в текст -)
Да, сейчас смотрю в сторону встроенных веб-сервисов, но все таки решение должно быть... |
|||
|
10
regniws
25.02.09
✎
11:09
|
(8) а причем тут "из 1с к сапу"??? по-моему тут речь из откуда-то к 1с?
|
|||
|
11
Faso1
25.02.09
✎
11:11
|
(6)Академика по котам?
|
|||
|
12
regniws
25.02.09
✎
11:12
|
Конечно должно быть.
Когда метод Функция ПолучитьОстатки(...) текст = Новый ТекстовыйДокумент(); Возврат текст ; КонецФункции Вот это вернет бред вашего вида. А Возврат текст.ПолучитьТекст(); Возможно вернет уже что-то более вразумительное |
|||
|
13
skunk
25.02.09
✎
11:13
|
(10)речи нету откуда и куда... речь идет о веб-сервисе ... так вот поробуй из эсинского веб-сервиса пообщаться с сапосвким веб-сервисом... чисто данными пообмениваться по соапу через аштипи
|
|||
|
14
Faso1
25.02.09
✎
11:13
|
Да, речь о коннекте на 1с с веб-сервера и сливании остатков в веб-магазин.
|
|||
|
15
skunk
25.02.09
✎
11:14
|
(11)нет... специалсита по 1С ... который знает, что возвращает ConvertValueV8ToNet
|
|||
|
16
regniws
25.02.09
✎
11:17
|
(13) хоть это и оффтоп, но все ;t поведайте нам, в чем там могут быть проблемы? Писал и до сих пор пишу интеграции на базе веб-сервисов, есть геморрои, но лучше решения чем веб-сервисы пока не видел.
|
|||
|
17
skunk
25.02.09
✎
11:21
|
(16)в том, что эсина не понимает wsdl получаемый от сап иксай
|
|||
|
18
Faso1
25.02.09
✎
11:24
|
(12) Спасибо! Чего-то переморочился я с ЗаписьТекста вместо ТекстовыйДокумент. Так возвращает текст. Единственный вопрос как это будет работать при больших текстах...
|
|||
|
19
regniws
25.02.09
✎
11:26
|
(18) это будет притормаживать на больших текстах, но вполне возможно. Прокачивал через соап 100 метровые файлы, все ок.
(17) а вы типы соап пробовали сравнивать!? Или просто решили вопрос "1с - авно, ибо не понимает" ? А вы пробовали сохранять описания в xml и подгружать руками? |
|||
|
20
Faso1
25.02.09
✎
11:27
|
(11)Это дефолтный ответ который помогает вам ответить на любой вопрос? Очко переходит в зрительный зал.
|
|||
|
21
skunk
25.02.09
✎
11:28
|
(19)пробовали ... даже через соап толкит пробовали цепляться... едиственное, что сраслось... преобразования всдл в классу... и включение его в проект
|
|||
|
22
skunk
25.02.09
✎
11:29
|
(20)сам собой... признак шизофрении
|
|||
|
23
regniws
25.02.09
✎
11:30
|
(19) чего!??? какой проект? я говорю про то, что руками вызывать этот веб-сервис из эсины пробовали? или только пытались добавить через конфигуратор ws-ссылку?
|
|||
|
24
regniws
25.02.09
✎
11:32
|
(22) Какой стандарт соапа возвращает сап?? Просто эсина не все поддерживает и это достаточно хорошо описано в документации! Посмотрите на все объекты начинающиеся на WS.
|
|||
|
25
skunk
25.02.09
✎
11:32
|
(23)еще раз пробовали... проект ... ну как бы это сказать... в визуал студио... проекты есть ... слыхал?
|
|||
|
26
skunk
25.02.09
✎
11:35
|
(24)1.1
|
|||
|
27
regniws
25.02.09
✎
11:40
|
(25) слышал, не переживайте ) то есть вы из сапа публикуете веб-сервисы, создаете проект на студии и еще раз публикуете те же методы? и потом только из эсины к ним подключаетесь?
|
|||
|
28
regniws
25.02.09
✎
11:52
|
И я еще не понял, соап тулкит не может к сапу подключиться?
|
|||
|
29
skunk
25.02.09
✎
11:52
|
нет ... как бы по короче...
короче сап публикует сервис... из 1С к данному сервису достучаться нет возможности... (хз кто виноват ... но скорее всего сап, ибо как сказано обламывается даже эмсовский соап тулкит)... едиственная возможность... это ковертация всдл в файл описания класса на языке проекта (с#, vb) не важно ... и реализация самого веб-сервиса средствами студии... то есть обслуживание приема/переадчи ведет студийный сервис ... 1С вызывается из сервиса через оле |
|||
|
30
skunk
25.02.09
✎
11:53
|
(28)да
|
|||
|
31
regniws
25.02.09
✎
11:58
|
(29) Ну )) к пуговицам претензии есть!? :) 1с цепляется хорошо к сервисам (не сталкивался с проблемой, что эсина не может к чему-то подключиться, но сталкивался, что сервисы эсины не все могут подцепить, кстати, в частности тулкит, при попытки подключиться из 7ки через тулкит к 8шному сервису).
//// В вашем случае согласен, что это может быть единственное решение. Просто человек пишет веб-сервис через некоторую ж*пу (без обид), а я говорю, что такой изврат скорее всего не нужен, ибо можно тот же сервис с гораздо меньшими проблемами и большей производительностью написать на самой 1с. |
|||
|
32
IromDenom
25.02.09
✎
11:59
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
ИскомыйЭлемент = "Сидоров Сидор Сидорович"; К = Справочники.Контрагенты.НайтиПоНаименованию(ИскомыйЭлемент); Если К <> Справочники.Контрагенты.ПустаяСсылка() Тогда Найден = Истина; К = Справочники.Контрагенты.НайтиПоКоду(К.Код); Сообщить("Найден: "+ К.Наименование); СсылкаК = К.Ссылка; Иначе К = Справочники.Контрагенты.СоздатьЭлемент(); К.Наименование = ИскомыйЭлемент; // Длина наименования: 100 К.Родитель = Справочники.Контрагенты.НайтиПоНаименованию("Контрагенты"); К.ОсновнойДоговорКонтрагента = Справочники.ДоговорыКонтрагентов; К.Комментарий = "Эта запись была сгенерирована автоматически по данным файла: "+ИмяЗагружаемогофайла; К.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо; К.ГоловнойКонтрагент = Справочники.Контрагенты.ПустаяСсылка(); К.ИНН = ""; К.КодПоОКПО = ""; К.КПП = ""; К.НаименованиеПолное = К.Наименование; // СсылкаК = К.ПолучитьСсылкуНового(); К.Записать(); КонецЕсли; //*** СОЗДАНИЕ/ДЕДАКТИРОВАНИЕ ЗАПИСИ О ДОГОВОРЕ КОНТРАГЕНТА //*** Д = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); Д.Наименование = "Дог№ 12345"; // Длина наименования: 50 Д.Родитель = Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); Д.Владелец = СсылкаК; //Д.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду("810"); Д.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб."); Д.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам; Д.Организация = Справочники.Организации.НайтиПоКоду("000000001"); Д.ПроцентКомиссионногоВознаграждения = 0; Д.СпособРасчетаКомиссионногоВознаграждения = Перечисления.СпособыРасчетаКомиссионногоВознаграждения; Д.ТипЦен = Справочники.ТипыЦенНоменклатуры; Д.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем; Д.УчетАгентскогоНДС = ложь; Д.ВидАгентскогоДоговора = Перечисления.ВидыАгентскихДоговоров; Д.РасчетыВУсловныхЕдиницах = ложь; Д.РеализацияНаЭкспорт = ложь; Д.ВидВзаиморасчетов = Справочники.ВидыВзаиморасчетов; // Тип: Справочник ссылка: Виды взаиморасчетов Д.Комментарий = "Эта запись была сгенерирована автоматически по данным файла: "+ИмяЗагружаемогофайла; //Справочник контрагенты уже должен быть записан Д.Записать(); // ЗАПИСЬ КОНТАКТНОЙ ИНФОРМАЦИИ КОНТРАГЕНТА НаборЗап = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); НаборЗап.Активность = Истина; НаборЗап.Объект = СсылкаК; НаборЗап.Объект = СсылкаК; НаборЗап.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НаборЗап.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00011"); //Форма с классификатором //НаборЗап.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("00010"); //Упрощенная форма //НаборЗап.Поле1 = "119526";// НаборЗап.Поле2 = "Москва"; //Регион //НаборЗап.Поле3 = ""; //Район //НаборЗап.Поле4 = ""; //Город //НаборЗап.Поле5 = ""; // //НаборЗап.Поле6 = "26 Бакинских Комиссаров ул"; //Улица НаборЗап.Поле7 = "10"; //Дом НаборЗап.Поле8 = ""; //Корпус НаборЗап.Поле9 = "12"; //Квартира //НаборЗап.Представление = "643, 50, *****===";// НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(НаборЗаписей, НаборЗап.Объект); НаборЗаписей.Прочитать(); КопияНабораКонтактнойИнформации = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(КопияНабораКонтактнойИнформации, НаборЗап.Объект); КопияНабораКонтактнойИнформации.Выбран(); КопияНабораКонтактнойИнформации.Прочитать(); Для каждого ОчереднаяЗапись Из КопияНабораКонтактнойИнформации Цикл Сообщить("КопияНабораКонтактнойИнформации.Представление= "+ ОчереднаяЗапись.Представление); КонецЦикла; УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(НаборЗаписей, НаборЗап.Объект, Ложь, КопияНабораКонтактнойИнформации) КонецПроцедуры |
|||
|
33
regniws
25.02.09
✎
12:00
|
кто здесь!?????
|
|||
|
34
skunk
25.02.09
✎
12:06
|
(31)странно ... у меня наоборат соап тулкит без проблем цеплялся к восмерочному сервису... правда не из 7.7 ... из 7.7 он вообще как-то криво работает... а вот если сделать выверт через анус... в 7.7 создать скрипт контрл... и уже через срикпт чеплять тулкит, то проблем нет
|
|||
|
35
regniws
25.02.09
✎
12:08
|
(34) нда, реально анус ))) а из сапа wsdl верификацию вообще проходит?
|
|||
|
36
skunk
25.02.09
✎
12:15
|
(35)в смысле ... всдл которую он сам опубликовал?
|
|||
|
37
regniws
25.02.09
✎
12:19
|
ну, wsdl этот тот же xml, для которого есть xsd, и xsdшкой для wsdl можно проверить соответствие его стандарту, посмотри на сайте соапа, я там брал эту xsdшку и прогонял верификатором 1совские wsdl. Проверку не проходил )) чего-то там не хватало
|
|||
|
38
skunk
25.02.09
✎
12:21
|
(37)а нет ... тогда не проводили
|
|||
|
39
regniws
25.02.09
✎
12:23
|
Попробуй, просто тогда хотя бы сможешь понять: в чем причины неподгружаемости тулкитом и, возможно, сможешь исправить. ))
|
|||
|
40
skunk
25.02.09
✎
12:28
|
(39)о кей ... попробую... вот исправить врядли ... если бы мог исправить то вообще бы пошел другим путем... сапой рулят в голове... а я в дочке сижу
|
|||
|
41
regniws
25.02.09
✎
12:34
|
ну все равно же их пихнуть можно, чтобы они что-нибудь поправили?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |