Как создать индикатор в 1С:Предприятии 7.7

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

Многим программистам прихходится сталкиваться с проблемой индикациии прогресса выполнения длительных процессов в 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 Цикл
Форма.Индикатор.Заголовок(Форма.Индикатор.Заголовок() + "|");
Индикатор_ТекЗначение = Индикатор_ТекЗначение + Индикатор_КоличествоЗначений;
КонецЦикла;
КонецПроцедуры
//*******************************************

6 Comments

  1. Mopsik

    Упрощенно напоминает данную публикацию http://infostart.ru/public/14061/

    Reply
  2. newold2

    Более универсальны, быстрее работают и ранее сделаны: http://infostart.ru/public/139129/

    Reply
  3. HAMMER_59

    (2) newold2, как определили что быстрее работают? Замеры делали? Сильно сомневаюсь.

    На универсальность и не претендовал. Наоборот максимально простой вариант, без операций умножения и деления.

    Reply
  4. vakham

    Помницца, написал свою единственную статью про com-соединение. Раскритиковали за несовместимость с типовой версией. Мне стало стыдно, статью отключил.

    Вот за эту работу выше я бы умер от стыда.

    Reply
  5. jaroslav.h

    (4) vakham, какой то ты очень ссссиснительный человек, очень зависим от чего то слова, а автор норм, молодец, свою работу выложил, я забрал с радостью в еваерноут, а вдруг меня автора писанина натолкнет на свою мысль, а ты сссссисняйся дальше.

    Reply
  6. pakko

    Зачем это делать на форме, когда статусная строка всегда была более удобной. Мы такие же палочки рисовали с процентом выполнения, но только в статусной строке.

    + Ещё вариант. выводить палочки + процент выполнения + палочки.

    Это увеличивает ширину но как то |||||||| 50% |||||||| лучше смотрится,

    или |||||||| 50%

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *