Разработчики 1С часто сталкиваются с неприятной проблемой: после покупки нового ноутбука или монитора с высоким разрешением (например, Full HD 1920x1080 или 4K) текст в модулях Конфигуратора становится размытым, сплющенным по вертикали или чрезмерно растянутым по горизонтали. Работать в таких условиях становится невозможно, так как быстро устают глаза.
Выясним причину этой проблемы. Дело в том, что графический интерфейс Конфигуратора 1С исторически базируется на устаревшей подсистеме Windows — GDI (Graphics Device Interface), которая плохо совместима с современными алгоритмами масштабирования High DPI. Когда в настройках персонализации Windows устанавливается масштаб 125%, 150% или выше (что рекомендуется для комфортной работы на небольших экранах), операционная система пытается принудительно растянуть интерфейс Конфигуратора. В результате векторные шрифты деформируются и теряют четкость.
Проанализируем ситуацию и разберем по шагам несколько эффективных способов решения этой проблемы как на локальном компьютере, так и при работе через удаленный рабочий стол (RDP).
Это самый быстрый и действенный локальный метод, который позволяет исправить искажение шрифтов без изменения общего масштаба системы Windows. Нам потребуется изменить параметры совместимости исполняемого файла платформы.
Рассмотрим этот процесс пошагово:
1cv8s.exe в папке установки платформы).Разберем подробнее, почему важен именно этот режим. В Windows доступны три варианта переопределения DPI:
Часто проблема переносится на удаленный сервер: на локальном компьютере все отображается отлично, а при подключении к терминальному серверу текст в Конфигураторе снова плывет или растягивается. Это происходит потому, что клиент RDP по умолчанию передает на сервер настройки масштабирования локального экрана (например, те самые 125%).
Рассмотрим, как заставить удаленный сервер игнорировать масштаб вашего ноутбука и отображать Конфигуратор со стандартным 100%-м масштабом:
Вариант А. Настройка RDP-файла на стороне клиента.
Мы можем вручную указать параметры масштабирования в файле подключения. Для этого:
.rdp с помощью обычного Блокнота.
desktopscalefactor:i:100
Это принудительно запустит удаленный рабочий стол со 100%-м масштабированием, что вернет шрифтам в 1С нормальный вид, хотя остальные элементы интерфейса Windows на сервере станут несколько мельче.
Вариант Б. Настройка реестра на сервере (для администраторов).
Если вы администрируете сервер, на который заходят пользователи, можно глобально отключить наследование масштаба клиента. Для этого в системном реестре сервера перейдем по пути:
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
Создадим там параметр типа DWORD (32 бита) с именем IgnoreClientDesktopScaleFactor и присвоим ему значение 1.
Вариант В. Использование альтернативного клиента.
Для администрирования нескольких серверов можно использовать специализированную утилиту Remote Desktop Connection Manager версии 2.7 или новее. В ее настройках присутствует более гибкое управление параметрами масштабирования экрана для каждой сессии отдельно, что помогает решить проблему искажения текста.
Стандартный шрифт Courier New, который 1С использует по умолчанию для отображения кода, создавался очень давно и плохо адаптирован под современные алгоритмы сглаживания при масштабировании. Проанализируем возможность замены шрифта на более современный моноширинный аналог.
Посмотрим, как изменить шрифт непосредственно в настройках Конфигуратора:
Для старых версий платформы 1С, которые наотрез отказываются подчиняться стандартным настройкам совместимости Windows, существует обходной технический путь — использование внешнего файла манифеста. Этот метод заставляет операционную систему принудительно обрабатывать графическое окно программы по определенному сценарию.
Разберем этот метод по шагам:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
DWORD (32 бита) с именем PreferExternalManifest и установим его значение равным 1. Это укажет операционной системе искать внешние файлы манифестов при запуске любых приложений.1cv8.exe и 1cv8c.exe (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\).1cv8.exe.manifest (и аналогично 1cv8c.exe.manifest для тонкого клиента). Убедитесь, что расширение файла именно .manifest, а не .txt.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
</windowsSettings>
</application>
</assembly>
Этот манифест сообщает Windows, что платформа 1С не умеет самостоятельно работать с High DPI (параметр dpiAware установлен в значение false). После этого операционная система возьмет масштабирование интерфейса на себя, сгладив шрифты и исключив эффект растянутых по горизонтали букв.
Если специфика вашей работы позволяет отойти от классического Конфигуратора, рассмотрите переход на 1С:EDT (Enterprise Development Tools). Это современная среда разработки для прикладных решений 1С, созданная на базе платформы Eclipse.
В отличие от старого Конфигуратора, 1С:EDT построена на современных графических библиотеках, которые «из коробки» идеально поддерживают любое масштабирование операционной системы Windows, экраны сверхвысокого разрешения (Retina, 4K), темные темы оформления и любые современные моноширинные шрифты без необходимости копаться в реестре и файлах совместимости.