Здравствуйте! Прошу подсказать, как можно выполнить следующую задачу:
Есть длительная процедура, которая выполняется НаСервере и нужно для нее сделать индикатор выполнения.
Пробовал сделать через Состояние(), не получилось т.к. процедура НаСервере.
Также пробовал так:
ПрогрессБар = Элементы.Индикатор;
ПрогрессБар.МаксимальноеЗначение = КоличествоСтрок;
ПрогрессБар.МинимальноеЗначение = 0;
ПрогрессБар.Значение = 0;
Для а = 0 По КоличествоСтрок Цикл
//Цикл
ПрогрессБар.Значение = ПрогрессБар.Значени + 1;
КонецЦикла;
Но выводится ошибка: Поле объекта не обнаружено (Значение).
Ты вообще не сможешь обновить интерфейс на клиенте, не вернув управление с сервера. Поэтому любой твой прогресс во время обработки будет всегда показывать 0.
Так что иди изучать фоновые задание и реализацию длительных операций в БСП на примере одноименной подсистемы.
фоновое задание, в котором СообщитьПользователю отдает прогресс
на клиенте - обработчик ожидания, который раз в нужное время (скажем, 5 секунд) считывает сообщения из фонового задания, берет последнее и пихает в твой счетчик.
смотри как в БСП реализовано, там всё просто