Имя: Пароль:
1C
1С v8
Все-таки можно ли обновлять форму обработки из модуля формы?
0 Double_Medved
 
08.01.16
09:13
Добрый день!
Всех с праздниками!
Собственно есть длинная процедура, связанная с загрузкой данных, выполняющаяся в модуле обработки. Хочу приделать прогресс бар, чтобы пользователям было спокойнее, что типа не зависло. Можно и без него конечно, на техническую сторону вопроса он не повлияет, но я очень его хочу и я извращенец.
Итак, в модуле формы например перебирается 100 файлов и каждый пережевывается и загружается. Я хочу после каждого файла отсылать на форму типа + 1% на элемент формы индикатор.
Дело в том, что по-разному пробовал, не выходит! Причем отладчик заходит в форму обработки, заходит в процедуру ОбновлениеОтображения(), изменяет значение процентов, но по факту форма не обновляется! Повисают часы, пока выполняется код в модуле обработки, и только после его окончания форма обновляется (и код переходит уже опять в код формы) и там уже 100%! Ну неужели создатели 1с не учли такой важный момент???
Чую, что где-то одну строку добавить и все заработает! Каюсь, напихал в кот все что только можно чтобы обновлять форму, ничего не помогает!
Примерно так:
Процедура ВыполнитьОбмен()//В модуле формы
Форма=ЭтотОбъект.ПолучитьФорму("ФормаРегистрацииПродаж");
СписокФайлов=НайтиФайлы(Каталог,"*.xml");          
    
Для каждого Стр из СписокФайлов цикл
    Файл=Стр.ПолноеИмя;         
    Загрузка(Файл);
    Счетчик = Счетчик + 1;
    Форма.ЭлементыФормы.Индикатор1.Значение = Счетчик;
    Форма.Обновить();                
КонецЦикла;



Вопрос больше сакральный и риторический, знаю что можно переделать 100 раз вызывая сервер с клиента, но хотелось-бы узнать-таки сам принцип и возможность.
1 Heckfy
 
08.01.16
09:57
при выполнении &НаСервере индикации нет. И без изврата ее не сделать.
2 Злопчинский
 
08.01.16
14:16
на инфостарте куч примеров прогресс-баров разных