|
Индикатор состояния в управляемом приложении
| ☑ |
0
knij
28.06.17
✎
11:05
|
Здравствуйте! Прошу подсказать, как можно выполнить следующую задачу:
Есть длительная процедура, которая выполняется НаСервере и нужно для нее сделать индикатор выполнения.
Пробовал сделать через Состояние(), не получилось т.к. процедура НаСервере.
Также пробовал так:
ПрогрессБар = Элементы.Индикатор;
ПрогрессБар.МаксимальноеЗначение = КоличествоСтрок;
ПрогрессБар.МинимальноеЗначение = 0;
ПрогрессБар.Значение = 0;
Для а = 0 По КоличествоСтрок Цикл
//Цикл
ПрогрессБар.Значение = ПрогрессБар.Значени + 1;
КонецЦикла;
Но выводится ошибка: Поле объекта не обнаружено (Значение).
|
|
1
knij
28.06.17
✎
11:07
|
ПрогрессБар.Значение = ПрогрессБар.Значение + 1;*
|
|
2
butterbean
28.06.17
✎
11:07
|
да никак, только порциями с клиента делать
|
|
3
knij
28.06.17
✎
11:08
|
(2) Понятно, а можно по-подробнее как сделать порциями.
|
|
4
Имитация работы
28.06.17
✎
11:12
|
Ты вообще не сможешь обновить интерфейс на клиенте, не вернув управление с сервера. Поэтому любой твой прогресс во время обработки будет всегда показывать 0.
Так что иди изучать фоновые задание и реализацию длительных операций в БСП на примере одноименной подсистемы.
|
|
5
rozer76
28.06.17
✎
13:05
|
(0) писал про не совсем свежую БСП но все же http://catalog.mista.ru/public/525648/
|
|
6
pessok
28.06.17
✎
13:29
|
фоновое задание, в котором СообщитьПользователю отдает прогресс
на клиенте - обработчик ожидания, который раз в нужное время (скажем, 5 секунд) считывает сообщения из фонового задания, берет последнее и пихает в твой счетчик.
смотри как в БСП реализовано, там всё просто
|
|