Многим программистам прихходится сталкиваться с проблемой индикациии прогресса выполнения длительных процессов в 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 Цикл
Форма.Индикатор.Заголовок(Форма.Индикатор.Заголовок() + "|");
Индикатор_ТекЗначение = Индикатор_ТекЗначение + Индикатор_КоличествоЗначений;
КонецЦикла;
КонецПроцедуры
//*******************************************
Упрощенно напоминает данную публикациюhttp://infostart.ru/public/14061/
Более универсальны, быстрее работают и ранее сделаны:http://infostart.ru/public/139129/
(2) newold2, как определили что быстрее работают? Замеры делали? Сильно сомневаюсь.
На универсальность и не претендовал. Наоборот максимально простой вариант, без операций умножения и деления.
Помницца, написал свою единственную статью про com-соединение. Раскритиковали за несовместимость с типовой версией. Мне стало стыдно, статью отключил.
Вот за эту работу выше я бы умер от стыда.
(4) vakham, какой то ты очень ссссиснительный человек, очень зависим от чего то слова, а автор норм, молодец, свою работу выложил, я забрал с радостью в еваерноут, а вдруг меня автора писанина натолкнет на свою мысль, а ты сссссисняйся дальше.
Зачем это делать на форме, когда статусная строка всегда была более удобной. Мы такие же палочки рисовали с процентом выполнения, но только в статусной строке.
+ Ещё вариант. выводить палочки + процент выполнения + палочки.
Это увеличивает ширину но как то |||||||| 50% |||||||| лучше смотрится,
или |||||||| 50%