Как решить проблему с установкой и зависанием клиентов 1С на Linux?

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

Перевод инфраструктуры 1С:Предприятие на операционные системы семейства Linux (такие как Debian, Ubuntu, Astra Linux, РЕД ОС) — актуальная задача для многих системных администраторов. Однако в процессе развертывания часто возникают специфические сложности, которых не было в среде Windows. В частности, это конфликты зависимостей при установке различных версий платформы, проблемы совместимости 32-битных и 64-битных пакетов, а также неожиданные зависания графического интерфейса при первом запуске.

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

Проблема 1: Зависание лаунчера 1С при первом запуске (диалог «Добавить информационную базу»)

Рассмотрим весьма распространенный сценарий: установка платформы (например, версии 8.3.18.891) на чистую систему Linux завершена без ошибок, зависимости удовлетворены. Администратор или пользователь пытается запустить стартер 1С (лаунчер). Поскольку список баз пуст, система выводит стандартное окно с предложением добавить новую базу. Но при нажатии на любую кнопку («Да» или «Нет») диалоговое окно закрывается, а сам процесс 1cv8 намертво зависает в фоновом режиме, не открывая основное окно выбора баз.

Выясним причину этого поведения. Проблема кроется во встроенном веб-браузере платформы и механизмах рендеринга интерфейса. Стартовые окна 1С, особенно окна авторизации и создания баз, активно задействуют движок WebKit/GTK. Если в операционной системе отсутствуют необходимые библиотеки рендеринга или нарушена интеграция с GTK3 (о чем часто свидетельствуют предупреждения в консоли вида Gtk-WARNING **: Theme parsing error: gtk.css), графическая подсистема уходит в бесконечный цикл ожидания ответа, блокируя выполнение основного потока программы.

Для решения этой проблемы мы можем применить несколько эффективных методов.

Метод 1: Обход диалога через создание базы из командной строки

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


/opt/1cv8/x86_64/8.3.18.891/1cv8 CREATEINFOBASE File=$HOME/testinfobase /ADDTOLIST testinfobase

Рассмотрим параметры этой команды подробнее:

  1. /opt/1cv8/x86_64/8.3.18.891/1cv8 — прямой путь к исполняемому файлу конкретной версии платформы (замените номер версии на актуальный для вас).
  2. CREATEINFOBASE — директива создания новой информационной базы.
  3. File=$HOME/testinfobase — указывает, что создается файловая база в домашнем каталоге пользователя в папке testinfobase.
  4. /ADDTOLIST testinfobase — параметр, который автоматически добавляет созданную базу в список зарегистрированных баз под именем testinfobase.

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

Метод 2: Ручное создание файла списка баз

Если мы не хотим создавать физическую базу на диске, мы можем вручную сформировать файл конфигурации списка баз ibases.v8i. Шаги выполнения выглядят следующим образом:

  1. Перейдем в каталог настроек 1С текущего пользователя. В Linux он располагается по пути: ~/.1C/1cestart/. Если каталога не существует, создадим его.
  2. Создадим текстовый файл с именем ibases.v8i.
  3. Запишем в него параметры фиктивной или реальной информационной базы. Например:

[Фиктивная база для обхода зависания]
Connect=File="~/.1C/dummy_db";
ID=12345678-1234-1234-1234-1234567890ab
OrderInList=16384
Folder=/
OrderInTree=16384
ExternalConnection=
App=Auto
WA=1
AppArch=Default

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

Метод 3: Установка недостающих графических библиотек

Чтобы окончательно решить проблему с отображением встроенного веб-контента в 1С на дистрибутивах Debian или Astra Linux, нам потребуется установить системные библиотеки WebKitGTK. Для этого в терминале выполним установку пакетов:


sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-37

Если вы используете устаревшие версии платформы 1С, им может потребоваться более ранняя ветка библиотеки:

sudo apt-get install libwebkitgtk-3.0-0

Проблема 2: Конфликты пакетов тонкого клиента (thin-client) и сервера 1С

Часто системные администраторы сталкиваются с ситуацией, когда на сервере, где уже функционирует серверная часть 1С, требуется установить тонкий клиент для локального администрирования или тестирования. При попытке установить пакет 1c-enterprise83-thin-client менеджер пакетов выдает ошибку о неразрешимом конфликте с пакетом 1c-enterprise83-common.

Давайте разберем архитектуру пакетов 1С на Linux, чтобы понять, почему это происходит. Разработчики 1С заложили в пакет тонкого клиента жесткий конфликт с общими библиотеками платформы. Пакет thin-client позиционируется как легковесный дистрибутив исключительно для рабочих станций пользователей, где нет и не планируется установка полноценной платформы или сервера.

Если на вашем компьютере уже установлены пакеты сервера (server) и общие компоненты (common), то:

Проблема 3: Установка и сосуществование нескольких версий платформ на одном сервере Linux

В операционной системе Windows мы привыкли к тому, что разные версии платформы 1С устанавливаются параллельно в соседние директории (например, в C:\Program Files\1cv8\), а общий стартер автоматически выбирает нужную версию для запуска конкретной базы. В Linux старые пакетные дистрибутивы (до версии 8.3.20) ведут себя иначе: при установке новой версии менеджер пакетов пытается обновить текущую, заменяя файлы предыдущей версии.

Рассмотрим, как обойти это ограничение и развернуть несколько версий платформ параллельно.

Вариант для старых версий платформ (до 8.3.20): Ручная распаковка пакетов

Чтобы обойти контроль пакетного менеджера dpkg или apt, мы можем распаковать deb-пакеты вручную в обход стандартной процедуры установки. Разберем этот процесс по шагам:

  1. Скачаем необходимые deb-пакеты нужной нам версии 1С во временную папку.
  2. Распакуем содержимое пакетов с помощью утилиты dpkg-deb. Например, создадим директорию для распаковки:

mkdir -p /tmp/1c_unpack
dpkg-deb -x 1c-enterprise83-common_8.3.18.891_amd64.deb /tmp/1c_unpack/
dpkg-deb -x 1c-enterprise83-server_8.3.18.891_amd64.deb /tmp/1c_unpack/
dpkg-deb -x 1c-enterprise83-client_8.3.18.891_amd64.deb /tmp/1c_unpack/
  1. Перенесем распакованные бинарные файлы в индивидуальный каталог версии в папке /opt/:

sudo mkdir -p /opt/1cv8/x86_64/8.3.18.891/
sudo cp -r /tmp/1c_unpack/opt/1cv8/x86_64/8.3.18.891/* /opt/1cv8/x86_64/8.3.18.891/

При таком подходе разные версии платформы будут физически изолированы друг от друга в файловой системе и не вступят в конфликт. Запуск конкретной версии сервера или клиента будет осуществляться путем прямого вызова исполняемых файлов из соответствующей директории.

Вариант для современных версий платформ (начиная с 8.3.20)

Начиная с версии 8.3.20 (а также в некоторых поздних релизах 8.3.18), компания 1С существенно упростила этот процесс, перейдя на единый дистрибутив установки в формате .run-файлов (например, setup-full-8.3.20.xxxx-x86_64.run). Этот инсталлятор работает аналогично установщику Windows: он автоматически размещает файлы разных релизов в изолированные папки и корректно регистрирует общий стартер без конфликтов на уровне ОС.

Проблема 4: Установка 32-битных клиентов на 64-битную ОС Linux

При необходимости запустить старые конфигурации или внешние компоненты, которые жестко привязаны к 32-битной архитектуре, администраторы пытаются установить 32-битный клиент 1С на 64-битный сервер. Напрямую это сделать невозможно из-за ошибок отсутствия библиотек.

Посмотрим, как решить эту проблему с помощью технологии мультиархитектуры (Multiarch). Нам необходимо разрешить операционной системе загружать и использовать 32-битные библиотеки параллельно с 64-битными. Выполним по шагам в консоли:

  1. Добавим поддержку 32-битной архитектуры (i386) в пакетный менеджер:

sudo dpkg --add-architecture i386

  1. Обновим списки доступных пакетов из репозиториев:

sudo apt-get update

  1. Установим базовый набор системных библиотек совместимости:

sudo apt-get install libc6:i386 libstdc++6:i386 libgsf-1-common

После этого пакетный менеджер сможет успешно разрешить зависимости, и вы без труда установите 32-битные deb-пакеты клиента 1С на вашу 64-битную систему Debian или Astra Linux.

← На главную