|
Как передать файл из 1С через http-сервис? | ☑ | ||
|---|---|---|---|---|
|
0
Prog111
13.06.19
✎
09:44
|
С http-сервисами знаком слабо, возник такой вопрос:
Имеется http-сервис. В нём есть URL-шаблон. В шаблоне есть метод с типом GET с обработчиком. При обращении с сайта к 1С в модуле происходит формирование информации (в текстовом виде), которая преобразуется в json и отправляется в виде ответа на сайт обратно. Вот конечная часть процедуры: ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); ЗаписатьJSON(ЗаписьJSON, МассивСтрок); СтрокаДляОтвета = ЗаписьJSON.Закрыть(); Ответ = СформироватьHTTPОтвет(200,СтрокаДляОтвета); Возврат Ответ; КонецФункции А вот как в качестве ответа в дополнении к JSON передать заранее сформированный средствами 1С файл (например, *.pdf)? Поискал в интернете - как-то вообще не нашёл информации, везде про загрузку на сайт примеры приведены, но не про отдачу файла в ответе. |
|||
|
1
Tonik992
13.06.19
✎
09:47
|
Самый простой способ - в base64 помещайте двоичные данные.
https://html5.by/blog/wtf-base64/ |
|||
|
2
Pro1001C
13.06.19
✎
09:47
|
||||
|
3
Prog111
13.06.19
✎
09:52
|
(2) Вот в этом случае не могу понять: в примерах везде такая конструкция:
Соединение = Новый HTTPСоединение("http://www.mysite.com"); Но ведь у http-сервиса другой поток: Сайт обращается к веб-серверу 1С, с определенным параметром. И по этому параметру 1С возвращает ответ (json текстовый). Как тогда в ответе присобачить "Новый HTTPСоединение"? |
|||
|
4
dka80
13.06.19
✎
10:07
|
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Disposition", СтрШаблон("attachment; filename=""%1""", ИмяФайла)); Ответ.Заголовки.Вставить("Content-Type", "application/octet-stream"); Ответ.УстановитьТелоИзДвоичныхДанных(РаботаСФайламиВызовСервера.ПолучитьДвоичныеДанныеФайла(ФайлСсылка)); |
|||
|
5
dka80
13.06.19
✎
10:11
|
+4
Возврат Ответ; |
|||
|
6
Юрий Лазаренко
13.06.19
✎
10:27
|
(0) Если в дополнение к JSON, то как сказано в (1) файл переводить в двоичные данные, к МассивСтрок перед конвертацией его в JSON добавить эти двоичные данные и потом передать в ответе.
|
| Форум | Правила | Описание | Секции | Поиск |