Пользовательские индикаторы
Пользовательские индикаторы предназначены для отображения дополнительной текстовой информации, формируемой на прикладном уровне.
Поддерживается создание до двух индикаторов в строке состояния и одного - в панели инструментов. В строке состояния пользовательские индикаторы выглядят подобно системным (Отчетный период и т.д) и располагаются слева от них. Индикатор в панели инструментов занимает все свободное от кнопок место и может выводить текст с выравниванием влево, по центру или вправо. Разные виды индикаторов поддерживают различные наборы параметров, отвечающих за внешний вид.
При создании индикатора указывается произвольное имя, которое впоследствии может использоваться для обновления и удаления индикатора. Все действия с пользовательскими индикаторами выполняются функцией КОМАНДА_ИНДИКАТОРА.
При создании или обновлении индикатора может указываться период обновления. Если указан не нулевой период, то обновление индикатора происходит по таймеру путем вызова события "Обновление индикатора". В функцию-обработчик события передается имя индикатора. В функции-обработчике вычисляется текст и другие параметры, подлежащие обновлению, и вызывается КОМАНДА_ИНДИКАТОРА("UPDATE", ...). Если период не задан, то обновление происходит при явном вызове КОМАНДА_ИНДИКАТОРА("UPDATE", ...) в произвольном коде бланков, типовых операций и т.д. Вызов КОМАНДА_ИНДИКАТОРА("UPDATE", ...) в любом коде, даже при использовании таймера, выполняет внеочередное обновление и сбрасывает таймер.
Создание пользовательских индикаторов может выполняться в обработчике события "Вход". Возможно, с учетом прикладных настроек. Удалять пользовательские индикаторы в событии "Выход" нет необходимости, они удаляются автоматически. Удаление индикаторов может понадобиться при реализации на прикладном уровне редактирования конечным пользователем набора видимых индикаторов.
Пример
Самым простым примером постоянно меняющейся информации является текущее время. Сделаем индикацию текущего времени в панели инструментов текстом зеленого цвета - "Зеленые часы" и в строке состояния - просто "Часы". Для обновления индикаторов зададим период в 1 секунду.
Индикация времени в панели инструментов:

Индикация времени в строке состояния:

Файл EVENTS.IBL, который содержит обработчики глобальных событий:
// обработчик события "Вход" ФУНКЦИЯ Вход СОЗДАТЬ(сп, ТИП_СПИСОК) // создаем индикатор в панели инструментов с текстом // зеленого цвета и выравниванием вправо сп.ДОБАВИТЬ("kind=ToolBar") сп.ДОБАВИТЬ("period=1000") // обновление - раз в секунду сп.ДОБАВИТЬ("alignment=Right") сп.ДОБАВИТЬ("color=0,128,0") сп.ДОБАВИТЬ("font=Times New Roman, 14") КОМАНДА_ИНДИКАТОРА("CREATE", "ЗеленыеЧасы", сп) сп.ОЧИСТИТЬ // создаем индикатор в строке состояния сп.ДОБАВИТЬ("kind=StatusBar1") // 1-ый индикатор из двух сп.ДОБАВИТЬ("period=1000") // обновление - раз в секунду сп.ДОБАВИТЬ("stretch=1") // по длине текста КОМАНДА_ИНДИКАТОРА("CREATE", "Часы", сп) КОНЕЦ_ФУНКЦИИ // обработчик события "Обновление индикатора" ФУНКЦИЯ ОбновлениеИндикатора(ТИП_СТРОКА: имя) ЕСЛИ (имя = "Часы") ИЛИ (имя = "ЗеленыеЧасы") ТО СОЗДАТЬ(сп, ТИП_СПИСОК) сп.ДОБАВИТЬ("text=" + СТР(ВРЕМЯ_ТЕК)) КОМАНДА_ИНДИКАТОРА("UPDATE", имя, сп) КОНЕЦ_ЕСЛИ КОНЕЦ_ФУНКЦИИ
Файл IB.INI, который содержит настройку событий:
[AppFunctions] InitFunc=["EVENTS.IBL"].Вход Indicator=["EVENTS.IBL"].ОбновлениеИндикатора