Зачем в сервер 1С:Предприятия для Linux включены jar-файлы и можно ли обойтись без них?

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

При установке или обновлении платформы 1С:Предприятие на Linux-системах (RPM или DEB) многие системные администраторы обращают внимание на наличие каталогов с расширением .jar. На первый взгляд кажется странным, что классическое приложение, написанное на C++, требует Java-библиотеки. В этой статье мы подробно разберем, какую роль играют эти файлы, можно ли исключить их из установки и как они влияют на стабильность и производительность серверного кластера.

Архитектурная роль Java-компонентов в 1С:Предприятии

Начиная с версии 8.3.13, компания 1С начала активно внедрять вспомогательные сервисы, написанные на языке Java. Это решение продиктовано необходимостью создания кроссплатформенных инструментов, которые работали бы идентично как в Windows, так и в Linux-среде. Рассмотрим основные механизмы, которые опираются на эти библиотеки.

Во-первых, это механизм реструктуризации информационной базы второй версии (v2). Все файлы, находящиеся в каталоге dmf (Data Modification Framework), представляют собой Java-приложение, которое берет на себя наиболее тяжелые операции по изменению структуры таблиц в СУБД. В отличие от старого механизма, который выполнял операции последовательно через ядро сервера, версия v2 позволяет выполнять реструктуризацию в несколько потоков, значительно сокращая время простоя системы при обновлении конфигурации.

Во-вторых, это утилита управления 1C:Enterprise Ring. Она является ключевым звеном в современной инфраструктуре 1С. Без библиотек Java невозможно полноценное использование консольной утилиты ring, которая отвечает за:

  1. Активацию и управление программными лицензиями через командную строку (пин-коды).
  2. Настройку и регистрацию дополнительных модулей, таких как сервер лицензирования или сервер истории данных.
  3. Создание и управление профилями безопасности и другими сервисными функциями кластера.

Разбор состава пакетов и возможность выборочной установки

Проанализируем ситуацию, с которой сталкивается администратор при установке RPM-пакетов. Jar-файлы не выделены в отдельный пакет, они являются частью базового пакета 1c-enterprise83-common. Это означает, что технически крайне сложно установить сервер, исключив только эти файлы.

Выясним, будет ли работать сервер, если эти файлы все же будут удалены или если в системе не будет установлена среда исполнения Java (JRE). Рассмотрим последствия такого решения:

Настройка среды для работы Java-компонентов

Для того чтобы включенные в дистрибутив jar-файлы корректно функционировали, в операционной системе должна быть установлена среда Java (OpenJDK или Oracle JRE) версии не ниже 8. Разберем по шагам, как проверить готовность сервера к работе с этими компонентами.

Проанализируем состояние переменных окружения. Платформа 1С ищет исполняемый файл Java либо в стандартных путях системы, либо по переменной JAVA_HOME. Если вы используете специфическую версию Java, рекомендуется явно указать путь к ней.

Пример проверки установленной версии в консоли Linux:


java -version
# Ожидаемый вывод: openjdk version "1.8.0_..." или выше

Если Java установлена, но компоненты 1С выдают ошибки, необходимо проверить права доступа к каталогу /opt/1cv8/x86_64/common/lib/ (или аналогичному пути для вашей версии). Файлы должны быть доступны для чтения пользователю, от имени которого запущен сервер 1С (обычно это пользователь usr1cv8).

Использование утилиты Ring и управление лицензиями

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


/opt/1C/1CE/components/1c-enterprise-ring-0.1.0+7-x86_64/ring license activate --pin 111-222-333-444-555 --serial 123456789

В этом примере ring обращается к своим внутренним библиотекам, которые как раз и упакованы в те самые jar-файлы. Если исключить их из системы, данная команда вернет ошибку отсутствия класса или модуля.

Реструктуризация v2: преимущества и особенности

Выясним причину, по которой 1С настоятельно рекомендует использовать вторую версию реструктуризации. При использовании старого метода (v1) любое изменение структуры таблицы (например, добавление реквизита) приводило к созданию временной таблицы, копированию туда всех данных, удалению старой таблицы и переименованию новой. Это требовало двойного объема дискового пространства и занимало огромное количество времени.

Механизм dmf (те самые jar-библиотеки) реализует более интеллектуальный подход:

  1. Многопоточность: Индексы и данные могут обрабатываться параллельно.
  2. Прямая работа с SQL: Java-компонент генерирует оптимизированные SQL-запросы, специфичные для каждой СУБД (PostgreSQL, MS SQL, IBM DB2, Oracle).
  3. Снижение нагрузки на rphost: Основной процесс сервера не блокируется тяжелыми вычислительными операциями по трансформации данных.

Важный момент: Хотя для базовой работы «Реструктуризации v2» лицензия КОРП не обязательна, некоторые продвинутые функции управления кластером, реализуемые через Java-интерфейсы, могут требовать КОРП-лицензию. Однако наличие самих файлов в дистрибутиве обязательно для всех версий.

Стоит ли удалять эти файлы?

Подведем итог нашему анализу. Удаление jar-файлов из каталога установки или попытка «облегчить» дистрибутив путем их исключения является плохой практикой по нескольким причинам:

Таким образом, наличие каталога lib с jar-файлами в серверной части 1С:Предприятия для Linux — это не ошибка сборки, а необходимый элемент современной архитектуры системы. Мы рекомендуем обеспечить наличие установленной JRE в системе и не вмешиваться в структуру установленных пакетов 1С, чтобы гарантировать стабильную и производительную работу вашего сервера.

← На главную