Все лицензии заняты: как найти, кто их держит, и вернуть доступ к базе
Содержание
Сообщение «Не обнаружено свободной лицензии» значит, что 1С нашла источник лицензий, но все места в нём уже заняты. Ключ или программная лицензия на месте, просто число одновременных сеансов дошло до предела. Чаще всего виноваты зависшие процессы 1cv8.exe, забытые открытые Конфигураторы и сеансы, которые сервер ещё не освободил.
Реже за той же ошибкой прячется другое: клиент видит не тот ключ, лицензия «слетела» после замены оборудования, или в терминальном режиме стоит локальный ключ на одно место. Проверяйте по порядку: сначала сеансы, потом ключ и сеть, в конце — привязку лицензии.
Как 1С считает лицензии и почему места кончаются
Платформа 1С 8.3 берёт лицензию на каждый клиентский сеанс. Сеансом считается запуск толстого, тонкого или веб-клиента, Конфигуратора и внешнее COM-соединение. Если в компании 10 лицензий, то 11-й пользователь получит ошибку, даже если кто-то из первых десяти просто оставил окно открытым на ночь.
Источников лицензий два, и платформа проверяет оба:
- 🔑 Аппаратный ключ HASP. USB-ключ: локальный (на один компьютер) или сетевой (на 5, 10, 20, 50 и более мест). Сетевой ключ раздаёт лицензии по сети через HASP License Manager.
- 💾 Программная лицензия. Файл, полученный активацией ПИН-кода и привязанный к параметрам конкретного компьютера. Хранится в каталоге
C:\ProgramData\1C\licenses.
В клиент-серверном варианте лицензии может получать сам сервер 1С:Предприятия. Тогда они берутся из ключа или файлов на сервере, а клиентам свои ключи не нужны.
| Ситуация | Что видит пользователь | Что это значит |
|---|---|---|
| Все места заняты | «Не обнаружено свободной лицензии» | Источник найден, но лимит исчерпан |
| Ключ не виден совсем | «Не обнаружен ключ защиты программы» | Нет драйвера, ключа или связи с License Manager |
| Лицензия недействительна | Предложение активировать лицензию | Файл .lic не подходит к оборудованию |
Различать эти сообщения полезно: от текста ошибки зависит, куда смотреть в первую очередь.
Кто занял лицензии: поиск зависших сеансов и процессов
Начинайте с подсчёта. Сравните число людей, которым нужна 1С, с числом мест в комплекте. Если работают 8 человек, а лицензий 10, то два места где-то потерялись.
Файловая база
В файловом режиме лицензию держит процесс на компьютере пользователя. Пока процесс жив, место занято.
- На компьютере пользователя откройте Диспетчер задач (
Ctrl+Shift+Esc), вкладку «Подробности». - Найдите процессы
1cv8.exeи1cv8c.exe. Если окна 1С на экране нет, а процесс есть — это зависший сеанс. - Завершите процесс. Несохранённые данные в нём пропадут, поэтому сначала уточните у пользователя.
- На терминальном сервере то же самое делайте по всем пользователям: в Диспетчере задач включите отображение процессов всех пользователей.
Список активных пользователей файловой базы виден и внутри программы: в БП 3.0 это Администрирование → Обслуживание → Активные пользователи. Там же видно, кто сидит в Конфигураторе.
Клиент-серверная база
Здесь сеансы видны в консоли администрирования серверов 1С. Откройте кластер, нужную информационную базу и узел «Сеансы». У каждого сеанса есть приложение (тонкий клиент, Конфигуратор, COM-соединение) и время начала.
То же самое из командной строки через сервер администрирования ras:
rac cluster list
rac session list --cluster=<id_кластера> --licenses
Вторая команда показывает сеансы вместе с полученными ими лицензиями. Остальные параметры смотрите в справке rac help session.
Удаление сеанса в консоли обрывает работу пользователя: незаписанный документ пропадёт. Предупредите человека или делайте это, когда в базе никто не работает.
💡 Частая находка — забытый Конфигуратор у программиста и COM-соединения от обработок обмена. Каждое из них занимает полноценное место.
Ключ HASP: что проверить на компьютере и в сети
Если зависших сеансов нет, а мест всё равно не хватает, проверьте, видит ли клиент нужный ключ и правильное ли у него число мест.
Порядок проверки:
- 💡 Индикатор на ключе. У исправного подключённого ключа горит светодиод. Не горит — смените USB-порт, уберите удлинитель или хаб.
- 🔧 Драйвер. Драйвер защиты ставится из дистрибутива платформы (компонент «Драйвер защиты» в установщике) или утилитой
haspdinst.exe:
haspdinst.exe -i
Ключ -r удаляет драйвер. Переустановка с удалением помогает, если после обновления Windows ключ перестал определяться.
- 🏷 Тип ключа. Локальный ключ обслуживает только тот компьютер, в который вставлен. Сетевой ключ на 10 мест, вставленный без License Manager, тоже работает как локальный. Число мест указано в документах комплекта и на самом ключе.
- 🌐 Связь с сервером ключа. Клиент обращается к License Manager по порту 475 (UDP и TCP). Брандмауэр на сервере или клиенте, который режет этот порт, даёт ровно наш симптом: часть машин ключ видит, часть — нет.
Посмотреть, сколько лицензий выдано и кому, можно утилитой Aladdin Monitor. Её ставят на любой компьютер сети, она показывает найденные License Manager, ключи на них и число занятых мест. Если в мониторе 10 из 10 заняты, а в 1С работают 7 человек — лишние места держат зависшие клиенты.
Перезапуск и настройка HASP License Manager
HASP License Manager — служба, которая раздаёт места сетевого ключа. Она должна быть установлена на том компьютере, куда вставлен ключ.
Перезапуск службы
Сетевой ключ держит место за клиентом, пока клиент не отключится. При обрыве сети место освобождается не мгновенно. Перезапуск службы сбрасывает все выдачи.
- Откройте
services.mscна компьютере с ключом. - Найдите службу HASP License Manager (название может включать «HASP Loader»).
- Выполните «Перезапустить».
После перезапуска License Manager все пользователи сетевого ключа потеряют лицензии и при следующем действии получат ошибку. Перезапускайте после работы или предупредите людей заранее, чтобы они записали документы и вышли.
Файл nethasp.ini на клиентах
По умолчанию клиент ищет License Manager широковещательным запросом. В сетях с несколькими подсетями, VPN или фильтрацией широковещания поиск не работает
. Тогда адрес сервера ключа прописывают явно в файле nethasp.ini. Его кладут в каталог conf платформы, например C:\Program Files\1cv8\conf\.
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = UDP
Здесь 192.168.1.10 — адрес компьютера с ключом. Если серверов ключей несколько, адреса перечисляют через запятую. Отключение широковещательного поиска заодно ускоряет запуск 1С: клиент не ждёт ответа от всей сети.
💡 Если в сети два License Manager с разными ключами, а клиент привязан только к одному, второй ключ для него «не существует». Проверьте, что в NH_SERVER_ADDR указаны все нужные адреса.
Программные лицензии: активация, ПИН-коды и повторное получение
Программная лицензия не «занимается» навсегда, но у неё своя ловушка: привязка к оборудованию. Сменили материнскую плату, сетевую карту, переустановили систему или перенесли виртуальную машину — платформа может перестать считать лицензию действительной.
Где посмотреть, какие лицензии есть
Файлы лицензий лежат в C:\ProgramData\1C\licenses с расширением .lic. Число файлов не равно числу мест: в одном файле может быть лицензия на несколько пользователей. На платформах, где есть утилита ring, список лицензий выводит команда:
ring license list
Параметры остальных команд смотрите в справке ring license help.
Повторная активация
Если лицензия перестала подходить к компьютеру, её получают заново тем же ПИН-кодом или резервным ПИН-кодом из конверта комплекта.
- Запустите 1С: при отсутствии действительной лицензии платформа сама предложит получить её.
- Выберите получение лицензии и введите регистрационный номер комплекта и ПИН-код.
- Если основной ПИН-код уже использован на прежнем оборудовании, введите резервный.
- Заполните данные владельца так же, как при первой активации: расхождение не позволит восстановить лицензию .
Резервных ПИН-кодов в комплекте ограниченное число. Не активируйте лицензию «на пробу» на тестовой машине: каждая активация расходует код. Когда резервы кончились, новые ПИН-коды выдаёт фирма 1С по запросу владельца лицензии.
Лишние и устаревшие файлы
Иногда после переноса в каталоге остаются старые файлы .lic, которые больше не подходят к компьютеру. Сам по себе такой файл места не освобождает и не занимает. Удалять его не нужно: сначала перенесите файлы в отдельную папку как резервную копию, затем проверьте, не изменилась ли ситуация.
Терминальный сервер и сервер 1С: особые случаи
Терминальный режим
На терминальном сервере каждый сеанс удалённого рабочего стола, запустивший 1С, расходует отдельную лицензию. Отсюда типичная ошибка: на сервер поставили локальный однопользовательский ключ или активировали лицензию на одно место, и второй пользователь сразу получает «нет свободной лицензии».
Что подходит для терминального сервера:
- 🔑 сетевой ключ HASP на нужное число мест с License Manager;
- 💾 программная многопользовательская лицензия, активированная на самом терминальном сервере.
Отдельная проблема терминала — сеансы в состоянии «отключён». Пользователь закрыл окно RDP крестиком, его сеанс остался жив, а с ним и 1cv8c.exe с лицензией. Настройте в политиках удалённых рабочих столов лимит для отключённых сеансов, чтобы они завершались автоматически.
Сервер 1С:Предприятия и SQL
В клиент-серверном варианте у информационной базы в консоли администрирования есть флаг «Разрешить выдачу лицензий сервером 1С:Предприятия». Если он включён, лицензии для клиентов получает сервер из своего ключа или файлов.
Отсюда две ошибки настройки:
- Флаг включён, а лицензии лежат на компьютерах пользователей. Сервер ищет у себя и не находит.
- Флаг выключен, лицензии стоят на сервере. Клиенты ищут у себя и тоже не находят.
Лицензия на сервер 1С (32- или 64-разрядный) — отдельный продукт, она разрешает работу самого сервера и не заменяет клиентские лицензии. СУБД (Microsoft SQL Server, PostgreSQL) лицензируется отдельно и к сообщению 1С о клиентских лицензиях отношения не имеет.
Какая у вас ситуация: быстрая диагностика
Как не упираться в лимит снова
Причину нашли и устранили — теперь о том, чтобы она не вернулась.
- 📊 Запас мест. Если в пиковые часы занято 9 из 10 лицензий, следующий новый сотрудник гарантированно вызовет ошибку. Докупать лицензию проще заранее.
- ⏱ Лимит отключённых RDP-сеансов на терминальном сервере — главная профилактика «пропадающих» мест.
- 🧹 Регламент выхода. Попросите пользователей закрывать 1С в конце дня, а программистов — не оставлять Конфигуратор открытым на рабочей базе.
- 🔍 Регулярный взгляд на сеансы. Раз в неделю откройте консоль сервера или Aladdin Monitor и сравните число занятых мест с числом людей.
- 📁 Учёт лицензий. Храните регистрационные номера комплектов, ПИН-коды и сведения об использованных резервах в одном месте. При переезде сервера это сэкономит день поиска.
- 🔌 Ключ на сервере, а не на рабочем месте. Сетевой ключ, вставленный в компьютер бухгалтера, исчезает вместе с выключенным компьютером. Держите его на машине, которая работает постоянно.
Перед переносом базы на новый сервер выясните, какие лицензии программные. Их придётся активировать заново, и на это нужен свободный резервный ПИН-код.