epf_Word2MXL/Word2MXL/Forms/Форма/Ext/Form/Module.bsl

94 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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