При переходе на новые версии платформы 1С:Предприятие 8.3 под управлением операционных систем семейства Linux (в частности, Ubuntu 18.04 и новее) пользователи и системные администраторы часто сталкиваются с неприятной проблемой: шрифты в интерфейсе программы (особенно в карточках номенклатуры, отчетах и HTML-полях) начинают отображаться некорректно. Текст становится трудночитаемым, буквы наезжают друг на друга, а визуальный стиль интерфейса «Такси» искажается. Это доставляет серьезный дискомфорт сотрудникам и мешает повседневной работе.
В рамках этой статьи мы подробно разберем, почему возникает данная проблема, проанализируем механизмы рендеринга шрифтов в 1С под Linux и рассмотрим несколько практических способов исправления ситуации — от установки оригинальных шрифтов до настройки их автоматической подмены на свободные аналоги.
Для начала проанализируем техническую сторону вопроса. Исторически платформа 1С:Предприятие разрабатывалась с прицелом на операционную систему Windows. В дизайне ее интерфейсов (особенно в современном стиле «Такси») активно используются стандартные шрифты Microsoft, среди которых ключевую роль играет Tahoma. Именно этот шрифт прописан по умолчанию во многих элементах управления, диалоговых окнах и встроенных HTML-документах конфигураций.
Когда мы запускаем тонкий или толстый клиент 1С на операционной системе Linux (например, Ubuntu), платформа пытается запросить у операционной системы шрифт Tahoma. Если данный шрифт в системе отсутствует, подсистема отрисовки шрифтов Linux (Fontconfig) пытается выполнить автоматический подбор из доступного системного набора. Поскольку метрики встроенных свободных шрифтов Linux часто не совпадают с метриками шрифтов Microsoft, верстка элементов интерфейса «разъезжается», а сами буквы выглядят «кривыми» и неразборчивыми.
Многие администраторы полагают, что установка стандартного пакета ttf-mscorefonts-installer должна полностью решать все проблемы со шрифтами. Однако это не так. Шрифт Tahoma юридически не является частью оригинального пакета «Microsoft Core Fonts for the Web», который разрешен к свободному распространению. Данный шрифт поставлялся только вместе с Windows и MS Office, поэтому лицензионный пакет ttf-mscorefonts-installer в Linux его попросту не содержит. Нам придется решить эту проблему самостоятельно одним из описанных ниже методов.
Самый простой и очевидный способ вернуть интерфейсу 1С привычный и аккуратный вид — установить оригинальный шрифт Tahoma в систему. Рассмотрим, как это сделать правильно.
Поскольку легально скачать данный шрифт напрямую с сайтов Microsoft в виде отдельного пакета сложно, мы можем воспользоваться легальным обходным путем: извлечь оригинальные файлы шрифтов из официального пакета обновления Internet Explorer 6 (или других старых дистрибутивов Microsoft), которые до сих пор доступны в веб-архивах.
Выполним процедуру извлечения и установки по шагам в терминале Ubuntu:
cabextract, которая понадобится нам для распаковки файлов формата CAB:
sudo apt update
sudo apt install cabextract -y
mkdir ~/tahoma_install
cd ~/tahoma_install
wget https://sourceforge.net/projects/corefonts/files/OldFiles/IELPKTH.CAB
cabextract -F 'tahoma*ttf' IELPKTH.CAB
tahoma.ttf и жирное начертание tahomabd.ttf. Перенесем их в общесистемный каталог шрифтов TrueType, чтобы они стали доступны всем пользователям компьютера:
sudo mkdir -p /usr/share/fonts/truetype/msttcorefonts/
sudo mv tahoma.ttf tahomabd.ttf /usr/share/fonts/truetype/msttcorefonts/
sudo fc-cache -fv
После выполнения этих команд закройте все запущенные сеансы 1С:Предприятия и запустите клиент заново. Интерфейс должен отображаться корректно, так как платформа найдет оригинальный шрифт в каталоге /usr/share/fonts/truetype/msttcorefonts/.
Если в вашей организации действуют строгие корпоративные правила относительно использования лицензионного программного обеспечения, ручное копирование оригинальных проприетарных файлов Microsoft может быть нежелательным. В этом случае мы рекомендуем использовать абсолютно легальный и бесплатный аналог шрифта Tahoma, созданный в рамках проекта WINE.
Разработчики WINE воссоздали шрифт Tahoma с сохранением всех ключевых метрик оригинала. Благодаря этому элементы управления в 1С не будут смещаться, а текст останется гладким и четким. Выполним установку:
sudo apt update
sudo apt install fonts-wine -y
/usr/share/wine/fonts/. Нам необходимо скопировать файлы tahoma.ttf и tahomabd.ttf (в некоторых пакетах они могут называться в верхнем регистре) в пользовательский каталог шрифтов:
mkdir -p ~/.fonts
cp /usr/share/wine/fonts/tahoma* ~/.fonts/
sudo cp /usr/share/wine/fonts/tahoma* /usr/share/fonts/truetype/
fc-cache -fv
Еще один профессиональный метод решения проблемы в среде Linux — это настройка автоматической подмены шрифта на уровне операционной системы. Подсистема Fontconfig позволяет перехватывать запросы приложений на использование определенных шрифтов (например, Tahoma) и подставлять вместо них другие шрифты, которые гарантированно есть в системе (например, качественный и метрически совместимый шрифт Liberation Sans или стандартный Arial).
Преимущество этого метода заключается в том, что нам вообще не требуется скачивать или устанавливать сторонние файлы шрифтов. Настройка выполняется исключительно конфигурационными файлами Linux.
Рассмотрим, как настроить такую подмену:
/etc/fonts/local.conf (если его нет, мы создадим его) или отредактируем пользовательский файл настроек по пути ~/.config/fontconfig/fonts.conf. Воспользуемся текстовым редактором:
sudo nano /etc/fonts/local.conf
match). Если в вашей системе установлен отличный свободный шрифт Liberation Sans, мы перенаправим запросы к Tahoma на него:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test qual="any" name="family">
<string>Tahoma</string>
</test>
<edit mode="assign" name="family" binding="same">
<string>Liberation Sans</string>
</edit>
</match>
</fontconfig>
Arial (предварительно установленный через пакет ttf-mscorefonts-installer), секция подмены будет выглядеть следующим образом:
<match target="pattern">
<test qual="any" name="family">
<string>Tahoma</string>
</test>
<edit mode="assign" name="family">
<string>Arial</string>
</edit>
</match>
Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X).
sudo fc-cache -fv
После применения данного правила подсистемы рендеринга Linux будут автоматически заменять шрифт Tahoma на выбранный вами аналог при любом обращении платформы 1С к системе. Это полностью решит проблему с некорректными символами и сохранит пропорции элементов интерфейса.
Администраторам важно понимать логику работы самой платформы 1С:Предприятие при поиске экранных и печатных шрифтов в ОС Linux. Это поможет избежать ошибок при администрировании серверов.
Обратите внимание, что в старых версиях платформы (до 8.3.5 включительно) для регистрации новых шрифтов требовалось использовать специальную утилиту config_system, расположенную в каталоге установки 1С. Однако, начиная с версии 8.3.6, фирма 1С полностью удалила данную утилиту из дистрибутивов.
В современных релизах платформы (включая ветки 8.3.16, 8.3.20 и новее) поиск TrueType-шрифтов происходит полностью автоматически. Платформа сканирует строго определенный перечень директорий в вашей системе:
/usr/share/fonts/truetype/msttcorefonts/ — глобальная директория для шрифтов Microsoft Core Fonts./usr/share/fonts/msttcorefonts/ — альтернативный глобальный путь.$HOME/.fonts/ — индивидуальный каталог шрифтов текущего пользователя Linux, под учетной записью которого запущен сеанс 1С:Предприятия.Если вы устанавливаете шрифты вручную, мы рекомендуем размещать их именно в этих каталогах. Если клиент 1С запускается на рабочих местах пользователей локально, достаточно положить шрифты в их домашнюю папку ~/.fonts/. Если же у вас развернута клиент-серверная версия и печатные формы (например, отчеты или счета в формате PDF) формируются на стороне сервера приложений 1С, обязательно скопируйте шрифты в глобальную директорию сервера /usr/share/fonts/truetype/msttcorefonts/ и обновите кэш под учетной записью пользователя usr1cv8, от имени которого работает служба сервера 1С.
Также помните, что HTML-поля в современных версиях тонкого клиента 1С на Linux отображаются с помощью встроенного движка WebKit. Корректность сглаживания и отрисовки текста в таких полях напрямую зависит от системных библиотек libfontconfig и libfreetype. Если после установки шрифтов текст выглядит размытым («мыльным»), проверьте настройки субпиксельного рендеринга (Antialiasing и Hinting) в параметрах вашей графической оболочки Linux (GNOME, MATE или XFCE).