Прогресс бар в строке состояния Для
наглядного представления продолжительного процесса выполнения обработки данных можно реализовать строку прогресса в строке состояния при помощи псевдографики.
Код 1C v 7.x //Пример процедуры обработки таблицы значений ТЗ
//Размер прогрессора задан в 20 символов (5%)
Процедура ОБработкаДанных()
РазмерИндикатора = ТЗ.КоличествоСтрок();
Индикатор = "";
Для А = 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,ин);
КонецЦикла;
Категория:
Полезные, Универсальные Функции