Как устроена раздача лицензий 1С по сети: сервер 1С, ключи HASP и программная защита
Содержание
Сервер лицензий 1С — это компьютер, который хранит лицензии и выдаёт их пользователям по сети, чтобы не держать отдельный ключ или файл лицензии на каждом рабочем месте. В 1С 8.3 эту роль играют две разные вещи: сервер 1С:Предприятия (кластер), который раздаёт программные и аппаратные лицензии клиентам своих баз, и менеджер лицензий HASP, который обслуживает сетевые USB-ключи.
Обычно о нём вспоминают, когда утром половина бухгалтерии видит Не обнаружен ключ защиты программы или полученная программная лицензия!. Разберём, как устроена схема, как её собрать и где она чаще всего ломается.
Что называют сервером лицензий 1С и зачем он нужен
Термин неофициальный. Под ним понимают любой узел, к которому клиенты 1С обращаются за лицензией. На практике встречаются три варианта:
- 🖥️ Сервер 1С:Предприятия в клиент-серверном режиме. Лицензии лежат на компьютере с кластером, клиент получает её при подключении к базе.
- 🔑 Менеджер лицензий HASP (HASP License Manager). Служба на компьютере с сетевым USB-ключом. Клиенты находят её по сети и «занимают» место в ключе.
- 🧩 Выделенный сервис лицензирования внутри кластера. Тот же сервер 1С, но функция выдачи лицензий вынесена на отдельный рабочий сервер.
Зачем это нужно:
- лицензии хранятся в одном месте, их проще учитывать и резервировать;
- одна многопользовательская лицензия на 10 мест обслуживает 10 одновременных сеансов, а не 10 конкретных компьютеров;
- новый сотрудник начинает работать без активации лицензии на его ПК;
- поломка рабочего компьютера не уносит с собой лицензию.
Лицензия 1С считается по одновременным сеансам. Если в штате 15 человек, но одновременно в базе сидят 8, хватит комплекта на 10 мест.
Какие бывают лицензии 1С и кто их выдаёт
Перед настройкой разберитесь, что именно у вас куплено. От этого зависит, какой «сервер лицензий» вам нужен.
| Вид лицензии | Носитель | Кто выдаёт по сети | Где работает |
|---|---|---|---|
| Клиентская программная, однопользовательская | файл .lic, активация пин-кодом | никто, только локально | один компьютер |
| Клиентская программная, многопользовательская (5, 10, 20, 50, 100…) | файл .lic | сервер 1С или терминальный сервер | сеансы на этом сервере |
| Клиентская аппаратная, локальная | USB-ключ HASP | никто | компьютер, куда вставлен ключ |
| Клиентская аппаратная, сетевая | USB-ключ HASP | менеджер лицензий HASP или сервер 1С | любой компьютер в сети |
| Серверная (ПРОФ или КОРП) | файл .lic или USB-ключ | не раздаётся | сам кластер 1С |
Здесь путают две вещи. Серверная лицензия разрешает работать самому серверу 1С, но не даёт права подключиться ни одному пользователю. Для пользователей нужны клиентские лицензии в нужном количестве.
Программные лицензии хранятся в виде файлов:
- Windows —
C:\ProgramData\1C\licenses; - Linux —
/var/1C/licenses.
Каждый файл привязан к параметрам «железа»: диски, сетевые карты, процессор, материнская плата. Сменили одно из них заметно — лицензия перестаёт подходить, и её нужно активировать заново резервным пин-кодом из комплекта.
Как сервер лицензий 1С выдаёт лицензию: путь запроса
Клиент-серверный режим
Цепочка выглядит так:
- Клиент обращается к агенту сервера 1С (порт
1540), тот направляет его к менеджеру кластера (1541) и рабочему процессу (по умолчанию диапазон1560–1591, задаётся в свойствах рабочего сервера). - Если в свойствах базы разрешена выдача лицензий сервером, рабочий процесс ищет свободную клиентскую лицензию на своём компьютере: программные файлы, локальный USB-ключ, сетевой ключ через менеджер HASP.
- Нашёл — сеанс получает лицензию и держит её до закрытия. Не нашёл — клиент пробует найти лицензию у себя локально.
- Не нашлось нигде — пользователь видит ошибку об отсутствии лицензии.
Флажок в консоли кластера называется «Разрешить выдачу лицензий сервером 1С:Предприятия». Он задаётся отдельно для каждой информационной базы.
Сетевой ключ HASP
Здесь сервер 1С не нужен. Клиент читает файл nethasp.ini, по протоколу UDP или TCP на порт 475 находит компьютер с менеджером лицензий и занимает одно место в ключе. Закрыл 1С — место освободилось.
Где видно, кто занял лицензию
В клиент-серверной схеме выданные лицензии видны через утилиту rac:
rac cluster list
rac session list --cluster=<UUID-кластера> --licenses
Вторая команда показывает по каждому сеансу пользователя, компьютер и тип лицензии. Остальные параметры смотрите в rac help.
Для ключей HASP есть веб-панель Sentinel Admin Control Center: откройте в браузере на компьютере с ключом адрес http://localhost:1947. Там виден сам ключ и подключённые клиенты.
Установка и настройка сервера лицензий 1С
Порядок зависит от схемы. Ниже два основных сценария.
Сценарий 1. Программные лицензии на сервере 1С
- Установите сервер 1С:Предприятия и запустите службу агента.
- Активируйте серверную лицензию и клиентские многопользовательские лицензии на этом компьютере. Мастер получения лицензии открывается из любого клиента 1С, запущенного на сервере; понадобятся регистрационный номер комплекта и пин-код.
- Проверьте, что файлы
.licпоявились вC:\ProgramData\1C\licenses(или/var/1C/licenses). - В консоли администрирования серверов откройте свойства каждой базы и включите «Разрешить выдачу лицензий сервером 1С:Предприятия».
- Откройте в брандмауэре порты
1540,1541и диапазон рабочих процессов. - Подключитесь к базе с рабочего места без локальной лицензии и проверьте сеанс через
rac session list --licenses.
Активируйте лицензии из-под учётной записи с правами на запись в ProgramData\1C\licenses. Иначе мастер отчитается об успехе, но файл не сохранится там, где его ищет служба сервера.
Сценарий 2. Сетевой ключ HASP
- Вставьте ключ в компьютер, который всегда включён: сервер или постоянно работающий ПК.
- Установите драйвер защиты (Sentinel HASP/LDK Run-time) и сам менеджер лицензий HASP License Manager. В Windows менеджер ставится как служба.
- Откройте порт
475по TCP и UDP на этом компьютере. - На каждом клиенте отредактируйте
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 — адрес компьютера с ключом. Отключённый широковещательный поиск ускоряет запуск 1С и избавляет от ложных «ключ не найден» в сетях с несколькими подсетями.
- Запустите 1С на клиенте и убедитесь в панели
http://localhost:1947на сервере, что подключение появилось.
В клиент-серверном режиме сетевой ключ можно вставить прямо в сервер 1С. Тогда nethasp.ini правят не на клиентах, а на сервере: лицензии из ключа будет запрашивать рабочий процесс.
Выделенный сервис лицензирования
Если кластер большой, выдачу лицензий выносят на отдельный рабочий сервер. Для этого в свойствах рабочих серверов настраивают требования назначения функциональности: объекту «Сервис лицензирования» назначают нужный сервер, а на остальных его запрещают. Лицензии при этом должны лежать на том компьютере, который выдаёт их.
Перед изменением требований назначения функциональности согласуйте окно работ: кластер перераспределит сервисы, и часть сеансов может оборваться.
Ошибки сервера лицензий и что с ними делать
Ещё две частые ситуации:
- 🔄 Сеанс завис и держит лицензию. Его можно завершить в консоли кластера или командой
rac session terminateс идентификатором сеанса. Пользователь потеряет несохранённые данные, поэтому предупредите его заранее. - 🧱 Антивирус или брандмауэр после обновления закрыл порты. Симптом — лицензии внезапно «кончились» у всех сразу, а на сервере всё запущено. Проверьте правила для
ragent,rmngr,rphostи порта475.
Перезапуск службы агента сервера 1С или менеджера HASP обрывает все сеансы, которые сейчас держат лицензии. Делайте это вне рабочего времени или после того, как пользователи вышли из базы.
Как обновить сервер лицензий и не потерять лицензии
Обновление касается трёх разных частей, и у каждой свои риски.
Платформа сервера 1С. Файлы лицензий не привязаны к версии платформы, поэтому при переходе, например, с одного релиза 8.3 на другой они остаются в ProgramData\1C\licenses и подхватываются новой службой. На время обновления служба останавливается, сеансы обрываются.
Драйвер HASP и менеджер лицензий. Новые версии Windows иногда перестают видеть ключ со старым драйвером. Обновите Sentinel Run-time и HASP License Manager, затем перезапустите службу. Ключ при этом не перепрошивается.
Оборудование и виртуализация. Самое опасное «обновление». Замена материнской платы, добавление сетевой карты, перенос ВМ на другой хост могут сделать программные лицензии недействительными. Порядок действий:
- Сохраните копию каталога
licensesи запишите регистрационные номера комплектов. - Проверьте, сколько резервных пин-кодов осталось.
- После изменения запустите проверку лицензии; если она не подходит — активируйте заново.
Если резервные пин-коды закончились, восстановить лицензию можно через партнёра, у которого покупали комплект, или через центр лицензирования фирмы 1С. Подготовьте регистрационный номер и документы о покупке.
Чем можно заменить сервер лицензий
Сервер лицензий нужен не всегда. Альтернативы и их ограничения:
| Вариант | Когда подходит | Минусы |
|---|---|---|
| Однопользовательская программная лицензия на каждом ПК | 2–3 сотрудника, файловая база | при смене ПК нужна переактивация, лицензии не «переходят» между людьми |
| Локальный USB-ключ на каждом ПК | старые комплекты, частая замена оборудования | ключ теряют, ломают, он занимает порт |
| Терминальный сервер с многопользовательской лицензией | удалённые сотрудники, файловая база | нужны лицензии на сам терминальный сервер и Windows |
| Облако (аренда 1С) | нет своего сервера и администратора | лицензии входят в аренду, но базу контролирует провайдер |
Выбор простой. До пяти пользователей в файловой базе чаще хватает локальных лицензий. Если пользователей больше или база клиент-серверная, держать лицензии на сервере 1С удобнее: один комплект, одна точка контроля.