Можно ли получить из временного хранилища, зная УИД?

1. Aleksey_Abramov 21.03.23 08:39 Сейчас в теме
Помещаю данные во временное хранилище, но адрес не могу передать далее, слишком большой стек процедур. Так вот вопрос. Если я присвоил жёстко УИД, как потом по нему получить из временного хранилища? Если никак, зачем тогда нужен тут вообще УИД?
УникальныйИдентификатор = Новый УникальныйИдентификатор("000000-0000-0000-0000-123456781234");
Адрес = ПоместитьВоВременноеХранилище("МоиДанные", УникальныйИдентификатор);
// . . .
Данные = ПолучитьИзВременногоХранилища("Тут требует адрес, но у меня есть только УИД"); // ?????
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. SAShikutkin 5 21.03.23 09:12 Сейчас в теме
(1)Может тогда использовать хранилище общих настроек?
5. Aleksey_Abramov 21.03.23 09:40 Сейчас в теме
(3) Каких настроек? Мне туда дерево поместить надо
6. SAShikutkin 5 21.03.23 09:43 Сейчас в теме
(5)помещаешь дерево во временное хранилище, а адрес временного хранилища помещаешь в ХранилищеОбщихНастроек
10. Sashares 34 21.03.23 10:36 Сейчас в теме
(6)Поддержу. Самый простой вариант.
16. Dr.HiHi 3 22.03.23 09:26 Сейчас в теме
(6) вроде бы, не взлетит, если выполнение всей цепочки не будет в пределах одного метода... например задействованы обработчики оповещания
17. Sashares 34 22.03.23 09:33 Сейчас в теме
19. Dr.HiHi 3 22.03.23 10:02 Сейчас в теме
(17) точно... то зависит от того как помещено...
если помещено без указания уникального идентификатора, то живет в пределах открытой формы... после закрытие там пусто
если помещено с указанием уникального идентификатор, то живет в пределах сеанса
но нужно не забывать чистить общие настройки от одноразового использования
20. spacecraft 22.03.23 10:43 Сейчас в теме
(19) еще раз прочитайте в СП. Там подробно расписано. В (11) приведена необходимая выдержка из СП.
7. user1863362 21.03.23 09:53 Сейчас в теме
(1) Может быть тебе уже стоит курсы какие-нибудь пройти, чтобы вслепую не тыкаться?
Судя по твоему набору тем, у тебя очень слабые знания - обучать тебя на общественных началах никто не будет.
13. Aleksey_Abramov 21.03.23 12:23 Сейчас в теме
(7) Где-то слабые, но это не мешает решать задачи и показывать результат😉
15. user1863362 21.03.23 16:09 Сейчас в теме
(13)
не мешает решать задачи
Хихи. Это вот, как раз, заметно..
8. SlavaKron 21.03.23 09:54 Сейчас в теме
(1)
как потом по нему получить из временного хранилища?
Без адреса в хранилище никак.
зачем тогда нужен тут вообще УИД
По сути определяет способ удаления данных из временного хранилища.
Vlad_M_75; Aleksey_Abramov; +2 Ответить
11. spacecraft 21.03.23 10:46 Сейчас в теме
(1)
Если никак, зачем тогда нужен тут вообще УИД?

А СП не достаточно?
<Адрес> (необязательный)
Тип: УникальныйИдентификатор, Строка.
Уникальный идентификатор формы, во временное хранилище которой надо поместить данные и вернуть новый адрес. Или адрес во временном хранилище, по которому надо поместить данные. Адрес должен быть получен ранее с помощью данного метода.
В случае, если передается УникальныйИдентификатор формы или адрес в хранилище, то значение будет автоматически удалено после закрытия этой формы.
Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя.
Если передан адрес уже удаленного значения, будет сгенерировано исключение.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
12. gybson 21.03.23 11:50 Сейчас в теме
(1)Лучше пробросить параметр через стек, иначе велика вероятность потом в морду получить от благодарных коллег.
14. Aleksey_Abramov 21.03.23 12:26 Сейчас в теме
2. Dr.HiHi 3 21.03.23 09:11 Сейчас в теме
(1) это в приделах одной процедуры??
4. Aleksey_Abramov 21.03.23 09:40 Сейчас в теме
18. Dr.HiHi 3 22.03.23 09:39 Сейчас в теме
(4) временное хранилище очищается, по завершеню процедуры, где он объявлен или по закрытию форму, если ключем является ключ формы
как варианты
- передавайте дерево через параметры
- помещать дерево во временное хранилище, а потом чистить его, чтобы не сохзавать мусорку
- если нужно значение в пределах получаса (вроде бы) и одного сеанса... создать общий модуль с повторным использованием на время сеанса, там создать функцию с каким-то параметрам и на возврат возвращать новую структуру / соответствие... для помещения значения: вызываете функцию с ключем, добавляете в структуру/соответствие свое значение... для получение значения: вызываете функцию с ключем и там будет ваше значение... но это все в теории))))
9. SlavaKron 21.03.23 10:13 Сейчас в теме
Как вариант, записать дерево во временный файл с фиксированным именем:
// запись
ЗначениеВФайл(КаталогВременныхФайлов() + "temp.dat", Дерево);

//чтение
Дерево = ЗначениеИзФайла(КаталогВременныхФайлов() + "temp.dat");
Ну и папку можно создать по номеру сеанса чтобы не пересекаться с другими сеансами.
21. Aleksey_Abramov 31.03.23 15:07 Сейчас в теме
(9) Ваш способ рабочий, годный, и сначала по нему черновик набросал. Но мне не нравится такой стиль, через файлы. Оставлю это тут, может кому-то пригодится. Через БСП коллеги подсказали так:
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ);
Данные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключ);
Оставьте свое сообщение
Вакансии
Аналитик
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Разработчик 1С:ERP WE
Москва
зарплата от 250 000 руб.
Полный день

Аналитик 1С:ЗУП
Москва
зарплата от 150 000 руб.
Полный день

Ведущий разработчик 1С
Москва
зарплата от 200 000 руб.
Полный день