Панель показателей (Dashboard)

image_pdfimage_print

Подумывая в очередной раз почему в 1С самые простые вещи становятся все сложнее и сложнее, начинаешь задумываться. Поругать в очередной раз поругать 1С. Зачем? А вот что я реально могу сделать полезного и что можно применить внутри 1С?

Я начинал свой жизненный путь с 1С 7.7, там было все просто и понятно. Конфигуратор для программиста, а предприятие для пользователя. Когда появилась 1С 8 и особенно компоновка данных, все стало сложнее и запутанней. Сложные настройки отчетов все больше и больше стали делаться внутри 1С-Предприятия. Структура выполнения отчета осталась в конфигураторе, а сами настройки показа стали храниться в базе и редактироваться в 1С Предприятии. И возникает вопрос, почему если структура данных уже задана в конфигураторе, зачем конфигуратор нужен для конфигурирования отчета? Надо переводить настройку и разработку отчетов в 1С-Предприятие. Конечно надо, ведь еще для баз данных в интернете конфигуратор как правило не доступен.

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

В настройки каждого такого элемента имеем:
1. Что раcсчитываем — код 1С. Пример:
code1C

2. Как показываем — код вывода. Пример:
codeDraw

3. Расшифровка — код 1С, как обрабатываем нажатие на поле. Пример:
codeExplain
Как видно параметры из кода 1С передаются в предопределенную структуру ‘Результат’. В нее можно передавать только примитивные данные, но это достаточным чтобы отобразить любые сложные данные. Внутри кода вывода параметры легко добавляются в квадратных скобках. Кроме них у нас есть предопределенные параметры для вывода:

  1. координаты элемента [x], [y]
  2. размеры элемента [w],[h]
  3. свойства по умолчанию [font]: «Courier New, Tahoma» и [anchor]: «middle»

Вот так с помощью не хитрых приемов можно заставить 1С показывать произвольную графику.

Выше показан пример со сложным линейным графиком. Но для начала мы начнем с базового элемента — «текста вписанного в прямоугольник». Назовем его «Информация». Данный элементы будет выбираться по умолчанию для вставки в новое место, поэтому рассмотрим его подробно.

  1. Шаблон кода 1С у него состоит из установки параметров текста:

    Расчет необходимого значения Вы сюда добавляете в начало текста. Это произвольный код 1с, можете добавлять  в него все, что угодно Запросы, Циклы и т.д если это необходимо.
  2. Шаблон кода вывода, я объясню построчно

    Рисуем прямоугольник цветом bgcolor и размерами элемента

    Рисуем поверх текст цветом color

    Выравниваем текст согласно привязки

    Если размер текста больше выделенного поля — уменьшаем пропорционально размер шрифта.
  3. Шаблон расшифровки пустой. Свободен для творчества.

 
Простой пример использования Вы можете получить нажав кнопку «Демо» на форме настройки.

Вывод:
Кратко систематизируем философию «Панели показателей»:
1. Что рисуем — настраивается в форме настройки.
2. Все всегда отображается полностью, без прокрутки и скрытия.
3. Элементы обычно изменяют размер в зависимости от размеров самой панели.

Обработки можно скачать http://infostart.ru/public/445859/