Имя: Пароль:
1C
 
Передать XML-файл по вебсервису 1С
0 Paradox
 
03.09.15
15:34
Привет всем. Начал изучать технологию веб-сервисов.
И столкнулся с проблемой. Видимо еще не доучил то, что требуется. Суть в следующем:

ВебСервис принимает от "когото" строку с определенной командой, строка в формате XML. выполняет команду...и отправляет ответ так же в строке в формате XML.

Вопрос в том, можно ли реализовать передачу не строки, а например именно файла XML? В настройках веб-сервиса указал, что параметр типа String.

Например, не требуется в ответах передавать данные из базы. а просто ответ в виде файла XML.

Сейчас я принимаю строку, сохраняю ее в XML-файл и потом обрабатываю. Аналогично с ответом - формирую строку в формате XML, предаю ее в ответ.
1 vicof
 
03.09.15
15:39
"передачу не строки, а например именно файла XML"
и чем отличаются строка и файл хмл?
2 Гёдза
 
03.09.15
15:40
ответ вебсервиса - это и так xml
3 Господин ПЖ
 
03.09.15
15:44
ты в него что-то типа <binary>...</binary> воткнуть хочешь?
4 Гёдза
 
03.09.15
15:45
(3)  Подозреваю, что произвольный XML внутри XML
5 vicof
 
03.09.15
15:51
6 Paradox
 
03.09.15
15:53
не, ну в отладке я вижу ответ от веб-сервиса. Строка. Я имел ввиду, что бы в ответ уже готовый XML.
7 Paradox
 
03.09.15
15:53
XML-файл не есть строка. Мне кажется это во -первых файл.
8 Гёдза
 
03.09.15
15:54
(6) Смотря как вызывать. Если стандартными методами, то ответ - xdto
9 Господин ПЖ
 
03.09.15
15:54
масло масляное... soap и затевался чтобы избежать прокладок в виде файликов...
10 Paradox
 
03.09.15
15:56
я понимаю, что кому то смешно это рассказывать, но я только осваиваю это. Приведу процедуру веб-сервиса:

Функция GetOrder(zapros)
    
    СтрокаXML     = zapros;
    ФайлXML     = СформироватьФайлXMLИзФходящейСтроки(СтрокаXML);
    Операция     = ПолучитьЗаголовокСтрокиОтКлиента(ФайлXML);
    
    Если Операция = "GetSheet" Тогда //Если получили операцию на запрос наличия товара, то вернем ответ "TakeSheet" с наличием товара
        TakeSheet = СформироватьОтветНаЗапрос("GetSheet", ФайлXML); //То, что возвращаем клиенту на его запрос
        Возврат TakeSheet;
    ИначеЕсли Операция = "ConfirmOrder" Тогда
        Ответ = ОпределитьВозможностьСозданияЗаказа(ФайлXML);
        Возврат Ответ;
    КонецЕсли;
    
    УдалитьФайлы(ФайлXML);
    
КонецФункции // GetOrder()


Вот в возврате функции строка. Или это как бы и будет на выходе в интеренет - XML файл?
11 Paradox
 
03.09.15
15:58
и фактический параметр у функции тоже получает строку, но как бы если ее записать в файл - то получим правильный XML файлик =)
12 Paradox
 
03.09.15
16:00
вот и думаю, зачем запариватся с записью файла, потом его удалять, когда проще ,если можно, сразу принять файл, прочитать его, и сформировать в ответ тоже файл.
В общем это к тому всё, что я опасаюсь за длину строки. Я не знаю ее ограничения в веб-сервисе. Понятно что 256 символом, а вдруг придет больше.
13 Господин ПЖ
 
03.09.15
16:03
какой файл? чего принимать? куда удалять?

работа в сервисе идет на уровне объектов и их свойств

где в (10) хоть намек на фабрику xdto?
14 jk3
 
06.09.15
22:22
(12) >В общем это к тому всё, что я опасаюсь за длину строки

Опытным путем было вычислено, что веб-сервис 1С может за 1 раз ~25 МБ данных виде строки принять.
15 Котокот
 
06.09.15
23:00
(0) "Сейчас я принимаю строку, сохраняю ее в XML-файл и потом обрабатываю."
16 Котокот
 
06.09.15
23:01
+(15) Создавай ЧтениеXML, затем для него УстановитьСтроку() и читай себе его, не сохраняя предварительно в файл.