Не работает ДлительныеОперации.СообщитьПрогресс

1. Ligret 23.09.22 12:30 Сейчас в теме
Доброго времени суток,

будьте добры, помогите разобраться со следующей проблемой, платформа 8.3.21.1302, в конфигураторе обработка для перепроведения документов. Проведение работает, результат с количеством проведенных/не проведенных возвращается, то есть успешно отрабатывают модули Перепровести, ВыполнитьФоновоеЗаданиеНаСервере, ВыполнитьПерепроведениеДокументов и ПослеВыполненияЗадания. Но СообщитьПрогресс, как собственно и ОповещениеОПрогрессеВыполнения ни гу-гу. В отладчике точка останова на ДлительныеОперации.СообщитьПрогресс, показывает что всё ок, данные подготовлены и готовы к передаче. По данным отладчика, после попадания в модуль ВыполнитьФоновоеЗаданиеНаСервере система ждет окончания работы модуля и соответственно не в состоянии вывести прогрес ни на форму ни в стандартное окно ПрогрессВыполнения. Что я делаю не так? Заранее благодарю.

код модуля формы:
&НаКлиенте
Процедура Перепровести(Команда)
	СтруктураФоновогоЗадания = ВыполнитьФоновоеЗаданиеНаСервере(УказанныеНастройки);
	
	ПараметрыОжидания  = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); 
	ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
	ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
	ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения(
	"ОповещениеОПрогрессеВыполнения",ЭтотОбъект);
	
	ДлительныеОперацииКлиент.ОжидатьЗавершение(СтруктураФоновогоЗадания, 
	Новый ОписаниеОповещения("ПослеВыполненияЗадания", ЭтотОбъект), ПараметрыОжидания);
КонецПроцедуры

&НаСервере
Функция ВыполнитьФоновоеЗаданиеНаСервере(ПараметрыЗапуска)
	
	ВыполняемыйМетод = "Обработки.ГрупповоеПерепроведениеДокументов.ВыполнитьПерепроведениеДокументов";
	
	ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
	ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
	ПараметрыВыполнения.ЗапуститьВФоне = Истина;
  
	СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьФункцию(
	ПараметрыВыполнения, ВыполняемыйМетод, ПараметрыЗапуска); 
	
	Возврат СтруктураФоновогоЗадания;
	
КонецФункции

&НаКлиенте
Процедура ОповещениеОПрогрессеВыполнения(Прогресс, Параметры) Экспорт

       ....бла-бла
       Прогресс.Прогресс.Текст;
       Прогресс.Прогресс.Процент;

КонецПроцедуры

&НаКлиенте
Процедура ПослеВыполненияЗадания(Задание, ДополнительныеПараметры) Экспорт
	
	...бла-бла
КонецПроцедуры

Показать


код модуля менеджера:
&НаСервере
Функция ВыполнитьПерепроведениеДокументов(УказанныеНастройки) Экспорт 

		запрос = ...
		Выборка = Результат.Выгрузить();
		КоличествоДокументов = Выборка.Количество();
		
		Для Каждого Док Из Выборка Цикл 
			
			//прогресс
			СчетчикДокументов = СчетчикДокументов + 1;
			ПроцентВыполнения  = Окр(СчетчикДокументов / КоличествоДокументов * 100, 0); 
			
			ДокументСсылка = Док.Ссылка;          
			ДлительныеОперации.СообщитьПрогресс(ПроцентВыполнения,СокрЛП(ДокументСсылка));	
               
                        бла-бла...  
               КонецЦикла;	
	Возврат РезультатВыполнения;
	
КонецФункции
Показать
По теме из базы знаний
Найденные решения
4. Ligret 23.09.22 21:06 Сейчас в теме
ааа! нашёл описание на ИТС:
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;

вопрос закрыт, проблема найдена.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 23.09.22 13:37 Сейчас в теме
(1) Может ПараметрыОжидания.Интервал задать?
Интервал - Число - интервал в секундах между проверками готовности длительной операции
3. Ligret 23.09.22 20:48 Сейчас в теме
(2)нет, ведь гадство в том, что к параметрам ожидания модуль приходит уже тогда, когда ВСЯ серверная обработка фонового задания ПОЛНОСТЬЮ выполнена. Могу предположить, что косяк в ДлительныеОперации.ВыполнитьФункцию.
4. Ligret 23.09.22 21:06 Сейчас в теме
ааа! нашёл описание на ИТС:
если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
если приложение запущено в режиме отладки (параметр /C РежимОтладки) – для упрощения отладки конфигурации;
если в файловой ИБ имеются активные фоновые задания – для снижения времени ожидания пользователя;

вопрос закрыт, проблема найдена.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот