Почему не запускаются тонкий и толстый клиенты 1С на Ubuntu и как исправить ошибку symbol lookup error?

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

При работе с платформой «1С:Предприятие» в среде Linux, особенно на дистрибутивах с длительным сроком поддержки (LTS), пользователи часто сталкиваются с ситуацией, когда после успешной установки графические клиенты отказываются запускаться. Проблема выглядит следующим образом: пользователь вводит логин и пароль, появляется заставка конфигурации (например, «Бухгалтерия предприятия»), но через несколько секунд окно просто закрывается без каких-либо видимых уведомлений об ошибках. В Журнале регистрации 1С при этом не фиксируется никаких событий, так как падение происходит на уровне системных библиотек еще до полной инициализации сеанса.

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

Шаг 1. Проводим диагностику через терминал

Первым делом нам необходимо выяснить истинную причину «тихого» закрытия программы. Когда графическая оболочка падает, она часто выводит диагностические сообщения в стандартный поток ошибок stderr, который мы не видим при обычном запуске через ярлык. Разберем, как запустить клиент из консоли.

Откроем терминал и перейдем в каталог, где установлена платформа (путь может отличаться в зависимости от версии). Попробуем запустить тонкий клиент командой:

/opt/1cv8/x86_64/8.3.23.2040/1cv8c

Проанализируем вывод. В рассматриваемом нами случае система возвращает критическую ошибку:

1cv8c: symbol lookup error: /opt/1cv8/x86_64/8.3.23.2040/libwebkitgtk-v8.so: undefined symbol: gtk_widget_path_iter_set_object_name

Эта запись говорит о том, что библиотека libwebkitgtk-v8.so, входящая в состав поставки 1С, пытается обратиться к функции gtk_widget_path_iter_set_object_name в системной библиотеке GTK+, но не находит её.

Шаг 2. Выясняем техническую причину конфликта

Давайте разберем техническую подоплеку проблемы. Функция gtk_widget_path_iter_set_object_name была добавлена в библиотеку GTK+ только начиная с версии 3.20. В старых дистрибутивах, таких как Ubuntu 16.04 (Xenial Xerus), по умолчанию используется версия GTK+ 3.18.

Платформа 1С версии 8.3.23 и выше собирается в более современной среде. Таким образом, возникает фундаментальная несовместимость: компоненты 1С ожидают наличия современных системных вызовов, которых в старой ОС просто не существует. Это касается не только WebKit, но и требований к стандартной библиотеке C++ (libstdc++).

Шаг 3. Решение через принудительное использование системных библиотек

Одним из способов решения проблемы без глобального обновления операционной системы является манипуляция библиотеками внутри каталога установки 1С. Платформа «1С:Предприятие» поставляет вместе с собой ряд библиотек (например, libstdc++.so.6), чтобы гарантировать запуск на разных дистрибутивах. Однако иногда эти «внутренние» библиотеки начинают конфликтовать с системными.

Рассмотрим алгоритм действий:

  1. Перейдем в каталог установленной платформы: /opt/1cv8/x86_64/ИМЯ_РЕЛИЗА/.
  2. Найдем файл libstdc++.so.6.
  3. Вместо полного удаления рекомендуется просто переименовать его (например, в libstdc++.so.6.bak), чтобы система его «не видела».

После этого платформа будет вынуждена обратиться к стандартной библиотеке из системного пути /usr/lib. В ряде случаев это позволяет обойти ошибки линковки и запустить клиент.

Шаг 4. Обновление платформы 1С

Как показывает практика, разработчики 1С в последующих минорных и мажорных релизах могут вносить коррективы в механизм связки с webkitgtk. Рассмотрим ситуацию, когда переход на более свежий релиз исправляет ситуацию. Например, переход с версии 8.3.23.2040 на версию 8.3.25.1560 часто решает проблему «из коробки», так как в новых сборках могут быть изменены зависимости или способы динамической загрузки символов.

Проанализируем процесс обновления:

  1. Скачайте актуальный дистрибутив платформы (рекомендуется 8.3.25 или выше).
  2. Установите его, используя стандартный установщик 1С.
  3. Попробуйте выполнить запуск. Если разработчики оптимизировали работу с компонентами WebKit для совместимости со старыми библиотеками GTK, клиент запустится без дополнительных манипуляций.

Шаг 5. Альтернативные методы запуска и настройки

Если вышеуказанные способы не помогают, разберем еще несколько вариантов стабилизации работы:

1. Использование веб-клиента. Это самый надежный способ для старых систем Linux. Опубликуйте информационную базу на веб-сервере (Apache или IIS). Поскольку отрисовку интерфейса в этом случае берет на себя современный браузер (Chrome или Firefox), проблемы с локальными библиотеками GTK и WebKit полностью нивелируются.

2. Проверка дополнительных зависимостей. Иногда платформе не хватает специфических пакетов. Убедитесь, что в системе установлены:

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

GDK_BACKEND=x11 /opt/1cv8/x86_64/8.3.23.2040/1cv8c

Резюме и рекомендации

Подводя итог, отметим, что основной причиной падения 1С на Ubuntu 16.04 является несоответствие версий GTK+ требованиям новых релизов платформы. Мы рекомендуем следующий порядок действий: сначала попробуйте обновить платформу до актуальной (например, ветки 8.3.25). Если это не помогло, используйте метод с переименованием libstdc++.so.6. Однако самым стратегически верным решением будет запланировать обновление операционной системы до Ubuntu 20.04 или 22.04, где версии системных библиотек полностью соответствуют требованиям современного софта от 1С. При необходимости можно воспользоваться справочником с готовыми решениями задач администрирования систем и 1С для устранения сопутствующих неполадок.

← На главную