Прогрессбар в 1С 7.7 средствами 1С 7.7

06.06.24

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

Создание и использование на формах в среде 1С 7.7 прогрессбара, индикатора, как в 1С 8.Х для контроля над длительными процессами. Реализовано средствами языка программирования 1С 7.7.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Прогрессбар в 1С 7.7 средствами 1С 7.7:
.zip 7,36Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

В языке программирования 1С 7.7 среди визуальных объектов интерфейса отсутствует прогрессбар, он же индикатор, имеющийся в 1С 8.Х. Его удобно использовать для контроля над «долгоиграющими» процессами, дабы пользователи убеждались, что процесс не завис.

Релиз платформы 1С 7.7  7.70.027, релиз и вид конфигурации не имеет значения, для любого релиза.

В общем-то, идея достаточно проста. На форме располагаются две одинаковой длины текстовые строки, состоящие из символов «|», одна из них располагается поверх другой со смещением на один символ. При этом они в совокупности выглядят, как широкая (в зависимости от размера шрифта) полоса заданного цвета. Длина зависит от количества символов и дизайна формы в целом. Теперь нужно обеспечить отображение количества символов в каждой строке, пропорциональное проценту выполненного объёма неких действий, например, вычислений, просмотра элементов справочника и т. п., производимых в цикле.

В принципе не обязательно задействовать цикл, если это не применимо. Просто после каждого действия выводить нужное количество символов в строках прогрессбара, что будет отображать прохождение неких этапов процесса в целом.

Единственная трудность состоит в том, чтобы как то вычислить 100% объёмы предстоящих действий, и затем, в процессе их выполнения определять текущий объём пройденного, чтобы рассчитать процент выполнения. Это зависит от конкретной задачи. На худой конец, можно задаться каким-нибудь числом, например, 1000, как полным объёмом, т. е. 100 процентами, а в цикле текущий объём выполнения выражать приращением некоего счётчика заданным шагом, например, 5. Это определяется при отладке, экспериментально, так сказать. В общем, всегда можно что-нибудь придумать, выкрутиться из положения.

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

И, разумеется, можно на форме разместить столько прогрессбаров, сколько нужно. Для управления каждым индикатором при этом использовать свои переменные. Это уже ваша фантазия, как разработчиков.

прогрессбар индикатор в 7.7

См. также

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

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

1 стартмани

30.03.2022    5019    2    igor7777    4    

6

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

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

15.12.2021    4901    72    Cерый    13    

7

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

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

1 стартмани

09.06.2020    7456    4    vap_pig    5    

4

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

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

1 стартмани

18.09.2019    13059    6    Jill    8    

3

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

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

1 стартмани

01.05.2018    23106    27    Gkmy    11    

5

Работа с интерфейсом Оптовая торговля Пользователь Платформа 1С v7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Картинки и дополнительное описание в номенклатуре ТиС (без изменения конфигурации).

1 стартмани

16.02.2018    14521    0    Jill    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2684 06.06.24 17:38 Сейчас в теме
В поcледних релизах Formex (197/198) есть метод для прогрессбара.
2. user1416274 2 07.06.24 13:15 Сейчас в теме
(1) Заменил FormEx на 197-й, полдня продолбался, так и не получилось попробовать их прогрессбар. Информация в als не даёт понять общую картину, получить и понять объектную модель всего, связанного с прогрессом. Хотел посмотреть, как же выглядит в действии, где его можно размещать... Описанный в публикации индикатор можно размещать, как нужно и удобно, сразу видишь общий вид интерфейса формы.
Продолжу попытки познать прогрессбар от FormEx.
3. CheBurator 2684 07.06.24 15:29 Сейчас в теме
(2)
Продолжу попытки познать прогрессбар от FormEx.

