Не работает ДлительныеОперации.СообщитьПрогресс
Доброго времени суток,
будьте добры, помогите разобраться со следующей проблемой, платформа 8.3.21.1302, в конфигураторе обработка для перепроведения документов. Проведение работает, результат с количеством проведенных/не проведенных возвращается, то есть успешно отрабатывают модули Перепровести, ВыполнитьФоновоеЗаданиеНаСервере, ВыполнитьПерепроведениеДокументов и ПослеВыполненияЗадания. Но СообщитьПрогресс, как собственно и ОповещениеОПрогрессеВыполнения ни гу-гу. В отладчике точка останова на ДлительныеОперации.СообщитьПрогресс, показывает что всё ок, данные подготовлены и готовы к передаче. По данным отладчика, после попадания в модуль ВыполнитьФоновоеЗаданиеНаСервере система ждет окончания работы модуля и соответственно не в состоянии вывести прогрес ни на форму ни в стандартное окно ПрогрессВыполнения. Что я делаю не так? Заранее благодарю.
код модуля формы:
код модуля менеджера:
будьте добры, помогите разобраться со следующей проблемой, платформа 8.3.21.1302, в конфигураторе обработка для перепроведения документов. Проведение работает, результат с количеством проведенных/не проведенных возвращается, то есть успешно отрабатывают модули Перепровести, ВыполнитьФоновоеЗаданиеНаСервере, ВыполнитьПерепроведениеДокументов и ПослеВыполненияЗадания. Но СообщитьПрогресс, как собственно и ОповещениеОПрогрессеВыполнения ни гу-гу. В отладчике точка останова на ДлительныеОперации.СообщитьПрогресс, показывает что всё ок, данные подготовлены и готовы к передаче. По данным отладчика, после попадания в модуль ВыполнитьФоновоеЗаданиеНаСервере система ждет окончания работы модуля и соответственно не в состоянии вывести прогрес ни на форму ни в стандартное окно ПрогрессВыполнения. Что я делаю не так? Заранее благодарю.
код модуля формы:
&НаКлиенте
Процедура Перепровести(Команда)
СтруктураФоновогоЗадания = ВыполнитьФоновоеЗаданиеНаСервере(УказанныеНастройки);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения(
"ОповещениеОПрогрессеВыполнения",ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(СтруктураФоновогоЗадания,
Новый ОписаниеОповещения("ПослеВыполненияЗадания", ЭтотОбъект), ПараметрыОжидания);
КонецПроцедуры
&НаСервере
Функция ВыполнитьФоновоеЗаданиеНаСервере(ПараметрыЗапуска)
ВыполняемыйМетод = "Обработки.ГрупповоеПерепроведениеДокументов.ВыполнитьПерепроведениеДокументов";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения, ВыполняемыйМетод, ПараметрыЗапуска);
Возврат СтруктураФоновогоЗадания;
КонецФункции
&НаКлиенте
Процедура ОповещениеОПрогрессеВыполнения(Прогресс, Параметры) Экспорт
....бла-бла
Прогресс.Прогресс.Текст;
Прогресс.Прогресс.Процент;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыполненияЗадания(Задание, ДополнительныеПараметры) Экспорт
...бла-бла
КонецПроцедуры
Показатькод модуля менеджера:
&НаСервере
Функция ВыполнитьПерепроведениеДокументов(УказанныеНастройки) Экспорт
запрос = ...
Выборка = Результат.Выгрузить();
КоличествоДокументов = Выборка.Количество();
Для Каждого Док Из Выборка Цикл
//прогресс
СчетчикДокументов = СчетчикДокументов + 1;
ПроцентВыполнения = Окр(СчетчикДокументов / КоличествоДокументов * 100, 0);
ДокументСсылка = Док.Ссылка;
ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения,СокрЛП(ДокументСсылка));
бла-бла...
КонецЦикла;
Возврат РезультатВыполнения;
КонецФункции
ПоказатьПо теме из базы знаний
- Отображение прогресса выполнения длительных операций в БСП и их отладка в текущем сеансе.
- Обзор полезных методов БСП 3.1.4
- Асинхронное выполнение длительных операций с помощью фонового задания
- Запуск фонового задания с прогрессом во внешней обработке независимо от места вызова на Библиотеке стандартных подсистем
- Многопоточное выполнение процедуры с помощью ДлительныеОперации
Найденные решения
ааа! нашёл описание на ИТС:
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;
вопрос закрыт, проблема найдена.
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;
вопрос закрыт, проблема найдена.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ааа! нашёл описание на ИТС:
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;
вопрос закрыт, проблема найдена.
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;
вопрос закрыт, проблема найдена.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот