Лицензия 1С пропадает на сервере: ищем виновника и закрепляем результат
Содержание
Лицензия 1С на сервере слетает по одной из пяти причин: изменились параметры оборудования, к которым привязана программная лицензия; сервер перестал видеть ключ HASP; виртуальная машина переехала или поменяла конфигурацию; сеть или брандмауэр режут обращения к менеджеру лицензий; все места заняты зависшими сеансами. Пользователь в итоге видит одно и то же сообщение: Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
Сообщение одинаковое, а лечение разное. Поэтому сначала выясните, какая у вас защита — программная (файлы .lic) или аппаратная (USB-ключ), — и что менялось на сервере за последние дни. Обычно ответ находится за 10–15 минут.
С чего начать диагностику слетевшей лицензии
Первые три вопроса сужают поиск почти до одной причины:
- 🔑 Тип защиты. Программная лицензия — это файлы с расширением
.licна сервере. Аппаратная — USB-ключ HASP в сервере или на отдельной машине с менеджером лицензий. - 🕒 Когда началось. После перезагрузки, обновления Windows, замены диска, переноса виртуальной машины, смены IP-адреса — каждая из этих точек указывает на свою причину.
- 👥 У кого не работает . Если у всех — проблема на сервере. Если только у части пользователей и в часы пик — скорее всего, кончились свободные лицензии.
Где лежат программные лицензии:
| Система | Каталог | От чьего имени читается |
|---|---|---|
| Windows | C:\ProgramData\1C\licenses | учётная запись службы сервера 1С (по умолчанию USR1CV8) |
| Linux | /var/1C/licenses | пользователь usr1cv8 |
Посмотреть список установленных лицензий и проверить, подходят ли они к текущему оборудованию, можно утилитой ring из комплекта платформы:
ring license list
ring license validate --name <имя_лицензии>
Если параметров не хватает или синтаксис отличается в вашей версии, выведите справку командой ring license help. Ответ validate о несоответствии оборудованию сразу говорит: дело в привязке, а не в сети.
Программная лицензия и привязка к оборудованию сервера
Программная лицензия при активации запоминает «отпечаток» компьютера. В него входят характеристики материнской платы, процессора, дисков, сетевых адаптеров, объём памяти, имя компьютера и версия операционной системы. При каждом запуске платформа сверяет текущий набор с сохранённым.
Отдельные мелкие отличия лицензия переживает. Если изменилось сразу несколько параметров, она перестаёт считаться действительной. Типовые поводы:
- 💽 замена или добавление диска, переразметка RAID;
- 🧠 добавление планок памяти;
- 🌐 замена сетевой карты, отключение адаптера в BIOS, появление виртуальных адаптеров (VPN, Hyper-V, Docker);
- 🖥️ переименование сервера;
- 🔄 переустановка ОС или крупное обновление, после которого система определяет оборудование иначе.
Как восстановить программную лицензию
- Найдите конверт с пин-кодами из комплекта поставки. В нём есть основной и резервные коды.
- Запустите любую клиентскую сессию 1С на этом сервере или используйте утилиту
ring— откроется мастер получения лицензии. - Выберите повторное получение лицензии, введите регистрационный номер комплекта , резервный пин-код и те же регистрационные данные организации, что при первой активации. Расхождение в ИНН или названии — частая причина отказа.
- Сохраните новый файл в каталог из таблицы выше. Если мастер положил его в профиль пользователя, перенесите в общий каталог.
- Перезапустите службу сервера 1С.
Перезапуск службы 1C:Enterprise 8.3 Server Agent обрывает все сеансы пользователей. Делайте это после предупреждения коллег или в нерабочее время.
Если резервные пин-коды закончились, дополнительные выдают через партнёра, у которого куплена лицензия, или через центр лицензирования. Понадобится регистрационный номер и подтверждение покупки.
После каждой успешной активации копируйте файлы .lic и записывайте, какой пин-код израсходован. При восстановлении сервера из резервной копии на том же железе старый файл часто подходит, и пин-код тратить не придётся.
Аппаратный ключ HASP: почему сервер перестаёт его видеть
USB-ключ живёт дольше программной лицензии, но и у него хватает слабых мест. Сервер 1С обращается к ключу через драйвер защиты, а к сетевому ключу на другой машине — через менеджер лицензий HASP License Manager.
Почему ключ «пропадает»:
- 🔌 Порт или удлинитель. Ключ в переднем порту или в USB-хабе отключается при скачке питания. Включите его напрямую в задний порт.
- 🧩 Драйвер. После обновления Windows драйвер защиты может перестать работать. Переустановите его из каталога платформы:
haspdinst.exe -i(удаление —haspdinst.exe -r). - ⚡ Энергосбережение. Windows отключает USB-порты для экономии энергии. В свойствах корневых USB-концентраторов в диспетчере устройств снимите разрешение на отключение устройства.
- 📦 Ключ не того типа. Серверный ключ и ключи клиентских лицензий — разные изделия. Для 64-разрядного сервера нужен ключ именно на 64-разрядный сервер.
- 🏷️ Неисправность. Если светодиод не горит ни в одном порту и ни на одном компьютере, ключ сломан. Его меняют через партнёра.
Сетевой ключ на отдельной машине
Если ключ стоит на другом компьютере с HASP License Manager, проверьте:
- Служба менеджера лицензий запущена, ключ виден в списке устройств.
- На машине с ключом и на сервере 1С открыт порт
475(TCP и UDP). - Клиенты и сервер ищут ключ по правильному адресу. Широковещательный поиск через маршрутизаторы и VPN не проходит, поэтому адрес менеджера лучше прописать явно в файле
nhsrv.iniв каталогеbinплатформы:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
Адрес 192.168.1.10 замените на адрес машины с ключом. Если машина часто меняет IP по DHCP, закрепите адрес на маршрутизаторе — иначе лицензии будут пропадать после каждого продления аренды.
Виртуализация и перенос сервера 1С на другой хост
Виртуальная машина — главный источник «внезапных» слетов программной лицензии. Для 1С гостевая система выглядит как обычный компьютер, а гипервизор меняет её «железо» по своим правилам.
Что ломает привязку:
- 🔁 Динамический MAC-адрес. Hyper-V и VMware могут выдать новый MAC после переноса или перезапуска на другом узле.
- 🚚 Миграция между хостами с разными процессорами: гостевая система видит другую модель CPU.
- ⚙️ Изменение числа ядер или объёма памяти в настройках виртуальной машины.
- 🧬 Клонирование и развёртывание из шаблона. Копия получает новый идентификатор, и лицензия с оригинала на ней не действует. Две машины с одной лицензией — нарушение условий, даже если лицензия «встала».
Как сделать виртуальный сервер устойчивым:
- Задайте сетевому адаптеру статический MAC-адрес.
- Зафиксируйте число процессоров и объём памяти. Нужно больше ресурсов — меняйте их один раз, планово, с запасным пин-кодом наготове.
- В кластере гипервизоров ограничьте машину группой одинаковых узлов или включите режим совместимости процессоров.
- Для аппаратного ключа используйте проброс USB в гостевую систему или выделенный USB-сервер в сети. Если ключ проброшен через хост, после миграции на другой узел он отвалится — это ожидаемое поведение.
Для часто мигрирующих машин аппаратный сетевой ключ на отдельном физическом компьютере надёжнее программной лицензии: переезды виртуальной машины на него не влияют.
Сеть и брандмауэр: когда лицензия есть, а клиент её не получает
В клиент-серверном варианте клиент подключается к агенту сервера (порт 1540), затем к менеджеру кластера (1541) и к рабочим процессам — их диапазон задаётся в свойствах рабочего сервера, по умолчанию 1560–1591. Если часть портов закрыта, клиент может не дойти до места, где выдаются лицензии.
Что проверить:
- 🧱 входящие правила брандмауэра Windows на сервере для всех трёх групп портов и для
475, если используется сетевой ключ; - 🛡️ антивирус с сетевым экраном — после его обновления правила иногда сбрасываются;
- 🏷️ разрешение имени сервера: клиент должен находить сервер по тому же имени, что прописано в кластере. Проверьте командой
ping имя_серверас клиентского компьютера; - 🔀 VPN и удалённые офисы: широковещательные запросы к менеджеру лицензий туда не доходят.
Быстрая проверка доступности порта с клиента в PowerShell:
Test-NetConnection -ComputerName srv1c -Port 1541
Test-NetConnection -ComputerName srv1c -Port 1560
Если TcpTestSucceeded возвращает False, ищите блокировку на пути между клиентом и сервером.
Права доступа, антивирус и повреждённые файлы лицензий
Бывает, что файл .lic лежит на месте, ring license list его показывает, а служба сервера лицензию не видит. Причина — служба работает от другой учётной записи и не может прочитать каталог.
Проверьте по шагам:
- Узнайте, от чьего имени запущена служба агента сервера:
services.msc→ свойства службы → вкладка «Вход в систему». - Убедитесь, что у этой учётной записи есть право на чтение
C:\ProgramData\1C\licenses. В Linux проверьте владельца каталога:ls -l /var/1C/licenses. - Посмотрите журнал антивируса: файлы лицензий и компоненты защиты иногда попадают в карантин. Добавьте каталоги
C:\ProgramData\1Cи каталог установки платформы в исключения. - Откройте файл
.licв блокноте. Обрезанный файл или файл нулевого размера после сбоя диска или прерванного копирования не восстановить — подложите копию или активируйте лицензию заново.
Не правьте содержимое файла лицензии вручную и не копируйте .lic с другого сервера: файл привязан к конкретному оборудованию и работать не будет.
Отдельный случай — несколько копий одной лицензии в разных каталогах (в общем и в профиле пользователя). Платформа может взять устаревшую. Оставьте одну актуальную копию в общем каталоге.
Все лицензии заняты: зависшие и лишние сеансы
Если сервер выдаёт лицензии части пользователей, а остальным пишет, что лицензия не найдена, — скорее всего, кончились свободные места. Каждый сеанс работы занимает клиентскую лицензию, пока не завершится. Не только сотрудники держат места:
- 🧟 Зависшие сеансы. Пользователь закрыл ноутбук или пропала связь, а сеанс ещё висит на сервере.
- 🌍 Веб-клиент и мобильный клиент — тоже полноценные сеансы.
- 🔗 COM-соединения и внешние обработки обменов, которые открывают сеанс и не закрывают его.
- 👤 Один человек — несколько окон. Каждое открытое приложение 1С с одного рабочего места занимает отдельный сеанс.
Как найти и освободить места
- Откройте консоль администрирования серверов 1С, кластер → «Сеансы». Отсортируйте по времени последней активности.
- Или выведите список из командной строки через
ras/rac:
rac cluster list
rac session list --cluster=<uuid_кластера> --licenses
- Найдите сеансы с давней активностью и без живого пользователя. Перед удалением сеанса предупредите владельца: несохранённые данные в нём пропадут.
- Если сеансы зависают регулярно, уменьшите время ожидания разрыва соединения в настройках кластера и разберитесь с обменами, которые не закрывают COM-соединения.
Сравните пиковое число сеансов за неделю с числом купленных лицензий. Если пик стабильно упирается в потолок, проблема не в «слетах», а в нехватке лицензий — тут поможет только докупка.
Как не допустить повторного слета лицензии
Короткий регламент для администратора сервера 1С:
- 📁 храните копию файлов
.licи конверт с пин-кодами вне сервера; - 📝 ведите журнал: дата активации, израсходованный пин-код, на какое оборудование;
- 🛠️ любые изменения железа и настроек виртуальной машины согласуйте с тем, кто отвечает за 1С;
- 🔒 закрепите IP-адреса сервера и машины с ключом, статический MAC для виртуальной машины;
- 🧯 откладывайте крупные обновления ОС до окна, когда можно спокойно перезапустить службу и при необходимости повторно активировать лицензию ;
- 📊 раз в месяц смотрите пиковую загрузку лицензий.