Имя: Пароль:
1C
 
отображение Состояние процесса выполнения на клиенте.
,
0 spiller26
 
21.08.18
09:19
Делаю разворачивание дерева значений. Пользователю нужно показывать что выполняется, а не "зависло".
Проблема в том, что дерево блокируется и выходит окно процесса, но они серые.

&НаКлиенте
Процедура РаскрытьВсеВетки(Команда)
    
    ПодключитьОбработчикОжидания("РазвернутьДерево", 1, Истина);

КонецПроцедуры

&НаКлиенте
Процедура РазвернутьДерево()
    
    Состояние("Разворачивание дерева",,, БиблиотекаКартинок.ДлительнаяОперация48);
    //
    КоллекцияЭлементов = ДеревоОстатков.ПолучитьЭлементы();
    Для Каждого ЭлементКоллекции Из КоллекцияЭлементов Цикл
        Элементы.ДеревоОстатков.Развернуть(ЭлементКоллекции.ПолучитьИдентификатор(), Истина);
    КонецЦикла;
    
    ОтключитьОбработчикОжидания("РазвернутьДерево");
    
КонецПроцедуры
1 Cyberhawk
 
21.08.18
09:20
Зачем же ты однократный обработчик целую секунду ждешь? Делай 0.1
2 Cyberhawk
 
21.08.18
09:20
И нахера отключаешь его еще?
3 spiller26
 
21.08.18
09:24
(2) После выполнения выключил.
4 Cyberhawk
 
21.08.18
09:27
Не в коня корм
5 spiller26
 
21.08.18
09:27
(2,3) убрал ОтключитьОбработчикОжидания

С отображением что?
6 Cyberhawk
 
21.08.18
09:29
Каким отображением?
7 spiller26
 
21.08.18
09:30
(6) состояние, т.е. "Кошака"
8 spiller26
 
21.08.18
09:52
По ходу нужно ваять свою форму для отображения.
9 spiller26
 
21.08.18
09:58
На файловой какой то глюк с отображением, на клиент-серверной  отображение прошло успешно.
С анимацией нужно отдельное окно писать.
10 s03
 
21.08.18
10:02
(0) а если не обходить строки, а сразу всё дерево развернуть, быстрее не будет?

&НаКлиенте
Процедура РазвернутьВсеДерево(Команда)
   Элементы.ДеревоОстатков.Развернуть(0,Истина);    
КонецПроцедуры