Удаление программных лицензий и ключей HASP 1С: что стереть, что освободить

· 10 мин

Содержание

Программная лицензия 1С 8.3 — это обычный файл с расширением .lic. Чтобы удалить лицензию , закройте все сеансы 1С на компьютере и удалите файл из каталога C:\ProgramData\1C\licenses (для всех пользователей) или %APPDATA%\1C\licenses (для текущего пользователя). На Linux общий каталог — /var/1C/licenses. Аппаратный ключ HASP удаляют иначе: вынимают ключ и при необходимости убирают драйвер и менеджер лицензий.

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

Какие лицензии 1С бывают и что значит их удалить

От типа защиты зависит, где лежит лицензия и что вообще можно «удалить». Определить тип просто: откройте любую базу в режиме 1С:Предприятие и посмотрите Справка → О программе — там указано, какая лицензия используется.

Тип защитыГде хранитсяЧто значит «удалить»
Программная клиентскаяфайл .lic на компьютере пользователяудалить файл
Программная многопользовательская на серверефайл .lic на сервере 1Судалить файл на сервере, перезапустить службу в нерабочее время
Лицензия на сервер 1Сфайл .lic на машине с серверомудалить файл, сервер перестанет запускать базы
Локальный ключ HASPUSB-ключвынуть ключ, при желании удалить драйвер
Сетевой ключ HASPUSB-ключ + менеджер лицензий в сетивынуть ключ, остановить менеджер, почистить nethasp.ini

«Удалить лицензию» часто путают с «освободить лицензию». Если программа пишет, что свободных лицензий нет, файлы трогать не нужно: обычно лицензию держит зависший сеанс. Об этом — в разделе про сервер 1С ниже.

Отдельный случай — смена железа. Программная лицензия привязана к параметрам компьютера. После замены материнской платы, сетевой карты или переустановки системы она может перестать подходить. Тогда старый файл удаляют и получают лицензию заново.

Как удалить программную лицензию 1С с компьютера

Перед удалением сделайте две вещи:

  • 📁 скопируйте файл .lic в надёжное место — пригодится, если окажется, что удалили не тот;
  • 🔑 найдите конверт с регистрационным номером и пин-кодами. Без них повторно получить лицензию не получится.

Windows

  1. Закройте 1С у всех пользователей этого компьютера. На терминальном сервере — у всех пользователей сервера.
  2. Откройте проводник и вставьте в адресную строку C:\ProgramData\1C\licenses. Папка ProgramData скрытая, но по прямому пути открывается.
  3. Посмотрите содержимое. Файлов может быть несколько: каждый — отдельная лицензия (например, основная и дополнительная на пользователей).
  4. Чтобы понять, какой файл какой лицензии соответствует, откройте его «Блокнотом». В начале файла есть читаемая часть с регистрационным номером и названием продукта. Ничего в нём не меняйте — правка ломает подпись, и файл становится недействительным.
  5. Удалите нужный файл.
  6. Повторите для каталога пользователя: %APPDATA%\1C\licenses. Сюда лицензия попадает, если при активации выбрали вариант «только для текущего пользователя».

После удаления при запуске 1С появится окно получения лицензии. Если вы удаляли лицензию осознанно (компьютер выводится из работы), просто закройте окно.

Linux

# посмотреть, какие лицензии установлены для всех пользователей
ls -l /var/1C/licenses/

# сохранить копию и удалить
sudo cp -a /var/1C/licenses /root/licenses-backup-$(date +%F)
sudo rm /var/1C/licenses/<имя_файла>.lic

Пользовательские лицензии на Linux лежат в домашнем каталоге пользователя. Найти их быстрее всего поиском: find ~ -name "*.lic".

Утилита ring

В новых версиях платформы есть консольная утилита ring с компонентом лицензирования. Команда ring license list показывает установленные лицензии в виде, удобном для скриптов. Команды для удаления и получения подробной информации зависят от версии утилиты — смотрите встроенную справку компонента license.

Не удаляйте файлы .lic «на всякий случай» при проблемах с запуском. Если причина в другом, вы потеряете рабочую лицензию и потратите резервный пин-код на повторную активацию.

Удаление лицензий на сервере 1С и терминальном сервере

На сервере лицензии лежат в том же каталоге C:\ProgramData\1C\licenses, но с ними работают процессы сервера под служебной учётной записью (обычно USR1CV8). Отсюда два правила.

Удалять файл лицензии сервера только в нерабочее время. Сервер 1С проверяет лицензии при старте сеансов и рабочих процессов. Если файл исчез под нагрузкой, новые пользователи войти не смогут, а после перезапуска службы оборвутся все сеансы.

Порядок такой:

  1. Предупредите пользователей и дождитесь, пока они выйдут. Проверить можно в консоли кластера: Информационные базы → <база> → Сеансы.
  2. Сохраните копию каталога licenses.
  3. Удалите ненужный файл.
  4. Перезапустите службу «Агент сервера 1С:Предприятия 8.3» — так сервер перечитает набор лицензий.
  5. Проверьте, что пользователи входят, а в консоли у сеансов видна нужная лицензия.

Многопользовательскую клиентскую лицензию сервер выдаёт сам, если в свойствах информационной базы в консоли кластера включён параметр «Выдача лицензий сервером 1С:Предприятия». Если вы перенесли клиентские лицензии с сервера на компьютеры пользователей (или наоборот), проверьте этот параметр. Иначе программа будет искать лицензию не там, где она лежит.

На терминальном сервере удаляйте лицензии из общего каталога, а пользовательские каталоги %APPDATA%\1C\licenses проверьте у каждого профиля. Лишние копии в профилях — частая причина путаницы, какая лицензия реально используется.

Как отключить ключ HASP и убрать менеджер лицензий

Аппаратный ключ — это физическое устройство. «Удалить» его из 1С можно только одним способом: перестать к нему обращаться.

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

  1. Закройте 1С.
  2. Выньте ключ из USB-порта.
  3. Если ключей HASP на компьютере больше не будет, удалите драйвер через Параметры → Приложения (в списке он называется Sentinel Runtime или похоже).

Удалять драйвер необязательно. Он не мешает программной лицензии, а платформа ищет и ключи, и файлы .lic.

Сетевой ключ и менеджер лицензий

Сетевой ключ обслуживает служба менеджера лицензий на одном компьютере сети. Клиенты 1С находят её по настройкам в файле nethasp.ini. Он лежит в каталоге conf установленной платформы, например C:\Program Files\1cv8\conf\nethasp.ini.

Чтобы клиенты перестали искать сетевой ключ:

  1. Откройте nethasp.ini в «Блокноте» от имени администратора.
  2. В секции [NH_TCPIP] закомментируйте или удалите строку с адресом менеджера:
[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
; NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
  1. На компьютере с ключом остановите службу менеджера лицензий и выньте ключ.
  2. Если менеджер больше не нужен — удалите его через Параметры → Приложения.

Для современных драйверов Sentinel есть веб-консоль Admin Control Center: http://localhost:1947. В ней видно, какие ключи подключены и кто их сейчас использует. Удобно проверить, что ключ действительно никто не держит, прежде чем его вынуть.

Если менеджер завис и не отпускает места, перезапуск его службы освобождает их все сразу. Но у тех, кто сейчас работает от сетевого ключа, 1С сообщит об отсутствии лицензии. Делайте это, когда в базах никого нет.

Кэш клиента и служебные файлы: что можно чистить

Ещё одно заблуждение — что лицензия «застревает» в кэше и её нужно вычищать вместе с ним. Лицензия не хранится ни в информационной базе, ни в кэше клиента, ни в файлах настроек профиля. Её место — только каталоги licenses или ключ HASP.

Что лежит рядом и что с этим делать:

  • 🗂️ Кэш конфигураций — каталоги с длинными именами-идентификаторами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Их можно удалить при закрытой 1С. Проще запустить базу с параметром /ClearCache. На лицензии это не влияет.
  • ⚙️ Файлы настроек с расширением .pfl в тех же папках — настройки запуска и пользователя. К лицензированию отношения не имеют.
  • 📋 Список баз — ibases.v8i в %APPDATA%\1C\1CEStart. Тоже не связан с лицензиями.
  • 🖥️ Кэш сервера — папки snccntx… в каталоге кластера srvinfo. Их чистят только при остановленной службе сервера 1С, то есть при выходе всех пользователей. Делают это при ошибках сеансового кэша, а не для удаления лицензий.

Отсюда практический вывод. Если после удаления файла .lic программа продолжает запускаться, значит, она нашла другую лицензию: во втором каталоге, на сервере 1С или на ключе HASP. Ищите там, а не в кэше.

Как освободить лицензии, занятые зависшими сеансами на сервере 1С

Сообщение Не обнаружено свободной лицензии при нормальном числе пользователей почти всегда означает, что часть мест держат сеансы, которые уже никто не использует. Обрыв связи, закрытый «крестиком» терминал, упавший ноутбук — сеанс остаётся на сервере и занимает лицензию.

Через консоль кластера

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Разверните Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  3. Отсортируйте по колонке начала сеанса или времени последней активности. Подозрительны сеансы с давней активностью и компьютерами, которые уже выключены.
  4. Выделите сеанс, в контекстном меню выберите удаление.

Удалённый сеанс завершается сразу. Если пользователь в нём работал, несохранённые данные пропадут. Перед удалением уточните у владельца сеанса или удаляйте только явно мёртвые.

Чтобы такие сеансы не копились, в свойствах информационной базы задайте «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса» (в секундах). Тогда сеансы отвалившихся клиентов сервер завершит сам.

Через rac

Для удалённого администрирования нужна служба ras (по умолчанию порт 1545). Дальше:

# идентификатор кластера
rac cluster list

# сеансы с информацией о занятых лицензиях
rac session list --cluster=<uuid-кластера> --licenses

# завершить конкретный сеанс
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>

Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров — в rac help session.

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

Когда компьютеров десятки, вручную ходить по каталогам долго. Ниже два готовых сценария.

PowerShell: резервная копия и удаление файлов .lic

Скрипт сохраняет все лицензии из общего каталога в архив и удаляет их. Запускать от администратора, при закрытой 1С.

$src = "C:\ProgramData\1C\licenses"
$dst = "D:\Backup\1c-licenses-$env:COMPUTERNAME-$(Get-Date -Format yyyy-MM-dd).zip"

if (Get-ChildItem $src -Filter *.lic -ErrorAction SilentlyContinue) {
    Compress-Archive -Path "$src\*.lic" -DestinationPath $dst -Force
    Get-ChildItem $src -Filter *.lic | Remove-Item -Force
    Write-Output "Лицензии сохранены в $dst и удалены"
} else {
    Write-Output "Файлов .lic не найдено"
}

Для группы компьютеров тот же код запускают через Invoke-Command -ComputerName ПК1,ПК2 -ScriptBlock { ... }, указав сетевую папку для резервных копий.

Bash: список сеансов с лицензиями по расписанию

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

#!/bin/bash
# отчёт о сеансах и лицензиях по всем кластерам сервера
OUT=/var/log/1c-sessions-$(date +%F).txt
for CL in $(rac cluster list | awk '/^cluster /{print $3}'); do
    echo "=== Кластер $CL ===" >> "$OUT"
    rac session list --cluster="$CL" --licenses >> "$OUT"
done

Скрипт ставят в cron на машине, где запущена служба ras. По отчёту видно, кто и какую лицензию занимал, и легко найти сеансы, которые висят с прошлого дня.

Что вам нужно сделать с лицензией?

Частые ошибки при удалении лицензий 1С

  • ❌ Удалили файл, а 1С всё равно запускается. Лицензия есть ещё где-то: во втором каталоге, на сервере 1С или на сетевом ключе. Проверьте Справка → О программе.
  • ❌ Удалили рабочую лицензию вместо испорченной. Восстановите файл из копии. Если копии нет — повторная активация с затратой пин-кода.
  • ❌ Отредактировали файл .lic. Любая правка делает его недействительным. Только удалять или восстанавливать целиком.
  • ❌ Удалили лицензию сервера днём. Новые сеансы перестают открываться. Верните файл из копии и перезапустите службу вечером.
  • ❌ Не записали пин-коды. Без конверта и регистрационного номера повторно лицензию не получить.

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

Возвращается ли пин-код после удаления лицензии?
Нет. Удаление файла ничего не сообщает фирме 1С, активация остаётся использованной. Для нового компьютера нужен резервный пин-код.
Можно ли удалить лицензию 1С на компьютере, который уже не включается?
Удалять там нечего: лицензия привязана к железу и на другом компьютере всё равно не заработает. Активируйте её на новом месте резервным пин-кодом.
Сколько раз можно повторно получить лицензию?
Число ограничено набором пин-кодов в конверте. Когда они закончились, дополнительные выдают по запросу через партнёра 1С с объяснением причины.
Нужно ли удалять старую лицензию после замены комплектующих?
Да, если 1С перестала её принимать. Держите конверт под рукой: при повторной активации программа попросит ранее использованный пин-код.
Пропадут ли данные базы при удалении лицензии?
Нет. Лицензия не связана с информационной базой. Без неё база просто не откроется, пока не появится другая лицензия.