Вход | Регистрация



8.3.12 Фоновое задание + Поместить во временное хранилище + ОФ

8.3.12 Фоновое задание + Поместить во временное хранилище + ОФ
Я
   Air777
 
16.08.18 - 16:55
До 8.3.10 хоть как то работало в обычных формах. В 8.3.12 окончательно сломали. Выходит штатного рабочего метода вернуть результат в обычных формах теперь нет вовсе. Опять тягать через Ж.. простите, через базу и сериализацию в строку наше всё (

Спасибо вам разработчики.
 
 
   polosov
 
1 - 16.08.18 - 17:00
"Повторное указание в качестве параметра Адрес метода ПоместитьВоВременноеХранилище() значения, для которого применялся метод УдалитьИзВременногоХранилища(), приведет к исключению.
В режиме совместимости с версией 8.3.11 поведение не изменилось."

Ты про это?
   PiotrLoginov
 
2 - 16.08.18 - 17:01
(0) Во-первых, ИМНИП, критика платформы здесь запрещена. Во-вторых, почему у меня все возвращает из ФЗ?
   PiotrLoginov
 
3 - 16.08.18 - 17:02
*ЕМНИП
   Air777
 
4 - 16.08.18 - 17:13
(1) в описании изменений к платформе нет этого но глядя в то что они ковырялись там очевидно да.

Я про

ПоместитьВоВременноеХранилище(<Данные>, <Адрес>) 
...
Сохраняет сериализуемое значение во временное хранилище.
...
Примечание:

Временное хранилище, сформированное в одном сеансе, недоступно из другого сеанса.
Исключением является возможность передачи данных из фонового задания в сеанс, инициировавший фоновое задание, с помощью временного хранилища. Для такой передачи следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание.
Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания.
Данные, помещенные в фоновом сеансе в хранилище по сформированному в родительском сеансе адресу, сразу после помещения становятся недоступными в фоновом сеансе.
   Air777
 
5 - 16.08.18 - 17:15
Изменение режима совместимости не решает проблему.
   Air777
 
6 - 16.08.18 - 17:16
Есть много сообщений на форуме на эту тему. Оно хоть и криво но работало. Многие комментаторы отмечали что кривизна - фича.
Теперь умерла даже фича
   Cyberhawk
 
7 - 16.08.18 - 17:16
Сообщить + ПолучитьСообщенияПользователя решает
   DTX 4th
 
8 - 16.08.18 - 17:20
(4) Тип это работает только в УФ?
   Air777
 
9 - 16.08.18 - 17:21
(7) мне нужно вернуть с сервера сгенерированные табличные документы. А там только текст. Варианты через Ж я знаю еще как минимум еще 2. Но я хотел штатный
   Air777
 
10 - 16.08.18 - 17:21
(8)Да и это расходится с описанием
 
 Рекламное место пустует
   Вафель
 
11 - 16.08.18 - 17:22
(10) зачем ты ОФ платформу обновляешь?
   Air777
 
12 - 16.08.18 - 17:24
(11) Ну не обновлять это вообще не вариант. Есть другие изменения в платформе которые интересны.
   Cyberhawk
 
13 - 16.08.18 - 17:25
(9) "там только текст" // Не знаю, где "там", но через строку можно все что хочешь передать
   Air777
 
14 - 16.08.18 - 17:27
(13) Я же не сказал что это не вариант. Да это вариант но он и  с той же грядки нештатных методов. Разрабы штатные то курочат а нештатные и подавна. Возьмут завтра введут лимит на длину строки и опять досвидос или еще чего.
   Air777
 
15 - 16.08.18 - 17:29
+ передавать строкой большой файл это затратно. Я замеры делал через временное хранилище существенно быстрее на больших данных так как реально только указатель в памяти передается. А тут текстовый поток безмерной длины
   Cyberhawk
 
16 - 16.08.18 - 17:29
Я так понял тебе не нужно что-то получать из ФЗ пока оно не завершено - тебе достаточно просто по его завершению получить результат, так?
   Air777
 
17 - 16.08.18 - 17:30
да
   Cyberhawk
 
18 - 16.08.18 - 17:31
Выполняй вызов ФЗ и получение его результата на сервере, а не на клиенте
   Air777
 
19 - 16.08.18 - 17:32
На клиент как я передам значение результата?
   Air777
 
20 - 16.08.18 - 17:32
Это ж ОФ
   Cyberhawk
 
21 - 16.08.18 - 17:33
Какие проблемы?
   Air777
 
22 - 16.08.18 - 17:34
(21)Разверни ответ я не понял
   Air777
 
23 - 16.08.18 - 17:37
Народ у кого то тут есть доступ к партнерскому форуму? Пожалуйста переадресуйте вопрос туда.
На мой взгляд это очевидный баг и несоответствия описанию
   Новиков
 
24 - 16.08.18 - 17:41
И что писать? Вот это? "8.3.12 Фоновое задание + Поместить во временное хранилище + ОФ"?
   Cyberhawk
 
25 - 16.08.18 - 17:41
(22) Опиши как передаешь в ФЗ адрес ВХ
   Air777
 
26 - 16.08.18 - 17:55
//Модуль формы

Перем Ключ;
Процедура Выполнить()
АдресРезультата=ПоместитьВоВременноеХранилище(Неопределено,Новый УникальныйИдентификатор);
Параметры=Новый Массив;
Параметры.Добавить(АдресРезультата);
Ключ=Новый УникальныйИдентификатор;
ФоновыеЗадания.Выполнить("ПолныеПрава.Сформировать",Параметры, Ключ, "ФЗ");
ПодключитьОбработчикОжидания("ПроверкаГотовности",1);
КонецПроцедуры

//

Процедура ПроверкаГотовности() Экспорт
ФильтрОтбора = Новый Структура("Наименование,Ключ,Состояние", "ФЗ", Ключ, СостояниеФоновогоЗадания.Завершено);
    МассивЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ФильтрОтбора);
    Если МассивЗаданий.Количество() > 0 Тогда
        Значение=ПолучитьИзВременногоХранилища(АдресРезультата);
        Сообщить(Значение);
