Файлы программной лицензии 1С: что лежит на клиенте, на сервере и на RDP

· 9 мин

Содержание

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

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

Где лежит файл лицензии на компьютере пользователя

При запуске клиент 1С:Предприятия перебирает каталоги и берёт первую подходящую лицензию. Для Windows порядок такой.

КаталогКто видит лицензиюКогда туда попадает файл
C:\ProgramData\1C\licensesВсе пользователи компьютераОсновное место, сюда пишет мастер получения лицензии
%APPDATA%\1C\1cv8\confТолько текущий пользователь WindowsЕсли файл скопировали вручную в профиль
C:\Program Files\1cv8\conf (или Program Files (x86) для 32-битной платформы)Все, кто запускает эту установкуСтарые инструкции и ручной перенос

📌 На что обратить внимание при поиске:

  • 🙈 Папка ProgramData скрытая. Наберите путь прямо в адресной строке Проводника или включите показ скрытых элементов.
  • 👤 %APPDATA% — это C:\Users\<имя>\AppData\Roaming. У каждого пользователя Windows своя папка, и лицензия Иванова не видна Петрову.
  • 📂 Каталог conf в Program Files\1cv8 общий для всех установленных версий платформы. Не путайте его с папкой bin\conf внутри конкретной версии вроде 8.3.24.1586.

Быстрый способ найти все файлы лицензий на диске — команда в командной строке:

dir C:\*.lic /s /b

Она выведет полные пути ко всем .lic. Учтите: расширение .lic используют и другие программы, поэтому смотрите на путь — файлы 1С лежат в папках с 1C или 1cv8 в имени.

Если в двух каталогах лежат разные лицензии, платформа может взять не ту, которую вы ждёте. Держите действующие файлы в одном месте — в C:\ProgramData\1C\licenses.

На Linux клиент ищет лицензии в /var/1C/licenses и в домашнем каталоге пользователя, в скрытой папке ~/.1cv8/1C/1cv8/conf.

Где хранятся лицензии на сервере 1С:Предприятия

Серверная лицензия — тоже файл .lic, и хранится он на той машине, где работает служба агента сервера ragent. Каталог тот же: C:\ProgramData\1C\licenses на Windows и /var/1C/licenses на Linux.

Тонкость в том, от чьего имени работает служба. Обычно это служебная учётная запись, например USR1CV8. Если файл лицензии положить в %APPDATA% администратора, служба его не увидит: у неё свой профиль. Общий каталог ProgramData видят все, поэтому серверные лицензии держат только там.

На сервере могут лежать лицензии двух видов:

  • 🖥️ Лицензия на сервер — разрешает запуск самого кластера (обычная или КОРП, 32- или 64-битная).
  • 👥 Клиентские лицензии — их сервер выдаёт пользователям, которые подключаются к базам кластера. Пользователю на своём компьютере файл не нужен.

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

Права на папку. Служба сервера должна иметь право читать C:\ProgramData\1C\licenses. Если папку создавали вручную и урезали права, сервер «не видит» лицензию, хотя файл на месте.

Какие лицензии реально заняты сеансами, видно в консоли кластера (раздел сеансов, колонки лицензий) или командой утилиты администрирования:

rac session list --licenses

Перед этим выполните rac cluster list, чтобы узнать идентификатор кластера, и передайте его в параметре --cluster.

Сетевой ключ HASP: что хранится и где это настраивается

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

Как устроена схема с сетевым ключом:

  1. Ключ вставлен в компьютер, который выполняет роль сервера лицензий.
  2. На этом компьютере установлены драйвер ключа и служба HASP License Manager.
  3. Клиенты 1С находят менеджер лицензий по сети, по умолчанию через порт 475 (UDP и TCP).
  4. Менеджер выдаёт лицензию из ключа, пока не исчерпан лимит пользователей.

Единственный «файл» в этой схеме на стороне клиента — nethasp.ini. Он лежит в каталоге 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

Здесь 192.168.1.10 — адрес компьютера с ключом. При нескольких серверах ключей адреса перечисляют через запятую.

📌 Частые причины, по которым сетевой ключ «не находится»:

  • 🔌 Служба HASP License Manager остановлена или не установлена.
  • 🧱 Брандмауэр на сервере ключей закрыл порт 475.
  • 📡 Клиент и сервер в разных подсетях, а в nethasp.ini адрес не указан.
  • 🧩 В nethasp.ini ошибка в имени секции или параметра — файл читается молча, без сообщения об ошибке.

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

Как найти, проверить и восстановить файл лицензии 1С

Проверить, какая лицензия используется сейчас

Самый простой способ — запустить 1С и открыть окно «О программе» (значок с буквой «i» или меню справки). Там указано, откуда получена лицензия: из файла на компьютере, с сервера или из ключа HASP.

Для программных лицензий есть утилита ring из комплекта лицензионных инструментов 1С (License Tools). Список лицензий на компьютере показывает команда:

ring license list

Подробности по одной лицензии — ring license info с именем лицензии из списка. Точный набор параметров для вашей версии утилиты смотрите в справке ring license help.

Восстановить лицензию из резервной копии

Если у вас сохранилась копия файла .lic, достаточно положить её обратно в C:\ProgramData\1C\licenses. Но сработает это только на том же оборудовании.

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

Получить лицензию заново

