Имя: Пароль:
1C
1С v8
v8: Открытие файла из хранилища
0 FuriKuri
 
14.06.13
11:57
Существует справочник где хранятся файлы. Через управляемую форму добавляю туда элемент:

&НаКлиенте
Процедура ДобавитьФайл(Команда)
   
   Перем НовыйФайл;
   
   АдресВХранилище="";
   ВыбранноеИмяФайла="";
   Если ПоместитьФайл(АдресВХранилище, ,ВыбранноеИмяФайла, ,УникальныйИдентификатор) тогда
       Файл=Новый файл(ВыбранноеИмяФайла);
       ИмяНовогоФайла=Файл.Имя;
       СсылкаНаФайл=АдресВХранилище;
       Модифицированность=Истина;
   КонецЕсли;
   
   
   НовыйФайл = Новый Структура("ИмяФайла, Хранилище");
   НовыйФайл.ИмяФайла = ИмяНовогоФайла;
   НовыйФайл.Хранилище = СсылкаНаФайл;    
   
КонецПроцедуры

&НаСервере
Функция СоздатьНовыйЭлемент(СтруктураСправочника)

       Перем НовыйФайл,СпрПользователи;

      СпрХранилище = Справочники.ХранилищеДополнительнойИнформации;
       НовыйФайл = СпрХранилище.СоздатьЭлемент();
       НовыйФайл.ВидДанных = перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
       НовыйФайл.ИмяФайла = СтруктураСправочника.ИмяФайла;
       НовыйФайл.Объект = ЗначениеПараметра;
       НовыйФайл.Хранилище = СтруктураСправочника.Хранилище;
       НовыйФайл.Наименование = СтруктураСправочника.ИмяФайла;

       Попытка
               НовыйФайл.Записать();
               Возврат 1;
       Исключение
               Возврат 0;
       КонецПопытки;

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗначениеПараметра = Параметры.СсылкаНаДок;
КонецПроцедуры


Все хорошо добавляет. Но вот потом при  попытке открыть его



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

КонецПроцедуры


Ругается что "Неправильный путь к файлу 'e1c:\\filev/... и т.д "

Подскажите где косяк..
1 FuriKuri
 
14.06.13
12:12
А все отбой :) Сам понял где затупил) Новое хранилище не создал :)
2 FuriKuri
 
14.06.13
12:46
Хотя нет, всеравно при создании хранилища

НовыйФайл.Хранилище = Новый ХранилищеЗначения(СтруктураСправочника.Хранилище);

файл потом криво открывается...
2 + 2 = 3.9999999999999999999999999999999...