Чистим старые лицензии 1С: файлы .lic, HASP, nethasp.ini и сервер

· 9 мин

Содержание

Чтобы убрать историю лицензий 1С, нужно удалить устаревшие файлы *.lic из папок C:\ProgramData\1C\licenses и %APPDATA%\1C\licenses, убрать из nethasp.ini адреса серверов, которых больше нет, и снять драйвер HASP там, где ключи уже не используются. На сервере 1С то же самое делают в его собственной папке лицензий. Отдельной кнопки «очистить историю» в платформе 1С:Предприятие 8.3 нет: история — это и есть накопившиеся файлы и настройки.

Один нюанс сразу. Удаление файла лицензии не возвращает пин-код и не обнуляет счётчик активаций в центре лицензирования. Очистка нужна для порядка на компьютере, а не для «отката» активаций.

Что входит в историю лицензий и что проверить до очистки

За годы работы на одном компьютере скапливается мусор: лицензии старых комплектов, файлы после смены материнской платы, настройки сетевого ключа, который давно унесли. Платформа видит всё это при запуске и может выдать путаную картину.

Типичные симптомы, ради которых чистят историю:

  • 🔁 при каждом запуске 1С заново предлагает получить лицензию , хотя она активирована;
  • ❌ появляется Не обнаружена лицензия для использования программного продукта!, хотя файл в папке есть;
  • 🐢 запуск висит несколько секунд — 1С ищет сетевой ключ по старому адресу;
  • 📦 в папке лицензий десятки файлов .lic, и никто не помнит, какие из них живые.

Где 1С хранит следы лицензий

ЧтоГде лежитЧто там бывает лишнего
Программные лицензии для всех пользователейC:\ProgramData\1C\licensesфайлы после смены железа, старые комплекты
Программные лицензии текущего пользователя%APPDATA%\1C\licensesлицензии, активированные «только для себя»
Настройка поиска сетевого ключа HASPnethasp.ini в каталоге conf платформыадреса старых серверов ключей
Драйвер и менеджер лицензий HASPслужбы Windows и драйвер ключаостатки после перехода на программные лицензии
Лицензии сервера 1Спапка лицензий на самом сервересерверные и клиентские лицензии прошлых комплектов

Папка ProgramData по умолчанию скрыта. Проще всего вставить путь целиком в адресную строку Проводника.

Когда чистить не нужно

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

Сначала опись, потом удаление

Перед очисткой выясните, какая лицензия реально работает сейчас:

  1. Запустите 1С на этом компьютере и откройте Справка → О программе. В окне указано, какая лицензия используется.
  2. Откройте папку лицензий и отсортируйте файлы по дате изменения. Свежий файл, как правило, соответствует последней активации.
  3. Если установлена утилита лицензирования 1С (ring), выполните ring license list — она покажет список лицензий на этом компьютере, а ring license info выведет данные по конкретной. Остальные команды смотрите в справке утилиты.
  4. Найдите конверт или карточку с регистрационным номером и пин-кодами. Без них восстановить ошибочно удалённую лицензию будет сложнее.

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

Очистка файлов лицензий на компьютере пользователя

Это основная часть работы. Действуйте на каждом компьютере отдельно.

  1. Закройте все сеансы 1С на этом компьютере, включая Конфигуратор.
  2. Скопируйте папку C:\ProgramData\1C\licenses целиком в архив, например D:\backup\licenses_old.
  3. Сделайте то же с %APPDATA%\1C\licenses, если папка существует.
  4. Удалите из рабочих папок файлы, которые точно не нужны: лицензии проданных или списанных комплектов, файлы, созданные до замены оборудования.
  5. Запустите 1С. Если программа стартует без запроса лицензии — очистка прошла правильно.
  6. Если появился мастер получения лицензии, верните из архива последний удалённый файл и проверьте снова.

💡 Удобный приём — не удалять файлы сразу, а переложить их в подпапку old рядом. Платформа ищет лицензии только в самой папке, а вернуть файл можно за секунду. Через месяц спокойной работы подпапку удаляют.

Когда два места хранения мешают друг другу

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

Проблема проявляется на терминальных серверах: у одного пользователя 1С запускается, у другого нет. Решение — держать лицензии в одном месте, обычно в ProgramData, а пользовательские папки после проверки очистить.

Лицензии на сервере 1С и консоль администрирования

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

Как увидеть, какие лицензии заняты

В консоли администрирования серверов 1С раскройте кластер и откройте список сеансов. У сеансов видно, какую лицензию они используют. Из командной строки то же самое показывает утилита rac:

rac cluster list
rac session list --cluster=<id_кластера> --licenses

Первая команда даёт идентификатор кластера, вторая — сеансы с данными о лицензиях. Если rac подключается к удалённому серверу, укажите его адрес и порт агента (по умолчанию 1545 для ras).

Порядок очистки на сервере

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

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

Клиентские лицензии через сервер

Если в списке баз у пользователей включён флажок Получать клиентскую лицензию 1С:Предприятия с сервера, клиентам не нужны локальные файлы — лицензия берётся с сервера. После перехода на такую схему локальные .lic на рабочих станциях можно убрать, оставив их в архиве.

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

Старые ключи HASP: драйвер и менеджер лицензий

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

Локальный ключ на компьютере

