Как сделать, чтобы сервер 1С сам раздавал лицензии пользователям
Содержание
Чтобы клиентские лицензии 1С работали «с сервера», их активируют на том компьютере, где запущен сервер 1С:Предприятия. Пин-код вводят в мастере получения лицензии при подключении к клиент-серверной базе и выбирают получение лицензии для сервера. Файл лицензии ложится в C:\ProgramData\1C\licenses (Windows) или /var/1C/licenses (Linux), и дальше сервер выдаёт места всем, кто подключается к его базам.
С аппаратными ключами схема другая: многопользовательский ключ HASP вставляют в сервер, ставят драйвер и менеджер лицензий, а клиентам прописывают адрес сервера в nethasp.ini. Ниже обе схемы, настройка сети, терминальный режим и разбор ошибок активации.
Что подготовить на сервере до активации лицензий
Активация программной лицензии привязывает её к «железу» и ОС конкретного компьютера. Поэтому сначала доведите сервер до рабочего состояния, а уже потом тратьте пин-коды.
Что проверить заранее:
- 🖥️ Сервер 1С установлен и запущен как служба. Кластер виден в консоли администрирования, клиент-серверная база открывается.
- 🔑 Серверная лицензия на месте. Клиентские лицензии считают пользователей, а сам сервер 1С требует отдельной лицензии сервера. Это разные продукты, их пин-коды не взаимозаменяемы.
- 📄 Конверт с пин-кодами и регистрационный номер комплекта . Для многопользовательской лицензии один пин-код активирует весь комплект сразу: 5, 10, 20, 50 мест и так далее.
- 🧾 Данные владельца. Мастер попросит организацию, ИНН, адрес, контакт. Их пишут в файл лицензии, при повторной активации нужны те же сведения.
- 🌐 Выход в интернет с сервера или любой машины, с которой перенесёте файл-запрос.
- 🛠️ Окончательная конфигурация железа. Не активируйте лицензию на сервере, где через неделю поменяете диски, сетевые карты или перенесёте виртуальную машину.
Каждая повторная активация расходует резервный пин-код. В конверте их ограниченное число, а когда они закончатся, восстановление идёт через поставщика или фирму 1С с заявлением. Поэтому сначала стабилизируйте сервер, потом активируйте.
Права служебной учётной записи
Файл лицензии записывает процесс сервера 1С. В Windows служба по умолчанию работает от пользователя USR1CV8, в Linux — от usr1cv8. Этот пользователь должен иметь право записи в папку лицензий.
| ОС | Папка лицензий | Чья должна быть запись |
|---|---|---|
| Windows | C:\ProgramData\1C\licenses | учётная запись службы сервера 1С |
| Linux | /var/1C/licenses | пользователь usr1cv8 |
В Linux права выставляют так:
sudo mkdir -p /var/1C/licenses
sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses
sudo chmod 755 /var/1C/licenses
Если прав нет, мастер дойдёт до конца, а лицензия всё равно не появится или сервер её не прочитает.
Активация программных клиентских лицензий на сервере по пин-коду
Программная лицензия — это файл .lic, привязанный к параметрам компьютера. Для клиентских лицензий на сервере важно одно: активацию запускают так, чтобы файл записал именно сервер 1С, а не компьютер пользователя.
Способ 1. Через подключение к клиент-серверной базе
Самый удобный вариант. Сидеть за консолью сервера не нужно.
- На любом рабочем месте запустите 1С и откройте клиент-серверную базу этого сервера.
- Если свободной лицензии нет, платформа сама покажет окно с ошибкой и предложит получить лицензию . Если мастер не появился, откройте его из окна запуска через команду получения лицензии.
- В мастере выберите получение лицензии для сервера 1С:Предприятия. Вариант «на этом компьютере» запишет файл на рабочее место, и сервер его не увидит.
- Введите регистрационный номер комплекта и пин-код из конверта.
- Выберите способ: автоматически через интернет или через файл.
- Заполните сведения о владельце и подтвердите.
- Дождитесь сообщения об успешном получении лицензии.
После этого в папке лицензий сервера появится новый файл .lic. Перезапуск службы обычно не нужен.
Способ 2. Через файл, если у сервера нет интернета
Закрытый контур — частый случай для серверов 1С. Тогда в мастере выберите получение через файл:
- Мастер сформирует файл-запрос. Сохраните его на флешку или в сетевую папку.
- На компьютере с интернетом передайте запрос в центр лицензирования способом, который указан в мастере.
- Полученный файл-ответ загрузите обратно в тот же мастер.
Не закрывайте мастер и не меняйте сервер между запросом и ответом: ответ подходит только к тому запросу и тому оборудованию, с которых он сделан.
Способ 3. Утилита ring на сервере без графики
На Linux-серверах и Windows Server Core удобнее командная строка. Для этого ставят модуль инструментов лицензирования, после чего доступна утилита ring.
# посмотреть активированные лицензии
ring license list
# справка по параметрам активации
ring license activate --help
Параметры владельца, номер комплекта и пин-код передают ключами команды ring license activate; точный список — в её справке для установленной версии. Запускайте утилиту от пользователя, который может писать в папку лицензий.
Повторная активация после смены оборудования
Если лицензия «слетела» после замены железа, переустановки ОС или миграции виртуальной машины, нужна повторная активация:
- Запустите мастер так же, как в первый раз.
- Введите новый резервный пин-код из конверта.
- Укажите предыдущий пин-код, которым лицензия была активирована раньше.
- Данные владельца введите те же, что и при первой активации.
💡 Сразу после активации сохраните себе таблицу: пин-код, дата, сервер. Без старого пин-кода повторная активация не пройдёт.
Ключ HASP на сервере: драйвер и менеджер лицензий
Аппаратные ключи по-прежнему встречаются в старых комплектах. Для раздачи с сервера годится только сетевой многопользовательский ключ. Однопользовательский локальный ключ обслуживает одно рабочее место.
Шаг 1. Драйвер ключа
Вставьте ключ в USB-порт сервера и установите драйвер. В Windows его можно поставить из дистрибутива платформы: в установщике есть отдельная опция установки драйвера защиты. В Linux нужен пакет поддержки ключей Sentinel, служба aksusbd.
Признак успеха: светодиод на ключе горит ровно, в диспетчере устройств ключ определяется без ошибки.
Шаг 2. Менеджер лицензий HASP License Manager
Драйвер позволяет видеть ключ только локально. Чтобы клиенты в сети забирали с него лицензии, нужен HASP License Manager. Ставьте его службой, а не приложением: служба работает без входа пользователя в систему.
Шаг 3. Настройка клиентов через nethasp.ini
По умолчанию клиент ищет менеджер лицензий широковещательным запросом. В сети с несколькими подсетями или VPN это медленно и ненадёжно. Надёжнее явно прописать адрес сервера в файле nethasp.ini в папке conf каталога установки платформы (например, C:\Program Files\1cv8\conf\nethasp.ini):
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.5
NH_PORT_NUMBER = 475
NH_USE_BROADCAST = Disabled
Замените адрес на IP сервера с ключом. Файл кладут на каждое рабочее место, а если клиентов много — раздают групповой политикой или скриптом входа.
Программная лицензия или ключ: что выбрать
| Критерий | Программная лицензия | Сетевой ключ HASP |
|---|---|---|
| Привязка | к оборудованию сервера | к физическому ключу |
| Смена железа | повторная активация, тратится пин-код | переставили ключ — работает |
| Виртуальные машины | слетает при миграции на другой хост | нужен проброс USB или USB-over-IP |
| Риски | исчерпать резервные пин-коды | поломка или потеря ключа |
| Что настраивать на клиенте | ничего | nethasp.ini и сетевой доступ к порту 475 |
Сетевой доступ и брандмауэр для лицензирования 1С
Если лицензия активирована, а пользователи её не получают, почти всегда виновата сеть.
Порты сервера 1С
Клиент сначала обращается к агенту сервера, затем к менеджеру кластера и рабочим процессам. Лицензию от сервера клиент получает в рамках этого же соединения, отдельный порт для программных лицензий не нужен.
| Порт | Что слушает | Протокол |
|---|---|---|
| 1540 | агент сервера 1С | TCP |
| 1541 | менеджер кластера | TCP |
| 1560–1591 | рабочие процессы (диапазон по умолчанию) | TCP |
| 475 | HASP License Manager | TCP и UDP |
Диапазон рабочих процессов задаётся в свойствах рабочего сервера в консоли кластера. Если вы его меняли, открывайте в брандмауэре именно ваш диапазон.
Правила Windows Firewall одной командой
Откройте PowerShell от администратора на сервере:
New-NetFirewallRule -DisplayName "1C Server" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow
New-NetFirewallRule -DisplayName "HASP LM TCP" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "HASP LM UDP" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
Правила для HASP нужны, только если используете сетевой ключ. Проверка доступности порта с клиента:
Test-NetConnection 192.168.10.5 -Port 1540
💡 Сервер 1С должен быть доступен клиентам по имени, а не только по IP. Если имя компьютера сервера не разрешается на клиенте, добавьте запись в DNS или в hosts на рабочих местах.
Как убедиться, что сервер выдаёт клиентские лицензии
Активация прошла — проверьте, что лицензии реально расходуются с сервера.
- Файл на месте. В папке лицензий сервера есть свежий файл
.lic. Он текстовый, внутри видны регистрационный номер и сведения о владельце. - Список лицензий. Команда
ring license listна сервере покажет активированные лицензии. - Сеансы с лицензиями. Через утилиту администрирования кластера посмотрите, какой сеанс какую лицензию держит:
rac cluster list
rac session list --cluster=<id-кластера> --licenses
В выводе видно, откуда взята лицензия: с сервера или с рабочего места пользователя.
Ускорить запуск и не искать ключ на рабочих местах
Если локальных ключей на клиентах нет, запретите их поиск параметром запуска /UseHwLicenses-. Его добавляют в поле дополнительных параметров запуска в свойствах базы в списке информационных баз. Клиент не тратит время на опрос ключей и быстрее переходит к получению лицензии от сервера.
Клиентские лицензии 1С на терминальном сервере
В терминальной среде (RDP, RemoteApp) лицензия расходуется на сеанс пользователя. Несколько окон 1С в одном сеансе ОС занимают одну лицензию, а два разных пользователя на одном терминальном сервере — две.
Что учесть:
- 👥 Нужен многопользовательский комплект. Однопользовательская программная лицензия или локальный ключ не обслужат десять RDP-сеансов.
- 🗂️ Где активировать. Если терминальный сервер и сервер 1С — разные машины, удобнее активировать клиентские лицензии на сервере 1С. Тогда терминальные пользователи получат их через соединение с кластером, а терминальную машину можно менять без потери пин-кодов.
- 🔁 Ферма терминальных серверов. Лицензии, активированные на одном терминальном узле, не переходят на другой. Для фермы раздача с сервера 1С заметно проще.
- 🧹 Зависшие сеансы. Пользователь закрыл RDP крестиком, а 1С осталась работать. Сеанс держит лицензию, пока его не завершат. Настройте в политиках RDP завершение отключённых сеансов через разумное время.
Принудительное завершение сеансов 1С из консоли кластера или выход пользователей из RDP обрывают их работу без сохранения. Делайте это вне рабочего времени или после предупреждения пользователей.
Ошибки активации и выдачи клиентских лицензий
Ниже — симптомы, которые встречаются чаще всего, и что проверить по каждому.
Чего делать не стоит
- ❌ Копировать файл .lic с другого компьютера. Он привязан к оборудованию и на новом месте не заработает.
- ❌ Активировать одну и ту же лицензию «про запас» на нескольких серверах. Каждая попытка сжигает пин-код.
- ❌ Удалять папку лицензий при «чистке» сервера. Восстановить файл
без повторной активации нельзя. Держите копию
licensesвместе с резервными копиями баз. - ❌ Искать «активаторы» и эмуляторы ключей. Это нарушение лицензионного договора и прямой путь к заражению сервера. Если мест не хватает, докупить комплект на 5 пользователей проще, чем разбираться с последствиями.