Как исправить мелкий шрифт в 1С при запуске через RemoteApp на Windows Server 2012 R2?

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

Разберем распространенную проблему, с которой часто сталкиваются системные администраторы и пользователи при работе в программных продуктах 1С:Предприятие через механизм RemoteApp. При запуске конфигураций на обычных формах (таких как 1С:Управление торговлей 10.3) с клиентского устройства под управлением Windows 10 с высоким разрешением экрана (например, Full HD 1920x1080) и системным масштабом 125%, шрифты и элементы управления в 1С становятся слишком мелкими и трудночитаемыми.

Выясним причину такого поведения системы. Дело в том, что в связке операционных систем Windows 10 и Windows Server 2012 R2 по умолчанию функционирует механизм динамической синхронизации DPI (Dynamic DPI Sync). Сервер пытается автоматически применить масштаб клиентского устройства к сессии терминального пользователя. Однако платформа 1С (особенно версии с обычными формами) некорректно отрабатывает динамическое масштабирование «на лету». Это приводит к тому, что элементы интерфейса съезжают, а шрифты отображаются некорректно.

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

Способ 1. Настройка масштабирования через полноценный сеанс RDP

Рассмотрим самый простой способ, который не требует изменения системных файлов и глубокого редактирования реестра. Нам понадобится единоразово настроить масштаб в профиле пользователя непосредственно на самом сервере.

Разберем этот процесс по шагам:

  1. Запустите стандартное подключение к удаленному рабочему столу (утилита mstsc.exe).
  2. Подключитесь к вашему серверу Windows Server 2012 R2 под учетной записью того пользователя, у которого в RemoteApp отображаются мелкие шрифты. Важно войти именно в режиме полноценного рабочего стола, а не через ярлык RemoteApp.
  3. Нажмите правой кнопкой мыши по пустому месту на рабочем столе сервера и выберите пункт Разрешение экрана.
  4. В открывшемся окне перейдите по ссылке Изменение размеров текста и других элементов.
  5. Установите флажок напротив опции «Я хочу выбрать один масштаб для всех дисплеев» и выберите масштаб 125% (или другой масштаб, соответствующий настройкам на физическом ноутбуке пользователя).
  6. Примените изменения. Система предложит выйти из учетной записи для применения новых настроек (выполнить Logoff). Подтвердите действие.
  7. После этого запустите подключение 1С через ваш привычный ярлык RemoteApp. Программа применит настройки масштабирования из сохраненного профиля пользователя на сервере, и шрифты станут крупными.

Способ 2. Отключение наследования масштаба клиента на сервере через реестр

Если пользователей на сервере много, настраивать профиль каждого вручную крайне неудобно. Рассмотрим, как решить проблему глобально на стороне сервера с помощью системного реестра. Мы заставим Windows Server игнорировать DPI клиентского устройства и применять жестко заданный масштаб.

Для реализации этого метода выполним следующие шаги на стороне сервера под учетной записью Администратора:

  1. Откройте редактор реестра: нажмите сочетание клавиш Win + R, введите команду regedit и нажмите Enter.
  2. Перейдите по следующему пути: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
  3. В правой части окна кликните правой кнопкой мыши, выберите Создать -> Параметр DWORD (32-бит).
  4. Присвойте параметру имя IgnoreClientDesktopScaleFactor и установите его значение равным 1. Это отключит автоматическую подстройку под DPI клиента.
  5. Затем настроим фиксированный масштаб для конкретных пользователей, у которых установлены экраны с высоким DPI. Перейдите в ветку реестра нужного пользователя: HKCU\Control Panel\Desktop
  6. Найдите или создайте параметр с именем LogPixels (тип DWORD 32-бита).
  7. Дважды кликните по нему, переключите систему исчисления в положение Десятичная и укажите значение в зависимости от желаемого масштаба:
    • 96 — соответствует масштабу 100% (стандартный);
    • 120 — соответствует масштабу 125%;
    • 144 — соответствует масштабу 150%;
    • 192 — соответствует масштабу 200%.
  8. Завершите активную терминальную сессию пользователя (Logoff) и запустите RemoteApp заново для применения параметров.

Способ 3. Добавление параметров масштабирования напрямую в RDP-файл

Проанализируем еще один эффективный метод настройки, который позволяет задать масштаб отображения удаленного приложения непосредственно внутри самого файла подключения. Для удобного хранения профилей и параметров экрана удаленных сессий можно использовать приложение для централизованного управления RDP-подключениями.

Выполним по шагам редактирование ярлыка подключения:

  1. Найдите на клиентском компьютере .rdp файл, через который вы запускаете RemoteApp 1С.
  2. Нажмите на него правой кнопкой мыши и выберите пункт Открыть с помощью -> Блокнот.
  3. Прокрутите содержимое файла конфигурации в самый конец и добавьте следующую директиву: desktopscalefactor:i:125
  4. Вы можете изменить значение 125 на другой поддерживаемый операционной системой коэффициент (например, 100, 150, 175 или 200) в зависимости от параметров экрана.
  5. Сохраните изменения в файле и запустите его. Клиент удаленного рабочего стола принудительно укажет серверу использовать данный масштаб при отрисовке окон RemoteApp.

Способ 4. Использование внешнего манифеста для RDP-клиента на стороне пользователя

Иногда проблемы с размытием шрифтов и мелким интерфейсом кроются в том, как сам клиентский компьютер под управлением Windows 10 обрабатывает графические окна RDP. Мы можем заставить локальную систему самостоятельно масштабировать интерфейс 1С, «обманув» её с помощью внешнего файла манифеста для утилиты mstsc.exe.

Рассмотрим алгоритм действий на клиентском ноутбуке:

  1. Откройте редактор реестра (regedit) и перейдите по пути: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
  2. Создайте параметр DWORD (32-бит) с наименованием PreferExternalManifest и присвойте ему значение 1. Это заставит Windows искать файлы манифеста в системных каталогах рядом с исполняемыми файлами.
  3. Перейдите в системную директорию C:\Windows\System32\.
  4. Создайте в ней текстовый файл и сохраните под именем mstsc.exe.manifest (убедитесь, что у файла удалено расширение .txt).
  5. Откройте файл в Блокноте и вставьте в него следующий XML-код:
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <dependency>
      <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*">
        </assemblyIdentity>
      </dependentAssembly>
    </dependency>
    <dependency>
      <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
        </assemblyIdentity>
      </dependentAssembly>
    </dependency>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
        <requestedPrivileges>
          <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
        </requestedPrivileges>
      </security>
    </trustInfo>
    <asmv3:application>
      <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
        <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
      </asmv3:windowsSettings>
    </asmv3:application>
    </assembly>
    
  6. Перезагрузите клиентское устройство.

После проделанных действий операционная система Windows 10 перестанет ожидать от RDP-клиента поддержки высоких разрешений и самостоятельно растянет окно 1С RemoteApp на 125%. Интерфейс и шрифты станут крупными и легко читаемыми.

Способ 5. Переопределение масштабирования через свойства совместимости

Если вы не хотите вносить изменения в системную папку System32 на клиентском ПК, мы можем использовать альтернативный и более безопасный вариант переопределения DPI:

  1. Создайте на диске клиентского компьютера произвольную папку, например C:\RDP_Scale.
  2. Скопируйте в нее файл C:\Windows\System32\mstsc.exe и переименуйте его, например, в mstsc_1c.exe.
  3. Также скопируйте файл языковой локализации mstsc.exe.mui из папки C:\Windows\System32\ru-RU\ в созданный вами каталог в аналогичную подпапку C:\RDP_Scale\ru-RU\.
  4. Нажмите правой кнопкой мыши по скопированному файлу mstsc_1c.exe и перейдите в его Свойства.
  5. Откройте вкладку Совместимость и нажмите кнопку Изменить параметры высокого DPI.
  6. Установите флажок в поле «Переопределите режим масштабирования высокого разрешения» и выберите в выпадающем меню значение «Система».
  7. Запускайте ваши сессии RemoteApp через этот модифицированный исполняемый файл.

Мы подробно проанализировали причины возникновения проблем с отображением шрифтов в RemoteApp на Windows Server 2012 R2 и рассмотрели пять практических методов решения этой задачи. Начните с первого или третьего метода, как наиболее простых в реализации, и переходите к системным настройкам реестра и манифестов, если требуется централизованное решение для большого количества рабочих мест.

← На главную