"Сверхбыстрый" многофункциональный Прогресс-Индикатор в 1с7.

06.06.12

Разработка - Работа с интерфейсом

При каждом выводе на экран Индикатор рассчитывает следующий шаг вывода, поэтому не замедляет сам процесс (примерно в 10 раз быстрее известных мне).
Вывод в заданную текстовую строку или в поле "Состояние()" (сам решает куда).
Работает и при неизвестном полном количестве шагов (просто передаем номер шага).
В ходе процесса Индикатору можно передавать новые заголовки (2 параметром).
Выводит Заголовок, номер шага, %, прошедшее время, прогнозируемое время.

Скачать файлы

Наименование Файл Версия Размер
Форма демонстрации и сравнения Прогресс-Индикаторов
.zip 23,40Kb
30
.zip 23,40Kb 30 Скачать

Несмотря на кажущуюся "громоздкость" программа работает исключительно быстро. Это достигается тем, что "медленная" процедура вывода на экран производиться не на каждом шаге, а на определенном, рассчитываемом при каждом выводе.
При неизвестном полном количестве шагов вывод производиться не менее чем через 1 секунду от прошлого вывода - на каждом шаге сравнивается ТекущееВремя() с рассчитанным. Данный подход позволяет не задавать индикатору , через какое количество шагов производить вывод.
Индикатор можно использовать для вывода сообщения - глИндикатор(СтрСообщения).

Индикатор прост в обращении - в ходе Процесса достаточно передавать только номер шага, или номер шага и, вторым параметром, Новый Заголовок (любое количество раз), если необходимо изменить Заголовок Индикатора.

Если в Форме предусмотрено текстовое поле "ПолеТекстИндикатор" - индикатор выводится в это поле; иначе - в строку "Состояние".


Возможны 3 режима вызова:

1. Если Парам1 не является числом - значит в переменной Парам1 передается заглавие линейки Индикатора, а в переменной Парам2 передается заранее вычисленное полное количество каких-либо действий (операций, шагов) процесса, отображаемого индикатором.
В таком режиме процедура вызывается один раз перед началом процесса. Если количество шагов неизвестно - режим необязательный.
В переменную "Конт" передается контекст текущей формы (для случая, когда индикатор расположен в глобальном модуле и в форме определено поле для вывода индикатора - "ПолеТекстИндикатор").

2. В переменную "Парам1" передается текущее количество шагов отображаемого процесса (>0), а в переменную "Парам2" можно передавать текущий заголовок Индикатора. В таком режиме процедура вызывается на каждом шаге процесса

