неее, прогресс бар только на клиенте!
и как обычно в цикле!
что бы не обновлять по каждой итерации, цикл делаем по времени (например 1 раз в 10 сек)
сколько объектов обработалось отображается в прогрессе!
очень удобно и красиво.
и за ходом выполнения Фонового задания, прогресс так-же оформляется на клиенте.
(7) у всех основной код выполняется на сервере,
на клиенте организуете цикл, и порциями выполняете свой код на сервере
или в Фоновое задание переводите свое серверное выполнение! с клиента, опять же в цикле опрашиваете ФЗ и выводите прогресс
Чтобы серверный код выводил прогрессбар, его нужно засунуть в фоновое задание:
1. Создает процедуру в неглобальном серверном общем модуле, которая делает дело.
2. Запускаем фоновое задание, передавая в процедуру параметры.
3. Весим обработчик ожидания на 10 сек.
4. Получаем сообщения фонового задания и выводим или их, или, если в сообщение засунут процент, то его.
5. Если статус фонового задания стал "Завершено", то 100%, отрубаем обработчик ожидания, вешаем окошко, что все выполнено и звучим сигналом.
Как вариант - сделать выполнение процедуры в фоне, добавить константу или регистр, куда будем писать прогресс (или несколько по УИД например), сделать и после запуска процедуры вывести форму с прогресс-баром, которая будет обновляться и получать данные из указанного регистра. Кстати думал насчет вывода прогресса нелинейных операций, можно замерять время выполнения и в зависимости от, например, отборов в запросе, считать сколько примерно пойдет времени на выполнение.