Консультация № 170603
20.07.2009, 10:59
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты!
Имеется таблица "Хранилище дополнительной информации", где хранятся разные файлы, к примеру *.doc - как можно открыть такие файлы не сохраняя их на компьютер пользователя с помощью офиса? Смотрел функцию "ЗапуститьПриложение", но там обращение идет непосредственно к файлам, размещенным на жестком диске, а здесь требуется открывать файлы, сохраненные в БД.

Обсуждение

Неизвестный
20.07.2009, 12:04
общий
это ответ
Здравствуйте, snouv.

Код:

ИмяФайла = обФайлИзХранилищаЗначений(элХранилища); //
MSWord = Новый COMОбъект("Word.Application");
MSWord.Documents.Open(ИмяФайла);
MSWord.Visible = Истина;
MSWord.Activate();

Функция обФайлИзХранилищаЗначений(Хранилище, ПолноеИмяФайла=Неопределено, Расширение=Неопределено) Экспорт

ХранимоеЗначение=Хранилище.Получить();
Если ХранимоеЗначение=Неопределено Тогда
ВызватьИсключение "В хранилище пустое значение!";
КонецЕсли;

Если ТипЗнч(ХранимоеЗначение)<>Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "В хранилище не хранится двоичный файл!";
Возврат Неопределено;
КонецЕсли;

Если ПолноеИмяФайла=Неопределено Тогда
ВремФайл = ПолучитьИмяВременногоФайла(Расширение);
Иначе
Ф=Новый Файл(ПолноеИмяФайла);
Если Ф.Существует() Тогда
УдалитьФайлы(ПолноеИмяФайла);
КонецЕсли;
ВремФайл = ПолноеИмяФайла;
КонецЕсли;


ХранимоеЗначение.Записать(ВремФайл);
Возврат ВремФайл;

КонецФункции




5
Спасибо! Очень помогло, только я немного упростил:<br><br>ИмяФайла = обФайлИзХранилищаЗначений(Хранилище,расширение);<br>ЗапуститьПриложение(ИмяФайла);<br><br>Функция обФайлИзХранилищаЗначений(Хранилище, Расширение=Неопределено) Экспорт<br> <br> ХранимоеЗначение=Хранилище.Получить();<br> ВремФайл = ПолучитьИмяВременногоФайла(Расширение);<br> ХранимоеЗначение.Записать(ВремФайл);<br> Возврат ВремФайл;<br> <br>КонецФункции<br>
Форма ответа