Имя: Пароль:
1C
1С v8
Открытие фалйа из хранилища 1С 8.3
0 KazSever
 
10.05.17
13:18
Добрый день, подскажите как можно открыть файл (картинка, pdf ...) из хранилища значения? Имеется ввиду не вывод в реквизит с видом "Поле картинки", а чтоб именно открылся файл. Какие могут быть варианты?!
1 Heckfy
 
10.05.17
13:24
2 Ц_У
 
10.05.17
13:32
БСП
https://its.1c.ru/db/bspdoc#content:5929:hdoc
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ДляРедактирования)
3 KazSever
 
10.05.17
14:42
(2) что означает БСП?
4 Heckfy
 
10.05.17
14:45
(3) Издеваешься?!?! В яндексе забанили: https://yandex.ru/search/?lr=213&msid=1494416676.41496.22899.27837&text=1С%20БСП
5 KazSever
 
10.05.17
15:03
(4) ты если не в курсе темы, то не советуй
6 KazSever
 
10.05.17
16:49
Открытие фала из хранилища 1С 8.3
В общем пришлось добавить реквизит "ИмяФайла", чтоб потом легче открывать было.
"Файл" - элемент формы с видом "Поле картинки".
Хранилище - реквизит с типом "Хранилище значения".
Может и не совсем верно получилось, но получилось, если у кого будут предложения и замечания - с удовольствием выслушаю.
Загрузка:
&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
    
    Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект);
    
    НачатьПомещениеФайла(Оповещение,,,Истина,УникальныйИдентификатор);
    
КонецПроцедуры

&НаСервере
Процедура ОбработатьВыборФайла(Результат,Адрес,ВыбранноеИмяФайла,ДополнительныеПараметры)
    
    Если Не Результат Тогда
        Возврат;
    Иначе
        МассивСтрок = СтрРазделить(ВыбранноеИмяФайла, "\",Ложь);
        ИмяФайла = МассивСтрок[МассивСтрок.Количество()-1];
        Файл = Адрес;          
        Объект.ИмяФайла = ИмяФайла;         
    КонецЕсли;
    
КонецПроцедуры

Сохранение:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    
    Если ЭтоАдресВременногоХранилища(Файл) тогда
        ТекущийОбъект.Хранилище = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Файл));
    КонецЕсли;
    
КонецПроцедуры

Открытие:
&НаКлиенте
Процедура ОткрытьФайл(Команда)
    
    Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Хранилище");
    ИмяФайла = "" + КаталогВременныхФайловСервер() + Объект.ИмяФайла;
    ПолучитьФайл(Адрес,ИмяФайла,Истина);    
    
КонецПроцедуры

&НаСервере
Функция КаталогВременныхФайловСервер()
    
    Возврат КаталогВременныхФайлов();
    
КонецФункции
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс