Откуда платформа 1С:Предприятие 8.3 берёт лицензию: путь от компьютера пользователя до сервера

· 10 мин

Содержание

1С ищет ключи защиты по цепочке: сначала программные лицензии (файлы .lic) на текущем компьютере, затем аппаратный ключ в USB-порту, затем сетевой ключ через менеджер лицензий HASP. Для клиент-серверной базы к этой цепочке добавляется сервер 1С:Предприятия: он может выдать лицензию сам, из своих файлов и ключей.

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

Какие ключи защиты и лицензии бывают в 1С 8.3

Платформа 8.3 работает с двумя видами защиты. Они могут сосуществовать в одной сети и даже на одном компьютере.

  • 🔑 Аппаратный ключ (HASP) — USB-ключ. Бывает локальным (лицензия только для того компьютера, где он вставлен) и сетевым (раздаёт лицензии по сети через менеджер лицензий).
  • 📄 Программная лицензия — файл с расширением .lic, который появляется после активации пин-кода. Привязан к параметрам конкретного компьютера.
  • 🖥️ Лицензия на сервер — отдельный вид. Нужна для работы рабочих процессов сервера 1С:Предприятия. Клиентских мест она не даёт.

Аппаратные ключи различаются маркировкой. По ней видно, для чего ключ.

МаркировкаЧто этоГде работает
ORGL8Однопользовательский клиентский ключТолько на компьютере, куда вставлен
ORG8AМногопользовательский сетевой ключ (5–300 мест)Через менеджер лицензий HASP
ORG8BМногопользовательский сетевой ключ на 500 местЧерез менеджер лицензий HASP
ENSR8Ключ 32-разрядного сервераНа сервере 1С:Предприятия
EN8SAКлюч 64-разрядного сервераНа сервере 1С:Предприятия

Клиентский ключ и серверный ключ взаимно не заменяют друг друга. Ключ EN8SA на сервере не даст ни одного клиентского места, а сетевой ORG8A не запустит 64-разрядный сервер.

Программные лицензии тоже делятся на клиентские (однопользовательская, многопользовательская на N мест) и серверные. Отличие от ключей одно: лицензия «живёт» в файле и привязана к оборудованию, а не к куску пластика.

В каком порядке 1С ищет лицензию при запуске

Порядок поиска зависит от варианта работы базы. Разберём оба.

Файловая база

Здесь лицензию получает только клиентское приложение на компьютере пользователя. Цепочка такая:

  1. Программные лицензии — файлы .lic в каталогах лицензий текущего компьютера.
  2. Локальный аппаратный ключ, вставленный в этот компьютер.
  3. Сетевой ключ: клиент обращается к менеджеру лицензий HASP по адресам из nethasp.ini, а если адресов нет — рассылает широковещательный запрос по подсети.

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

Клиент-серверная база

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

Отсюда практичное следствие: ключ или файл лицензии, предназначенный для сервера, должен быть виден именно серверу, то есть учётной записи службы, а не администратору, который зашёл на сервер по RDP.

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

Где 1С ищет файлы лицензий и как находит сетевой ключ

Каталоги программных лицензий

Платформа просматривает два каталога: общий для всех пользователей компьютера и каталог текущего пользователя.

ОСОбщий каталогКаталог пользователя
WindowsC:\ProgramData\1C\licenses%APPDATA%\1C\licenses
Linux/var/1C/licenses~/.1cv8/1C/licenses

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

Проверить, что лежит в каталогах и какие лицензии считаются действительными, можно утилитой ring:

ring license list

Команда покажет имена лицензий. Подробности по конкретной лицензии и другие операции смотрите в справке ring license help.

Файл nethasp.ini — адресная книга сетевых ключей

Сетевой ключ сам по себе в сеть не «вещает». Его раздаёт менеджер лицензий HASP (HASP License Manager), установленный на компьютере с ключом. Он слушает порт 475.

Без настроек клиент ищет менеджер широковещательным запросом. Это медленно и не работает через маршрутизаторы и VPN. Поэтому адрес менеджера задают в файле nethasp.ini. Его кладут в каталог конфигурационных файлов платформы — conf (например, C:\Program Files\1cv8\conf\) или bin\conf каталога конкретной версии.

Минимальный рабочий вариант:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.5
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
NH_SESSION = 2
NH_SEND_RCV = 1

Что означают строки:

  • 📍 NH_SERVER_ADDR — адрес компьютера с менеджером лицензий. Можно перечислить несколько через запятую.
  • 📡 NH_USE_BROADCAST = Disabled — запрет широковещательного поиска. Клиент обращается только по указанным адресам.
  • ⏱️ NH_SESSION и NH_SEND_RCV — таймауты в секундах. Уменьшение сокращает ожидание, если менеджер недоступен.
  • 🔌 NH_TCPIP_METHOD — протокол обмена: UDP или TCP.

Если менеджеров лицензий в сети два (например, ключ на 50 мест и ключ на 10 мест на разных машинах), перечислите оба адреса в NH_SERVER_ADDR. Клиент пройдёт по списку и возьмёт свободное место там, где оно есть.

Как управлять приоритетом поиска ключей

Порядок «программная лицензия → локальный ключ → сетевой ключ» в платформе зашит. Изменить его нельзя, но можно выключить отдельные звенья. На практике это и есть настройка приоритета.

Запрет поиска аппаратных ключей на клиенте

В списке информационных баз откройте свойства базы, перейдите на последнюю страницу мастера и найдите параметр «Использовать аппаратную лицензию (ключ защиты)». Если поставить «Нет», клиент перестаёт искать USB-ключи и сетевые ключи.

Этот параметр сохраняется в файле списка баз ibases.v8i строкой UseHwLicenses. Его же можно передать при запуске:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /UseHwLicenses-

Когда это полезно: в клиент-серверной базе все лицензии выдаёт сервер, и клиенту незачем тратить секунды на опрос сети.

Разрешение выдачи лицензий сервером

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

Какой сервер кластера выдаёт клиентские лицензии

В кластере из нескольких рабочих серверов это задают в свойствах рабочего сервера, в разделе «Требования назначения функциональности». Там есть тип объекта «Клиентская лицензия». С его помощью закрепляют выдачу лицензий за сервером, на котором лежат файлы или подключён ключ.

Поиск ключей в терминальных, кластерных и распределённых системах

Терминальный сервер (RDP)

Все пользователи работают на одной машине, поэтому и лицензии ищутся на ней. Программная многопользовательская лицензия кладётся в общий каталог C:\ProgramData\1C\licenses терминального сервера. Однопользовательский ключ ORGL8 в терминале даст только одно место — для многих сеансов нужен многопользовательский ключ или лицензия на соответствующее число мест.

Кластер серверов 1С

Серверная лицензия нужна каждому рабочему серверу, на котором запускаются рабочие процессы. Клиентские лицензии можно держать на одном сервере и закрепить выдачу требованием назначения функциональности, как описано выше.

Помните о связке портов. Клиент приходит к агенту сервера (порт 1540), дальше — к менеджеру кластера (1541) и рабочим процессам из диапазона, заданного в свойствах рабочего сервера. Для ключей это значит одно: если до рабочего процесса клиент не достучался, лицензию сервер ему не выдаст, хотя ключ на месте.

Филиалы и VPN

Сетевой ключ через VPN найти можно, но только по явному адресу в nethasp.ini: широковещательный запрос через туннель не пройдёт. Нужен открытый порт 475 до менеджера лицензий. Разумнее другое решение: клиенты филиала подключаются к центральному серверу 1С, а он выдаёт лицензии сам. Тогда сеть филиала ключ вообще не ищет.

Сервер на Linux

Для аппаратного ключа на Linux нужен драйвер HASP для этой ОС, а программные лицензии сервера лежат в /var/1C/licenses. Права на каталог должны быть у пользователя, от имени которого запущен сервер, обычно usr1cv8.

Как ускорить поиск ключа при запуске

Долгий старт 1С с зависанием на 10–30 секунд в самом начале — почти всегда ожидание ответа от несуществующего сетевого ключа. Порядок действий:

  1. Определите, откуда пользователи фактически получают лицензии (см. диагностику в разделе об ошибках).
  2. Если лицензии выдаёт сервер, отключите на клиентах параметр «Использовать аппаратную лицензию (ключ защиты)».
  3. Если используется сетевой ключ, пропишите nethasp.ini с точным адресом менеджера и NH_USE_BROADCAST = Disabled.
  4. Уменьшите таймауты NH_SESSION и NH_SEND_RCV до 1–2 секунд для локальной сети.
  5. Удалите из каталогов лицензий недействительные .lic после замены оборудования: платформе незачем проверять файлы, которые заведомо не подойдут.

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

Менять nethasp.ini на рабочих местах безопасно — файл читается при следующем запуске. А вот перезапуск службы менеджера лицензий HASP или сервера 1С оборвёт сеансы пользователей, которые получили лицензии оттуда. Делайте это вне рабочего времени.

Куда движется лицензирование 1С: программные лицензии вместо USB

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

Плюсы программных лицензий:

  • ✅ не теряются и не ломаются физически;
  • ✅ легко переносятся на сервер, который выдаёт их всем клиентам;
  • ✅ работают в виртуальных средах без проброса USB.

Минусы тоже есть:

  • ❌ лицензия привязана к оборудованию; при замене материнской платы, дисков или сетевых карт её приходится активировать повторно резервным пин-кодом;
  • ❌ число резервных пин-кодов ограничено, когда они закончатся — нужно обращаться в поддержку;
  • ❌ на виртуальной машине изменения параметров (MAC-адрес, идентификатор виртуальной машины) также сбивают привязку.

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

Когда 1С не находит ключ: ошибки и что с ними делать

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

rac session list --cluster=<идентификатор кластера> --licenses

Идентификатор кластера берётся из вывода rac cluster list. В выводе по каждому сеансу видно, программная лицензия использована или ключ, и на каком компьютере она получена.

Для сетевых ключей пригодится монитор менеджера лицензий HASP (Aladdin Monitor): он показывает, какие менеджеры видны в сети и сколько мест занято.

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

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

Можно ли использовать одновременно программную лицензию и аппаратный ключ?
Да. Платформа суммирует найденные места: например, программная лицензия на 10 мест на сервере и сетевой ключ на 5 мест дают до 15 одновременных пользователей при правильной настройке поиска.
Нужен ли менеджер лицензий HASP для локального ключа ORGL8?
Нет. Локальному ключу достаточно драйвера защиты. Менеджер лицензий нужен только для сетевых многопользовательских ключей.
Где лежит nethasp.ini, если его нигде нет?
Платформа его не создаёт. Создайте файл вручную в каталоге conf платформы на каждом клиенте или на сервере 1С, если ключ ищет сервер.
Почему однопользовательский ключ не работает на терминальном сервере для всех?
Однопользовательская лицензия даёт одно место на компьютер. Для нескольких сеансов RDP нужна многопользовательская лицензия на нужное число мест.
Видит ли 1С ключ, проброшенный в виртуальную машину?
Да, если USB-ключ проброшен в гостевую ОС и там установлен драйвер. Для сетевого ключа проще поставить менеджер лицензий на хост или отдельный компьютер и указать его адрес в nethasp.ini.