Как исправить ошибку «Неверный формат файла программной лицензии» в 1С:УНФ на Linux после публикации в Web?

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

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

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

Как веб-сервер влияет на систему лицензирования 1С:Предприятие

Проанализируем техническую сторону процесса. Когда мы работаем с файловой базой 1С локально (через тонкий или толстый клиент), поиском и проверкой лицензии занимается непосредственно само клиентское приложение, запущенное на рабочей станции пользователя. Оно ищет локальный файл лицензии *.lic в каталогах пользователя или на сервере.

Однако, как только мы публикуем базу на веб-сервере Apache, механизм кардинально меняется. Теперь подключение клиентов происходит по протоколу HTTP или HTTPS. Браузер или тонкий клиент, подключающийся к веб-серверу, вообще не имеют доступа к локальным лицензиям на клиентских компьютерах. Всю работу по поиску, проверке и распределению лицензий берет на себя модуль расширения веб-сервера 1С (специальная динамическая библиотека *.so в среде Linux, например, wsap24.so).

Именно этот модуль обращается к файлам лицензий, расположенным на сервере, и выделяет сессии пользователям по принципу «один сеанс — одна лицензия». Любые несоответствия в правах доступа, путях размещения файлов или конфигурации самой программы мгновенно приводят к сбоям, которые платформа интерпретирует как повреждение или неверный формат файла лицензии.

Главная причина: Использование Базовой версии 1С:УНФ

Разберем важнейшее ограничение, с которым часто сталкиваются администраторы. В рассматриваемом случае используется Базовая версия «1С:Управление нашей фирмой».

Согласно лицензионной политике и техническим ограничениям фирмы «1С», базовые версии программных продуктов имеют ряд жестких лимитов:

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

Вторичные технические причины сбоя лицензии в Linux

Даже если мы используем версию ПРОФ, при публикации на Apache под Linux часто возникают сопутствующие инфраструктурные проблемы, приводящие к аналогичной ошибке. Проанализируем их:

Пошаговое руководство по решению проблемы

Рассмотрим подробную инструкцию, как перевести систему на стабильные рельсы, устранить ошибки лицензирования и успешно запустить работу через веб-интерфейс.

Шаг 1. Переход на версию ПРОФ

Так как базовая версия физически не предназначена для работы через веб-сервер, первым делом необходимо выполнить апгрейд конфигурации до версии ПРОФ. Для этого выполним следующие шаги:

  1. Приобретите основную поставку «1С:Управление нашей фирмой ПРОФ» и необходимый пакет клиентских лицензий (минимум на 1 или несколько рабочих мест, в зависимости от потребностей вашего бизнеса).
  2. Выполните обновление конфигурации с Базовой до версии ПРОФ, следуя стандартной инструкции по обновлению (через конфигуратор с заменой файла конфигурации *.cf).
  3. Подготовьте новые пин-коды (15-значные) для активации ПРОФ-версии.

Шаг 2. Очистка системы от поврежденных лицензий и дубликатов

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

  1. Остановим веб-сервер Apache, чтобы освободить заблокированные процессы:
    
    sudo systemctl stop apache2
    # или для CentOs/RHEL:
    sudo systemctl stop httpd
    
  2. Найдем все файлы лицензий с расширением .lic на сервере. Для этого воспользуемся стандартной утилитой поиска: sudo find / -name "*.lic"
  3. Внимательно изучим список найденных файлов. Нам нужно удалить все поврежденные лицензии базовой версии. Обычно они располагаются в каталогах:
    • /var/1C/licenses/
    • /home/usr1cv8/.1cv8/1C/1cv8/conf/
    Удалите старые файлы лицензий с помощью команды rm.
  4. Удалим служебные файлы параметров соединений, которые могли быть повреждены при аварийном завершении процессов: sudo find / -name "*.pfl" -delete Это сбросит кэш сетевых подключений и заставит платформу создать новые чистые файлы привязок при следующем запуске.

Шаг 3. Создание единого каталога для хранения лицензий

Чтобы избежать конфликтов прав доступа между локальными пользователями и веб-сервером Apache, мы должны разместить файл новой программной лицензии в едином общедоступном каталоге, который по умолчанию сканируется платформой 1С. Рекомендуемым глобальным путем в ОС Linux является каталог /var/1C/licenses/. Создадим этот каталог и зададим корректную структуру:

sudo mkdir -p /var/1C/licenses

Шаг 4. Настройка прав доступа (chmod и chown) в Linux

Это один из самых критичных шагов. Нам нужно сделать так, чтобы и системный пользователь 1С (usr1cv8), и пользователь веб-сервера Apache (www-data или apache) имели беспрепятственный доступ на чтение файлов в этом каталоге. Разберем, как настроить права через создание общей группы пользователей:

  1. Создадим новую системную группу, например, 1c_licenses: sudo groupadd 1c_licenses
  2. Добавим в эту группу пользователя сервера 1С (usr1cv8) и пользователя веб-сервера Apache (www-data):
    
    sudo usermod -aG 1c_licenses usr1cv8
    sudo usermod -aG 1c_licenses www-data
    
  3. Назначим владельцем каталога лицензий пользователя usr1cv8, а группой-владельцем — созданную группу 1c_licenses: sudo chown -R usr1cv8:1c_licenses /var/1C/licenses
  4. Установим права доступа так, чтобы члены группы могли беспрепятственно читать файлы в этом каталоге: sudo chmod -R 770 /var/1C/licenses

Шаг 5. Активация новой лицензии версии ПРОФ

Теперь выполним чистую активацию программной лицензии 1С:УНФ ПРОФ:

  1. Запустите конфигуратор 1С:Предприятие от имени системного пользователя usr1cv8 (чтобы файлы лицензии создавались с правильными владельцами и правами).
  2. В окне получения лицензии выберите пункт «Получить лицензию».
  3. Введите регистрационный номер программного продукта и 15-значный активный пин-код версии ПРОФ.
  4. Важно: На этапе выбора места сохранения лицензии убедитесь, что файл сохраняется в наш настроенный каталог /var/1C/licenses/. Если платформа предлагает сохранить лицензию в домашний каталог текущего пользователя, измените этот путь вручную.
  5. Завершите процедуру активации, заполнив сведения о владельце лицензии (обязательно сохраните эти данные в отдельном файле, они понадобятся при последующем восстановлении).

Шаг 6. Публикация базы на Apache и запуск веб-сервера

После успешной активации лицензии выполним повторную публикацию информационной базы на веб-сервере:

  1. Откройте Конфигуратор 1С под учетной записью администратора базы данных.
  2. Перейдите в меню Администрирование -> Публикация на веб-сервере.
  3. Укажите имя публикации, выберите веб-сервер Apache 2.4, настройте необходимые параметры (путь к физическому каталогу публикации, флаги поддержки веб-клиента и тонкого клиента).
  4. Нажмите кнопку «Опубликовать». Платформа автоматически обновит файлы конфигурации Apache.
  5. Перезапустите веб-сервер Apache для применения изменений: sudo systemctl restart apache2

Проверка работоспособности

Проанализируем результаты проделанной работы. Теперь, когда мы заходим в базу данных через браузер, модуль расширения веб-сервера обращается к глобальному каталогу /var/1C/licenses/. Благодаря тому, что системный пользователь веб-сервера состоит в группе 1c_licenses, он успешно считывает файл программной лицензии *.lic.

Поскольку мы перешли на версию ПРОФ, платформа корректно обрабатывает многопользовательские сессии, не блокируя файлы лицензий и не вызывая ошибку «Неверный формат файла программной лицензии». Если в будущем потребуется расширить количество рабочих мест, вы сможете просто активировать дополнительные многопользовательские или однопользовательские лицензии в этот же каталог, и веб-сервер автоматически начнет раздавать их подключающимся клиентам.

Резюме и ключевые правила работы с лицензиями 1С на Linux

Для предотвращения подобных проблем в будущем всегда придерживайтесь следующих правил при администрировании серверов 1С на операционных системах семейства Linux:

← На главную