Имя: Пароль:
1C
1С v8
Работа с временным хранилищем
, ,
0 Alexander AVN
 
23.06.22
11:29
Всем доброго дня!
Есть такая отличная вещь, как временное хранилище, и есть команда ПоместитьВоВременноеХранилище(Данные, Адрес)  
Вот сейчас встал вопрос - можно ли задать "Адрес" вручную (в виде строки), чтобы потом его использовать при извлечении из хранилища, когда потребуется ?
1 Fish
 
23.06.22
11:32
А что СП говорит по этому поводу?
2 Alexander AVN
 
23.06.22
11:42
СП говорит, что Адрес получается в виде Уникального идентификатора. Хорошо, но что дальше?
Как мне вытащить данные из временного хранилища, если Адрес не известен ?
3 Гипервизор
 
23.06.22
11:49
(2) А почему неизвестен? Вы хотите поместить что-то во временное хранилище, завершить сеанс, начать новый и получить из хранилища обратно?
4 Мультук
 
гуру
23.06.22
11:49
(2)

Возвращаемое значение:
Тип: Строка.
Адрес во временном хранилище.

пДанные = ПолучитьВажныеДанные;
стрАдрес = ПоместитьВоВременноеХранилище(пДанные);

//стрАдрес сохраняем например в реквизит формы

//потом

пСохраненныеДанные = ПолучитьИзВременногоХранилища(стрАдрес);



Что не так то ?
5 Alexander AVN
 
23.06.22
11:58
Все в одном сеансе:
1. Из модуля формы документа хочу поместить значение переменной во временное хранилище
2. В общем модуле получить значение переменной из хранилища, но адрес-то как получить ?
6 rozer76
 
23.06.22
12:00
(5) ну заведи еще один параметр сеанса и пихай туда стрАдрес из (4)
7 Vlaloplo
 
23.06.22
12:00
(5) так передавайте адрес в общий модуль и там получайте
8 banco
 
23.06.22
12:02
(0) ПоместитьВоВременноеХранилище(Данные, "Твой постоянный адрес")
9 Мультук
 
гуру
23.06.22
12:04
(8)

Ну вот, а как получить не написал. Как жить теперь ?
10 Alexander AVN
 
23.06.22
13:32
(6)
Этот вариант рабочий, проверил, спасибо. Но только при таком подходе и временное хранилище не нужно, я сразу могу передать значение в параметр сеанса)))
11 rozer76
 
23.06.22
13:36
(10) на здоровье ))
12 timurhv
 
23.06.22
13:44
Вредные советы пошли
13 Alexander AVN
 
23.06.22
13:59
И все-таки, в моем случае использовать ВХ не получится ?
14 timurhv
 
23.06.22
14:05
&НаКлиенте
АдресХранилища = ПоместитьВоВременноеХранилище(НужноеЗначение);
ОбщийМодульНазвание.ВыполнитьМетод(АдресХранилища);

Процедура ВыполнитьМетод(АдресХранилища)
  Данные - ПолучитьИЗВременногоХранилища(АдресХранилища);
  УдалитьИзВременногоХранилища(АдресХранилища);
КонецПроцедуры;
15 Фантазер
 
23.06.22
14:08
(14) А если в разных сеансах? как и где сохранить АдресХранилища?
16 arsik
 
гуру
23.06.22
14:11
(15)
Примечание:
Временное хранилище, сформированное в одном сеансе, недоступно из другого сеанса.
Исключением является возможность передачи данных из фонового задания в сеанс, инициировавший фоновое задание, с помощью временного хранилища. Для такой передачи следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание.
Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания.
Данные, помещенные в фоновом сеансе в хранилище по сформированному в родительском сеансе адресу, сразу после помещения становятся недоступными в фоновом сеансе.
17 Alexander AVN
 
23.06.22
15:23
(14)
Что-то не совсем понятно, как получить адрес в общем модуле ?
18 timurhv
 
23.06.22
15:44
(17) передайте в качестве параметра
19 ДедМорроз
 
23.06.22
22:23
Временное хранилище нужно,когда нужно какие-то данные сохранить на сервере между серверными вызовами - то есть с момента окончания одного серверного вызова и до другого.
Во всех остальных случаях смысла во временном хранилище нету.
20 timurhv
 
23.06.22
22:55
(19) передача файла с клиента на сервер?