Имя: Пароль:
1C
1С v8
Индикатор состояния в управляемом приложении
,
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 секунд) считывает сообщения из фонового задания, берет последнее и пихает в твой счетчик.
смотри как в БСП реализовано, там всё просто