Почему 1С не видит лицензию через веб-клиент на Linux и как это исправить?

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

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

Выясним причину: почему тонкий клиент работает, а веб-клиент — нет?

Для начала проанализируем ситуацию. Когда вы запускаете тонкий клиент непосредственно на сервере или рабочей станции, поиск лицензии выполняет само клиентское приложение 1cv8. Оно ищет файлы программных лицензий в домашнем каталоге текущего пользователя (например, ~/.1cv8/1C/1cv8/conf).

В случае с веб-клиентом ситуация кардинально меняется. Браузер (Chrome, Firefox и др.) ничего не знает о лицензиях 1С и не умеет их искать. В файловом варианте работы базы лицензию клиенту выдает модуль расширения веб-сервера (например, mod_1c24.so для Apache). Этот модуль работает от имени системного пользователя веб-сервера (в Ubuntu это обычно www-data). Следовательно, процесс веб-сервера просто не имеет прав доступа к файлам лицензий, которые лежат в папке вашего личного пользователя, и даже не знает о их существовании.

Шаг 1: Определение правильного места для хранения лицензий

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

/var/1C/licenses

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

  1. Создадим необходимый каталог, если он еще не существует:
    
    sudo mkdir -p /var/1C/licenses
    
  2. Найдем файл лицензии (с расширением .lic) в домашнем каталоге пользователя, где она была активирована. Обычно это путь вида /home/имя_пользователя/.1cv8/1C/1cv8/conf/*.lic.
  3. Переместим или скопируем файл лицензии в созданную папку:
    
    sudo cp /home/user/.1cv8/1C/1cv8/conf/20240503130634.lic /var/1C/licenses/
    

Шаг 2: Настройка прав доступа для пользователя веб-сервера

Просто перенести файл недостаточно. Проанализируем типичную ошибку: даже после переноса веб-сервер может продолжать выдавать ошибку отсутствия ключа. Это происходит из-за того, что у пользователя www-data нет прав на чтение файла.

Многие используют радикальный метод chmod 777, однако мы рекомендуем более безопасный и корректный подход. Нам нужно назначить владельца и установить права на чтение. Выполним следующие команды:


sudo chown -R usr1cv8:grp1cv8 /var/1C/
sudo chmod -R 755 /var/1C/

Важный нюанс: Чтобы веб-сервер Apache мог прочитать файл, пользователю www-data нужны права на "выполнение" (доступ к каталогу) для всех родительских папок в пути. Проверим, что Apache включен в группу, имеющую доступ к лицензиям, либо просто установим права на чтение для "остальных" (others), если политика безопасности это позволяет.

Шаг 3: Особенности работы СЛК (Системы лицензирования конфигураций)

Если ваша конфигурация (например, "Салон красоты" или "Общепит") использует дополнительную защиту СЛК, то одной лицензии платформы будет недостаточно. Проанализируем механизм СЛК в веб-клиенте:

Для корректной работы СЛК через веб-интерфейс убедитесь, что на сервере установлен и запущен Сервер СЛК. В настройках самой конфигурации необходимо указать адрес сервера СЛК (например, 127.0.0.1) и порт. В среде Linux служба СЛК называется licenceserver.

Проверить статус службы лицензирования можно командой:

systemctl status licenceserver

Шаг 4: Проверка системных ограничений (AppArmor)

В современных дистрибутивах Ubuntu активна система AppArmor, которая может блокировать доступ Apache к каталогам вне стандартных путей. Если ошибка сохраняется даже при правильных правах — проанализируем логи безопасности. Подобные нюансы настройки Linux-среды часто всплывают и при обслуживании баз данных 1C на Postgresql под Astra Linux.


sudo tail -f /var/log/syslog | grep -i apparmor

Если вы видите сообщения DENIED для процесса apache2 по пути /var/1C/..., необходимо добавить исключение в профиль AppArmor для Apache или временно перевести его в режим обучения (complain mode).

Резюме и проверка результата

Рассмотрим финальный чек-лист для запуска веб-клиента 1С на Linux:

  1. Файл программной лицензии .lic находится в /var/1C/licenses.
  2. Пользователь www-data (или тот, под которым запущен веб-сервер) имеет права на чтение этого файла и право +x на все папки в пути.
  3. В файле публикации default.vrd корректно указаны параметры соединения с базой.
  4. Если используется СЛК, сервер лицензирования запущен и доступен по сети. Для удобного подключения к таким базам можно использовать лаунчер для 1C с проверкой доменной авторизации, особенно если пользователи работают вне домена.

После выполнения этих действий перезапустите веб-сервер командой sudo systemctl restart apache2 и попробуйте снова зайти через браузер. Система должна успешно подхватить программную лицензию, выданную модулем расширения веб-сервера.

← На главную