|
Структура из таблиц значений в фоновом задании | ☑ | ||
---|---|---|---|---|
0
sereban
08.10.12
✎
12:36
|
Помещаю структуру во временное хранилище:
СтруктураХранения = Новый Структура; СтруктураХранения.Вставить("ТЗСоответствиеУслуг", ТЗСоответствиеУслуг); СтруктураХранения.Вставить("ТЗКвитанции", ТЗКвитанции); АдресДанных = ПоместитьВоВременноеХранилище(СтруктураХранения, УникальныйИдентификатор); После этого в фоновом задании запускаю процедуру общего модуля, в которой получаю эти же таблицы из структуры: СтруктураХранения = ПолучитьИзВременногоХранилища(АдресДанных); ТЗСоответствиеУслуг = СтруктураХранения.ТЗСоответствиеУслуг; ТЗКвитанции = СтруктураХранения.ТЗКвитанции; Как результат получаю ошибку: {Форма.Форма.Форма(404)}: Ошибка при вызове метода контекста (ОжидатьЗавершения) ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий); по причине: Выполнение одного или нескольких заданий завершилось с ошибкой отладчиком попасть в фоновое задание не получилось. Поэтому комментировал код, для выявления ошибки и обнаружил, что ошибка в строке: ТЗСоответствиеУслуг = СтруктураХранения.ТЗСоответствиеУслуг; При этом если вызвать процедуру общего модуля, которую запускает задание, то никаких ошибок не возникает. В чем может быть проблема? Заранее благодарю за дельные советы) |
|||
1
pumbaEO
08.10.12
✎
12:39
|
Совет 1: подключиться отладчиком к фоновому заданию.
Совет 2: посмотреть на описание ошибки. |
|||
2
sereban
08.10.12
✎
12:44
|
(1) Подключиться отладчиком это хорошо. Не срабатывает. Отладка на сервере включена (проверено работает во всех серверных процедурах). Галочка Автоматические подключение для фоновых заданий в отладке стоит. Все действия делаю на сервере 1с. Фоновое задание запускается вот так:
ФонЗадание = ФоновыеЗадания.Выполнить("тест.ЗагрузитьКвитанцииНаСервереВОтдельномПроцессе", МассивПараметров); Должна работать отладка в таком случае? |
|||
3
pumbaEO
08.10.12
✎
13:02
|
Должно работать.
В консоле заданий какую ошибку пишет? |
|||
4
sereban
08.10.12
✎
13:21
|
(3) Чет я даже не подумал, что консоль может чем-то помочь. А то что она ошибку пишет - это хорошо. Не знал я этого. Не получается данные передать в фоновое задание. СтруктураХранения = неопределено, со всеми последствиями. А если процедуру задания вызвать отдельно, то все работает. Получается, что значение сохраненное с помощью ПоместитьВоВременноеХранилище() доступно только внутри сеанса.
|
|||
5
sereban
08.10.12
✎
13:21
|
(3) Спасибо ))
|
|||
6
pumbaEO
08.10.12
✎
13:25
|
(4) Не увидел у тебя нигде, что бы фоновое задание вообще с левого сеанса запускалось.
|
|||
7
sereban
08.10.12
✎
13:43
|
(6)А оно всегда будет с левого сеанса. Его же сервер запускает по моему запросу. В том то и суть, что задание будет выполняться, а пользователь продолжит работу. Жаль только параметры не получилось передать как я хотел. Придется в параметры процедуры совать их.
|
|||
8
pumbaEO
08.10.12
✎
13:47
|
(7) эээ, делаешь ты что-то неправильно. Все нормально отрабатывает у меня.
Смотри пример http://danila.org.ua/parallelnaya-zagruzka-zagruzitbyis/ |
|||
9
sereban
08.10.12
✎
14:25
|
(8) Спасибо! Отличная статья. Я так и сделал, когда первый вариант не получился. Просто изначально я параметры в фоновые задания пытался передать через ПоместитьВоВременноеХранилище, а их нужно "забирать" только таким способом, а передавать просто в параметрах процедуры при вызове. ФоновыеЗадания.Выполнить("ОбщийМодульСервер.ЗагрузитьИзВИБ",МассивПараметров) - здесь у тебя в массиве параметров все что нужно, а у меня в массиве был адрес на временное хранилище только, в которое я все и засунул.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |