Разберем распространенную проблему, с которой часто сталкиваются системные администраторы и пользователи при работе в программных продуктах 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.
Рассмотрим самый простой способ, который не требует изменения системных файлов и глубокого редактирования реестра. Нам понадобится единоразово настроить масштаб в профиле пользователя непосредственно на самом сервере.
Разберем этот процесс по шагам:
mstsc.exe).Если пользователей на сервере много, настраивать профиль каждого вручную крайне неудобно. Рассмотрим, как решить проблему глобально на стороне сервера с помощью системного реестра. Мы заставим Windows Server игнорировать DPI клиентского устройства и применять жестко заданный масштаб.
Для реализации этого метода выполним следующие шаги на стороне сервера под учетной записью Администратора:
regedit и нажмите Enter.HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
IgnoreClientDesktopScaleFactor и установите его значение равным 1. Это отключит автоматическую подстройку под DPI клиента.HKCU\Control Panel\Desktop
LogPixels (тип DWORD 32-бита).Проанализируем еще один эффективный метод настройки, который позволяет задать масштаб отображения удаленного приложения непосредственно внутри самого файла подключения. Для удобного хранения профилей и параметров экрана удаленных сессий можно использовать приложение для централизованного управления RDP-подключениями.
Выполним по шагам редактирование ярлыка подключения:
.rdp файл, через который вы запускаете RemoteApp 1С.
desktopscalefactor:i:125
125 на другой поддерживаемый операционной системой коэффициент (например, 100, 150, 175 или 200) в зависимости от параметров экрана.Иногда проблемы с размытием шрифтов и мелким интерфейсом кроются в том, как сам клиентский компьютер под управлением Windows 10 обрабатывает графические окна RDP. Мы можем заставить локальную систему самостоятельно масштабировать интерфейс 1С, «обманув» её с помощью внешнего файла манифеста для утилиты mstsc.exe.
Рассмотрим алгоритм действий на клиентском ноутбуке:
regedit) и перейдите по пути:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
PreferExternalManifest и присвойте ему значение 1. Это заставит Windows искать файлы манифеста в системных каталогах рядом с исполняемыми файлами.C:\Windows\System32\.mstsc.exe.manifest (убедитесь, что у файла удалено расширение .txt).
<?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>
После проделанных действий операционная система Windows 10 перестанет ожидать от RDP-клиента поддержки высоких разрешений и самостоятельно растянет окно 1С RemoteApp на 125%. Интерфейс и шрифты станут крупными и легко читаемыми.
Если вы не хотите вносить изменения в системную папку System32 на клиентском ПК, мы можем использовать альтернативный и более безопасный вариант переопределения DPI:
C:\RDP_Scale.C:\Windows\System32\mstsc.exe и переименуйте его, например, в mstsc_1c.exe.mstsc.exe.mui из папки C:\Windows\System32\ru-RU\ в созданный вами каталог в аналогичную подпапку C:\RDP_Scale\ru-RU\.mstsc_1c.exe и перейдите в его Свойства.Мы подробно проанализировали причины возникновения проблем с отображением шрифтов в RemoteApp на Windows Server 2012 R2 и рассмотрели пять практических методов решения этой задачи. Начните с первого или третьего метода, как наиболее простых в реализации, и переходите к системным настройкам реестра и манифестов, если требуется централизованное решение для большого количества рабочих мест.