…
КонецЕсли;
КонецПроцедуры

//Серверный модуль ПолныеПрава

Процедура Сформировать(АдресРезульта)  Экспорт
    Результат=1;
    ПоместитьВоВременноеХранилище(Результат, АдресРезульта);    
КонецПроцедуры
   Air777
 
27 - 16.08.18 - 17:56
Всегда возвращает Неопределено хотя должно быть 1
   Air777
 
28 - 16.08.18 - 17:58
на 8.3.8 и 8.3.10 в файловой работает идеально в серверной со 2й попытки. В 8.3.12 в серверной не работает вовсе
   Air777
 
29 - 16.08.18 - 18:05
Тестировал на 8.3.12.1595
   Cyberhawk
 
30 - 16.08.18 - 18:06
Выполняй код получения адреса ВХ и вызова ФЗ на сервере
   Fragster
 
31 - 16.08.18 - 18:13
Ну вообще помещенные во временное хранилище данные протухают при следующем вызове, если не указать при помещении идентификатор формы. Это по документации так. то, что работало в 8.3.8 - случайность :)
   Cyberhawk
 
32 - 16.08.18 - 18:17
"помещенные во временное хранилище данные протухают при следующем вызове, если не указать при помещении идентификатор формы" // Ошибаешься
   mszsuz
 
33 - 16.08.18 - 18:20
(26) А в ОФ можно в модуле формы объявлять переменную "Параметры"?
 
 
   mszsuz
 
34 - 16.08.18 - 18:23
(31) серьезно?
   Air777
 
35 - 16.08.18 - 18:27
Ребят может таки переадресуете вопрос на партнерский форум а?
Все таки хотелось бы внятного ответа, а не гадания на кофейной гуще.

Заранее спасибо.
   Air777
 
36 - 16.08.18 - 18:28
(30) это никак не решает проблему передачи результат между сервером и клиентом. Сам сервер не хранит состояние, а в базу я это писать не хочу. Остается только в строку, но это тоже не подходит.
   Cyberhawk
 
37 - 16.08.18 - 18:29
Какую проблему?
   mszsuz
 
38 - 16.08.18 - 18:30
(35) Там ошибками не занимаются. Пиши на v8@1c.ru
   mszsuz
 
39 - 16.08.18 - 18:33
(36) Посмотри в отладчике, в Сформировать(АдресРезульта) параметром точно адрес прилетает?
   mszsuz
 
40 - 16.08.18 - 18:38
(31) "Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя."
т.е. значение будет храниться всё время сеанса.
И оно должно быть сериализуемым.
   Fragster
 
41 - 16.08.18 - 18:47
(40) ну там же описание для фоновых написано - только УИД формы для передачи между сеансами катит
   Air777
 
42 - 16.08.18 - 23:39
(39) точно, это выдержка из рабочего кода.
   Agidel
 
43 - 09.11.18 - 10:52
А если вместо
АдресРезультата=ПоместитьВоВременноеХранилище(Неопределено,Новый УникальныйИдентификатор);
написать
АдресРезультата=ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует