Имя: Пароль:
1C
1С v8
ПолучитьИзВременногоХранилища возвращает Неопределено
,
0 PsyTech
 
19.09.19
16:06
Всем привет!

После перехода на платформу 1С:Предприятие 8.3 (8.3.13.1513) - работа с временным хранилищем начала иногда давать сбои.
Проблема в следующем: ПоместитьВоВременноеХранилище(Неопределено) - получаем адрес и передаем его в фоновое задание, которое в цикле проверяет наличие ответа в асинхронном сервисе. В этом цикле есть ПолучитьИзВременногоХранилища(АдресВХранилище), которое иногда стало возвращать Неопределено. Это "иногда" не имеет ни какой закономерности. Как будто это хранилище очищается по какой-то причине, при этом номер соединения и сеанса не меняется.
В чем может быть причина очистки хранилища?
1 Вафель
 
19.09.19
16:07
а где ссылка на форму?
2 Kashey
 
19.09.19
16:10
(0) Второй параметр указывать нужно, который УИД при помещении
3 PsyTech
 
19.09.19
16:12
(1) формы нет, это рег задание
(2) А почему это до обновления 2 года работало? Вопрос в основном в этом.
4 Kashey
 
19.09.19
16:21
(3) "Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы"
5 PsyTech
 
19.09.19
16:23
(4) ничего под данный случай не подходит. Справку читал)
6 PsyTech
 
19.09.19
16:29
Кстати, на другом сервере на той же платформе ошибки нет.
7 GROOVY
 
19.09.19
16:30
(6) Значит дело не в платформе.
8 PsyTech
 
19.09.19
16:31
(6) не исключено. А что может так влиять?
9 PsyTech
 
20.09.19
11:40
Выяснил, что ошибка появляется только когда через рег задание процедура запускается. Под тем же пользователем по кнопке все норм.
10 palsergeich
 
20.09.19
11:42
(9) логично, у рег задания нет гуида формы
11 palsergeich
 
20.09.19
11:43
Там же легальный способ передать между сеансами данные только через гуид формы, остальное не гарантируется
12 Вафель
 
20.09.19
11:45
(0) те ты из фонового запускаешь другое фоновое?
13 palsergeich
 
20.09.19
11:46
Если нужно гонять информацию между сеансами юзай или хранилище настроек или РС самопальный.
14 palsergeich
 
20.09.19
11:49
(12) судя по всему да.
15 Вафель
 
20.09.19
11:54
у вас случайно не несколько рабочих серверов?
16 PsyTech
 
20.09.19
12:16
(12) да, из регламентного запускаю фоновое.
17 PsyTech
 
20.09.19
12:17
(13) сеанс 1
18 palsergeich
 
20.09.19
12:23
(16) тогда по доке это запланированное поведение, а не баг.
То что работает на другой машине - грязный хак и решение с негарантированным результатом.
19 PsyTech
 
20.09.19
12:27
(18) тогда почему оно работало до обновления платформы и сейчас работает, но в любой момент может сбойнуть даже на одном и том же наборе данных?
20 palsergeich
 
20.09.19
12:30
(19) потому что такое поведение возможно, но не гарантируется.
Единственный легальный способ передать информацию между сеансами по документации - это через гуид формы, все остальное не гарантируется.
Читайте мануал.
21 palsergeich
 
20.09.19
12:31
Так то я ТЗ могу создать на клиенте, но по доке этого нельзя, то есть в любом релизе, код который на это опирается может умереть.
22 PsyTech
 
20.09.19
14:00
"Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя."
23 palsergeich
 
20.09.19
14:41
(22) что не противоречит ничему
Фоновое задание это отдельный сеанс.
24 palsergeich
 
20.09.19
14:43
(23) а вообще там ещё есть менеджер сеаесовых данных, и на самом деле все что не имеет уид формы живёт не более 20 минут, на ИТС вроде даже было объяснение почему так.
25 palsergeich
 
20.09.19
14:48
Ты читаешь то там, только не то.
Смотри примечание.
Это то что гарантируется.
А все остальные сценарии - не гарантируются.
Ибо вмешивается ещё много других механизмов, для уид формы есть костыль, остальное - как повезет.
26 palsergeich
 
20.09.19
14:53
Прочитай очень ВНИМАТЕЛЬНО примечание метода ПоместитьВоВременное хранилище.
Если не дойдет с первой попытки, читай до тех пор по буквам, пока до тебя не дойдет смысл первого предложения в нем.
27 palsergeich
 
20.09.19
14:56
(26) И каждое фоновое задание - это отдельный сеанс.
Регламентные задание - запускает фоновое. Это сеанс раз.
Запуская в фоновом фоновое - ты создаёшь сеанс 2.
Если до тебя это не доходит, то увы, я дальше бессилен.
28 PsyTech
 
20.09.19
15:36
спасибо кэп