Многим программистам прихходится сталкиваться с проблемой индикациии прогресса выполнения длительных процессов в 1С:Предприятии 7.7.
Каждый решает этот вопрос по-своему, ниже будет описание моего решения проблемы.
Индикатор на форме отображается с помощью элементов: рамка группы, текст. В элемент текст выводятся символы "|".
Как выводить символы, индицирующие процесс?
Рассмотрим пример. Пускай символов, индицирующих процесс, будет 3, а всего значение 7.
1. 7 - 3 = 4
2. 4 - 3 = 1
3. 1 - 3 = -2 (<= 0) выводим Х, -2 + 7 = 5
4. 5 - 3 = 2
5. 2 - 3 = -1 (<= 0) добавляем Х, получается ХХ, -1 + 7 = 6
6. 6 - 3 = 3
7. 3 - 3 = 0 (<= 0) ХХХ
Рассмотрим второй случай, символов, индицирующих процесс, 7, а всего значений 3.
1. 3 - 7 = -4 (<=0) выводим Х, -4 + 3 = -1 (<=0), выводим ХХ, -1 + 3 = 2
2. 2 - 7 = -5 (<=0) выводим ХХХ, -5 + 3 = -2 (<=0), выводим ХХХХ, -2 + 3 = 1
3. 1 - 7 = -6 (<=0) выводим ХХХХХ, -6 + 3 = -3 (<=0), выводим ХХХХХХ, -3 + 3 = 0 (<=0), выводим ХХХХХХХ
Перем Индикатор_КоличествоЗначений;
Перем Индикатор_ТекЗначение;
Перем Индикатор_КоличествоДелений;
//*******************************************
Процедура Индикатор_Инициализация(вхКоличествоЗначений)
Форма.Индикатор.Заголовок("");
Индикатор_КоличествоЗначений = вхКоличествоЗначений;
Индикатор_ТекЗначение = вхКоличествоЗначений;
Индикатор_КоличествоДелений = 255;
КонецПроцедуры
//*******************************************
Процедура Индикатор_Шаг()
Индикатор_ТекЗначение = Индикатор_ТекЗначение - Индикатор_КоличествоДелений;
Пока Индикатор_ТекЗначение <= 0 Цикл
Форма.Индикатор.Заголовок(Форма.Индикатор.Заголовок() + "|");
Индикатор_ТекЗначение = Индикатор_ТекЗначение + Индикатор_КоличествоЗначений;
КонецЦикла;
КонецПроцедуры
//*******************************************