|
Как открыть документ ворд, сохраненный в базе в виде хранилища значений | ☑ | ||
---|---|---|---|---|
0
TrudnyiRebenok
28.05.19
✎
08:37
|
В документе есть табличная часть. В неё записываются два реквизита: путь к файлу и сам файл (ХЗ).
Не найду вариантов, как открыть файл по расширению файла, методом ЗапускПриложения. Реквизит выбираю по навигационной ссылке, а дальше - засада... Если Элементы.Доки.ТекущиеДанные <> Неопределено Тогда ТекСтр = Объект.Доки.Индекс(Элементы.Доки.ТекущиеДанные); ТекДок = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Доки.ДокХранилище", ТекСтр); НашФайл = Новый Файл(ТекДок); Попытка ЗапускПриложения(НашФайл); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; Ошибка преобразования данных XDTO Расширение ".ДокХранилище" Строка - возможно в этом причина. Я не знаю как сделать из навигационной ссылки файл. |
|||
1
Fish
28.05.19
✎
08:40
|
Кнопочку "Я" нажимал?
|
|||
2
serkorvin1
28.05.19
✎
13:53
|
(0)Из хранилища данные нужно сначала получить
РеквизитХранилище.Получить() |
|||
3
TrudnyiRebenok
29.05.19
✎
04:28
|
(0)Из хранилища данные нужно сначала получить
РеквизитХранилище.Получить() Это как раз я знаю. Только как получить данные из хранилища, которые можно получить только по навигационной ссылке из реквизита справочника или документа? Вот я получаю НавСсылку: ТекДок = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Доки.ДокХранилище", ТекСтр); Результат: ТекДок "e1cib/data/Документ.Задача.Доки.ДокХранилище?ref=9b8fe0d55e01582111e97df33eb2c389&index=0" Строка Естественно получить из хранилища тут никак. А обратиться непосредственно к хранилищу в реквизите нет возможности... или я чего-то недопонял? |
|||
4
Chameleon1980
29.05.19
✎
05:19
|
в чем проблема не знаю, но увидел ошибку 100%
что это? НашФайл = Новый Файл(ТекДок); Попытка ЗапускПриложения(НашФайл); что скармливается ЗапускПриложения? Тип Файл? |
|||
5
TrudnyiRebenok
29.05.19
✎
05:27
|
что это?
Этого кода уже нет, там галиматья. |
|||
6
TrudnyiRebenok
29.05.19
✎
05:31
|
У меня есть ХЗ
В нем записан файл Навигационную ссылку я могу получить, но с картинками это проходит, а вот с файлами Ворд или Эксель или ПДФ - нет. Тут нужна не нав ссылка, а сам файл, ну бинарная запись что ли. Только как её получить? Если перейти на сервер, то можно получить ХЗ ТекОбъект = Ссыль.ПолучитьОбъект(); ТекСтрока = ТекОбъект.Доки.Получить(Инд); ТекХЗ = ТекСтрока.ДокХранилище; ДанХЗ = ТекХЗ.Получить(); Но ДанХЗ - неопределено, и на этом всё... |
|||
7
TrudnyiRebenok
29.05.19
✎
08:23
|
Нашёл причину.
Хранилище значения записывать надо сразу, иначе оно теряется. |
|||
8
Сияющий в темноте
29.05.19
✎
08:38
|
из хранилища достать в двоичные данные
передать на клиента вместе с именем файла вырезать из имени путь,то есть оставить все после последнего слеша получить временную директорию добавить к временной директории имя файла записать файл по указанному имени в команду ЗапуститьПриложение передать полный путь к файлу,если очень уверены,что это word,то перед именем указать запуск самого word,через путь к Program Files,но это нужно получать директории и искать установленный офис. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |