Мелкий или кривой шрифт в 1С на терминальном сервере: что крутить и где
Содержание
Шрифт в 1С 8.3 меняют не в консоли сервера и не в 1cestart.cfg, а там, где интерфейс рисуется: в Windows (масштаб экрана и DPI сеанса), в клиенте удалённого рабочего стола и в стиле самой конфигурации. Для всех пользователей терминального сервера проще всего задать масштаб через ключ реестра LogPixels групповой политикой. Сервер 1С (ragent, rmngr, rphost) интерфейс не рисует, но шрифты ему нужны для печатных форм и PDF.
Отсюда простое правило. Если «мелко» или «размыто» — настраиваем отображение у клиента или в RDP-сеансе. Если «поехали печатные формы» или «квадраты вместо букв в PDF» — ставим шрифты на сам сервер 1С.
Откуда 1С берёт шрифт: клиент, конфигурация и сервер
В клиент-серверном варианте работы обязанности разделены чётко. Тонкий или толстый клиент получает от сервера описание формы и данные, а отрисовку делает сам, средствами операционной системы того компьютера, где он запущен.
На размер и вид текста влияют четыре слоя:
- 🖥️ Операционная система клиента. Масштаб экрана (DPI), сглаживание ClearType, набор установленных шрифтов.
- 🔌 Сеанс удалённого рабочего стола. Если 1С запущена на терминальном сервере, то «клиентом» для Windows является RDP-сеанс со своим DPI.
- 🎨 Стиль конфигурации. В управляемых формах шрифты заданы элементами стиля. Разработчик меняет их в Конфигураторе, и это действует для всех пользователей базы.
- 📄 Макеты табличных документов. Печатные формы и отчёты используют шрифты, прописанные в ячейках макета (обычно Arial).
Сервер 1С участвует только в последнем слое. Когда отчёт или печатная форма формируются на сервере, платформа рассчитывает высоту строк и переносы по шрифтам, которые установлены на этом сервере. Нет шрифта — расчёт идёт по замене, и форма «плывёт».
| Что видит пользователь | Где причина | Где исправлять |
|---|---|---|
| Всё мелкое на 4K-мониторе | DPI клиента | Масштаб Windows на рабочем месте |
| Мелко только в RDP | DPI сеанса | Клиент RDP, LogPixels на сервере |
| Размытые формы | Режим DPI у приложения | Свойства ярлыка, «Совместимость» |
| Нужен другой шрифт в формах | Стиль конфигурации | Конфигуратор |
| Печатная форма разъехалась | Шрифты на сервере 1С | Установка шрифтов на сервер |
Миф про 1cestart.cfg и консоль кластера
Многие ищут настройку шрифта в файле 1cestart.cfg. Его там нет. Этот файл управляет стартером: какие версии платформы установлены, какую запускать по умолчанию, где лежат шаблоны конфигураций и какие общие списки баз подключать.
Типичное содержимое выглядит так:
DefaultVersion=8.3.25
InstalledLocation=C:\Program Files\1cv8
ConfigurationTemplatesLocation=C:\Users\user\AppData\Roaming\1C\1cv8\tmplts
CommonInfoBases=\\fileserver\1c\ibases.v8i
Через 1cestart.cfg можно сделать полезное косвенно. Например, на терминальном сервере закрепить одну версию платформы для всех. Это важно, потому что разные релизы по-разному работают с высоким DPI. Но строки «шрифт» или «масштаб» в этот файл добавлять бесполезно: стартер их проигнорирует.
С консолью администрирования серверов 1С та же история. В ней настраивают кластер, рабочие серверы, информационные базы, сеансы и блокировки. Параметров отображения там нет.
Если в инструкции из интернета вам советуют вписать размер шрифта в 1cestart.cfg, conf.cfg или в параметры запуска 1cv8.exe — это не работает. Задокументированных ключей командной строки для шрифта у платформы нет.
Изменить шрифт 1С на сервере терминалов для всех пользователей
Самая частая ситуация «на сервере»: 1С установлена на сервер удалённых рабочих столов, а пользователи подключаются по RDP с ноутбуков и мониторов с разным разрешением. Шрифт в 1С у одних крошечный, у других огромный.
Шаг 1. Проверьте клиент удалённого рабочего стола
Современные версии mstsc передают серверу масштаб экрана клиента. Если на ноутбуке стоит 150%, сеанс тоже откроется со 150%. Проверьте:
- На рабочем месте откройте
Параметры → Система → Дисплейи посмотрите «Масштаб». - В
mstscна вкладке «Экран» выберите разрешение «Во весь экран ». - На вкладке «Взаимодействие» включите «Сглаживание шрифтов». Без него текст в 1С выглядит рваным.
- Переподключитесь: масштаб применяется при входе в сеанс.
Шаг 2. Задайте масштаб в самом сеансе
Если клиент масштаб не передаёт (старый RDP-клиент, тонкий клиент-терминал, Linux-клиент), пользователь может выставить его сам. В сеансе на сервере: Параметры → Система → Дисплей → Масштаб. Windows попросит выйти из системы, чтобы применить изменение.
Шаг 3. Раздайте масштаб всем через реестр
Масштаб пользователя хранится в ветке HKEY_CURRENT_USER\Control Panel\Desktop. Нужны два параметра:
Win8DpiScaling(DWORD) =1— разрешает пользовательский масштаб;LogPixels(DWORD) — сам масштаб в точках на дюйм.
| Масштаб | LogPixels (десятичное) | LogPixels (hex) |
|---|---|---|
| 100% | 96 | 60 |
| 125% | 120 | 78 |
| 150% | 144 | 90 |
| 175% | 168 | A8 |
| 200% | 192 | C0 |
Файл для ручного импорта под конкретным пользователем (125%):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"Win8DpiScaling"=dword:00000001
"LogPixels"=dword:00000078
Для всех пользователей терминального сервера удобнее групповая политика. В редакторе GPO для подразделения с серверами откройте Конфигурация пользователя → Настройка → Конфигурация Windows → Реестр и создайте два элемента реестра с теми же значениями. Включите замыкание (loopback), если политика привязана к компьютерам, а не к пользователям.
Масштаб применяется только при новом входе. Пользователям придётся выйти из сеанса, а не просто закрыть окно RDP. Предупредите их заранее, чтобы никто не потерял несохранённый документ в 1С.
Шаг 4. Проверьте результат на одном пользователе
Не раскатывайте политику сразу на всех. Возьмите тестовую учётную запись, примените масштаб и откройте в 1С три типичных экрана: список документов, форму документа с табличной частью и печатную форму. Обратите внимание на обрезанные подписи полей и кнопки, ушедшие за край окна.
Для большинства мониторов Full HD хватает 100–125%. Значения выше 150% на терминальном сервере имеют смысл только для 4K-экранов: иначе в форму документа помещается слишком мало строк.
Шрифты в стиле конфигурации: правка через Конфигуратор
Если нужен не масштаб, а другое начертание или кегль в формах конкретной базы, это работа разработчика. Управляемые формы берут шрифты из элементов стиля конфигурации.
Где смотреть:
- Откройте базу в Конфигураторе.
- В дереве метаданных разверните
Общие → Элементы стиля. Элементы с типом «Шрифт» задают шрифт для групп элементов форм. - Там же, в
Общие → Стили, лежат стили конфигурации. Основной стиль указан в свойствах корня конфигурации. - Шрифт отдельного поля задают в свойствах элемента формы, обычно ссылкой на элемент стиля, а не явным значением.
После правки выполните «Обновить конфигурацию
базы данных» (F7). Изменение увидят все пользователи при следующем запуске клиента.
Правка стиля типовой конфигурации снимает её с полной поддержки. Каждое обновление релиза придётся проводить через сравнение и объединение. Для бухгалтерии на типовой БП или ЗУП масштаб Windows почти всегда лучший выбор, чем доработка стиля.
Задавайте шрифты ссылками на элементы стиля, а не числами в каждой форме. Тогда кегль меняется в одном месте, а не в сотне форм.
Обычные формы и режим совместимости: как убрать размытость
Старые конфигурации на обычных формах (толстый клиент, обычное приложение) плохо дружат с масштабом больше 100%. Формы в них нарисованы в пикселях. Windows растягивает такое окно как картинку, и шрифт становится мыльным.
Помогает переопределение режима DPI для исполняемого файла:
- Найдите ярлык или сам файл
1cv8.exeв каталоге нужной версии платформы, напримерC:\Program Files\1cv8\8.3.25.xxxx\bin\. - Откройте его свойства, вкладку «Совместимость».
- Нажмите «Изменить параметры высокого DPI».
- Отметьте «Переопределите режим масштабирования высокого разрешения» и выберите, кто выполняет масштабирование.
| Вариант | Что получится | Когда выбирать |
|---|---|---|
| Приложение | Платформа масштабирует сама, текст чёткий | Управляемые формы, свежая платформа |
| Система | Окно растянуто, текст размыт, но ничего не обрезано | Обычные формы, которые «ломаются» при масштабе |
| Система (расширенная) | Windows перерисовывает текст чётко | Пробуйте для обычных форм, если «Система» слишком мыльная |
На терминальном сервере этот флажок можно выставить для всех пользователей, если открыть свойства от имени администратора и нажать «Изменить параметры для всех пользователей».
Режим совместимости конфигурации (свойство «Режим совместимости» в Конфигураторе) на шрифты напрямую не влияет. Он определяет, какое поведение платформы доступно конфигурации. Не меняйте его ради отображения: это затрагивает работу кода.
Есть и мягкий вариант без настроек. Табличные документы (отчёты, печатные формы на экране) масштабируются Ctrl + колёсико мыши. Это удобно, когда мелко только в отчётах, а формы устраивают.
Шрифты на сервере 1С под Linux: печатные формы и PDF
Здесь «шрифт 1С на сервере» в буквальном смысле. Сервер 1С на Linux формирует табличные документы, сохраняет их в PDF, считает высоту строк. Для этого ему нужны те же шрифты, что заложены в макетах. В типовых конфигурациях это в основном Arial, иногда Times New Roman и Courier New.
На чистом Linux этих шрифтов нет. Результат:
- 📏 строки в печатной форме выше или ниже, таблица переносится на лишнюю страницу;
- ✂️ текст в ячейках обрезается;
- 🔲 в PDF вместо букв квадраты или другой шрифт.
Как исправить на Ubuntu или Debian:
sudo apt install ttf-mscorefonts-installer fontconfig
sudo fc-cache -fv
fc-list | grep -i arial
Последняя команда должна вывести файлы Arial. После этого перезапустите службу сервера 1С, чтобы рабочие процессы перечитали шрифты. Имя службы зависит от версии и способа установки: посмотрите его командой systemctl list-units | grep -i 1c.
Перезапуск службы обрывает все сеансы пользователей на этом сервере. Делайте его вечером или в выходной, предупредив людей.
На сервере 1С под Windows шрифты обычно уже есть. Если макет использует нестандартный шрифт (например, для штрихкода), установите его на сервер «для всех пользователей» и тоже перезапустите службу в нерабочее время.
Квадраты, кракозябры и другие сбои отображения
Когда шрифт не просто мелкий, а «сломанный», причину ищите по симптому.
После смены языка системы для программ без Юникода Windows требует перезагрузку. На терминальном сервере это значит перерыв для всех пользователей, планируйте заранее.
Если ничего не помогло, проверьте версию платформы. Поддержка высоких разрешений в управляемом интерфейсе улучшалась от релиза к релизу. На старой сборке 8.3 часть проблем со шрифтами решается только переходом на актуальную версию платформы, которую поддерживает ваша конфигурация.