Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

http сервисы отправка файлов

http сервисы отправка файлов
Я
   ilyaNikolaevich71
 
12.10.16 - 14:36
добрый день. платформа 8.3.8. Нужно реализовать отправку файлов в формате пдф из 1с, по обращению к моему сервису.

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

может ктото делал? подскажет?

 Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Length", МояКартинка.Размер());
Ответ.Заголовки.Вставить("Content-Disposition","form-data; name=""AttachedFile1""; filename=""1.pdf""");
 
 
   Amfiaray
 
1 - 12.10.16 - 14:40
Вот так работает:
HTTPОтвет = Новый HTTPСервисОтвет(200);
Таб = Новый ТабличныйДокумент;
ИмяФайла = ПолучитьИмяВременногоФайла(".pdf");
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
ДД = Новый ДвоичныеДанные(ИмяФайла);
ЗаписьXML  = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("invoice");
ЗаписьXML.ЗаписатьАтрибут("binary", Base64Строка(ДД));
ЗаписьXML.ЗаписатьКонецЭлемента();
СтрокаXML = ЗаписьXML.Закрыть();
HTTPОтвет.УстановитьТелоИзСтроки(СтрокаXML);
Возврат HTTPОтвет;
   ilyaNikolaevich71
 
2 - 12.10.16 - 14:47
Amfiaray - спасибо за ответ.

тоесть мне вернется строка хмл с кучей символов? я просто даже протестить не могу, я то ожидаю увидеть файлик на скачивание, как на обычных сайтах! или такой возможности нет?
   Amfiaray
 
3 - 12.10.16 - 14:52
Есть.
Там кажется вроде так надо:
HTTPОтвет = Новый HTTPСервисОтвет(200);
Таб = Новый ТабличныйДокумент;
ИмяФайла = ПолучитьИмяВременногоФайла(".pdf");
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
HTTPОтвет.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанные(ИмяФайла));
Возврат HTTPОтвет;
   Stepa86
 
4 - 12.10.16 - 14:57
я вот так xlsx отдаю

таблДок = _ВебСервисыВызовСервера.ПрайсЛистВТабличныйДокумент();
        имяФайла = ПолучитьИмяВременногоФайла( "xlsx" );
        
        таблДок.Записать( имяФайла, ТипФайлаТабличногоДокумента.XLSX );
        
        двДанные = Новый ДвоичныеДанные( имяФайла );
        
        УдалитьФайлы( имяФайла );
        
        Ответ = Новый HTTPСервисОтвет(200);
        Ответ.УстановитьТелоИзДвоичныхДанных( двДанные );
        
        // заставляем браузер показать окно сохранения файла

        Ответ.Заголовки.Вставить("Content-Type", "application/xlsx");
        Ответ.Заголовки.Вставить("Content-Disposition", "attachment; filename=" + КодироватьСтроку( "Price.xlsx", СпособКодированияСтроки.КодировкаURL));
   ilyaNikolaevich71
 
5 - 12.10.16 - 15:20
спасибо большое, очень много времени сэкономили.

тема закрыта

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует