![]() |
|
ПолучитьИзВременногоХранилища возвращает неопределено в фоновом задании | ☑ | ||
---|---|---|---|---|
0
Сергиус
29.10.15
✎
14:11
|
1С:Предприятие 8.3 (8.3.6.2100) - из Серверной процедуры формы делаю вызов фонового задания
ПараметрыДляФЗ = Новый Массив; ДДФайл = Новый ДвоичныеДанные(ИмяФайла); Адрес = ПоместитьВоВременноеХранилище(ДДФайл,УникальныйИдентификатор); ПараметрыДляФЗ.Добавить(Адрес); ФоновоеЗадание = ФоновыеЗадания.Выполнить("ИмяОбщегоМодуля.МояПроцедура", ПараметрыДляФЗ, Новый УникальныйИдентификатор, "Тестовое задание"); После этого выполнение передается в процедуру, и там при попытке получить по адресу выдается неопределенно. Процедура МояПроцедура(АдресФайла) ДДФайла = ПолучитьИзВременногоХранилища(АдресФайла); КонецПроцедуры Вот ДДФайла всегда неопределено. Какие способы есть передать таки файл в фоновую процедуру? |
|||
1
Лефмихалыч
29.10.15
✎
14:13
|
файл большой? Может просто его в виде ДвочныеДанные параметром передать? Один ведь кол ты его на сервер в этом виде совать пытаешься, отправляя во временное хренилище
|
|||
2
Сергиус
29.10.15
✎
14:14
|
(1)19 МБ, попробую так.
|
|||
3
Сергиус
29.10.15
✎
14:16
|
+(2)Спасибо, так прокатило.
|
|||
4
Лефмихалыч
29.10.15
✎
14:17
|
ну... во временное хранилище онточно так же передается путем сериализации ДвоичныхДанных в строку и пропихивания этой строки серверу.
По этому, может лучше через шару какую или в БД хранить. Хотя в БД - та же сериализация двочных данных. |
|||
5
Сергиус
29.10.15
✎
14:20
|
(4)Возможно это глюк какой-то именно функции ПолучитьИзВременногоХранилища. Еще в "лохматом" 10-м году, для 8.2.11 была подобная ошибка:
10055148 Метод ПолучитьИзВременногоХранилища Проблема: Метод ПолучитьИзВременногоХранилища, вызванный в фоновом задании, возвращает значение Неопределено. Дата публикации: 2010-06-07 |
|||
6
Лефмихалыч
29.10.15
✎
14:22
|
Мне, кстати, это сотонинство временнохранилищное тоже всегда неопределено возвращает. С учетом вышеописанного механизма работы, я забил на него болт и передаю туда-сюда двоичные данные, когда надо.
Результат-то тот же, только код проще становится и Неопределено не возвращается. |
|||
7
Лефмихалыч
29.10.15
✎
14:23
|
каюсь, так сказать
|
|||
8
ИсчадиеADO
29.10.15
✎
14:23
|
в фоновом задании 1с не запилило получение из врем. хранилища. только передачу. аргументировали типа только для того чтоб вернуть результат. я на dёфоруме находил, там Максим Радченко, емнип, отвечал
|
|||
9
ИсчадиеADO
29.10.15
✎
14:24
|
из фонового временное хранилище получает. важно чтоб ссылка на форме хранилась
|
|||
10
DmitrO
29.10.15
✎
14:28
|
(6)У них просто временное хранилище разделено на сеансы, данные временного хранилища каждого сеанса изолированы, на сколько я понимаю это для того чтобы доступ к ним не синхронизировать.
Единственный случай когда данные врем хранилища переходят из одного сеанса в другой, это при завершение фонового данные переходят в вызвавший его сеанс. |
|||
11
DmitrO
29.10.15
✎
14:30
|
(10)И возможен этот случай, только потому, что сеанс фонового задания уже завершен.
|
|||
12
Лефмихалыч
29.10.15
✎
14:30
|
(10) у меня даже в пределах одного сеанса не получалось (правда в последний раз это еще в 8.2 было)
из &НаКлиенте в &НАСервере черех гноилище это передать ни чего, кроме Неопределено. Неопределено отлично передается, а вот файл - нихт. Вообще не понимаю, зачем оно нужно. |
|||
13
ИсчадиеADO
29.10.15
✎
14:31
|
(10) а почему это только при завершении? как же тогда реализовано получение прогресс бара в фоновом задании?
|
|||
14
Гёдза
29.10.15
✎
14:31
|
Возможно только из фонового в сеанс, но не обратно
|
|||
15
DmitrO
29.10.15
✎
14:31
|
(12)да ладно.. у меня проблем не было
|
|||
16
Лефмихалыч
29.10.15
✎
14:32
|
(15) ну, даже на солнце пятна бывают же :)
|
|||
17
DmitrO
29.10.15
✎
14:32
|
(13)прогресс бар на сообщениях пользователю, хранилище тут непричем
|
|||
18
ИсчадиеADO
29.10.15
✎
14:39
|
(17) % берется из периодически из результатов фонового задания :)
|
|||
19
ИсчадиеADO
29.10.15
✎
14:39
|
модуль длительные операции. даж метод есть
|
|||
20
DmitrO
29.10.15
✎
15:02
|
(18)Исчадиеее, специально для тебя посмотрел в СП )
ПоместитьВоВременноеХранилище ... Примечание: Временное хранилище, сформированное в одном сеансе, недоступно из другого сеанса. Исключением является возможность передачи данных из фонового задания в сеанс, инициировавший фоновое задание, с помощью временного хранилища. Для такой передачи следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание. Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания. |
|||
21
ИсчадиеADO
29.10.15
✎
16:18
|
(20) специально для тебя запилил обработку которая получает структуру из фонового задания до его завершения :)
врет твоя справка, ага. сам попробуй |
|||
22
vhl
29.10.15
✎
16:27
|
(19) ты вообще этот модуль смотрел?
|
|||
23
vhl
29.10.15
✎
16:33
|
(0) Если хочешь просто передать файл в фоновое задание, то вот тебе решение: Как передать файл в фоновое задание
|
|||
24
ИсчадиеADO
29.10.15
✎
16:37
|
ок, да признаю, сам дурак. на файловой и на клиент серверной отрабатывает по разному (на файловой получает). а в длительных операциях запилено получение сообщений пользователя из фонового задания и поиск сообщения в формате.
ок |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |