Как решить проблему с размытыми шрифтами и масштабированием в 1С 7.7 на Windows Server 2012 R2 при работе через RDP?

Системный администратор 1С v7.7 IT и автоматизация бизнеса
← На главную

При переносе старых информационных баз на платформе 1С:Предприятие 7.7 на современные операционные системы системные администраторы часто сталкиваются с неприятным эффектом. На рабочем сервере под управлением Windows Server 2012 R2 (или новее) при подключении пользователей по RDP или через RemoteApp интерфейс программы выглядит размытым, шрифты кажутся «замыленными» или «грязными», а стандартная галочка в свойствах ярлыка «Отключить масштабирование изображения при высоком разрешении экрана» не дает никакого эффекта.

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

Почему шрифты в 1С 7.7 становятся размытыми?

Давайте проанализируем, почему это происходит. Платформа 1С 7.7 была разработана в эпоху, когда стандартным разрешением мониторов было 1024x768 пикселей. Данное приложение классифицируется операционной системой Windows как DPI-Unaware. Это означает, что программа ничего не знает о плотности пикселей современных мониторов и не умеет самостоятельно пересчитывать размеры своих элементов под высокие разрешения (например, FullHD или 4K).

Когда современный клиентский компьютер с операционной системой Windows 10 или 11 (где по умолчанию часто установлено масштабирование экрана 125% или 150%) подключается к терминальному серверу Windows Server 2012 R2 по RDP, клиент передает информацию о своем масштабе серверу. Сервер пытается принудительно адаптировать интерфейс 1С 7.7 под этот масштаб. Поскольку сама платформа 1С 7.7 не умеет перерисовывать шрифты в векторном виде, операционная система применяет к ней механизм DPI-виртуализации — она просто растягивает готовую растровую картинку (как обычное изображение формата JPEG или PNG). В результате получается сильно размытый интерфейс, работать в котором физически тяжело.

Выясним, как обойти это ограничение и вернуть шрифтам идеальную четкость. Мы подготовили несколько эффективных решений.

Решение 1. Отключение наследования масштаба клиента на сервере (Рекомендуемый метод)

Самый надежный способ решить проблему глобально для всех терминальных пользователей — запретить операционной системе Windows Server 2012 R2 автоматически перенимать масштаб дисплея с локальных компьютеров пользователей. В этом случае сервер всегда будет отдавать картинку со стандартным масштабом 100% (96 DPI), что гарантирует идеальную четкость шрифтов.

Разберем по шагам, как внести необходимые изменения в реестр сервера:

  1. Нажмите на сервере комбинацию клавиш Win + R, введите команду regedit и нажмите Enter для запуска Редактора реестра.
  2. Перейдите к следующей ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
  3. Кликните правой кнопкой мыши по пустому месту в правой части окна, выберите Создать -> Параметр DWORD (32 бита).
  4. Назовите новый параметр IgnoreClientDesktopScaleFactor.
  5. Дважды щелкните по созданному параметру и установите его значение равным 1 (в шестнадцатеричной или десятичной системе — неважно).
  6. Для того чтобы изменения вступили в силу, пользователям необходимо полностью завершить свои терминальные сеансы (выполнить Logoff, а не просто закрыть окно крестиком) и подключиться заново.

После активации этого параметра сервер перестанет обращать внимание на локальный масштаб ноутбука или ПК пользователя, и интерфейс 1С 7.7 станет абсолютно четким.

Решение 2. Принудительное переопределение масштаба через параметр LogPixels

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

Для этого мы воспользуемся изменением параметра LogPixels в реестре конкретного пользователя на сервере:

  1. Откройте Редактор реестра под учетной записью проблемного пользователя на сервере (или зайдите под администратором и перейдите в куст нужного пользователя).
  2. Перейдите по пути: HKEY_CURRENT_USER\Control Panel\Desktop
  3. Найдите параметр с именем LogPixels. Если его нет, создайте его с типом DWORD (32 бита).
  4. Измените значение параметра, выбрав Десятичную систему исчисления:
    • Значение 96 соответствует масштабу 100% (стандартный размер, максимальная четкость).
    • Значение 120 соответствует масштабу 125%.
    • Значение 144 соответствует масштабу 150%.
  5. Дополнительно в этой же ветке реестра найдите параметр Win8DpiScaling (если его нет, создайте DWORD) и установите его значение равным 1 для принудительного включения единого метода масштабирования Windows.
  6. Завершите сеанс пользователя на сервере и зайдите заново.

Решение 3. Обход блокировки совместимости 1cv7.exe в терминале

Многие администраторы замечают, что попытка установить галочку «Отключить масштабирование изображения при высоком разрешении экрана» непосредственно в свойствах файла 1cv7.exe на вкладке «Совместимость» внутри терминальной сессии ни к чему не приводит. Это известное ограничение RDP-сессий Windows Server: графический интерфейс настройки совместимости часто игнорируется для терминальных пользователей.

Чтобы обойти эту проблему, мы можем прописать параметры совместимости исполняемого файла напрямую в реестр операционной системы сервера.

Вариант А: Применение настройки для конкретного пользователя

Перейдите в ветку реестра текущего пользователя:


HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Создайте Строковый параметр (REG_SZ), где в качестве имени укажите полный путь к исполняемому файлу вашей платформы 1С 7.7, а в качестве значения — параметр совместимости:

Вариант Б: Применение настройки для всех пользователей сервера сразу

Если баз много и за ними работает большое количество сотрудников, лучше прописать этот ключ в ветку для всего компьютера (потребуются права администратора):


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Создайте аналогичный строковый параметр с путем к 1cv7.exe и значением ~ HIGHDPIAWARE. Это принудительно отключит DPI-виртуализацию для исполняемого файла платформы у всех пользователей.

Решение 4. Использование внешнего манифеста для RDP-клиента (mstsc.exe) на стороне пользователя

Рассмотрим ситуацию, когда у вас нет возможности или прав редактировать реестр на самом сервере Windows Server 2012 R2. В этом случае мы можем решить проблему локально на клиентском компьютере (например, на домашнем ноутбуке под управлением Windows 10/11), заставив сам встроенный клиент подключения к удаленному рабочему столу (mstsc.exe) обрабатывать масштабирование силами локальной видеокарты без замыливания текста.

Для реализации этого метода выполните следующие шаги на локальном ПК пользователя:

  1. Откройте редактор реестра на локальном компьютере и перейдите по пути: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
  2. Создайте параметр DWORD (32 бита) с именем PreferExternalManifest и присвойте ему значение 1. Это заставит операционную систему Windows при запуске программ искать рядом с ними файлы конфигурации (манифесты) и приоритетно использовать их настройки.
  3. Перейдите в системную папку по пути: C:\Windows\System32.
  4. Создайте в этой папке текстовый файл и назовите его mstsc.exe.manifest (убедитесь, что у файла расширение именно .manifest, а не .txt). Для создания файла в этой директории вам потребуются права администратора.
  5. Откройте созданный файл через Блокнот и вставьте в него следующий XML-код:
    
    <?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="*" />
        </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>
    
  6. Сохраните изменения в файле и перезапустите ваше RDP-подключение. Теперь локальный клиент RDP будет самостоятельно сглаживать картинку, передаваемую сервером, что уберет сильное размытие шрифтов 1С 7.7.

Решение 5. Настройка параметров внутри .RDP-файла подключения

Еще один элегантный способ — скорректировать параметры запуска самого ярлыка подключения к удаленному рабочему столу. Если ваши пользователи используют заготовленный файл с расширением .rdp, его можно отредактировать в текстовом редакторе:

  1. Кликните по вашему RDP-ярлыку правой кнопкой мыши и выберите пункт Открыть с помощью -> Блокнот.
  2. Найдите в файле или добавьте в самый конец следующие строки:
    
    desktopscalefactor:i:100
    smart sizing:i:1
    
  3. Параметр desktopscalefactor:i:100 принудительно заставит терминальный сеанс запуститься со стандартным масштабом в 100%, игнорируя настройки экрана клиента. Интерфейс 1С станет очень четким, хоть элементы и могут стать физически меньше.
  4. Параметр smart sizing:i:1 позволит вам свободно растягивать окно подключения к удаленному рабочему столу на локальном экране, при этом масштабирование будет происходить на стороне вашей локальной видеокарты, минимизируя эффект размытия.

Решение 6. Тонкая настройка шрифтов внутри самой 1С 7.7

По умолчанию конфигурации 1С 7.7 используют очень старые растровые системные шрифты (например, MS Sans Serif), которые изначально плохо поддаются любому масштабированию. Даже при качественной работе RDP-сервера эти шрифты могут выглядеть прерывистыми или мелкими.

Мы рекомендуем зайти в саму программу под каждым пользователем и переопределить шрифты интерфейса на более современные векторные аналоги:

  1. Запустите 1С:Предприятие 7.7 и в главном верхнем меню перейдите в раздел Сервис -> Параметры.
  2. Перейдите на вкладку Интерфейс.
  3. В полях выбора шрифтов для таблиц, форм и журналов замените старый шрифт на современный векторный шрифт, например, Segoe UI, Tahoma или Arial.
  4. Установите размер шрифта равным 9 или 10 пунктам вместо стандартных 8.
  5. Векторные шрифты отлично масштабируются средствами сглаживания операционной системы Windows Server 2012 R2. Это сделает отображение текстов, наименований товаров и цифр в отчетах максимально приятным для глаз бухгалтеров и операторов.

Таким образом, комбинируя отключение наследования клиентского масштаба на сервере через параметр IgnoreClientDesktopScaleFactor и настраивая векторные шрифты внутри самой программы, мы получаем полностью рабочую, быструю и, главное, комфортную для глаз среду работы в legacy-платформе 1С 7.7 на современной серверной операционной системе.

← На главную