Структура из таблиц значений в фоновом задании #633135


#0 by sereban
Помещаю структуру во временное хранилище: После этого в фоновом задании запускаю процедуру общего модуля, в которой получаю эти же таблицы из структуры: СтруктураХранения = ПолучитьИзВременногоХранилища(АдресДанных); Как результат получаю ошибку: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ОжидатьЗавершения) ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий); по причине: Выполнение одного или нескольких заданий завершилось с ошибкой отладчиком попасть в фоновое задание не получилось. Поэтому комментировал код, для выявления ошибки и обнаружил, что ошибка в строке: При этом если вызвать процедуру общего модуля, которую запускает задание, то никаких ошибок не возникает. В чем может быть проблема? Заранее благодарю за дельные советы)
#1 by pumbaEO
Совет 1: подключиться отладчиком к фоновому заданию. Совет 2: посмотреть на описание ошибки.
#2 by sereban
Подключиться отладчиком это хорошо. Не срабатывает. Отладка на сервере включена (проверено работает во всех серверных процедурах). Галочка Автоматические подключение для фоновых заданий в отладке стоит. Все действия делаю на сервере 1с. Фоновое задание запускается вот так: ФонЗадание = ФоновыеЗадания.Выполнить("тест.ЗагрузитьКвитанцииНаСервереВОтдельномПроцессе", МассивПараметров); Должна работать отладка в таком случае?
#3 by pumbaEO
Должно работать. В консоле заданий какую ошибку пишет?
#4 by sereban
Чет я даже не подумал, что консоль может чем-то помочь. А то что она ошибку пишет - это хорошо. Не знал я этого. Не получается данные передать в фоновое задание. СтруктураХранения = неопределено, со всеми последствиями. А если процедуру задания вызвать отдельно, то все работает. Получается, что значение сохраненное с помощью ПоместитьВоВременноеХранилище доступно только внутри сеанса.
#5 by sereban
Спасибо ))
#6 by pumbaEO
Не увидел у тебя нигде, что бы фоновое задание вообще с левого сеанса запускалось.
#7 by sereban
А оно всегда будет с левого сеанса. Его же сервер запускает по моему запросу. В том то и суть, что задание будет выполняться, а пользователь продолжит работу. Жаль только параметры не получилось передать как я хотел. Придется в параметры процедуры совать их.
#8 by pumbaEO
эээ, делаешь ты что-то неправильно. Все нормально отрабатывает у меня. Смотри пример
#9 by sereban
Спасибо! Отличная статья. Я так и сделал, когда первый вариант не получился. Просто изначально я параметры в фоновые задания пытался передать через ПоместитьВоВременноеХранилище, а их нужно "забирать" только таким способом, а передавать просто в параметрах процедуры при вызове. ФоновыеЗадания.Выполнить("ОбщийМодульСервер.ЗагрузитьИзВИБ",МассивПараметров)    - здесь у тебя в массиве параметров все что нужно, а у меня в массиве был адрес на временное хранилище только, в которое я все и засунул.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С