Добрый день, Коллеги!
Задача
Необходимо на терминал вывести в заголовок "цифровые часы".
Проблема
Для реализации использовал реквизит формы «Время» (состав даты – время) и обработчик ожидания, который раз в секунду обновлял время. Программный код ниже.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Время = ТекущаяДата();
ПодключитьОбработчикОжидания("ОбновитьВремя", 1);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьВремя()
Время = ТекущаяДата();
КонецПроцедуры
Но так как на терминале используются поля для ввода данных, при попытке что-либо в них написать наблюдалось странное поведение – вводимые данные не сохранялись, и неожиданно обнулялась вводимая информация.
Решение
Причина была в обработчике ожидания. Решением проблемы является использование поля HTML и вывода времени в него. Демонстрация ниже.
Разработка
Алгоритм вывода времени
Создаем реквизит «ВремяХТМЛ» тип строка (0). Переносим его на форму и настраиваем . Необходимо указать вид, отключить заголовок и цвет рамочки для красоты сделать схожим с цветом формы, а вертикальную полосу прокрутки уберём позже.
Реквизит и элемент формы готовы . Теперь необходим алгоритм. В интернете не сложно найти готовый javascript, останется только настроить css стили.
Определяем при старте формы вызов функции по формированию времени:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УстановитьВремяХТМЛ();
КонецПроцедуры
Формируем html-код страницы (уже здесь и пропишем скрытие вертикальной полосы прокрутки):
Цвет часов вынесен отдельно и мы можем привести заголовок к общему стилю.
PS:
Так же можно вывести на форму аналоговые часы. Практически готовый алгоритм html-страницы можно взять на сайте https://codepen.io/, демонстрация одного из алгоритмов ниже.
Всем удачного кодинга!
//+++ Обновление публикации от 31.08.2020 г.
// Посмотрите новую статью "Динамическое формирование интерфейса"
//--- Обновление публикации от 31.08.2020 г.