Чистим старые лицензии 1С: файлы .lic, HASP, nethasp.ini и сервер
Содержание
Чтобы убрать историю лицензий 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 | лицензии, активированные «только для себя» |
| Настройка поиска сетевого ключа HASP | nethasp.ini в каталоге conf платформы | адреса старых серверов ключей |
| Драйвер и менеджер лицензий HASP | службы Windows и драйвер ключа | остатки после перехода на программные лицензии |
| Лицензии сервера 1С | папка лицензий на самом сервере | серверные и клиентские лицензии прошлых комплектов |
Папка ProgramData по умолчанию скрыта. Проще всего вставить путь целиком в адресную строку Проводника.
Когда чистить не нужно
Если 1С запускается сразу, без запросов лицензии и задержек, а в папке один-два файла, ничего трогать не надо. Очистка ради очистки не ускорит программу и не освободит место: файл лицензии весит несколько килобайт. Повод для работы — конкретный сбой, переезд, списание компьютера или ревизия комплектов.
Сначала опись, потом удаление
Перед очисткой выясните, какая лицензия реально работает сейчас:
- Запустите 1С на этом компьютере и откройте
Справка → О программе. В окне указано, какая лицензия используется. - Откройте папку лицензий и отсортируйте файлы по дате изменения. Свежий файл, как правило, соответствует последней активации.
- Если установлена утилита лицензирования 1С (
ring), выполнитеring license list— она покажет список лицензий на этом компьютере, аring license infoвыведет данные по конкретной. Остальные команды смотрите в справке утилиты. - Найдите конверт или карточку с регистрационным номером и пин-кодами. Без них восстановить ошибочно удалённую лицензию будет сложнее.
Не удаляйте файлы .lic без резервной копии. Если удалите рабочую лицензию, придётся активировать её заново и потратить пин-код.
Очистка файлов лицензий на компьютере пользователя
Это основная часть работы. Действуйте на каждом компьютере отдельно.
- Закройте все сеансы 1С на этом компьютере, включая Конфигуратор.
- Скопируйте папку
C:\ProgramData\1C\licensesцеликом в архив, напримерD:\backup\licenses_old. - Сделайте то же с
%APPDATA%\1C\licenses, если папка существует. - Удалите из рабочих папок файлы, которые точно не нужны: лицензии проданных или списанных комплектов, файлы, созданные до замены оборудования.
- Запустите 1С. Если программа стартует без запроса лицензии — очистка прошла правильно.
- Если появился мастер получения лицензии, верните из архива последний удалённый файл и проверьте снова.
💡 Удобный приём — не удалять файлы сразу, а переложить их в подпапку old рядом. Платформа ищет лицензии только в самой папке, а вернуть файл можно за секунду. Через месяц спокойной работы подпапку удаляют.
Когда два места хранения мешают друг другу
При активации мастер спрашивает, для кого получать лицензию: для всех пользователей компьютера или только для текущего. Если в разное время выбирали разные варианты, файлы оказываются в обеих папках.
Проблема проявляется на терминальных серверах: у одного пользователя 1С запускается, у другого нет. Решение — держать лицензии в одном месте, обычно в ProgramData, а пользовательские папки после проверки очистить.
Лицензии на сервере 1С и консоль администрирования
На сервере 1С программные лицензии лежат в папке лицензий самого сервера, той же структуры, что и на рабочих станциях. Там бывают и серверные, и клиентские лицензии, если клиенты получают их с сервера.
Как увидеть, какие лицензии заняты
В консоли администрирования серверов 1С раскройте кластер и откройте список сеансов. У сеансов видно, какую лицензию они используют. Из командной строки то же самое показывает утилита rac:
rac cluster list
rac session list --cluster=<id_кластера> --licenses
Первая команда даёт идентификатор кластера, вторая — сеансы с данными о лицензиях. Если rac подключается к удалённому серверу, укажите его адрес и порт агента (по умолчанию 1545 для ras).
Порядок очистки на сервере
- Сохраните копию папки лицензий сервера.
- Сверьте файлы с тем, что показывают сеансы и учётные документы на купленные комплекты.
- Выберите время, когда в базах никто не работает .
- Перенесите ненужные
.licв архивную подпапку. - Перезапустите службу агента сервера 1С и проверьте вход в базы.
Перезапуск службы агента сервера обрывает все сеансы пользователей во всех базах кластера. Делайте это вечером или в выходной, предупредив людей заранее.
Клиентские лицензии через сервер
Если в списке баз у пользователей включён флажок Получать клиентскую лицензию 1С:Предприятия с сервера, клиентам не нужны локальные файлы — лицензия берётся с сервера. После перехода на такую схему локальные .lic на рабочих станциях можно убрать, оставив их в архиве.
Если серверов в кластере несколько, указать, какой из них выдаёт клиентские лицензии, можно через требования назначения функциональности в свойствах рабочего сервера.
Старые ключи HASP: драйвер и менеджер лицензий
Аппаратные ключи оставляют следы глубже, чем программные лицензии. После перехода на программную защиту их стоит убрать, иначе 1С продолжит опрашивать ключи при запуске.
Локальный ключ на компьютере
Если ключ вынули и больше не вставят, удалите драйвер. Установщик драйвера haspdinst.exe лежит в каталоге платформы 1С. Запустите командную строку от имени администратора:
haspdinst.exe -r
Ключ -r удаляет драйвер. Если ключ понадобится снова, драйвер ставят обратно командой haspdinst.exe -i.
Сетевой ключ и менеджер лицензий
На компьютере, где стоял сетевой ключ, работает менеджер лицензий HASP — отдельная служба Windows. Если ключа больше нет:
- Остановите службу менеджера лицензий HASP в оснастке «Службы».
- Удалите программу через «Программы и компоненты».
- Удалите драйвер ключа, как описано выше.
Состояние ключей удобно смотреть в веб-интерфейсе драйвера по адресу 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. Если на одном компьютере больше одного-двух файлов, это кандидат на очистку.
Правила, после которых мусор не копится
Таблица учёта решает главную проблему: через два года никто не помнит, какой комплект куда активирован. С таблицей очистка занимает десять минут, без неё — полдня с гаданием.
Частые вопросы
Можно ли удалить все файлы из папки licenses и активировать заново?
Нужно ли удалять лицензию со старого компьютера перед переносом?
Почему после очистки 1С всё равно ищет сетевой ключ?
nethasp.ini остались адреса или включён широковещательный поиск, либо стоит драйвер HASP. Проверьте файл в каталоге conf платформы и удалите драйвер, если ключей больше нет.Влияет ли очистка кэша 1С на лицензии?
licenses. Запуск с параметром /ClearCache лицензии не трогает.