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