на главной странице дорекса есть ссылка форум теперь, там есть ветка целая про этот прогресс-бар
5. user1416274 2 07.06.24 16:31 Сейчас в теме
(3) А что такое "дорекс"? Я тут всего пару дней и, прошу прощения, к жаргону этого братства ещё не привык.
6. CheBurator 2684 07.06.24 16:37 Сейчас в теме
(5) забей в яндекс "скачать Formex"
4. user1416274 2 07.06.24 16:28 Сейчас в теме
Разобрался с прогрессбаром от FormEx. Понравился! Прогрессбар из публикации был придуман ещё в начале нулевых, возможно до появления FormEx и использовался в моих разработках.
7. vakham 21 10.06.24 13:36 Сейчас в теме
Если не ошибаюсь, то можно просто шрифт "с палочками" использовать.
8. user1416274 2 10.06.24 13:40 Сейчас в теме
9. jmw 61 13.06.24 04:55 Сейчас в теме
(1) Прогресс-бар добавили, а работу с ТЗ через РасширениеФормы поломалась…
Пришлось откатываться на старую версию ;–(
11. CheBurator 2684 13.06.24 05:18 Сейчас в теме
(9)
а работу с ТЗ через РасширениеФормы поломалась…

Конкретнее, пример "поломалось"
10. jmw 61 13.06.24 05:03 Сейчас в теме
(2) Вот пример:
Кидаешь на форму текст (буквочка Т в панели инструментов), растягиваешь его как нужно и обзываешь его текстПрогресс.

Процедура Сформировать()
    
    ФормЭкс = СоздатьОбъект("РасширениеФормы");
    Атр = ФормЭкс.ПолучитьАтрибут("текстПрогресс");
    оПрогресс = СоздатьОбъект("ПрогрессБар");
    оПрогресс.Создать(1, 100, Атр, 1);
    оПрогресс.Заголовок = "Выполнение процесса";
    
    Для ном = 1 По 100 Цикл
        оПрогресс.Шагнуть(1);
        
        спр = СоздатьОбъект("Справочник.Товары");
        спр.ВыбратьЭлементы();
        Пока спр.ПолучитьЭлемент() = 1 Цикл
        КонецЦикла;
    КонецЦикла;
    
КонецПроцедуры
Показать


Для индикации в строке состояния код такой:
    Панель = СоздатьОбъект("ПанельСтрокиСостояния");
    Панель.НайтиПоКоду(0);
    
    оПрогресс = СоздатьОбъект("ПрогрессБар");
    оПрогресс.Создать(1, 100, Панель, 1);
    оПрогресс.Заголовок = "Выполнение процесса";
    
    Для ном = 1 По 100 Цикл
        оПрогресс.Шагнуть(1);
        
        спр = СоздатьОбъект("Справочник.Товары");
        спр.ВыбратьЭлементы();
        Пока спр.ПолучитьЭлемент() = 1 Цикл
        КонецЦикла;
    КонецЦикла;
Показать
12. jmw 61 13.06.24 09:12 Сейчас в теме
(11) Вот так задаётся положение колонок:
        РФорма = СоздатьОбъект("РасширениеФормы");
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",1,1); // пометка
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",2,1); // пометка
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",3,1); // площадка
        РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",4,1); // хс
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",5,2); // время
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",6,1); // время
		РФорма.ПоложениеКолонкиТаблицы("тзМаршрутСледования",7,1); // время

В февральском релизе всё выглядит как на первом скриншоте, а должно как на втором
Прикрепленные файлы:
13. CheBurator 2684 13.06.24 13:28 Сейчас в теме
Сомневаюсь, проверю...
еще лучше если положил бы тестовую обработку с простой тестовой ТЗ...
14. user1416274 2 13.06.24 13:41 Сейчас в теме
(13) А в какой связи таблица значений (я правильно понял, что ТЗ - таб. значений?) и реализация прогрессбара публикации? Или комментарии и вопросы как-то перескочили сюда из другой статьи?
15. CheBurator 2684 13.06.24 16:00 Сейчас в теме
16. user1416274 2 13.06.24 16:07 Сейчас в теме
17. CheBurator 2684 13.06.24 22:08 Сейчас в теме
(12) Проверил, действительно, в 197 и 198 - не работает, в 196 - работает.
Повешу тикет, думаю Альф оперативно починит
Оставьте свое сообщение