Известной проблемой при использовании управляемых форм является отслеживание процента выполнения какой либо задачи, длительное время находящейся на выполнении на сервере. В этом случае невозможно использовать окно загрузки и прочие интерфейсные вещи, т.к. во время выполнения процедуры нельзя обратится из сервера на клиент. Решением проблемы является использование фонового задания в сочетании с обработчиком ожиданий. Запускается фоновое задание, периодически сообщает о своем состоянии через механизм сообщений, а обработчик ожидания опрашивает пул сообщений лдя данного задания на клиенте и выводит окно состояния.
Напомним, что в фоновое задание нельзя передавать данные посредством помещения во временное хранилище, только в обратную сторону. Причем, если во время работы фонового задания поместить во временное хранилище данные несколько раз, то получить их можно будет только по завершении работы фонового задания, поэтому используется механизм сообщений. Ниже приведен код формы обработки и код процедуры «ФонЗадание» фонового задания в общем модуле «ФоновыеЗадания» с галкой «Сервер».
Код формы:
Код фонового задания в общем серверном модуле «ФоновыеЗадания»:
Посмотреть текст модулей