Чистим компьютер и сервер от ненужных лицензий 1С: файлы .lic, ключи HASP, пин-коды
Содержание
Старую программную лицензию 1С удаляют вручную: находят её файл .lic в каталоге C:\ProgramData\1C\licenses (или %APPDATA%\1C\licenses, если её получали только для текущего пользователя) и переносят в резервную папку. Старый аппаратный ключ HASP просто извлекают, а его драйвер убирают через Программы и компоненты или командой haspdinst.exe -r. Специальной кнопки «Удалить лицензию
» в 1С:Предприятии 8.3 нет.
Способ зависит от типа защиты. Программная лицензия живёт в файле на диске и привязана к оборудованию. Аппаратная — в USB-ключе, на компьютере остаются только драйвер и настройки сетевого поиска. Серверная лицензия лежит на машине с сервером 1С и требует остановки службы. Ниже разобраны все три случая и то, что при этом происходит с пин-кодами.
С какой лицензией вы имеете дело: проверка перед удалением
Не удаляйте ничего «на глаз». Сначала выясните, откуда 1С сейчас берёт лицензию: иначе легко снести рабочий файл и оставить мёртвый.
Через окно «О программе»
- Запустите 1С:Предприятие в нужной базе.
- Откройте
Справка → О программе(значок «i» или вопросительный знак в правом верхнем углу). - Найдите строку про лицензию. Там написано, получена ли она из файла программной лицензии (с указанием пути), из ключа защиты HASP или от сервера 1С.
Если в строке указан путь к файлу .lic — это и есть используемая лицензия. Всё остальное в той же папке потенциально лишнее.
Где искать следы каждого типа
| Тип защиты | Где лежит на компьютере | Признак, что он устарел |
|---|---|---|
| Программная, для всех пользователей | C:\ProgramData\1C\licenses\*.lic | Сменилось оборудование, переустановлена ОС, лицензия перенесена на другой ПК |
| Программная, для одного пользователя | %APPDATA%\1C\licenses\*.lic | Пользователь уволен, учётная запись Windows не используется |
| Программная на сервере Linux | /var/1C/licenses/*.lic | Сервер выведен, лицензии переактивированы на новом |
| Локальный ключ HASP | Драйвер Sentinel/HASP в списке программ | Ключ потерян, сломан или заменён программной лицензией |
| Сетевой ключ HASP | Менеджер лицензий на сервере + файл nethasp.ini у клиентов | Ключ перенесён на другой сервер |
Папка ProgramData по умолчанию скрыта. Наберите путь C:\ProgramData\1C\licenses прямо в адресной строке Проводника — откроется и без включения скрытых файлов.
Имена файлов лицензий — длинные наборы цифр. По имени не понять, какой файл к какому комплекту относится. Определяйте по дате изменения: файл, созданный в день прошлой активации на старом железе, и есть кандидат на удаление. Надёжнее — утилитой ring, о ней ниже.
Удаление программной лицензии 1С и что будет с пин-кодом
Программная лицензия — это файл, который выдал центр лицензирования при активации пин-кода. Он содержит параметры вашего компьютера. Если оборудование изменилось, файл перестаёт подходить, но физически остаётся на диске и мешает разбираться.
Порядок действий
- Закройте все сеансы 1С на этом компьютере.
- Откройте
C:\ProgramData\1C\licenses. - Скопируйте все файлы
.licв резервную папку вне этого каталога, напримерD:\backup\1c-licenses\. - Удалите из
licensesтолько тот файл, который больше не нужен. - Проверьте
%APPDATA%\1C\licensesу каждой учётной записи Windows, где работали в 1С: там может лежать дубль. - Запустите 1С. Если лицензия нужна снова — платформа сама предложит получить её.
Не удаляйте файл без копии. Удалённый .lic не восстанавливается из 1С, а повторная активация тратит пин-код.
Что происходит с пин-кодом
Удаление файла не возвращает пин-код в «пул». Для центра лицензирования этот пин-код уже использован. Варианты дальше:
- 🔁 Компьютер тот же, железо не менялось. Лицензию обычно получают повторно тем же пин-кодом: центр видит те же параметры оборудования.
- 🔑 Компьютер новый или заменены ключевые узлы. Нужен запасной пин-код из того же комплекта. При его вводе программа попросит указать предыдущий пин-код.
- 📮 Запасные пин-коды закончились. Остаётся обращаться к партнёру, у которого покупали лицензию, или в службу лицензирования 1С с объяснением ситуации.
При повторной активации регистрационные данные (организация, ИНН, адрес и прочее) нужно ввести ровно так, как при первой. Поэтому до удаления старой лицензии найдите конверт с пин-кодами и запись регистрационных данных.
Перенос лицензии «как файла» на другой компьютер не работает
. Скопированный .lic на новом железе 1С не примет: он проверяет параметры машины.
Как убрать старый ключ HASP и его драйвер
Аппаратный ключ не оставляет лицензионных файлов. На компьютере остаются драйвер, служба менеджера лицензий (если ключ сетевой) и настройки поиска ключа у клиентов.
Локальный USB-ключ
- Закройте 1С и извлеките ключ из порта.
- Откройте
Параметры → ПриложенияилиПанель управления → Программы и компоненты. - Найдите драйвер с названием Sentinel или HASP и удалите его.
- Перезагрузите компьютер.
Если драйвер не виден в списке программ или удаление падает с ошибкой, используйте установщик драйвера из командной строки, запущенной от имени администратора:
haspdinst.exe -r
Ключ -r удаляет драйвер. Если обычное удаление не помогает из-за повреждённой установки, есть принудительный вариант -fr. Файл haspdinst.exe берут из комплекта драйвера Sentinel той версии, что стояла на компьютере, или из актуального дистрибутива.
Пока драйвер установлен, его веб-консоль открывается по адресу http://localhost:1947. Там видно, какие ключи компьютер сейчас находит. Пусто после удаления — значит, драйвер действительно ушёл.
Сетевой ключ HASP
Здесь две стороны: сервер, где стоит ключ, и клиенты, которые его ищут.
На сервере ключа:
- Убедитесь, что пользователи уже работают на новых лицензиях, иначе они потеряют доступ.
- Остановите и удалите менеджер лицензий HASP через список программ.
- Извлеките ключ.
На клиентах:
- Откройте файл
nethasp.iniв каталогеconfустановленной платформы, напримерC:\Program Files\1cv8\conf\nethasp.ini. - Удалите или закомментируйте точкой с запятой строку
NH_SERVER_ADDRсо старым адресом. - Сохраните файл.
[NH_TCPIP]
;NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
Пока в nethasp.ini прописан мёртвый адрес, 1С при каждом запуске пытается до него достучаться. Это добавляет секунды к старту даже при наличии программной лицензии.
Реестр Windows: что чистить, а что не нужно
Частое заблуждение — искать лицензию 1С в реестре. Программные лицензии 1С 8.3 в реестре не хранятся, только в файлах .lic. Чистка реестра лицензию не удалит и не «освободит».
Реестр имеет смысл трогать в одном случае: драйвер HASP удалили некорректно, и от него остались службы, которые не дают поставить новую версию.
- Сначала попробуйте
haspdinst.exe -fr— это безопаснее ручной правки. - Если не помогло, создайте точку восстановления Windows.
- Откройте
regeditи перейдите вHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. - Найдите разделы, относящиеся к драйверу ключа: как правило, их имена начинаются на
aksилиhasp, а также разделHardlock. - Экспортируйте каждый раздел в файл
.regперед удалением (правый клик →Экспортировать). - Удалите разделы и перезагрузите компьютер.
Ошибка в разделе Services может сделать Windows незагружаемой. Удаляйте только то, что однозначно относится к драйверу ключа защиты. Сомневаетесь в разделе — не трогайте.
Деинсталляция самой платформы 1С тоже не удаляет лицензии: каталог C:\ProgramData\1C\licenses переживает удаление и переустановку 1С. Это удобно при обновлении платформы и неудобно, когда нужно «почистить всё»: файлы придётся убрать руками.
Старые лицензии на сервере 1С:Предприятия
В клиент-серверном варианте клиентские лицензии часто получены на сервере. Они лежат в каталоге лицензий серверной машины: C:\ProgramData\1C\licenses на Windows или /var/1C/licenses на Linux. Там же находится лицензия на сам сервер 1С, если она программная.
Как проверить, кто занимает лицензии
В консоли администрирования серверов 1С откройте список сеансов информационной базы: в нём видно, какую лицензию получил каждый сеанс. То же из командной строки через сервер администрирования ras:
rac cluster list
rac session list --cluster=<id кластера> --licenses
Первая команда даёт идентификатор кластера, вторая — сеансы с выданными лицензиями. Если в выводе нет ни одного сеанса со старым комплектом, его можно убирать.
Порядок удаления на сервере
- Выберите нерабочее время и предупредите пользователей.
- Скопируйте все
.licиз каталога лицензий сервера в резервную папку. - Остановите службу агента сервера 1С:Предприятия.
- Перенесите ненужные файлы из каталога
licenses. - Запустите службу и проверьте вход пользователей.
Остановка службы агента обрывает все сеансы пользователей на этом сервере, несохранённые данные теряются. Делайте это только после того, как все вышли из баз.
Если в кластере несколько рабочих серверов
Лицензии могут лежать на разных машинах кластера. После переноса комплекта на один сервер проверьте в свойствах рабочих серверов требования назначения функциональности: для объекта «Клиентская лицензия» должен быть назначен сервер, где лицензии реально находятся. Иначе кластер пытается выдать лицензию с машины, где файлов уже нет, и пользователи получают отказ при свободных лицензиях.
Утилита ring и скрипты для массового переноса
Когда компьютеров много, руками по папкам ходить долго. Помогают два инструмента.
Утилита администрирования лицензий ring
В составе платформы 8.3 начиная с релизов 8.3.1x есть утилита ring с модулем лицензирования (устанавливается вместе с компонентами платформы, нужна Java). Команда показывает все лицензии, которые видит компьютер:
ring license list
В выводе — имя каждой лицензии, по которому её можно опознать и получить подробности: какому продукту и комплекту она принадлежит. Синтаксис просмотра деталей и удаления конкретной лицензии смотрите в справке самой утилиты:
ring license help
Справка надёжнее любых примеров: набор параметров менялся между версиями утилиты.
Скрипт: резервная копия и перенос в карантин
Безопасная практика — не удалять файлы, а перемещать в датированную папку. Скрипт PowerShell (запуск от имени администратора):
$src = "$env:ProgramData\1C\licenses"
$dst = "D:\backup\1c-licenses\" + (Get-Date -Format 'yyyy-MM-dd_HHmm')
New-Item -ItemType Directory -Path "$dst\quarantine" -Force | Out-Null
# 1. Полная копия всех лицензий
Get-ChildItem $src -Filter *.lic | Copy-Item -Destination $dst
# 2. Список с датами, чтобы выбрать старые
Get-ChildItem $src -Filter *.lic |
Select-Object Name, LastWriteTime, Length |
Sort-Object LastWriteTime
# 3. Перенос файлов старше указанной даты в карантин
$border = Get-Date '2024-01-01'
Get-ChildItem $src -Filter *.lic |
Where-Object { $_.LastWriteTime -lt $border } |
Move-Item -Destination "$dst\quarantine" -Force
Первая строка New-Item сразу создаёт и папку копии, и подпапку quarantine. Дату $border поставьте свою: ту, когда активировали новые лицензии. Первые два шага можно запускать отдельно, без третьего, чтобы сначала посмотреть картину.
Для парка компьютеров скрипт раскладывают групповой политикой как сценарий запуска. Если после переноса 1С на каком-то ПК работает нормально неделю-две, карантин чистят.
Ошибки после удаления лицензии и как их разобрать
Большинство проблем возникает не при удалении, а при первом запуске после него.