Как исправить ошибку «На сервере 1С:Предприятия не найдена лицензия» при переносе на Linux?

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

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

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

Выясняем причину: почему «слетает» лицензия при миграции на Linux

Основная причина возникновения ошибки привязки программной лицензии (с характерным текстом в логах: Ошибка программного лицензирования. Ошибка привязки программной лицензии к компьютеру: file:///var/1C/licenses/...lic После получения лицензии удалены...) кроется в самом механизме защиты «1С».

Программная лицензия «1С» жестко привязывается к ключевым аппаратным и системным параметрам компьютера. К ним относятся:

  1. Наименование и версия операционной системы.
  2. Серийный номер и дата установки ОС.
  3. Сетевое имя компьютера (hostname).
  4. Модель и параметры материнской платы, процессора и оперативной памяти.
  5. Перечень сетевых адаптеров и их MAC-адреса.
  6. Параметры жестких дисков и дисковых контроллеров.

Когда мы переносим базу данных и серверную часть с Windows на Linux, меняются абсолютно все параметры операционной системы, а в случае переезда на другое «железо» или новую виртуальную машину — и аппаратные характеристики. Простое копирование файлов лицензий с расширением .lic в каталог Linux (например, в /var/1C/licenses) не сработает. Защитная система платформы мгновенно определяет, что ключевые параметры конфигурации были «удалены» или изменены, и блокирует файл лицензии.

Также важно отметить бесполезность переименования файлов лицензий вручную. Имя файла лицензии вида 6545646444.lic представляет собой уникальный временной штамп (timestamp) и не привязано к регистрационному номеру комплекта программного продукта. Файлы создаются платформой автоматически при активации.

Шаг 1. Диагностика текущего состояния лицензий

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

  1. Откроем информационную базу под учетной записью администратора.
  2. Перейдем в меню «Справка» — «О программе».
  3. Найдем раздел «Лицензия» и детально изучим строку «Текущая:».

Если в строке указана только клиентская лицензия (например: 8123456789, клиент 1/20, ООО Рога и Копыта), но отсутствует явное упоминание серверной лицензии (например: Сервер, 64-разрядный), это означает, что сервер «1С» работает без легальной серверной лицензии.

Важное замечание о «бесплатных» сеансах на Linux: в старых релизах платформы «1С:Предприятие 8» под Linux существовала особенность (недокументированная лазейка), позволявшая запускать сервер без лицензии для небольшого количества пользователей (до 10–12 сеансов). Начиная с современных веток платформы (8.3.21, 8.3.22, 8.3.23 и выше), эта уязвимость полностью устранена. Теперь сервер «1С» на Linux требует обязательного наличия полноценной серверной лицензии с первого же подключения.

Шаг 2. Восстановление и повторная активация лицензий

Для корректного переноса программной лицензии на новый Linux-сервер необходимо выполнить процедуру ее **восстановления (повторной активации)** с использованием резервного пин-кода.

Рассмотрим этот процесс по шагам:

  1. Запустим конфигуратор «1С:Предприятия» на Linux-сервере (если установлена графическая оболочка) или воспользуемся утилитой командной строки 1C:Enterprise License Tools (утилита ring), если сервер работает в консольном режиме.
  2. В окне получения лицензии выберем пункт «Восстановление лицензии».
  3. Введем регистрационный номер комплекта и активный (неиспользованный) резервный пин-код.
  4. Критически важный момент: при запросе личных данных владельца (название организации, ИНН, КПП, адрес, ФИО ответственного лица) необходимо ввести информацию символ в символ точно так же, как она была введена при самой первой активации этого комплекта. Любое несовпадение (например, «ООО» вместо «Общество с ограниченной ответственностью» или лишний пробел) приведет к отказу Центра лицензирования «1С» в выдаче лицензии.

После успешной проверки параметров сервер сформирует новый файл лицензии в каталоге /var/1C/licenses.

Шаг 3. Обеспечение стабильности лицензии в виртуальной среде

Если сервер «1С» на Linux развернут внутри виртуальной машины (Hyper-V, KVM, VMware, Proxmox VE), существует высокий риск повторного «слета» лицензий при динамическом изменении ресурсов хостом. Чтобы предотвратить это, выполним следующие настройки:

Альтернативные варианты привязки лицензий

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

Использование Сервера лицензирования

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

Привязка к аппаратному ключу HASP

Если у вас есть хотя бы один физический usb-ключ защиты HASP от «1С» версии 8, платформу можно настроить таким образом, чтобы программные лицензии привязывались не к параметрам материнской платы или ОС, а к уникальному ID этого HASP-ключа. В таком случае вы сможете переносить виртуальную машину с Linux на другие хосты и изменять любые ее параметры без риска аннулирования программных лицензий.

Для корректной работы ключей HASP в среде Linux необходимо правильно установить и настроить драйвер защиты (демон aksusbd). Разберем стандартные команды для установки драйвера на Debian/Ubuntu системах:


sudo apt-get update
sudo apt-get install aksusbd
sudo systemctl enable aksusbd
sudo systemctl start aksusbd

После этого проверяем статус службы с помощью команды:

systemctl status aksusbd

Решение проблемы с пустыми отчетами в ЗКГУ после миграции на Linux

Часто после успешного решения проблем с лицензиями и запуска базы ЗКГУ (Зарплата и кадры государственного учреждения) или ЗУП на Linux проявляется другая проблема: при формировании сложных отчетов (например, «Полный свод начислений, удержаний и выплат») система выдает ошибку: «Не удалось сформировать отчет (пустой результат)», хотя данные в регистрах присутствуют.

Проанализируем три основные причины этой проблемы, связанные непосредственно с миграцией на Linux и PostgreSQL:

1. Ошибки платформы «1С» при работе с программными лицензиями

В некоторых релизах платформы (например, в ветке 8.3.22) существовал зарегистрированный баг: при использовании именно программных лицензий на клиент-серверных базах крупные и сложные отчеты, построенные на Системе компоновки данных (СКД), аварийно возвращали пустой результат. При этом на аппаратных ключах все работало отлично.

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

2. Настройки локали СУБД PostgreSQL

В отличие от MS SQL Server под Windows, базы данных PostgreSQL на Linux крайне чувствительны к настройкам локали и кодировкам операционной системы. Если при создании базы данных в PostgreSQL локаль шаблона была настроена некорректно (не установлена русская локаль ru_RU.utf8), то сравнение строк и построение индексов по текстовым полям в запросах «1С» начинает работать непредсказуемо.

Запросы СКД перестают сопоставлять данные, что и приводит к пустым отчетам. Проверим локаль системы в консоли Linux:

locale

В выводе обязательно должны присутствовать строки LANG=ru_RU.UTF-8 и аналогичные для остальных категорий. Если локаль не настроена, ее необходимо сгенерировать:


sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8

3. Отсутствие статистики в PostgreSQL после загрузки базы

Сразу после миграции базы данных через выгрузку/загрузку файла .dt планировщик запросов PostgreSQL не имеет актуальной статистики распределения данных в таблицах. Это приводит к тому, что СУБД выбирает крайне неоптимальные планы выполнения тяжелых запросов СКД для отчетов ЗКГУ. Запросы либо завершаются по таймауту, либо возвращают пустую выборку.

Решение: сразу после загрузки базы данных в СУБД выполните регламентную очистку и сбор статистики. Запустите в консоли PostgreSQL или через утилиту pgAdmin следующую команду для вашей базы данных:

VACUUM FULL ANALYZE;

Это перестроит индексы, освободит неиспользуемое дисковое пространство и соберет актуальную статистику для планировщика, после чего отчеты в ЗКГУ будут формироваться корректно и быстро.

← На главную