Вход | Регистрация
 

Помещение\Извлечение данных из хранилища значения

Помещение\Извлечение данных из хранилища значения
Я
   NIGHTHUNTER
 
05.11.20 - 04:30
Разбирал пример по помещению, извлечению данных в хранилище значения. В разбираемом примере было 2 способа помещения данных в реквизит типа ХранилищеЗначения .
Сработал второй способ. На помещения работаю оба. но потом при помещении данных первым способом, нет возможности их извлечь. В чем не удача первого способа???

1. Способ - ЗаписатьФайлВрХр
2. Способ - ЗаписатьФайлДвД

3. Извлечение из хранилища значения ПолучитьДанные()


&НаКлиенте
Процедура ЗагрузитьWordМакет(Команда)
    ПолноеИмяФайла = "";
    ПутьФайла      = "";
    Если ПоместитьФайл(ПутьФайла, , ПолноеИмяФайла, Истина) = Истина Тогда
        // Временное хранилище
        //АдресВоВременномХранилище = ПутьФайла;
        //ЗаписатьФайлВрХр(АдресВоВременномХранилище, ПолучитьИмяФайла(ПолноеИмяФайла));
        //
        // Двоичные данные
        Данные = Новый ДвоичныеДанные(ПолноеИмяФайла);
        ЗаписатьФайлДвД(ПолучитьИмяФайла(ПолноеИмяФайла), Данные);
        //
    КонецЕсли;
КонецПроцедуры
//
&НаСервере
Процедура ЗаписатьФайлВрХр(АдресВоВременномХранилище, ИмяФайла)
    НовыйФайл               = Справочники.ФайлыWord.СоздатьЭлемент();
    НовыйФайл.Файл          = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресВоВременномХранилище));
    НовыйФайл.Наименование  = ИмяФайла;
    НовыйФайл.ИмяФайла      = ИмяФайла;
    НовыйФайл.ВладелецФайла = Объект.Ссылка;
    НовыйФайл.Записать();
    //
    Объект.ФайлWordВ1с = НовыйФайл.Ссылка;
КонецПроцедуры
//
&НаСервере
Процедура ЗаписатьФайлДвД(ИмяФайла, Данные)
    НовыйФайл               = Справочники.ФайлыWord.СоздатьЭлемент();
    НовыйФайл.Файл          = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных());
    НовыйФайл.Наименование  = ИмяФайла;
    НовыйФайл.ИмяФайла      = ИмяФайла;
    НовыйФайл.ВладелецФайла = Объект.Ссылка;
    НовыйФайл.Записать();
    //
    Объект.ФайлWordВ1с = НовыйФайл.Ссылка;
КонецПроцедуры
//
&НаКлиенте
Процедура ВыгрузитьМакетWord(Команда)
    Диалог                    = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок          = "Выберите папку для сохранения";
    Диалог.МножественныйВыбор = Ложь;
    Если Диалог.Выбрать() Тогда
        ПолучитьДанные(Диалог.Каталог);
    КонецЕсли;
КонецПроцедуры
//
&НаСервере
Процедура ПолучитьДанные(Каталог)
    Если Прав(Каталог, 1) = "\" Тогда
        ИмяФайла = Каталог + Объект.ИмяФайла;
    Иначе
        ИмяФайла = Каталог + "\" + Объект.ФайлWordВ1с.ИмяФайла;
    КонецЕсли;
    Знч = Объект.ФайлWordВ1с.Файл.Получить();
    Знч.Записать(ИмяФайла);
КонецПроцедуры
//
   Chameleon1980
 
1 - 05.11.20 - 06:31
не вчитывался, но зачем файл для хз? хз это тип значения. вот и смотри его методы
   NIGHTHUNTER
 
2 - 05.11.20 - 11:34
(1) Для загрузки файла в 1с, в хранилище значения.
   Kassern
 
3 - 05.11.20 - 12:27
(0) Если бы запихали во временное хранилище Двоичные данные, то все бы отработало. А вообще не мешало бы почитать следующее https://its.1c.ru/db/metod8dev#content:2597:hdoc
   NIGHTHUNTER
 
4 - 05.11.20 - 12:39
(3) Так и было сделано.
В примере (0) было описано что метод ЗаписатьФайлВрХр . Не всегда работает.
Вот я и пытался узнать, когда он работает а когда нет.
Если он не работает, то зачем его вообще приводить.
Так как сам не опытный в помещении, извлечении данных из хранилища значения.
   H A D G E H O G s
 
5 - 05.11.20 - 12:45
"Так как сам не опытный в помещении, извлечении данных из хранилища значения."
Да ладно, вы скромничаете.
У вас стаж работы даже с восьмеркой уже под 10 лет, а общего стажа в ИТ - 16 лет, побольше многих здесь будет. Да и такая стопка фирм, что огого. Вон, даже в Gigabyte работали.
https://docsarchive.net/691989/
   H A D G E H O G s
 
6 - 05.11.20 - 12:47
Я конечно могу заблуждаться эту ссылку мне Боги интернета нашептали, поэтому все туманно и неточно.
   Kassern
 
7 - 05.11.20 - 14:18
(4) Все зависит от того, что вы туда пытаетесь запихать. Почитайте Особенности использования сериализации https://its.1c.ru/db/metod8dev/content/2612/hdoc

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