Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как открыть документ ворд, сохраненный в базе в виде хранилища значений

Как открыть документ ворд, сохраненный в базе в виде хранилища значений
Я
   TrudnyiRebenok
 
28.05.19 - 08:37
В документе есть табличная часть. В неё записываются два реквизита: путь к файлу и сам файл (ХЗ).
Не найду вариантов, как открыть файл по расширению файла, методом ЗапускПриложения.
Реквизит выбираю по навигационной ссылке, а дальше - засада...

Если Элементы.Доки.ТекущиеДанные <> Неопределено Тогда
        
        ТекСтр = Объект.Доки.Индекс(Элементы.Доки.ТекущиеДанные);
        
        ТекДок = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Доки.ДокХранилище", ТекСтр);
        
        НашФайл = Новый Файл(ТекДок);
        
        Попытка
            
            ЗапускПриложения(НашФайл);
            
        Исключение
                        
            Сообщить(ОписаниеОшибки());
            
        КонецПопытки;
        
    КонецЕсли;

Ошибка преобразования данных XDTO

Расширение    ".ДокХранилище"    Строка - возможно в этом причина.
Я не знаю как сделать из навигационной ссылки файл.
 
 
   Fish
 
1 - 28.05.19 - 08:40
Кнопочку "Я" нажимал?
   serkorvin1
 
2 - 28.05.19 - 13:53
(0)Из хранилища данные нужно  сначала получить
РеквизитХранилище.Получить()
   TrudnyiRebenok
 
3 - 29.05.19 - 04:28
(0)Из хранилища данные нужно  сначала получить 
РеквизитХранилище.Получить()

Это как раз я знаю. Только как получить данные из хранилища, которые можно получить только по навигационной ссылке из реквизита справочника или документа?

Вот я получаю НавСсылку:
ТекДок = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Доки.ДокХранилище", ТекСтр);

Результат:
ТекДок    "e1cib/data/Документ.Задача.Доки.ДокХранилище?ref=9b8fe0d55e01582111e97df33eb2c389&index=0"    Строка

Естественно получить из хранилища тут никак.

А обратиться непосредственно к хранилищу в реквизите нет возможности... или я чего-то недопонял?
   Chameleon1980
 
4 - 29.05.19 - 05:19
в чем проблема не знаю, но увидел ошибку 100%

что это?
   НашФайл = Новый Файл(ТекДок);
        
        Попытка
            
            ЗапускПриложения(НашФайл); 

что скармливается ЗапускПриложения? Тип Файл?
   TrudnyiRebenok
 
5 - 29.05.19 - 05:27
что это?

Этого кода уже нет, там галиматья.
   TrudnyiRebenok
 
6 - 29.05.19 - 05:31
У меня есть ХЗ
В нем записан файл
Навигационную ссылку я могу получить, но с картинками это проходит, а вот с файлами Ворд или Эксель или ПДФ - нет.
Тут нужна не нав ссылка, а сам файл, ну бинарная запись что ли. Только как её получить?
Если перейти на сервер, то можно получить ХЗ

        ТекОбъект = Ссыль.ПолучитьОбъект();
    
    ТекСтрока = ТекОбъект.Доки.Получить(Инд);
    
    ТекХЗ = ТекСтрока.ДокХранилище;
    
    ДанХЗ = ТекХЗ.Получить();


Но ДанХЗ - неопределено, и на этом всё...
   TrudnyiRebenok
 
7 - 29.05.19 - 08:23
Нашёл причину.
Хранилище значения записывать надо сразу, иначе оно теряется.
   Сияющий в темноте
 
8 - 29.05.19 - 08:38
из хранилища достать в двоичные данные
передать на клиента вместе с именем файла
вырезать из имени путь,то есть оставить все после последнего слеша
получить временную директорию
добавить к временной директории имя файла
записать файл по указанному имени
в команду ЗапуститьПриложение передать полный путь к файлу,если очень уверены,что это word,то перед именем указать запуск самого word,через путь к Program Files,но это нужно получать директории и искать установленный офис.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.