В процессе эксплуатации серверов «1С:Предприятие» системные администраторы часто сталкиваются с ситуацией, когда стабильно работавшая система лицензирования внезапно дает сбой. Типичный сценарий: при попытке входа очередного пользователя возникает ошибка «HTTP: Forbidden Ошибка при выполнении запроса POST к ресурсу /e1cib/login: по причине: Операция не может быть выполнена с текущим составом лицензий. Не обнаружено свободной лицензии!». При этом в журнале поиска ключа фиксируется критическое сообщение о том, что программный продукт допускает использование не более одного пинкода из комплекта. Разберем подробно, почему это происходит и как правильно восстановить работу системы, не расходуя лишние резервные пинкоды.
Проанализируем ситуацию, описанную в обращении. Основным триггером проблемы стало включение старого сервера 1С в той же локальной сети, где уже был развернут и активирован новый сервер. Платформа «1С:Предприятие» обладает встроенными механизмами защиты от пиратства и несанкционированного тиражирования. Одним из таких механизмов является проверка уникальности использования регистрационного номера в сети.
Рассмотрим подробнее механизм обнаружения нарушения: программные лицензии 1С периодически опрашивают локальную сеть (используя UDP-пакеты на порт 1564), чтобы убедиться, что лицензия с конкретным регистрационным номером не используется где-либо еще. Если система видит, что один и тот же комплект (например, на 10 рабочих мест) активирован разными пинкодами на двух разных машинах, или даже одним и тем же пинкодом, но параметры компьютеров различаются — происходит автоматическая дискредитация (блокировка) файлов лицензий.
Важный нюанс: даже если вы сразу выключите старый сервер, ошибка не исчезнет сама собой. Платформа уже пометила текущую лицензию как нарушающую правила использования, и данные об этом сохранились в служебных файлах на стороне сервера приложений.
Прежде чем приступать к повторной активации, нам необходимо убедиться, что система «забыла» о конфликте. Проанализируем, какие файлы подлежат удалению. Программные лицензии хранятся в файлах с расширением .lic. Пути к ним могут варьироваться в зависимости от версии ОС и настроек, но чаще всего это:
C:\ProgramData\1C\licenses (наиболее распространенное место для серверных лицензий);%AllUsersProfile%\Application Data\1C\licenses;C:\Program Files\1cv8\conf.Рассмотрим критически важный момент, о котором часто забывают: удаление служебного файла 1cv8conn.pfl. Этот файл располагается в папке с лицензиями и содержит кэшированную информацию о структурах сети и ранее обнаруженных лицензиях. Если его не удалить, при активации нового пинкода платформа может снова подтянуть старую информацию о конфликте и заблокировать новую лицензию практически мгновенно.
Проанализируем действия на старом сервере: если он еще доступен, необходимо физически удалить из него все файлы .lic, связанные с этим регистрационным номером. Простого выключения службы 1С может быть недостаточно, если на сервере работают другие процессы, способные «светить» лицензию в сеть.
Многие администраторы сразу используют следующий резервный пинкод, однако это не всегда оправдано. Разберем, как можно попытаться восстановить лицензию, сохранив резервные коды.
Посмотрим на алгоритм восстановления:
Если система примет этот запрос, она перевыпустит файл лицензии для текущего сервера. Однако, если конфликт в сети был зафиксирован жестко, платформа может потребовать использования именно нового, резервного пинкода. В этом случае убедитесь, что все старые файлы .lic с этим регистрационным номером (9200388812G0 в нашем примере) удалены со всех доступных дисков сервера.
В рассматриваемой проблеме часть пользователей подключается через apache24. Ошибка HTTP: Forbidden с диагностикой StoredDataError часто указывает на специфику работы веб-сервера с лицензиями. Разберем ситуацию: когда клиент подключается через тонкий клиент к опубликованной базе, лицензию ему выдает либо сам сервер 1С, либо веб-сервер (в зависимости от настроек).
Проанализируем права доступа: служба веб-сервера Apache обычно запускается от имени системной учетной записи (например, LocalSystem или специально созданного пользователя). Убедитесь, что у этой учетной записи есть полные права (чтение, запись, изменение) на папку C:\ProgramData\1C\licenses. При нехватке прав веб-сервер не сможет корректно прочитать файл лицензии или обновить в нем метку использования, что приведет к отказу в доступе даже при наличии свободных лицензий в консоли администрирования.
Для детального анализа текущего состояния лицензий на сервере рекомендуется использовать встроенные инструменты администрирования. Рассмотрим команду rac для получения списка лицензий в кластере:
rac license list --cluster=[ID вашего кластера]
Эта команда покажет все активные лицензии, которые «видит» менеджер кластера. Если в списке присутствуют лицензии, которые вы уже удалили физически, это явный признак того, что кэш лицензий (тот самый файл 1cv8conn.pfl) не был очищен.
Также обратим внимание на структуру файла лицензии. Если открыть файл .lic обычным блокнотом, в конце файла должен быть читаемый блок с описанием: регистрационный номер, тип лицензии, количество мест. Если при попытке «декодировать» файл сторонними утилитами возникает ошибка «Файл *.lic поврежден», это подтверждает, что платформа принудительно аннулировала его формат в ответ на нарушение условий лицензионного соглашения.
Чтобы избежать повторения ситуации в будущем, проанализируем следующие правила гигиены серверной инфраструктуры 1С:
1C:Enterprise 8.3 Server Agent на старой машине.Таким образом, решение проблемы сводится к тщательной очистке всех старых и поврежденных файлов лицензий, удалению служебного файла связи 1cv8conn.pfl и повторной активации лицензии на «чистом» окружении. После выполнения этих действий выдача лицензий через Apache и RDP должна восстановиться в полном объеме.