Как отобразить текущее время в клиенте 1С при работе в терминальном режиме

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При использовании 1С в полноэкранном терминальном режиме (RDP) пользователи часто сталкиваются с тем, что стандартная панель задач Windows с часами оказывается скрытой. В сервисных центрах, на складах и производствах постоянный доступ к текущему времени критически важен для оперативной работы. Разберем основные способы решения этой задачи как средствами самой платформы 1С, так и настройками инфраструктуры.

Способ 1. Вывод времени в заголовок системы через обработчик ожидания

Рассмотрим наименее затратный метод, который не требует постоянного использования рабочего пространства формы. Мы можем динамически обновлять заголовок главного окна 1С, выводя туда текущие часы и минуты. Данное решение можно реализовать даже без доработки основной конфигурации — с помощью внешней обработки с автозапуском.

Проанализируем программный код, реализующий данный подход:


Процедура ОбновитьВремяВЗаголовке() Экспорт
    ТекущееВремяСтрокой = Формат(ТекущаяДата(), "ДФ=ЧЧ:мм:сс");
    ЗаголовокСистемы("1С:Предприятие (" + ТекущееВремяСтрокой + ")");
КонецПроцедуры

Процедура ПриОткрытии()
    ПодключитьОбработчикОжидания("ОбновитьВремяВЗаголовке", 1);
КонецПроцедуры

Посмотрим, как работает данный механизм:

  1. Функция ПодключитьОбработчикОжидания() запускает регулярное выполнение процедуры с заданным интервалом (в секундах).
  2. Функция ТекущаяДата() запрашивает системное время с терминального сервера, обеспечивая единое точное время у всех пользователей.
  3. Процедура ЗаголовокСистемы() меняет надпись в самой верхней шапке окна 1С, где время всегда остается на виду.

Способ 2. Отдельная немодальная форма-виджет

Если требуется сделать часы более крупными и заметными, разберем вариант с созданием компактной внешней обработки. В ней создается немодальная форма без рамок, которая размещается в свободном углу рабочего стола 1С. Время выводится в элемент Надпись и обновляется по аналогичному таймеру.

Важные особенности и ограничения платформы 1С

При реализации часов средствами платформы необходимо учитывать следующие нюансы:

  1. Остановка таймера в модальном режиме: Обработчик ожидания срабатывает только тогда, когда платформа находится в состоянии покоя. При открытии модальных окон (диалоги вопросов, предупреждений, модальный выбор) или при проведении тяжелых документов часы временно замирают до закрытия окна.
  2. Сброс фокуса ввода: Не рекомендуется обновлять реквизиты активных форм каждую секунду, так как это может сбрасывать текущий ввод текста пользователем. Изменение ЗаголовокСистемы() с этой точки зрения полностью безопасно, либо интервал обновления элементов формы стоит увеличить до 30–60 секунд.
  3. Замещение системных сообщений: Использовать метод Состояние() для отображения постоянных часов неэффективно, так как любые системные действия платформы моментально перекрывают выведенную строку.

Способ 3. Альтернативные решения на уровне ОС и RDP

Если нет возможности изменять конфигурацию или запускать внешние обработки в 1С, проанализируем варианты настройки терминального подключения:

  1. Настройка бесшовного режима (RemoteApp): Начиная с Windows Server 2008, доступна публикация приложений через RemoteApp. В этом режиме окно 1С отображается поверх локального рабочего стола пользователя, сохраняя доступ к локальной панели задач с часами.
  2. Изменение разрешения RDP-клиента: В настройках RDP-подключения (файл .rdp) вместо полноэкранного режима можно задать фиксированное разрешение (например, уменьшив высоту окна на 30–40 пикселей). Это позволит оставить нижнюю панель задач локального ПК с часами всегда видимой.
  3. Физические и сторонние решения: В качестве простых и надежных альтернатив часто применяют сторонние утилиты плавающих часов (с параметром Always on Top / Поверх всех окон), запускаемые в сеансе сервера, либо физические электронные часы.
← На главную