Если ключ вынули и больше не вставят, удалите драйвер. Установщик драйвера haspdinst.exe лежит в каталоге платформы 1С. Запустите командную строку от имени администратора:

haspdinst.exe -r

Ключ -r удаляет драйвер. Если ключ понадобится снова, драйвер ставят обратно командой haspdinst.exe -i.

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

На компьютере, где стоял сетевой ключ, работает менеджер лицензий HASP — отдельная служба Windows. Если ключа больше нет:

  1. Остановите службу менеджера лицензий HASP в оснастке «Службы».
  2. Удалите программу через «Программы и компоненты».
  3. Удалите драйвер ключа, как описано выше.

Состояние ключей удобно смотреть в веб-интерфейсе драйвера по адресу http://localhost:1947, пока драйвер установлен. Там видно, какие ключи подключены и кто к ним обращается.

💡 В реестр вручную не лезьте. Штатное удаление драйвера и менеджера убирает их записи само, а ручная правка реестра легко ломает другие программы, которые пользуются ключами той же марки.

Файл nethasp.ini и миф о licenses.lic

Что в nethasp.ini стоит почистить

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

Рабочий пример для одного сервера ключей:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled

Что делать:

  • 🧹 удалите из NH_SERVER_ADDR адреса несуществующих серверов;
  • 📡 отключите широковещательный поиск, если адрес сервера ключей указан явно, — это ускоряет запуск;
  • 🚫 если сетевых ключей больше нет совсем, закомментируйте строки с адресами, поставив ; в начале.

После правки перезапустите 1С на этом компьютере. Служба сервера тут не нужна.

Существует ли файл licenses.lic

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

Сбросить можно только выбор файлов: убрать лишние, оставить рабочие.

Пин-коды и счётчик активаций: что очистить нельзя

Многие ищут, как убрать историю лицензии, чтобы вернуть пин-код. Это невозможно со стороны компьютера.

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

СитуацияПомогает очистка файлов?Что делать
В папке много старых .lic, 1С путаетсяДаУбрать лишние файлы по инструкции выше
Сменили диск или материнскую платуНетПовторно активировать лицензию резервным пин-кодом
Резервные пин-коды закончилисьНетЗапросить дополнительные пин-коды у фирмы 1С через партнёра
Компьютер списан, лицензию нужно перенестиЧастичноУдалить файл на старом ПК, активировать на новом

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

Обход защиты, «кряки» и правка файлов лицензий незаконны и приводят к неработающей базе в самый неподходящий момент. Легальный путь при нехватке пин-кодов — запрос дополнительных кодов.

Автоматизация: опись лицензий и регламент

На двух-трёх компьютерах всё делается руками. В сети на 20-50 рабочих мест удобнее скрипт, который собирает опись лицензий и хранит копии.

Скрипт резервной копии лицензий

@echo off
set SRC=%ProgramData%\1C\licenses
set DST=\\fileserver\backup\1c-licenses\%COMPUTERNAME%

if not exist "%DST%" mkdir "%DST%"
xcopy "%SRC%\*.lic" "%DST%\" /Y /D
dir "%SRC%\*.lic" > "%DST%\list.txt"

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

Опись по всем компьютерам сети

PowerShell соберёт файлы лицензий со всех машин в одну таблицу. Нужны права администратора на рабочих станциях:

$pcs = Get-Content "C:\scripts\pcs.txt"
$result = foreach ($pc in $pcs) {
  Get-ChildItem "\\$pc\c$\ProgramData\1C\licenses" -Filter *.lic -ErrorAction SilentlyContinue |
    Select-Object @{n='PC';e={$pc}}, Name, LastWriteTime
}
$result | Export-Csv "C:\scripts\licenses.csv" -NoTypeInformation -Encoding UTF8

В pcs.txt — имена компьютеров по одному в строке. На выходе — CSV, который открывается в Excel. Если на одном компьютере больше одного-двух файлов, это кандидат на очистку.

Правила, после которых мусор не копится

Регламент работы с лицензиями 1С
Выполнено: 0 / 6

Таблица учёта решает главную проблему: через два года никто не помнит, какой комплект куда активирован. С таблицей очистка занимает десять минут, без неё — полдня с гаданием.

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

Можно ли удалить все файлы из папки licenses и активировать заново?
Можно, но каждая повторная активация на изменённом компьютере тратит пин-код. Проще удалить только лишние файлы, а рабочие оставить.
Нужно ли удалять лицензию со старого компьютера перед переносом?
Технически 1С этого не требует: сервис лицензирования не проверяет удаление. Но по условиям лицензии комплект используют на одном рабочем месте, поэтому файл со старого компьютера стоит удалить.
Почему после очистки 1С всё равно ищет сетевой ключ?
В nethasp.ini остались адреса или включён широковещательный поиск, либо стоит драйвер HASP. Проверьте файл в каталоге conf платформы и удалите драйвер, если ключей больше нет.
Влияет ли очистка кэша 1С на лицензии?
Нет. Кэш конфигурации и пользовательские настройки хранятся отдельно от папки licenses. Запуск с параметром /ClearCache лицензии не трогает.
Сколько файлов .lic нормально держать на одном компьютере?
Столько, сколько комплектов реально активировано на этом месте. Обычно это один-два файла: клиентская лицензия и, на сервере, серверная.