Чистим компьютер и сервер от ненужных лицензий 1С: файлы .lic, ключи HASP, пин-коды

· 10 мин

Содержание

Старую программную лицензию 1С удаляют вручную: находят её файл .lic в каталоге C:\ProgramData\1C\licenses (или %APPDATA%\1C\licenses, если её получали только для текущего пользователя) и переносят в резервную папку. Старый аппаратный ключ HASP просто извлекают, а его драйвер убирают через Программы и компоненты или командой haspdinst.exe -r. Специальной кнопки «Удалить лицензию » в 1С:Предприятии 8.3 нет.

Способ зависит от типа защиты. Программная лицензия живёт в файле на диске и привязана к оборудованию. Аппаратная — в USB-ключе, на компьютере остаются только драйвер и настройки сетевого поиска. Серверная лицензия лежит на машине с сервером 1С и требует остановки службы. Ниже разобраны все три случая и то, что при этом происходит с пин-кодами.

С какой лицензией вы имеете дело: проверка перед удалением

Не удаляйте ничего «на глаз». Сначала выясните, откуда 1С сейчас берёт лицензию: иначе легко снести рабочий файл и оставить мёртвый.

Через окно «О программе»

  1. Запустите 1С:Предприятие в нужной базе.
  2. Откройте Справка → О программе (значок «i» или вопросительный знак в правом верхнем углу).
  3. Найдите строку про лицензию. Там написано, получена ли она из файла программной лицензии (с указанием пути), из ключа защиты 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. Закройте все сеансы 1С на этом компьютере.
  2. Откройте C:\ProgramData\1C\licenses.
  3. Скопируйте все файлы .lic в резервную папку вне этого каталога, например D:\backup\1c-licenses\.
  4. Удалите из licenses только тот файл, который больше не нужен.
  5. Проверьте %APPDATA%\1C\licenses у каждой учётной записи Windows, где работали в 1С: там может лежать дубль.
  6. Запустите 1С. Если лицензия нужна снова — платформа сама предложит получить её.

Не удаляйте файл без копии. Удалённый .lic не восстанавливается из 1С, а повторная активация тратит пин-код.

Что происходит с пин-кодом

Удаление файла не возвращает пин-код в «пул». Для центра лицензирования этот пин-код уже использован. Варианты дальше:

  • 🔁 Компьютер тот же, железо не менялось. Лицензию обычно получают повторно тем же пин-кодом: центр видит те же параметры оборудования.
  • 🔑 Компьютер новый или заменены ключевые узлы. Нужен запасной пин-код из того же комплекта. При его вводе программа попросит указать предыдущий пин-код.
  • 📮 Запасные пин-коды закончились. Остаётся обращаться к партнёру, у которого покупали лицензию, или в службу лицензирования 1С с объяснением ситуации.

При повторной активации регистрационные данные (организация, ИНН, адрес и прочее) нужно ввести ровно так, как при первой. Поэтому до удаления старой лицензии найдите конверт с пин-кодами и запись регистрационных данных.

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

Как убрать старый ключ HASP и его драйвер

Аппаратный ключ не оставляет лицензионных файлов. На компьютере остаются драйвер, служба менеджера лицензий (если ключ сетевой) и настройки поиска ключа у клиентов.

Локальный USB-ключ

  1. Закройте 1С и извлеките ключ из порта.
  2. Откройте Параметры → Приложения или Панель управления → Программы и компоненты.
  3. Найдите драйвер с названием Sentinel или HASP и удалите его.
  4. Перезагрузите компьютер.

Если драйвер не виден в списке программ или удаление падает с ошибкой, используйте установщик драйвера из командной строки, запущенной от имени администратора:

haspdinst.exe -r

Ключ -r удаляет драйвер. Если обычное удаление не помогает из-за повреждённой установки, есть принудительный вариант -fr. Файл haspdinst.exe берут из комплекта драйвера Sentinel той версии, что стояла на компьютере, или из актуального дистрибутива.

Пока драйвер установлен, его веб-консоль открывается по адресу http://localhost:1947. Там видно, какие ключи компьютер сейчас находит. Пусто после удаления — значит, драйвер действительно ушёл.

Сетевой ключ HASP

Здесь две стороны: сервер, где стоит ключ, и клиенты, которые его ищут.

На сервере ключа:

  1. Убедитесь, что пользователи уже работают на новых лицензиях, иначе они потеряют доступ.
  2. Остановите и удалите менеджер лицензий HASP через список программ.
  3. Извлеките ключ.

На клиентах:

  1. Откройте файл nethasp.ini в каталоге conf установленной платформы, например C:\Program Files\1cv8\conf\nethasp.ini.
  2. Удалите или закомментируйте точкой с запятой строку NH_SERVER_ADDR со старым адресом.
  3. Сохраните файл.
[NH_TCPIP]
;NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled

Пока в nethasp.ini прописан мёртвый адрес, 1С при каждом запуске пытается до него достучаться. Это добавляет секунды к старту даже при наличии программной лицензии.

Реестр Windows: что чистить, а что не нужно

Частое заблуждение — искать лицензию 1С в реестре. Программные лицензии 1С 8.3 в реестре не хранятся, только в файлах .lic. Чистка реестра лицензию не удалит и не «освободит».

Реестр имеет смысл трогать в одном случае: драйвер HASP удалили некорректно, и от него остались службы, которые не дают поставить новую версию.

  1. Сначала попробуйте haspdinst.exe -fr — это безопаснее ручной правки.
  2. Если не помогло, создайте точку восстановления Windows.
  3. Откройте regedit и перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  4. Найдите разделы, относящиеся к драйверу ключа: как правило, их имена начинаются на aks или hasp, а также раздел Hardlock.
  5. Экспортируйте каждый раздел в файл .reg перед удалением (правый клик → Экспортировать).
  6. Удалите разделы и перезагрузите компьютер.

Ошибка в разделе 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

Первая команда даёт идентификатор кластера, вторая — сеансы с выданными лицензиями. Если в выводе нет ни одного сеанса со старым комплектом, его можно убирать.

Порядок удаления на сервере

  1. Выберите нерабочее время и предупредите пользователей.
  2. Скопируйте все .lic из каталога лицензий сервера в резервную папку.
  3. Остановите службу агента сервера 1С:Предприятия.
  4. Перенесите ненужные файлы из каталога licenses.
  5. Запустите службу и проверьте вход пользователей.

Остановка службы агента обрывает все сеансы пользователей на этом сервере, несохранённые данные теряются. Делайте это только после того, как все вышли из баз.

Если в кластере несколько рабочих серверов

Лицензии могут лежать на разных машинах кластера. После переноса комплекта на один сервер проверьте в свойствах рабочих серверов требования назначения функциональности: для объекта «Клиентская лицензия» должен быть назначен сервер, где лицензии реально находятся. Иначе кластер пытается выдать лицензию с машины, где файлов уже нет, и пользователи получают отказ при свободных лицензиях.

Утилита 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С на каком-то ПК работает нормально неделю-две, карантин чистят.

Ошибки после удаления лицензии и как их разобрать

Большинство проблем возникает не при удалении, а при первом запуске после него.

Диагностика: выберите симптом

Частые вопросы

Можно ли вернуть пин-код после удаления лицензии, чтобы активировать её на другом компьютере?
Нет. Удаление файла на старом ПК не освобождает пин-код. Для нового компьютера используется запасной пин-код из того же комплекта.
Нужно ли удалять старую лицензию перед установкой новой?
Не обязательно. Платформа сама выберет подходящий файл. Удалять старые стоит, чтобы не путаться при диагностике и при подсчёте занятых лицензий.
Удалится ли лицензия при переустановке платформы 1С?
Нет. Каталог licenses не затрагивается удалением и установкой платформы. Лицензию теряют при переустановке Windows с форматированием диска или при замене оборудования.
Что делать с HASP-ключом, который больше не используется?
Храните его вместе с документами на покупку. Ключ — подтверждение приобретённой лицензии, его выбрасывать не стоит, даже если вы перешли на программную защиту.
Можно ли удалить лицензию одного пользователя, не трогая остальных?
Да, если она получена «для текущего пользователя»: удалите файл из его профиля, в папке %APPDATA%\1C\licenses. Общие лицензии в ProgramData при этом останутся.