Разработчики, продолжающие поддерживать конфигурации на платформе 1С:Предприятие 7.7, регулярно сталкиваются с аппаратными ограничениями старого движка. Одной из наиболее раздражающих проблем является фиксированный мелкий шрифт в элементах интерфейса Конфигуратора. На современных мониторах с высоким разрешением (Full HD, 2K, 4K) и небольшой диагональю (например, на рабочих ноутбуках 13–15 дюймов) стандартный шрифт окон поиска и вывода результатов становится практически нечитаемым.
В рамках этой статьи мы подробно разберем, почему возникает эта проблема, и рассмотрим несколько эффективных способов ее решения: от редактирования системных ресурсов платформы до применения профессиональных плагинов автоматизации разработки.
Платформа 1С 7.7 создавалась в эпоху операционных систем Windows 95/98/NT, когда стандартными экранными разрешениями были 800х600 и 1024х768 пикселей. В программном коде исполняемых модулей Конфигуратора жестко зашито использование растрового шрифта MS Sans Serif высотой всего 8 пунктов. Этот шрифт не является масштабируемым (векторным).
Когда Windows пытается отобразить такой интерфейс на современном экране с высокой плотностью пикселей (HiDPI), операционная система либо выводит шрифт «точка в точку» (из-за чего буквы превращаются в микроскопические), либо пытается применить размытое масштабирование, делающее текст нечитаемым. Чтобы исправить эту ситуацию, нам потребуется вмешаться в ресурсы платформы или использовать внешние инструменты перехвата вывода.
Это самый надежный «кардинальный» метод, который изменяет сам шаблон диалогового окна поиска внутри платформы без использования стороннего программного обеспечения. Все диалоги Конфигуратора хранятся в специальной динамической библиотеке локализации. Изменив параметры шрифта в ресурсах этой библиотеки, мы получим крупный и четкий текст во всех окнах поиска.
Разберем этот процесс по шагам:
C:\Program Files (x86)\1Cv77\BIN\.1crcrus.dll. Обязательно создадим его резервную копию! Скопируем файл в безопасное место, чтобы в случае ошибки быстро восстановить работоспособность системы.1crcrus.dll через интерфейс программы Resource Hacker.Dialog. Нам необходимо найти конкретную форму поиска. В русскоязычной библиотеке за диалог поиска текста в Конфигураторе отвечает ресурс с номером 1186.FONT 8, "MS Sans Serif".Segoe UI или Tahoma).Проанализируем пример изменения кода ресурса. Изначальный фрагмент описания диалога выглядит следующим образом:
1186 DIALOGEX 0, 0, 271, 142
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Поиск в текстах"
FONT 8, "MS Sans Serif"
BEGIN
...
END
Мы заменим строку шрифта и сохраним изменения. Наш модифицированный шаблон будет выглядеть так:
1186 DIALOGEX 0, 0, 271, 142
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Поиск в текстах"
FONT 10, "Segoe UI"
BEGIN
...
END
После редактирования текста выполним следующие действия:
Аналогичным образом через правку соответствующих номеров диалогов в библиотеке ресурсов можно расширить и сделать более удобными другие окна Конфигуратора, такие как окно выбора информационных баз при запуске или окно монитора автообмена.
Если мы не хотим вручную модифицировать бинарные файлы платформы, мы можем воспользоваться возможностями легендарной библиотеки расширения Конфигуратора — OpenConf.
OpenConf позволяет интегрировать в Конфигуратор современный текстовый редактор SciColorer, созданный на базе мощного компонента Scintilla. Начиная с версий 1.0.1.2, этот плагин умеет полностью перехватывать функции поиска и выводить результаты в собственную интерактивную панель в нижней части экрана.
Рассмотрим, как настроить шрифты панели поиска через SciColorer:
C:\Program Files (x86)\1Cv77\BIN\config\.SciColorer.ini.[FindResults], [Search] или [Output] в зависимости от версии плагина).
[FindResults]
FontName=Consolas
FontSize=11
FontBold=0
BackColor=16777215
ForeColor=0
Сохраним файл настроек SciColorer.ini и перезапустим Конфигуратор. Теперь при поиске по текстам конфигурации результаты будут выводиться в красивое, современное окно с подсветкой синтаксиса и легко читаемым крупным шрифтом Consolas.
Существует еще один изящный способ, который позволяет улучшить отображение шрифтов в 1С 7.7 без изменения файлов платформы и без установки тяжелых плагинов. Мы можем заставить саму операционную систему Windows подменять устаревший шрифт MS Sans Serif на качественный векторный аналог всякий раз, когда программа запрашивает его отрисовку.
Для реализации этого метода проанализируем реестр Windows и выполним следующие шаги:
regedit и нажмем Enter для запуска Редактора реестра.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutesMS Sans Serif. Если его нет, создадим его самостоятельно (правой кнопкой мыши -> Создать -> Строковый параметр).MS Sans Serif и в качестве его значения укажем название современного векторного шрифта, установленного в системе, например, Microsoft Sans Serif, Tahoma или Segoe UI.После перезагрузки Windows автоматически перенаправит все вызовы отрисовки мелкого шрифта MS Sans Serif из Конфигуратора 1С на выбранный нами сглаженный шрифт, что значительно повысит читаемость всех меню и диалогов.
Мы подробно рассмотрели три различных подхода к решению проблемы со шрифтами в Конфигураторе 1С 7.7. Для разовых задач и быстрой адаптации без стороннего софта отлично подойдет способ с изменением реестра Windows (Способ №3). Если вам необходимо кардинально увеличить только размер конкретного окна поиска — воспользуйтесь редактированием файла 1crcrus.dll (Способ №1). А если вы занимаетесь активной ежедневной разработкой в среде 1С 7.7, лучшим выбором станет установка связки OpenConf + SciColorer (Способ №2), которая не только решит проблему шрифтов, но и добавит массу современных удобств в процесс написания кода.