Как исправить отсутствие рамок и границ у элементов форм 1С в Linux

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с тонким клиентом «1С:Предприятие» в операционных системах семейства Linux (особенно в окружениях XFCE, таких как MX-Linux или Alt Linux) пользователи часто сталкиваются с проблемой «плоского» интерфейса. Элементы диалогов, поля ввода и кнопки лишаются видимых границ, что делает работу с программой практически невозможной. Однако основная проблема обычно кроется в конфликте графического движка платформы 1С с системными темами оформления GTK.

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

Метод 1. Принудительное использование совместимой темы оформления

Проанализируем ситуацию: платформа 1С активно использует библиотеки GTK для отрисовки окон. Многие современные темы (особенно темные или специфические для XFCE) не содержат необходимых инструкций для старых версий виджетов, которые использует 1С. Одним из самых стабильных решений является принудительный запуск 1С с классической темой Adwaita.

Рассмотрим алгоритм создания скрипта запуска, который позволит оставить системную тему неизменной, но заставит 1С работать в режиме совместимости:

  1. Откроем текстовый редактор и создадим новый файл.
  2. Вставим в него следующий код:
    
    #!/bin/bash
    GTK_THEME=Adwaita:light /opt/1cv8/common/1cestart "$@"
    
  3. Сохраним файл под именем 1c_start.sh и дадим ему права на исполнение командой chmod +x 1c_start.sh.
  4. Используем этот скрипт вместо стандартного ярлыка запуска.

Переменная GTK_THEME=Adwaita:light указывает системе, что для данного процесса нужно использовать светлую тему Adwaita, в которой корректно прописаны все границы элементов. Это позволяет избежать «рассыпания» интерфейса даже на кастомных сборках Linux.

Метод 2. Настройка графического протокола X11

Многие современные дистрибутивы переходят на протокол Wayland. Однако платформа 1С оптимизирована для работы с X11. При работе через прослойку XWayland отрисовка теней и границ может давать сбои. Выясним, как заставить 1С работать напрямую через нужный бэкенд.

Дополним наш скрипт запуска переменной GDK_BACKEND=x11. Это принудительно переключит графический движок в режим совместимости. Модифицированный код запуска будет выглядеть так:


#!/bin/bash
GDK_BACKEND=x11 GTK_THEME=Adwaita:light /opt/1cv8/common/1cestart "$@"

Важный момент: использование X11 часто решает проблемы не только с рамками, но и с некорректным позиционированием выпадающих списков и контекстных меню.

Метод 3. Установка дополнительных библиотек и зависимостей

Разберем ситуацию, когда изменение темы не помогает. В некоторых дистрибутивах (например, MX-Linux или Astra Linux) отрисовка зависит от наличия специфических движков тем и корректного набора системных библиотек. В частности, стоит изучить особенности настройки Astra Linux с установкой зависимостей, так как отсутствие определенных пакетов часто является причиной графических артефактов. Для автоматизации развертывания компонентов среды можно использовать сценарий для автоматической установки 1С и PostgreSQL в Astra Linux.

  1. Установим пакет kvantum через терминал или менеджер пакетов. Опыт пользователей показывает, что этот менеджер тем подтягивает необходимые зависимости для рендеринга границ.
  2. Проверим наличие установленных шрифтов Microsoft Core Fonts (пакет ttf-mscorefonts-installer или аналогичный).

После установки библиотек обязательно выполним перезагрузку системы. Для пользователей Alt Linux Workstation 10 дополнительно рекомендуется убедиться в наличии пакетов libcanberra-gtk-module и libcanberra-gtk3-module.

Метод 4. Использование внутреннего стиля отрисовки Fusion

Если манипуляции с GTK не приносят результата, попробуем использовать встроенный в платформу универсальный стиль оформления fusion. Он менее зависим от настроек операционной системы и часто выглядит более предсказуемо.

Для этого в строку запуска (или в наш bash-скрипт) добавим параметр -style fusion:

/opt/1cv8/common/1cestart -style fusion

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

Метод 5. Управление масштабированием (DPI)

Проанализируем влияние системного масштабирования. Если в настройках экрана установлено нецелое значение (например, 125%), 1С может округлять толщину рамки в 1 пиксель до нуля, из-за чего она исчезает.

Чтобы исключить влияние масштабирования, попробуем добавить в скрипт переменную GDK_SCALE=1. Если после этого рамки появились, значит, проблема в системном сглаживании. В таком случае рекомендуется использовать только целые значения масштаба (100%, 200%) или настраивать DPI через конфигурационные файлы платформы.

Метод 6. Ручная правка стилей CSS и визуальное выделение групп

Для продвинутых пользователей рассмотрим вариант исправления границ через пользовательские стили. Платформа 1С использует стандартные классы виджетов GTK. Мы можем принудительно добавить им обводку через файл конфигурации пользователя.

  1. Перейдем в директорию ~/.config/gtk-3.0/.
  2. Создадим или откроем файл gtk.css.
  3. Добавим следующее правило для полей ввода:
    
    entry {
        border: 1px solid #777777;
    }
    

Если же проблема носит локальный характер и касается только определенных форм, иногда проще реализовать рамку группы в управляемых формах 1С:Такси программными средствами самой платформы.

Заключение

Мы рассмотрели комплекс мер по восстановлению визуальных элементов интерфейса 1С в среде Linux. Наиболее эффективным решением остается комбинированный запуск через bash-скрипт с указанием темы Adwaita и бэкенда X11. Помните, что стабильный интерфейс — это основа, на которой строится вся концепция защищенной IT инфраструктуры на базе Astra Linux и 1С. Не забывайте также о важности обновления библиотек libwebkit2gtk, так как современные конфигурации 1С активно используют HTML-формы для отображения отчетности. Для построения такого окружения пригодится руководство по развертыванию защищенной инфраструктуры на базе Astra Linux и 1С.

← На главную