Как исправить ошибку «Ошибка загрузки компоненты moxel» при работе с сервером 1С

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

При обновлении платформы 1С:Предприятие 8.3 до актуальных релизов (начиная с 8.3.18.1741, 8.3.19.1150, 8.3.20 и выше) системные администраторы часто сталкиваются с критической ошибкой: «Ошибка соединения с рабочим процессом. Ошибка загрузки компоненты moxel». Эта проблема парализует работу пользователей, так как компонента moxel отвечает за формирование и отображение табличных документов, отчетов и печатных форм.

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

Выясним причину возникновения ошибки

Для начала разберем техническую сторону вопроса. Компонента moxel — это ключевой модуль 1С, который занимается рендерингом (отрисовкой) таблиц. В новых версиях платформы разработчики перешли на использование современных библиотек для работы с цветовыми профилями и графикой. Основным требованием стала интеграция с библиотекой Little CMS (lcms2).

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

Рассмотрим решение для систем на базе RedHat (CentOS, AlmaLinux, Oracle Linux)

Если ваш сервер работает под управлением CentOS или AlmaLinux, первым делом необходимо проверить наличие пакета lcms2. Проанализируем типичный сценарий: вы обновили платформу, и базы перестали открываться. Посмотрим, как это исправить через терминал.

Для установки недостающего компонента воспользуемся пакетным менеджером yum или dnf. Выполним следующую команду:

yum install lcms2

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

yum install gtk3

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

systemctl restart srv1cv8-8.3.20.1710@default (укажите вашу версию платформы).

Разберем установку на Debian, Ubuntu и Astra Linux

В дистрибутивах, основанных на Debian, пакет имеет несколько иное название. Рассмотрим порядок действий для системного администратора. В большинстве случаев достаточно установить пакет liblcms2-2. Выполним обновление списков пакетов и установку:

apt-get update
apt-get install liblcms2-2

Важное замечание по архитектуре: если вы используете 32-битный сервер 1С на 64-битной операционной системе Ubuntu или Debian, вам необходимо установить библиотеку соответствующей разрядности. Разберем, как это сделать:

dpkg --add-architecture i386
apt-get update
apt-get install liblcms2-2:i386

Проанализируем ситуацию, когда установка основной библиотеки не помогает. На Debian 11 иногда требуется установка дополнительных пакетов разработки или графических библиотек:

apt-get install liblcms2-dev
apt-get install libgtk-3-0

Почему ошибка возникает на сервере лицензирования?

Рассмотрим интересную ситуацию, описанную многими специалистами: основной рабочий сервер 1С работает под управлением Windows, а сервер лицензирования (или менеджер кластера) вынесен на Linux. Казалось бы, moxel нужен для отчетов, которые формируются на рабочем сервере. Однако ошибка все равно появляется.

Выясним причину: при инициализации сеанса платформа проверяет окружение на всех узлах кластера. Если на узле, отвечающем за раздачу лицензий, не хватает системных библиотек для загрузки базовых модулей 1С (включая moxel), кластер может считать этот узел неисправным или выдавать ошибку загрузки компоненты при попытке обмена данными. Решение: устанавливайте liblcms2 на все узлы кластера без исключения, даже если они не являются рабочими серверами (не несут нагрузку по рабочим процессам).

Проанализируем сопутствующие зависимости для Linux

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

  1. libfontconfig1 — управляет конфигурацией шрифтов. Без нее отчеты могут отображаться некорректно или вызывать ошибки рендеринга.
  2. libfreetype6 — используется для отрисовки шрифтов.
  3. libgsf-1-common — необходима для работы со структурированными хранилищами файлов (Excel, Word).
  4. libglib2.0-0 — фундаментальная библиотека для работы многих системных модулей.

Рекомендуем превентивно установить данные пакеты, если вы сталкиваетесь с ошибками при выгрузке отчетов в PDF или Excel на Linux-сервере.

Рассмотрим особенности работы в Windows Server

Хотя ошибка «moxel» чаще встречается в Linux-среде, пользователи Windows также не застрахованы от нее. Разберем основные причины для ОС Windows:

1. Отсутствие Microsoft Visual C++ Redistributable. Для работы современных версий 1С (8.3.19+) требуются пакеты распространяемого кода Visual Studio 2015-2022. Проверим их наличие в разделе «Программы и компоненты». Если они отсутствуют или повреждены, компонента moxel.dll не сможет загрузить свои внутренние зависимости.

2. Права доступа к каталогу bin. Проанализируем права доступа. Служба сервера 1С (обычно запущенная от имени пользователя USR1CV8) должна иметь права на «Чтение и выполнение» в папке установки платформы. Если права ограничены, загрузка DLL-файлов будет заблокирована операционной системой.

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

Очистка серверного кэша

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

  1. Остановим службу сервера 1С:Предприятие.
  2. Перейдем в каталог с данными сервера (обычно это /home/usr1cv8/.1cv8/1C/1cv8 на Linux или %ProgramData%\1C\1cv8 на Windows).
  3. Найдем папку snaccfg и очистим ее содержимое. Это сбросит настройки сеансов и временные данные кластера.
  4. Очистим временные файлы в папках /tmp (для Linux) или %TEMP% пользователя службы.
  5. Запустим службу сервера заново.

Рекомендации для Docker-контейнеров

Если вы занимаетесь контейнеризацией приложений и разворачиваете 1С в Docker, убедитесь, что ваш Dockerfile содержит инструкции по установке необходимых библиотек. Проанализируем пример фрагмента кода для образа на базе Ubuntu:


RUN apt-get update && apt-get install -y \
    liblcms2-2 \
    libfontconfig1 \
    libfreetype6 \
    libgtk-3-0 \
    && rm -rf /var/lib/apt/lists/*

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

Подведем итог: решение проблемы в 99% случаев сводится к установке библиотеки lcms2. Помните о необходимости проверять все узлы вашего кластера 1С и следить за актуальностью системных библиотек после каждого обновления платформы.

← На главную