Можно ли получить из временного хранилища, зная УИД?
Помещаю данные во временное хранилище, но адрес не могу передать далее, слишком большой стек процедур. Так вот вопрос. Если я присвоил жёстко УИД, как потом по нему получить из временного хранилища? Если никак, зачем тогда нужен тут вообще УИД?
УникальныйИдентификатор = Новый УникальныйИдентификатор("000000-0000-0000-0000-123456781234");
Адрес = ПоместитьВоВременноеХранилище("МоиДанные", УникальныйИдентификатор);
// . . .
Данные = ПолучитьИзВременногоХранилища("Тут требует адрес, но у меня есть только УИД"); // ?????
По теме из базы знаний
- HTTP Сервисы: Путь к своему сервису. Часть 4
- Настройка сервера взаимодействия программ 1С:Предприятие для удаленной работы и групповых обсуждений
- Как из 1С отдать миллионы строк в BI и успеть это сделать быстро
- Гибкий подход в управлении командой проекта автоматизации для крупных компаний
- База для управления базами. Монстр или Франкенштейн?
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(17) точно... то зависит от того как помещено...
если помещено без указания уникального идентификатора, то живет в пределах открытой формы... после закрытие там пусто
если помещено с указанием уникального идентификатор, то живет в пределах сеанса
но нужно не забывать чистить общие настройки от одноразового использования
если помещено без указания уникального идентификатора, то живет в пределах открытой формы... после закрытие там пусто
если помещено с указанием уникального идентификатор, то живет в пределах сеанса
но нужно не забывать чистить общие настройки от одноразового использования
(1)
А СП не достаточно?
Если никак, зачем тогда нужен тут вообще УИД?
А СП не достаточно?
<Адрес> (необязательный)
Тип: УникальныйИдентификатор, Строка.
Уникальный идентификатор формы, во временное хранилище которой надо поместить данные и вернуть новый адрес. Или адрес во временном хранилище, по которому надо поместить данные. Адрес должен быть получен ранее с помощью данного метода.
В случае, если передается УникальныйИдентификатор формы или адрес в хранилище, то значение будет автоматически удалено после закрытия этой формы.
Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя.
Если передан адрес уже удаленного значения, будет сгенерировано исключение.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
Тип: УникальныйИдентификатор, Строка.
Уникальный идентификатор формы, во временное хранилище которой надо поместить данные и вернуть новый адрес. Или адрес во временном хранилище, по которому надо поместить данные. Адрес должен быть получен ранее с помощью данного метода.
В случае, если передается УникальныйИдентификатор формы или адрес в хранилище, то значение будет автоматически удалено после закрытия этой формы.
Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя.
Если передан адрес уже удаленного значения, будет сгенерировано исключение.
Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
(4) временное хранилище очищается, по завершеню процедуры, где он объявлен или по закрытию форму, если ключем является ключ формы
как варианты
- передавайте дерево через параметры
- помещать дерево во временное хранилище, а потом чистить его, чтобы не сохзавать мусорку
- если нужно значение в пределах получаса (вроде бы) и одного сеанса... создать общий модуль с повторным использованием на время сеанса, там создать функцию с каким-то параметрам и на возврат возвращать новую структуру / соответствие... для помещения значения: вызываете функцию с ключем, добавляете в структуру/соответствие свое значение... для получение значения: вызываете функцию с ключем и там будет ваше значение... но это все в теории))))
как варианты
- передавайте дерево через параметры
- помещать дерево во временное хранилище, а потом чистить его, чтобы не сохзавать мусорку
- если нужно значение в пределах получаса (вроде бы) и одного сеанса... создать общий модуль с повторным использованием на время сеанса, там создать функцию с каким-то параметрам и на возврат возвращать новую структуру / соответствие... для помещения значения: вызываете функцию с ключем, добавляете в структуру/соответствие свое значение... для получение значения: вызываете функцию с ключем и там будет ваше значение... но это все в теории))))
Как вариант, записать дерево во временный файл с фиксированным именем: Ну и папку можно создать по номеру сеанса чтобы не пересекаться с другими сеансами.
// запись
ЗначениеВФайл(КаталогВременныхФайлов() + "temp.dat", Дерево);
//чтение
Дерево = ЗначениеИзФайла(КаталогВременныхФайлов() + "temp.dat");
(9) Ваш способ рабочий, годный, и сначала по нему черновик набросал. Но мне не нравится такой стиль, через файлы. Оставлю это тут, может кому-то пригодится. Через БСП коллеги подсказали так:
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ);
Данные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, Ключ);
Вакансии
Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день