Имя: Пароль:
1C
 
Открытие файла из хранилища значений
🠗 (mehfk 15.12.2017 07:17)
0 falselight
 
15.12.17
06:50
Процедурой помещаю файл в хранилище значений.
Если я правильно это делаю, подскажите пожалуйста как его правильно
открыть сейчас? Можно пример кода?


//
Процедура РегистрСведенийСписокПередНачаломДобавления(Элемент, Отказ, Копирование)
    //
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    //
    Диалог.Заголовок                   = НСтр("ru = 'Выберите файл'");
    Диалог.ПолноеИмяФайла              = "";
    Диалог.МножественныйВыбор          = Ложь;
    Диалог.ПредварительныйПросмотр     = Ложь;
    Диалог.ПроверятьСуществованиеФайла = Истина;
    Диалог.Фильтр                      = "";
    Если Диалог.Выбрать() Тогда
        _Файл = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    //
    НаборЗаписей                                    = РегистрыСведений.ФайлыОбъектов.СоздатьНаборЗаписей();
    //
    НаборЗаписей.Отбор.ИмяОбъекта.Установить(Элемент.Значение.Отбор.ИмяОбъекта.Значение);
    НоваяЗапись                                     = НаборЗаписей.Добавить();
    НоваяЗапись.ИмяОбъекта                          = Элемент.Значение.Отбор.ИмяОбъекта.Значение;
    Запрос                                           = Новый Запрос;
    Запрос.Текст                                     = "
        |ВЫБРАТЬ
        |    ФайлыОбъектов.НомерФайла КАК НомерФайла
        |ИЗ
        |    РегистрСведений.ФайлыОбъектов КАК ФайлыОбъектов
        |
        |УПОРЯДОЧИТЬ ПО
        |    НомерФайла УБЫВ";
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Выборка.Следующий();
        ПоследнийНомер = Выборка.НомерФайла;
    Иначе
        ПоследнийНомер = 0;
    КонецЕсли;
    НоваяЗапись.НомерФайла            = ПоследнийНомер + 1;
    //
    //Файл                          = Новый Файл(_Файл);
    ХранилищеФайла                    = Новый ХранилищеЗначения(Новый ДвоичныеДанные(_Файл), Новый СжатиеДанных(9));    
    НоваяЗапись.Файл                 = ХранилищеФайла;
    НоваяЗапись.ИмяФайла           = ПолучитьИмяФайла(_Файл);
    НоваяЗапись.РасширениеФайла    = ПРАВ(_Файл,3);
    НоваяЗапись.ПредставлениеФайла = _Файл;
    НаборЗаписей.Записать();
    //
    Отказ = Истина;
    //
    Возврат;
КонецПроцедуры
//
1 1Сергей
 
15.12.17
07:00
я тебе в прошлой ветке отписал
2 falselight
 
15.12.17
07:20
(1) Да, спасибо! Я вас ещё не успел отблагодарить!
Но разве там про открытие из хранилища?
3 falselight
 
15.12.17
07:24
(1) понять охото, если в (0) норм помещение, как это открыть?
4 igorPetrov
 
15.12.17
07:33
(3) Не дадут тебе пример кода. Достал уже.
5 falselight
 
15.12.17
08:10
(4) Ты как сам то друг? (не скажу брат!)
6 igorPetrov
 
15.12.17
08:12
(5) Тьфу....тьфу...тьфу... такого брата, да и друга
7 1Сергей
 
15.12.17
08:22
(2) через двоичные данные сохраняешь из хранилище во временный файл, открываешь
8 falselight
 
15.12.17
08:24
(7) Да в принципе там все очевидно, гружусь просто.
(6) Друган не заносись, а то обратного пути не будет!
9 igorPetrov
 
15.12.17
08:28
(8) Я тебе не друган. Смешной такой )))
10 falselight
 
15.12.17
08:28
(9) Ты смейся лучше!!!
11 igorPetrov
 
15.12.17
08:32
(10) Вместо того, что бы хамить - книжки бы почитал, умник.
12 falselight
 
15.12.17
08:53
(11) Я не хамил тебе друг!
Для себя вообще считаю тут не место для негатива!
Извини что не так! Не принимай на себя (как мне говорил работодатель).
13 falselight
 
16.12.17
12:09
В процедуре делаю открытие файла.
Поделитесь напутствующей информацией кому не трудно.

Процедура РегистрСведенийСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;



Элемент.ТекущиеДанные - содержит все необходимые значения.

Элемент.ТекущиеДанные.ИмяОбъекта
Элемент.ТекущиеДанные.ИмяФайла
Элемент.ТекущиеДанные.НомерФайла
Элемент.ТекущиеДанные.ПредставлениеФайла (путь к файлу)
Элемент.ТекущиеДанные.РасширениеФайла
Элемент.ТекущиеДанные.Файл (хранилище значений)