При организации удаленной работы сотрудников с базами данных 1С часто используется технология RemoteApp на базе службы удаленных рабочих столов (RDS) Windows Server. Это позволяет пользователям запускать 1С в привычном оконном режиме, как будто программа установлена локально на их компьютерах. Однако при такой схеме работы администраторы и пользователи нередко сталкиваются со специфическими графическими багами.
Один из самых раздражающих и труднодиагностируемых дефектов — исчезновение или невидимость текстового курсора (указателя выделения текста I-beam) при его остановке. В этой статье мы подробно разберем, почему возникает этот сбой, и рассмотрим комплексные методы его решения: от простых правок конфигурационных файлов до тонкой настройки операционной системы.
Давайте проанализируем поведение системы в момент возникновения ошибки. Когда пользователь наводит указатель мыши на любое текстовое поле в 1С (например, поле ввода контрагента, артикула, числового значения или комментария), стандартная стрелка мыши должна смениться на текстовый указатель, который выглядит как вертикальная черта (латинская буква "I").
При возникновении бага этот текстовый курсор ведет себя следующим образом:
Эта проблема связана со спецификой отрисовки интерфейса Windows через протокол RDP. При переключении указателя мыши со стрелки на тонкий текстовый маркер графическая подсистема Windows (Desktop Window Manager, или DWM) на стороне терминального сервера или клиента некорректно обрабатывает анимацию перехода и масштабирование (DPI). В результате статический монохромный курсор шириной в один пиксель перестает рендериться удаленным сеансом и фактически становится невидимым, пока не начнется новое аппаратное прерывание от движения мыши.
Давайте по шагам разберем проверенные способы решения этой проблемы.
Выясним первопричину сбоя на стороне клиента. Очень часто этот графический баг проявляется на компьютерах под управлением устаревших версий или сборок Windows 10 (например, сборки 1511, 1607, 1809 и аналогичные).
В старых версиях Windows 10 механизмы масштабирования графики в RDP-клиенте (mstsc.exe) имели ряд архитектурных недоработок. Обновление операционной системы на клиентском рабочем месте до актуальной сборки Windows 10 или Windows 11 полностью устраняет проблему на уровне ядра ОС и графических библиотек.
Что необходимо сделать:
Win + I).После перезагрузки и обновления графического стека Windows проблема с исчезновением курсора в сессиях RemoteApp, как правило, полностью исчезает.
Если оперативно обновить операционную систему на клиентах не представляется возможным (например, в организации действует строгий регламент обновлений или используются тонкие клиенты с фиксированной прошивкой), мы можем решить проблему с помощью изменения параметров подключения в ярлыке RemoteApp.
В конфигурационных файлах RDP (с расширением .rdp), которые генерируются сервером для запуска RemoteApp, есть скрытые директивы оптимизации графики. Нам потребуется отключить анимацию курсора и эффекты переходов меню, добавив специальный флаг.
Выполним следующие действия по шагам:
.rdp.
disable cursor setting:i:1
Этот параметр принудительно запрещает удаленному серверу передавать на клиент сложную анимацию указателей и графические эффекты затухания. Среда удаленного рабочего стола начинает использовать упрощенную схему отрисовки курсоров, что исключает их пропадание при остановке мыши.
Сохраните изменения в Блокноте и запустите сессию 1С заново. Обратите внимание: перед повторным запуском обязательно завершите зависший сеанс пользователя на RDS-сервере (Logoff), чтобы новые параметры применились к новой сессии. Для управления активными подключениями прямо из интерфейса можно использовать диспетчер сеансов удаленных рабочих столов.
Если проблема сохраняется, мы можем решить ее путем принудительной замены стандартного текстового курсора на его утолщенную (более контрастную) версию. В составе операционной системы Windows поставляется специальный курсор под названием beam_r.cur. Он шире стандартного и стабильно отображается в любых терминальных сессиях.
Поскольку пользователи работают через RemoteApp, эти изменения необходимо выполнить на стороне удаленного терминального сервера под учетной записью проблемного пользователя (или настроить это глобально через групповые политики Active Directory).
Рассмотрим процесс ручной настройки подробнее:
Win + R, введите команду main.cpl и нажмите клавишу Enter. Откроется классическое окно «Свойства: Мышь».beam_r.cur (он также может называться просто beam_r) и нажмите кнопку «Открыть».Этот курсор имеет более выраженные засечки сверху и снизу и увеличенную толщину центральной линии. Графический процессор сервера гарантированно рендерит такой указатель, и он больше не будет исчезать при остановке мыши в полях ввода 1С.
Эффект полупрозрачной тени под указателем мыши требует от видеокарты и процессора постоянного пересчета альфа-смешивания пикселей. В сессиях RemoteApp отрисовка тени под курсором часто вызывает сбои позиционирования и мерцание графических элементов.
Давайте отключим этот эффект на терминальном сервере в сеансе пользователя:
main.cpl (вкладка «Указатели»).Отключение тени снижает накладные расходы на отрисовку курсора и часто решает проблемы с его некорректным поведением.
Это неочевидный, но крайне эффективный «костыль», который помогает в самых запущенных случаях. Включение данной функции на стороне клиента или сервера переводит логику отрисовки курсоров операционной системы с аппаратного ускорения (силами видеокарты) на чисто программный рендеринг.
Разберем, как активировать этот режим:
Вам вовсе не обязательно использовать цифровую клавиатуру для перемещения курсора. Сам факт активации этой опции заставляет ОС непрерывно перерисовывать курсор программным методом на уровне ядра Windows, что мгновенно возвращает видимость пропавшему указателю в 1С.
Еще один обходной путь, который принудительно задействует альтернативный алгоритм прорисовки указателя мыши в системе:
main.cpl и перейдите на вкладку «Параметры указателя» (Pointer Options).В этом режиме визуальный шлейф за курсором практически незаметен для человеческого глаза и не мешает работе, но операционная система начинает использовать технологию постоянного обновления области экрана под курсором, предотвращая его исчезновение.
Мы рассмотрели все доступные и проверенные методы борьбы с исчезающим текстовым курсором в 1С при работе через RemoteApp. Для удобства администрирования рекомендуется придерживаться следующего алгоритма действий:
disable cursor setting:i:1 в ваш RDP-файл запуска 1С.beam_r.cur и отключите тени указателя.Эти действия помогут вернуть комфорт при заполнении документов и справочников в 1С:Предприятии и избавят пользователей от раздражающего графического бага.