7 февр. 2021 г.

Сохранить файл через браузер

 Для сохранения файла в контексте "Управляемых форм" используя браузер используем ниже подход

&НаКлиенте
Процедура СохранитьВФайл(Команда)
      
    #Если ВебКлиент Тогда      
        // Попробуем подключить расширение работы с файлами
        РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами();
        Если НЕ РасширениеПодключено Тогда
            // Расширение не установлено, пробуем установить
            НачатьПодключениеРасширенияРаботыСФайлами(Новый ОписаниеОповещения("Подключение1",ЭтаФорма,));  
        КонецЕсли;
    #КонецЕсли   
    
    // Поместим табличный документ во временной хранилище как файл MS Excel
    АдресХранилища = ПоместитьТабличныйДокументВоВременноеХранилищеНаСервере(ТабДок, "xlsx", ТипФайлаТабличногоДокумента.XLSX);
    
    Если АдресХранилища = Неопределено Тогда
        ПоказатьПредупреждение( , НСтр("ru = 'Ошибка сохранения файла'; uk = 'Помилка збереження файлу'"));
        Возврат;
    КонецЕсли;
        
    Попытка
        // Сам момент сохранения
        ПолучитьФайл(АдресХранилища, ЗаголовокДляФайла+".xlsx", Истина);
    Исключение              
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "ru = 'Не удалось записать файл. Возможно, недостаточно места на диске, диск защищен от записи или не подключено расширение для работы с файлами.'; uk = 'Не вдалося записати файл. Можливо, недостатньо місця на диску, диск захищений від запису або не має з''єднання розширення для роботи з файлами.'";
        Сообщение.Сообщить();
    КонецПопытки;
    
КонецПроцедуры
&НаСервере
Функция ПоместитьТабличныйДокументВоВременноеХранилищеНаСервере(ТабличныйДокумент, Расширение, ТипФайла)
    
    АдресХранилища  = Неопределено;
    ИмяФайла        = ПолучитьИмяВременногоФайла(Расширение);
    
    Попытка
        ТабличныйДокумент.Записать(ИмяФайла, ТипФайла);
        АдресХранилища = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла));
    Исключение
        Сообщить(ОписаниеОшибки()); ВызватьИсключение;
    КонецПопытки;
    
    Возврат АдресХранилища;
    
КонецФункции
&НаКлиенте
Процедура Подключение1(Подключено,ДопПараметры)Экспорт 
    
    Если Не Подключено Тогда
        НачатьУстановкуРасширенияРаботыСФайлами();
    КонецЕсли;
    
КонецПроцедуры
&НаКлиенте
Процедура Установка2(ДопПараметры)Экспорт 
КонецПроцедуры

Комментариев нет:

Отправить комментарий

 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07