Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 08:30

Открыть файл из ХранилищаЗначения

Автор Алексей_1985_06, 02 мар 2022, 19:21

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Знатоков прошу помочь со следующим вопросом! Помещаю файл формата pdf во временное хранилище, как теперь открыть данный файл (показать пользователю)?

&НаКлиенте
Процедура ВыбратьФайл(Команда)

ПомещениеФайла = Новый ОписаниеОповещения ("ПомещениеФайла", ЭтотОбъект); 
ХодВыполнения = Новый ОписаниеОповещения ("ХодВыполнения", ЭтотОбъект); 
ПередНачаломПомещения = Новый ОписаниеОповещения ("ПередНачаломПомещения", ЭтотОбъект); 

ПараметрыВыбораФайла = Новый ПараметрыДиалогаПомещенияФайлов();
ПараметрыВыбораФайла.Фильтр = "Документ формата pdf |*.pdf";

Идентификатор = ЭтаФорма.УникальныйИдентификатор;

НачатьПомещениеФайлаНаСервер(ПомещениеФайла, ХодВыполнения, ПередНачаломПомещения, АдресКартинки, ПараметрыВыбораФайла, Идентификатор);

КонецПроцедуры

&НаКлиенте
Процедура ПередНачаломПомещения (ПомещаемыйФайл, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт 

ОчиститьСообщения();

РазмерФайла = ПомещаемыйФайл.Размер (); 

Если РазмерФайла > 10485760 Тогда
ОтказОтПомещенияФайла = Истина;
Сообщить("Файл размеров более 10 МБ");
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ХодВыполнения (ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт 

Состояние( "Идет загрузка файла " + ПомещаемыйФайл.Имя, Помещено);

КонецПроцедуры

&НаКлиенте
Процедура ПомещениеФайла (ОписаниеПомещенногоФайла,ДополнительныеПараметры) Экспорт 

Если ОписаниеПомещенногоФайла = Неопределено Тогда 
Сообщить("Вы отказались от выбора файла");
Возврат
КонецЕсли;

// В противном случае заполним реквизиты:
АдресФайла = ОписаниеПомещенногоФайла.Адрес;
Объект.ИмяФайла = ОписаниеПомещенногоФайла.СсылкаНаФайл.Файл.ИмяБезРасширения;
Объект.ТипФайла = ОписаниеПомещенногоФайла.СсылкаНаФайл.Расширение;
Модифицированность = Истина; 

КонецПроцедуры

 // Запись двоичных данных в БД (хранилище значений)
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   
Если  ЭтоАдресВременногоХранилища(АдресФайла) Тогда
ТекущийОбъект.ДанныеФайла = Новый ХранилищеЗначения (ПолучитьИзВременногоХранилища(АдресФайла));
КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Объект.Ссылка.Пустая() Тогда
Возврат
КонецЕсли;

АдресФайла = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеФайла");

КонецПроцедуры

В ХЗ - данные записаны, теперь нужно открыть данный файл и показать его пользователю. Кто знает как это реализовать, прошу помочь!


oooo800

Посмотрите в сторону НачатьПолучениеФайлаССервера.
В 8.3. это асинхронный метод.
Тут https://infostart.ru/1c/articles/1270130/ есть пример (не проверял, рабочий или нет).

Алексей_1985_06

oooo800, Спасибо, буду пробовать!

oooo800


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск