При разработке отчетов и обработок, отображающих выполнение планов по сотрудникам или торговым точкам, часто возникает потребность сделать данные более наглядными. Вместо простых цифр хочется видеть визуальный индикатор — прогресс-бар. В 1С:Предприятии встраивание сложных диаграмм непосредственно в каждую ячейку таблицы формы — не лучшая практика, так как это значительно замедляет работу интерфейса при прокрутке. Рассмотрим, как реализовать визуализацию выполнения плана профессионально и эффективно.
Самый простой и эффективный способ — использование Условного оформления. Мы можем менять цвет фона ячейки или текста в зависимости от значения процента выполнения. Это позволяет пользователю мгновенно оценить ситуацию, не прибегая к сложным графическим объектам. Для быстрого переноса настроенных правил в программный код можно использовать обработку для генерации кода условного оформления формы.
Чтобы реализовать эффект заполнения, выполним следующие действия:
ТаблицеЗначений колонку с процентом выполнения.Этот метод не требует программного вмешательства в отрисовку каждого элемента, а выполняется силами платформы, что обеспечивает высокую скорость работы.
Если задача требует именно полосового индикатора, но использование ДиаграммыГанта избыточно, мы можем воспользоваться методом «сегментированного заполнения». Суть заключается в том, чтобы разбить визуальное пространство на несколько соседних ячеек.
Рассмотрим логику реализации:
Для управления цветом фона в модуле формы можно использовать следующий подход:
Процедура ПриВыводеСтрокиНаСервере(СтрокаДанных, СтрокаТаблицы)
Процент = СтрокаДанных.ПроцентВыполнения;
// Окрашиваем колонки сегментов в зависимости от процента
Если Процент >= 25 Тогда
СтрокаТаблицы.Оформление.Ячейка1.ЦветФона = WebЦвета.Зеленый;
КонецЕсли;
Если Процент >= 50 Тогда
СтрокаТаблицы.Оформление.Ячейка2.ЦветФона = WebЦвета.Зеленый;
КонецЕсли;
КонецПроцедуры
Для создания «дизайнерского» вида мы рекомендуем использовать Картинки. Платформа 1С позволяет выводить в ячейку колонки картинку, которая может меняться динамически. Вы можете подготовить набор графических файлов: пустой бар, заполненный на 25%, 50%, 75% и 100%.
При выводе строки достаточно присвоить соответствующую картинку ячейке таблицы на основе вычисленного значения. Это выглядит эстетично и практически не нагружает систему при отрисовке списка.
Если же вам необходим «настоящий» прогресс-бар с анимацией и градиентами, воспользуйтесь элементом формы ПолеHTMLДокумента. Внутри такого поля можно разместить полноценный HTML/CSS код, который будет отрисовывать любой прогресс-бар.
Проанализируем процесс интеграции:
div в зависимости от данных строки.УстановитьТекст.Такой подход обеспечивает максимальную гибкость дизайна, но требует знаний в верстке. Использование ПолеHTMLДокумента позволяет создавать по-настоящему современные интерфейсы, которые выглядят как часть веб-приложения.
При выборе метода визуализации прогресса важно соблюдать баланс между красотой и производительностью. Мы рекомендуем:
ТаблицыЗначений, чтобы избежать «подвисаний» интерфейса при работе пользователя с большими списками.Разберем ситуацию еще раз: самое важное — это удобство для пользователя. Если заливка фона ячейки цветом позволяет менеджеру быстро понять, кто из кассиров не выполнил план, это решение будет эффективнее, чем сложная графическая анимация.