94 lines
5.2 KiB
Plaintext
94 lines
5.2 KiB
Plaintext
|
||
&НаКлиенте
|
||
Асинх Процедура Конвертировать(Команда)
|
||
Диалог = Новый ПараметрыДиалогаПомещенияФайлов;
|
||
Диалог.Заголовок = "Выберите документ";
|
||
Диалог.МножественныйВыбор = Ложь;
|
||
Диалог.Фильтр = "Документы (*.doc,*.docx,*.rtf)|*.doc;*.docx;*.rtf|Все файлы|*.*";
|
||
|
||
Прогресс = 0;
|
||
Элементы.ГруппаПрогресс.Видимость = Истина;
|
||
Элементы.Прогресс.Видимость = Истина;
|
||
Состояние = "Передача файла";
|
||
Оповещение_ОХодеВыполнения = Новый ОписаниеОповещения("ПомещениеФайла_ОповещенияОХодеВыполнения", ЭтаФорма, Неопределено);
|
||
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(Оповещение_ОХодеВыполнения,,,Диалог, ЭтаФорма.УникальныйИдентификатор);
|
||
|
||
Элементы.Прогресс.Видимость = Ложь;
|
||
Прогресс = 0;
|
||
|
||
Если Неопределено = ОписаниеФайла Тогда
|
||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
Состояние = "Конвертация";
|
||
ОбновитьОтображениеДанных(Элементы.Состояние);
|
||
КонвертироватьНаСервере(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение);
|
||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||
Элементы.ГруппаРезультат.Видимость = Истина;
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПомещениеФайла_ОповещенияОХодеВыполнения(ПомещаемыйФайл, Помещено, ОтказОтПомещенияФайла, ДополнительныеПараметры) Экспорт
|
||
Прогресс = Помещено;
|
||
КонецПроцедуры
|
||
|
||
&НаКлиентеНаСервереБезКонтекста
|
||
Процедура ПопыткаУдалитьФайлы(Файлы)
|
||
Если Неопределено = Файлы Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
Попытка
|
||
УдалитьФайлы(Файлы);
|
||
Исключение
|
||
КонецПопытки;
|
||
|
||
Файлы = Неопределено;
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура КонвертироватьНаСервере(Знач Адрес, Знач Расширение)
|
||
Обработка = РеквизитФормыВЗначение("Объект");
|
||
|
||
РезультатКонвертации = Неопределено;
|
||
|
||
ВремФайл = ПолучитьИмяВременногоФайла(Расширение);
|
||
Данные = ПолучитьИзВременногоХранилища(Адрес);
|
||
Данные.Записать(ВремФайл);
|
||
Данные = Неопределено;
|
||
ИмяФайла = ВремФайл;
|
||
|
||
Попытка
|
||
РезультатКонвертации = Обработка.ВывестиДокументВордВМоксель(ИмяФайла);
|
||
Исключение
|
||
Ошибка = ОписаниеОшибки();
|
||
Причина = ИнформацияОбОшибке();
|
||
|
||
ПопыткаУдалитьФайлы(ВремФайл);
|
||
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
||
УдалитьИзВременногоХранилища(Адрес);
|
||
Адрес = Неопределено;
|
||
КонецЕсли;
|
||
|
||
ВызватьИсключение ("Ошибка конвертации в mxl",КатегорияОшибки.ОшибкаВнешнегоИсточникаДанных,"500",Ошибка,Причина);
|
||
КонецПопытки;
|
||
|
||
ПопыткаУдалитьФайлы(ВремФайл);
|
||
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
|
||
УдалитьИзВременногоХранилища(Адрес);
|
||
Адрес = Неопределено;
|
||
КонецЕсли;
|
||
|
||
Если Не Неопределено = РезультатКонвертации Тогда
|
||
ДокументРезультат = РезультатКонвертации;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||
Элементы.ГруппаПрогресс.Видимость = Ложь;
|
||
Элементы.ГруппаРезультат.Видимость = Ложь;
|
||
КонецПроцедуры
|