Прогресс бар в строке состояния Для наглядного представления продолжительного процесса выполнения обработки данных можно реализовать строку прогресса в строке состояния при помощи псевдографики.
Код 1C v 7.x
Процедура ОБработкаДанных()
РазмерИндикатора = ТЗ. КоличествоСтрок( ) ;
Индикатор = "" ;
Для А = 1 По 20 Цикл
Индикатор = Индикатор + " " ;
КонецЦикла ;
Счетчик = 0 ;
ТЗ. ВыбратьСтроки( ) ;
Пока ТЗ. ПолуичтьСтроку( ) = 1 Цикл
Счетчик = Счетчик + 1 ;
Показатель = Цел( Счетчик/ РазмерИндикатора * 100 ) ;
Если Цел( Показатель/ 5 ) = Показатель/ 5 Тогда
Индикатор = "" ;
Для А = 1 По 20 Цикл
Индикатор = Индикатор + ? ( А< = Показатель/ 5 , Симв( 127 ) , " " ) ;
КонецЦикла ;
Состояние( Индикатор + "| Анализ адресов; " + Показатель + "%" ) ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Код 1C v 7.x // ПрогрессБар в строке состояния. Маленький, шустренький
Процедура глПрогрессор(Сообщение,Всего,Текущ) Экспорт
Если Всего>0 Тогда
Процент=Цел(Текущ/Всего * 100);
Если Процент > Цел((Текущ-1)/Всего * 100) Тогда
Состояние(Сообщение + ": "+Формат(Процент,"Ч(0)2")+"% "+СтрЗаменить(Формат("","С"+Мин(99,Процент))," ","l")+СтрЗаменить(Формат("","С"+Мин(99,99-Процент))," ","'")+"l");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Вот пример использования:
Для ин=1 По 100000 Цикл
глПрогрессор("Тест",100000,ин);
КонецЦикла;
Категория:
Полезные, Универсальные Функции