Вывод статуса фонового задания Длительная операция
Коллеги, может я чего не понимаю. Есть внешний отчет находящийся в расширении, формирующий табличный документ. Табличный документ формируется в модуле менеджера.
Все сделано по инструкции из БСП, но форма не выводится с процентами выполнения и текстом пояснения.
Сами проценты и пояснялка считаются в
Менеджере отчета
&НаКлиенте
Процедура ПриОткрытии(Отказ)
отчет.Период.ДатаНачала = НачалоМесяца(ТекущаяДата());
отчет.Период.ДатаОкончания = КонецМесяца(ТекущаяДата());
отчет.ВыводитьПоДням=истина;
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
НастроитьПараметрыПодключенияАвтоматически();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьПараметрыПодключенияАвтоматически()
// 1. Запуск фонового задания на сервере.
ДлительнаяОперацияНачатьВыполнениеОчета = НачатьВыполнениеОчета();
// 2. Подключение обработчика завершения фонового задания.
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
// * ОповещениеОПрогрессеВыполнения - ОписаниеОповещения - оповещение, которое периодически вызывается при
// проверке готовности фонового задания. Параметры процедуры-обработчика оповещения:
// # Прогресс - Структура, Неопределено - структура со свойствами или Неопределено, если задание было отменено. Свойства:
// ## Статус - Строка - "Выполняется", если задание еще не завершилось;
// "Выполнено", если задание было успешно выполнено;
// "Ошибка", если задание завершено с ошибкой;
// "Отменено", если задание отменено пользователем или администратором.
// ## ИдентификаторЗадания - УникальныйИдентификатор - идентификатор запущенного фонового задания.
// ## Прогресс - Структура, Неопределено - результат функции ДлительныеОперации.ПрочитатьПрогресс,
// если ВыводитьПрогрессВыполнения = Истина.
// ## Сообщения - ФиксированныйМассив, Неопределено - если ВыводитьСообщения = Истина, массив объектов СообщениеПользователю,
// очередная порция сообщений, сформированных в процедуре-обработчике длительной операции.
// # ДополнительныеПараметры - Произвольный - произвольные данные, переданные в описании оповещения.
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПрогрессВыполнения", ЭтотОбъект);
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
ПараметрыОжидания.ВыводитьСообщения = Истина;
ПараметрыОжидания.ВыводитьОкноОжидания=Ложь;
ОповещениеПриЗавершенииВыпоненияОтчета = Новый ОписаниеОповещения("ПриЗавершенииВыпоненияОтчета", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперацияНачатьВыполнениеОчета, ОповещениеПриЗавершенииВыпоненияОтчета, ПараметрыОжидания);
КонецПроцедуры
&НаСервере
Функция НачатьВыполнениеОчета()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Расчет себестоимости проектов'");
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "Отчеты.ПрибыльОтПроекта.ФормированиеОтчета",
отчет.Период.ДатаНачала, отчет.Период.ДатаОкончания);
КонецФункции
// 3. Обработка результата выполнения фонового задания.
&НаКлиенте
Процедура ПриЗавершенииВыпоненияОтчета(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда // Пользователь отменил задание.
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Настройки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ТабДок =Настройки;
УдалитьИзВременногоХранилища(Результат.АдресРезультата);
КонецПроцедуры
//Этот кусок работает, но надо выводить в красивую стандартную форму проценты
&НаСервере
Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт
ДлительныеОперации.ПрочитатьПрогресс(Результат.ИдентификаторЗадания);
Сообщить(Результат.Прогресс.Процент);
КонецПроцедуры
ПоказатьВсе сделано по инструкции из БСП, но форма не выводится с процентами выполнения и текстом пояснения.
Сами проценты и пояснялка считаются в
Менеджере отчета
ДлительныеОперации.СообщитьПрогресс(Процент100 , ТекСотрудник.Сотрудник.наименование);
По теме из базы знаний
- Отображение прогресса выполнения длительных операций в БСП и их отладка в текущем сеансе.
- Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки
- Гарантированно рабочий пример использования длительных операций на БСП с отображением прогресса. [Часть 1]
- Запуск почти любых процедур и функций конфигураций в асинхронном режиме - БСП - Длительные операции [Часть 2]
- Шаблон внешней обработки на основе БСП с фоновым выполнением модуля обработки и выводом индикации фонового задания
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот