При работе с тонким клиентом «1С:Предприятие» в операционных системах семейства Linux (особенно в окружениях XFCE, таких как MX-Linux или Alt Linux) пользователи часто сталкиваются с проблемой «плоского» интерфейса. Элементы диалогов, поля ввода и кнопки лишаются видимых границ, что делает работу с программой практически невозможной. Однако основная проблема обычно кроется в конфликте графического движка платформы 1С с системными темами оформления GTK.
В данной статье мы разберем по шагам, как вернуть рамки элементам форм, проанализируем влияние различных библиотек и научимся настраивать среду запуска 1С для корректного отображения интерфейса.
Проанализируем ситуацию: платформа 1С активно использует библиотеки GTK для отрисовки окон. Многие современные темы (особенно темные или специфические для XFCE) не содержат необходимых инструкций для старых версий виджетов, которые использует 1С. Одним из самых стабильных решений является принудительный запуск 1С с классической темой Adwaita.
Рассмотрим алгоритм создания скрипта запуска, который позволит оставить системную тему неизменной, но заставит 1С работать в режиме совместимости:
#!/bin/bash
GTK_THEME=Adwaita:light /opt/1cv8/common/1cestart "$@"
1c_start.sh и дадим ему права на исполнение командой chmod +x 1c_start.sh.Переменная GTK_THEME=Adwaita:light указывает системе, что для данного процесса нужно использовать светлую тему Adwaita, в которой корректно прописаны все границы элементов. Это позволяет избежать «рассыпания» интерфейса даже на кастомных сборках Linux.
Многие современные дистрибутивы переходят на протокол Wayland. Однако платформа 1С оптимизирована для работы с X11. При работе через прослойку XWayland отрисовка теней и границ может давать сбои. Выясним, как заставить 1С работать напрямую через нужный бэкенд.
Дополним наш скрипт запуска переменной GDK_BACKEND=x11. Это принудительно переключит графический движок в режим совместимости. Модифицированный код запуска будет выглядеть так:
#!/bin/bash
GDK_BACKEND=x11 GTK_THEME=Adwaita:light /opt/1cv8/common/1cestart "$@"
Важный момент: использование X11 часто решает проблемы не только с рамками, но и с некорректным позиционированием выпадающих списков и контекстных меню.
Разберем ситуацию, когда изменение темы не помогает. В некоторых дистрибутивах (например, MX-Linux или Astra Linux) отрисовка зависит от наличия специфических движков тем и корректного набора системных библиотек. В частности, стоит изучить особенности настройки Astra Linux с установкой зависимостей, так как отсутствие определенных пакетов часто является причиной графических артефактов. Для автоматизации развертывания компонентов среды можно использовать сценарий для автоматической установки 1С и PostgreSQL в Astra Linux.
kvantum через терминал или менеджер пакетов. Опыт пользователей показывает, что этот менеджер тем подтягивает необходимые зависимости для рендеринга границ.ttf-mscorefonts-installer или аналогичный).После установки библиотек обязательно выполним перезагрузку системы. Для пользователей Alt Linux Workstation 10 дополнительно рекомендуется убедиться в наличии пакетов libcanberra-gtk-module и libcanberra-gtk3-module.
Если манипуляции с GTK не приносят результата, попробуем использовать встроенный в платформу универсальный стиль оформления fusion. Он менее зависим от настроек операционной системы и часто выглядит более предсказуемо.
Для этого в строку запуска (или в наш bash-скрипт) добавим параметр -style fusion:
/opt/1cv8/common/1cestart -style fusion
Этот метод переключает 1С на использование собственного механизма отрисовки элементов, который имитирует классический интерфейс и обычно содержит четко выраженные рамки у полей ввода и кнопок.
Проанализируем влияние системного масштабирования. Если в настройках экрана установлено нецелое значение (например, 125%), 1С может округлять толщину рамки в 1 пиксель до нуля, из-за чего она исчезает.
Чтобы исключить влияние масштабирования, попробуем добавить в скрипт переменную GDK_SCALE=1. Если после этого рамки появились, значит, проблема в системном сглаживании. В таком случае рекомендуется использовать только целые значения масштаба (100%, 200%) или настраивать DPI через конфигурационные файлы платформы.
Для продвинутых пользователей рассмотрим вариант исправления границ через пользовательские стили. Платформа 1С использует стандартные классы виджетов GTK. Мы можем принудительно добавить им обводку через файл конфигурации пользователя.
~/.config/gtk-3.0/.gtk.css.
entry {
border: 1px solid #777777;
}
Если же проблема носит локальный характер и касается только определенных форм, иногда проще реализовать рамку группы в управляемых формах 1С:Такси программными средствами самой платформы.
Мы рассмотрели комплекс мер по восстановлению визуальных элементов интерфейса 1С в среде Linux. Наиболее эффективным решением остается комбинированный запуск через bash-скрипт с указанием темы Adwaita и бэкенда X11. Помните, что стабильный интерфейс — это основа, на которой строится вся концепция защищенной IT инфраструктуры на базе Astra Linux и 1С. Не забывайте также о важности обновления библиотек libwebkit2gtk, так как современные конфигурации 1С активно используют HTML-формы для отображения отчетности. Для построения такого окружения пригодится руководство по развертыванию защищенной инфраструктуры на базе Astra Linux и 1С.