Работа на современных мониторах с разрешением 4K и большой диагональю (например, 43 дюйма) приносит массу преимуществ: от огромного рабочего пространства до возможности разместить сразу несколько окон рядом. Однако разработчики 1С часто сталкиваются с неприятным эффектом «мыла» — размытыми шрифтами в Конфигураторе. Это происходит потому, что графический движок Конфигуратора исторически базируется на технологиях, которые не всегда корректно обрабатывают масштабирование Windows. В этой статье мы подробно разберем, как вернуть четкость интерфейсу и сделать работу комфортной.
Прежде чем переходить к настройкам, проанализируем ситуацию. Проблема размытости возникает из-за того, что операционная система пытается принудительно увеличить интерфейс приложения, которое сообщает ей, что не умеет работать с высоким DPI (High DPI). Windows просто растягивает «картинку» приложения, что и приводит к эффекту интерполяции или «мыла». Особенно сильно это заметно при дробных коэффициентах масштабирования, таких как 125% или 150%.
Рассмотрим наиболее популярный и действенный метод, который помогает большинству пользователей без внесения серьезных изменений в систему. Мы заставим Windows изменить алгоритм отрисовки конкретно для исполняемого файла 1С.
1cestart.exe (обычно находится в C:\Program Files (x86)\1cv8\common\).Этот метод сообщает операционной системе, что приложение само должно заботиться о прорисовке шрифтов, либо ОС должна использовать более продвинутый алгоритм сглаживания текста.
Проанализируем влияние версии платформы. Полноценная поддержка мониторов с высоким разрешением начала активно внедряться в 1С, начиная с версии 8.3.14. Однако, как показывает практика и обсуждения специалистов, наиболее стабильные результаты в плане четкости шрифтов наблюдаются на версиях 8.3.18 и выше.
Если вы используете актуальную платформу, выполните следующие действия:
Рассмотрим профессиональный метод управления масштабированием через конфигурационный файл платформы. В папке с установленной платформой (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\conf) найдем файл conf.cfg.
Мы можем принудительно указать платформе, как ей реагировать на настройки DPI системы. Для этого добавим в файл следующую строку:
DpiAware=1
Значение 1 заставляет платформу считать себя адаптированной под высокий DPI. Если же этот параметр уже стоит, но «мыло» сохраняется, можно попробовать установить 0, чтобы полностью передать управление масштабированием операционной системе в режиме совместимости, описанном в первом способе.
Иногда причина размытости кроется в том, какие системные шрифты подставляет Windows для старых диалоговых окон. Разберем, как это изменить через реестр:
regedit).HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes.MS Shell Dlg.Важно: Будьте осторожны при редактировании реестра, предварительно рекомендуется создать точку восстановления системы.
Выясним, как настройки самого Конфигуратора могут помочь в борьбе за четкость. Даже если интерфейс (меню, кнопки) немного «мылит», текст кода должен быть идеально резким. Для этого настроим современные шрифты, оптимизированные для экранов высокой плотности:
Проанализируем важный нюанс: если вы работаете в Конфигураторе с масштабом 125% или 150%, визуальное проектирование обычных форм (не управляемых) может стать проблемой. Элементы на форме могут «расползаться» или менять размеры у пользователей, у которых стоит масштаб 100%. Для корректного проектирования интерфейса старайтесь использовать Управляемые формы, которые динамически подстраиваются под разрешение экрана клиента, либо используйте виртуальную машину с масштабом 100% для финальной проверки дизайна форм.
Если ни один из методов не дает идеального результата, стоит посмотреть в сторону 1C:EDT (Enterprise Development Tools). Это современная среда разработки на базе Eclipse. В отличие от классического Конфигуратора, EDT полностью поддерживает современные стандарты отрисовки интерфейса, векторные иконки и любые уровни масштабирования Windows без потери четкости. Это радикальный шаг, требующий переобучения, но он полностью снимает проблему «мыла» на 4K и 8K мониторах.