Если копии нет, лицензию активируют повторно. Мастер получения лицензии запускается сам, когда 1С не находит ни одной лицензии.

  1. Подготовьте конверт из комплекта: регистрационный номер продукта и ПИН-коды.
  2. Запустите 1С, в мастере выберите получение лицензии и введите регистрационный номер и ПИН-код.
  3. Если ПИН-код уже использовался, мастер попросит данные прежней активации: регистрационные данные организации и ранее введённый ПИН-код.
  4. Выберите способ получения: автоматически через интернет , по электронной почте, по телефону или на бумаге.
  5. После успешной активации новый файл .lic появится в каталоге лицензий.

Для повторной активации на изменившемся оборудовании используют резервные ПИН-коды из того же конверта. Когда резервные коды закончатся, дополнительные ПИН-коды запрашивают через партнёра 1С или центр лицензирования, приложив регистрационные данные.

При повторной активации вводите регистрационные данные организации ровно так, как при первой: ИНН, наименование, адрес. Расхождение — частая причина отказа центра лицензирования.

Что случилось с вашей лицензией?

Лицензии на терминальном сервере (RDP, Citrix)

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

Правила для терминальной среды:

  • 📁 Файл кладут только в C:\ProgramData\1C\licenses. Лицензия в %APPDATA% одного пользователя не будет видна в сессиях остальных.
  • 🔁 Многопользовательская лицензия (на 5, 10, 20 мест) одна на всех. Каждый сеанс 1С в каждой RDP-сессии занимает место из общего лимита.
  • 🧳 При перемещаемых профилях (roaming profiles) и Citrix-профилях папка AppData\Roaming ездит за пользователем между серверами. Лицензия, случайно попавшая туда, будет то находиться, то пропадать — в зависимости от сервера фермы.
  • 🖧 На ферме из нескольких терминальных серверов каждый сервер активирует свою лицензию или все берут лицензии с сервера 1С:Предприятия. Один файл на все узлы не скопировать: он привязан к оборудованию.

На ферме RDS или Citrix проще держать клиентские лицензии на сервере 1С:Предприятия и включить их выдачу сервером. Тогда терминальные узлы можно пересоздавать без повторных активаций.

Виртуальные машины

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

Перед такими работами согласуйте план с администратором виртуализации. Зафиксируйте MAC-адреса и, если гипервизор это позволяет, задайте их статически.

Как автоматизировать контроль файлов лицензий

Лицензия теряется незаметно: файл стёрли при «чистке» диска, обновление Windows сбросило права, кто-то переустановил систему. Узнают об этом утром, когда 1С не запускается у всего отдела. Простая автоматизация снимает эту проблему.

Ежедневная резервная копия каталога лицензий

Скрипт для планировщика заданий Windows копирует каталог лицензий в отдельную папку с датой:

@echo off
set SRC=C:\ProgramData\1C\licenses
set DST=D:\Backup\1C-licenses\%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
if not exist "%DST%" mkdir "%DST%"
xcopy "%SRC%\*.lic" "%DST%\" /Y /I

Разбор даты через %DATE:~6,4% рассчитан на формат ДД.ММ.ГГГГ, принятый в русской локали Windows. На сервере с другой локалью поправьте смещения.

Проверка, что файлы на месте

PowerShell-скрипт выводит список файлов лицензий с датой изменения и сообщает, если папка пуста:

$path = "C:\ProgramData\1C\licenses"
$files = Get-ChildItem -Path $path -Filter *.lic -ErrorAction SilentlyContinue
if (-not $files) {
    Write-Output "Файлы лицензий 1С не найдены в $path"
    exit 1
}
$files | Select-Object Name, Length, LastWriteTime | Format-Table -AutoSize

Код возврата 1 при пустой папке удобно ловить системой мониторинга или планировщиком и отправлять уведомление администратору.

Контроль занятых мест

На сервере 1С:Предприятия число используемых лицензий отслеживают через rac session list --licenses. Вывод можно разбирать по расписанию и предупреждать, когда занято больше 90% мест. Тогда о нехватке лицензий узнают заранее, а не по жалобе пользователя, которого не пустили в базу.

Что хранить на случай потери лицензии
Выполнено: 0 / 5

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

Можно ли открыть файл лицензии 1С и посмотреть, что в нём?
Файл можно открыть просмотрщиком, но редактировать его нельзя: любое изменение делает лицензию недействительной. Сведения о лицензии безопаснее смотреть через ring license info или окно «О программе».
Нужно ли удалять старый файл .lic после повторной активации?
Недействительный файл платформа пропускает, но лучше перенести его в архив. Так проще понять, какая лицензия рабочая, и исключить путаницу при следующей проверке.
Перенесётся ли лицензия при обновлении платформы на новую версию?
Да. Каталог ProgramData\1C\licenses не зависит от версии платформы, и новая версия использует те же файлы. Повторная активация нужна только при смене оборудования.
Можно ли хранить файлы лицензий в сетевой папке?
Нет, платформа ищет лицензии в локальных каталогах компьютера. Для централизованной выдачи используйте сервер 1С:Предприятия или сетевой ключ HASP, а сетевую папку — только для резервных копий.
Почему лицензия есть, а 1С пишет, что она не найдена?
Чаще всего файл лежит не в том каталоге, у службы или пользователя нет прав на чтение папки, или сменилось оборудование. Начните с проверки пути и прав, затем сравните конфигурацию компьютера с той, что была при активации.