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