3. Вызов без параметров ("глИндикатор()") - очистка поля (или строки "Состояние()" и всех сопутствующих переменных.

Для работы Индикатора необходимо задать переменные:

Перем ИндикаторЗагл; //Экспорт
Перем ИндикаторПолнКолич; //Экспорт
Перем ИндикаторВремяНач; //Экспорт
Перем ИндикаторТекКолич; //Экспорт
Перем ИндикаторКонтекст; //Экспорт //Нужна, если Индикатор расположен в глобальном модуле и в форме предусмотрено поле "ПолеТекстИндикатор";

Индикатор можно "как есть" вместе с назначением переменных переписывать в глобальный модуль - будет работать.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

В данной демонстрационной обработке для сравнения скорости работы использовались мои функции времени
(//infostart.ru/public/128790/). Также использовались два Прогресс-Индикатора от ded00786 (//infostart.ru/public/15740/).
Думаю, авторских прав не нарушил, так как в текст обработок не вносил изменений, кроме фиксации времени начала и завершения.
Есть ссылка на данные обработки. Автор, прошу пардону! У Вас почти все есть для многократного возрастания скорости.
Небольшие изменения программ...
Сами посмотрите? Или уже неинтересно?..

См. также

1С:Фото номенклатуры 7.7 - решение для работы с фотографиями номенклатуры в 1С:7.7 (включая формат PNG)

Работа с интерфейсом Логистика, склад и ТМЦ Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5162    1    45    

3

WebЦвета для 1с77 FormEx

Инструментарий разработчика Работа с интерфейсом Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    4544    2    igor7777    4    

5

К привязкам элементов форм (1С 7.7, FormEx)

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4467    62    Cерый    13    

6

Выбор цвета для 1С 7.7

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.

1 стартмани

09.06.2020    7027    3    vap_pig    5    

3

Производственный календарь для 1С 7.7

Учет рабочего времени Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.

1 стартмани

18.09.2019    12580    6    Jill    8    

3

Альтернативная обработка "Выбор периода"

Работа с интерфейсом Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Альтернативная обработка ввода периода для 1С 7.7.

1 стартмани

27.03.2019    6588    3    v.a.n-    11    

2

Несколько табличных частей в 1С:7.7 - это просто

Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

При программировании на платформе V7 достаточно часто возникает задача создать несколько табличных частей документа (или справочника). Традиционно эта задача имеет несколько решений..

1 стартмани

01.05.2018    22421    27    Gkmy    11    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. smitti911 06.06.12 00:10 Сейчас в теме
Отличная работа ! Только замечен один баг(исправте меня если я ошыбаюсь). Поместил процедуру глИндикатор в глоб.модуль, сделал все переменные Экспорт. Индикатор работает на ура но только не очищается текстовое поле на форме "ПолеТекстИндикатор" после завершения цикла

Процедура глИндикатор(Парам1="",Парам2="",Конт="") Экспорт
Перем Ш,И1,И2,Ин,В1,В2,В3,С,ТекКолич,Стр,Н;
Если (Парам1="") и (Парам2="") тогда //Очистка
Сообщить("Очистка индикатора");
// ИндикаторЗагл="";ИндикаторПолнКолич=0;ИндикаторВремяНач=0;ИндикаторТекКолич=0; //ИндикаторКонтекст=""; Стр="";
ИндикаторЗагл="";ИндикаторПолнКолич=0;ИндикаторВремяНач=0;ИндикаторТекКолич=0; ИндикаторКонтекст=Конт; Стр="";
ИначеЕсли Число(Парам1)=0 тогда //передано заглавие и полное количество. Начальные установки.......

ИндикаторКонтекст=Конт; - вот так работает :)
2. smitti911 06.06.12 10:14 Сейчас в теме
И тогда для очистки "ПолеТекстИндикатор" на форме вызов будет глИндикатор(,,Контекст)
3. newold2 124 06.06.12 11:05 Сейчас в теме
(2) smitti911,спасибо. Предлагаю при очистке переменную ИндикаторКонтекст вообще не очищать.
Тогда переназначение Контекста будет только при вызове Индикатора перед началом процесса, при прямом его (Конт) задании.
Более того, в этом случае для одной и той же формы Конт можно задавать только при первом вызове Индикатора.
Вот такие соображения. Попробуйте, я тоже посмотрю и выложу поправку.
4. smitti911 06.06.12 13:35 Сейчас в теме
"Предлагаю при очистке переменную ИндикаторКонтекст вообще не очищать" - Попробывал, работает ;)

Меня еще интересует возможность вложенной индикации - есть например цикл в цикле и надо чтобы на форме отображался процес главного цикла одним индикатором а вложенного вторым. Етот второй индикатор может быть на форме или в состояние(). У меня есть обработка в которой документы реализации порождают док. калькуляции , хочется красиво отображать оба процесса ) Есть идеи по этому поводу ? ))
5. newold2 124 06.06.12 14:20 Сейчас в теме
(4) smitti911, еще раз спасибо, теперь за мысль о развитии! Есть соображения, как сделать каскад вложенных
индикаторов. Думаю, как бы сделать красивее. Многое придется доработать, но думаю в скорости потери не будет.
Скорее всего это будет отдельная разработка.
6. smitti911 06.06.12 14:26 Сейчас в теме
7. newold2 124 06.06.12 19:00 Сейчас в теме
(6) smitti911,готово. Нашел поистине изумительное решение, как заставить на форме работать одновременно
любое(!) количество моих Индикаторов.В любых вложенных циклах, каскадом и в любых слоях формы.
Тебе, как активизатору, могу скинуть готовый вариант - говори куда. Индикатор вместе с переменными можно
"как есть" записывать в гл.модуль - будет работать. При одном индикаторе на форме - все, как в старом, только
Контекст идет теперь четвертым параметром. Третий параметр - Номер Индикатора (при одном Индикаторе не нужен).
Оформлять новую публикацию пока нет времени, да и Star Помощник Администратора Altair777 любит ставить мне (-)
за размытые Скриншоты.
8. smitti911 13.06.12 10:50 Сейчас в теме
Все работает на УРА !!! Автору спасибо .
Оставьте свое сообщение