Как исправить растянутый, размытый или искаженный шрифт в модулях Конфигуратора 1С?

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

Разработчики 1С часто сталкиваются с неприятной проблемой: после покупки нового ноутбука или монитора с высоким разрешением (например, Full HD 1920x1080 или 4K) текст в модулях Конфигуратора становится размытым, сплющенным по вертикали или чрезмерно растянутым по горизонтали. Работать в таких условиях становится невозможно, так как быстро устают глаза.

Выясним причину этой проблемы. Дело в том, что графический интерфейс Конфигуратора 1С исторически базируется на устаревшей подсистеме Windows — GDI (Graphics Device Interface), которая плохо совместима с современными алгоритмами масштабирования High DPI. Когда в настройках персонализации Windows устанавливается масштаб 125%, 150% или выше (что рекомендуется для комфортной работы на небольших экранах), операционная система пытается принудительно растянуть интерфейс Конфигуратора. В результате векторные шрифты деформируются и теряют четкость.

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

Способ 1. Переопределение масштабирования в свойствах ярлыка 1С (Рекомендуемый)

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

Рассмотрим этот процесс пошагово:

  1. Найдем ярлык, через который запускается 1С (это может быть ярлык на Рабочем столе или исполняемый файл 1cv8s.exe в папке установки платформы).
  2. Нажмем на ярлык правой кнопкой мыши и выберем пункт «Свойства».
  3. Перейдем на вкладку «Совместимость».
  4. Нажмем на кнопку «Изменить параметры высокого DPI» (в старых версиях Windows 10 эта кнопка может называться иначе, но суть остается прежней).
  5. В открывшемся окне установим флажок напротив опции «Переопределите режим масштабирования высокого разрешения».
  6. В выпадающем списке под этим флажком выберем режим «Система (расширенная)» (System Enhanced).
  7. Нажмем «ОК» во всех окнах для сохранения настроек и перезапустим 1С.

Разберем подробнее, почему важен именно этот режим. В Windows доступны три варианта переопределения DPI:

Способ 2. Решение проблемы со сглаживанием при работе через RDP

Часто проблема переносится на удаленный сервер: на локальном компьютере все отображается отлично, а при подключении к терминальному серверу текст в Конфигураторе снова плывет или растягивается. Это происходит потому, что клиент RDP по умолчанию передает на сервер настройки масштабирования локального экрана (например, те самые 125%).

Рассмотрим, как заставить удаленный сервер игнорировать масштаб вашего ноутбука и отображать Конфигуратор со стандартным 100%-м масштабом:

Вариант А. Настройка RDP-файла на стороне клиента.
Мы можем вручную указать параметры масштабирования в файле подключения. Для этого:

  1. Запустим стандартную утилиту «Подключение к удаленному рабочему столу» (mstsc).
  2. Настроим подключение и нажмем кнопку «Сохранить как...», выбрав место на диске.
  3. Откроем сохраненный файл с расширением .rdp с помощью обычного Блокнота.
  4. Найдем или добавим в самый конец файла следующую строку:

desktopscalefactor:i:100

Это принудительно запустит удаленный рабочий стол со 100%-м масштабированием, что вернет шрифтам в 1С нормальный вид, хотя остальные элементы интерфейса Windows на сервере станут несколько мельче.

Вариант Б. Настройка реестра на сервере (для администраторов).
Если вы администрируете сервер, на который заходят пользователи, можно глобально отключить наследование масштаба клиента. Для этого в системном реестре сервера перейдем по пути:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

Создадим там параметр типа DWORD (32 бита) с именем IgnoreClientDesktopScaleFactor и присвоим ему значение 1.

Вариант В. Использование альтернативного клиента.
Для администрирования нескольких серверов можно использовать специализированную утилиту Remote Desktop Connection Manager версии 2.7 или новее. В ее настройках присутствует более гибкое управление параметрами масштабирования экрана для каждой сессии отдельно, что помогает решить проблему искажения текста.

Способ 3. Смена шрифта в настройках Конфигуратора

Стандартный шрифт Courier New, который 1С использует по умолчанию для отображения кода, создавался очень давно и плохо адаптирован под современные алгоритмы сглаживания при масштабировании. Проанализируем возможность замены шрифта на более современный моноширинный аналог.

Посмотрим, как изменить шрифт непосредственно в настройках Конфигуратора:

  1. Откроем Конфигуратор 1С.
  2. Перейдем в главное меню: Сервис -> Параметры.
  3. Выберем вкладку Текст, затем нажмем кнопку Шрифт.
  4. В появившемся списке выберем один из современных векторных шрифтов, оптимизированных для чтения кода на High DPI мониторах:
    • JetBrains Mono — один из лучших современных шрифтов для программирования. Он имеет увеличенную высоту строчных букв и четкие контуры, которые не искажаются даже при нестандартном масштабе системы.
    • Consolas — стандартный моноширинный шрифт Microsoft, который прекрасно сглаживается технологией ClearType на любых масштабах.
    • Fira Code или Source Code Pro — альтернативные варианты с отличной читаемостью.
  5. Применим изменения. Текст в модулях сразу станет более пропорциональным и приятным для восприятия.

Способ 4. Принудительное масштабирование через внешний файл манифеста (.manifest)

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

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

  1. Откроем редактор реестра Windows (regedit) и перейдем по пути:
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
  3. Создадим в этом разделе параметр типа DWORD (32 бита) с именем PreferExternalManifest и установим его значение равным 1. Это укажет операционной системе искать внешние файлы манифестов при запуске любых приложений.
  4. Перейдем в каталог установленной платформы 1С, где находятся исполняемые файлы 1cv8.exe и 1cv8c.exe (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\).
  5. Создадим в этой папке текстовый файл и переименуем его в 1cv8.exe.manifest (и аналогично 1cv8c.exe.manifest для тонкого клиента). Убедитесь, что расширение файла именно .manifest, а не .txt.
  6. Вставим в созданный файл следующий XML-код:

<?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). После этого операционная система возьмет масштабирование интерфейса на себя, сгладив шрифты и исключив эффект растянутых по горизонтали букв.

Способ 5. Кардинальное решение: Переход на современную среду разработки 1С:EDT

Если специфика вашей работы позволяет отойти от классического Конфигуратора, рассмотрите переход на 1С:EDT (Enterprise Development Tools). Это современная среда разработки для прикладных решений 1С, созданная на базе платформы Eclipse.

В отличие от старого Конфигуратора, 1С:EDT построена на современных графических библиотеках, которые «из коробки» идеально поддерживают любое масштабирование операционной системы Windows, экраны сверхвысокого разрешения (Retina, 4K), темные темы оформления и любые современные моноширинные шрифты без необходимости копаться в реестре и файлах совместимости.

← На главную