Откуда сеанс 1С:Предприятия 8.3 берёт клиентскую лицензию
Содержание
Клиент 1С получает лицензию при каждом запуске сеанса: сначала ищет программную лицензию (файл .lic), затем аппаратный ключ HASP — локальный или сетевой через менеджер лицензий. В клиент-серверном варианте лицензию может выдать сервер 1С, если в свойствах информационной базы в консоли кластера включена Выдача лицензий сервером 1С:Предприятия. Нет лицензии ни в одном источнике — база не запускается, учебная версия здесь исключение.
Механизм общий для платформы 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ лицензируются одинаково. Разница только в том, где лежат лицензии и кто их ищет — клиентское приложение, сервер 1С или веб-сервер.
Виды клиентских лицензий и где они хранятся
Клиентская лицензия даёт право одному рабочему месту работать с базой. Она отделена от лицензии на сервер 1С: серверная лицензия разрешает запустить кластер, но рабочих мест не добавляет.
Носители бывают двух типов:
- 📄 Программная лицензия — файл
.lic, который создаётся при активации пин-кода. Он привязан к параметрам конкретного компьютера. - 🔑 Аппаратный ключ HASP — USB-ключ. Однопользовательский (маркировка ORGL8) работает только на компьютере, куда вставлен. Сетевой (маркировка NET с числом мест: NET5, NET10, NET20 и т. д.) раздаёт места по сети через менеджер лицензий.
По числу мест лицензии делятся на однопользовательские и многопользовательские. Многопользовательская программная лицензия на 5, 10, 20, 50 или 100 мест ставится туда, откуда её будут раздавать: на сервер 1С, терминальный или веб-сервер.
Где лежат файлы программных лицензий
| Система | Для всех пользователей | Для текущего пользователя |
|---|---|---|
| Windows | %ProgramData%\1C\licenses | %AppData%\1C\licenses |
| Linux | /var/1C/licenses | каталог в профиле пользователя |
Каталог «для текущего пользователя» видит только та учётная запись, под которой лицензию активировали. Для сервера 1С это важно: служба работает под своей учётной записью (обычно USR1CV8), и лицензия, активированная под администратором «для себя», для службы невидима.
При активации выбирайте вариант установки для всех пользователей компьютера. Так лицензию найдут и обычный клиент, и служба сервера.
Порядок, в котором клиент ищет лицензию
Последовательность поиска определяет, какой источник «съест» лицензию первым. Это объясняет многие странности вроде «ключ есть, а место заняли файлом».
Файловый вариант и клиент-серверный без выдачи сервером
Клиентское приложение (тонкий или толстый клиент) ищет сам, на своём компьютере:
- Программные лицензии в каталогах
licenses— сначала общих, затем пользовательских. - Локальный ключ HASP в USB-порту.
- Сетевой ключ HASP через менеджер лицензий в сети.
Первая подходящая лицензия занимается на весь сеанс и освобождается при его завершении.
Клиент-серверный вариант с выдачей сервером
Если в свойствах базы в консоли кластера стоит Выдача лицензий сервером 1С:Предприятия: Да, клиент сначала просит лицензию у сервера. Рабочий процесс ищет её уже на своей машине: файлы .lic в каталогах сервера и ключи HASP, доступные серверу.
Если сервер лицензию не нашёл, клиент продолжает поиск у себя по обычному порядку. Поэтому при переносе лицензий на сервер старые локальные лицензии на рабочих местах лучше удалить. Иначе вы не узнаете, что серверная раздача не работает .
Как считаются места
| Ситуация | Сколько лицензий занято |
|---|---|
| Несколько окон 1С на одном компьютере | Одна |
| Несколько пользователей на терминальном сервере | По одной на каждый терминальный сеанс |
| Фоновые задания и регламентные задания на сервере | Клиентскую лицензию не занимают |
| Конфигуратор | Тоже занимает клиентскую лицензию |
Пользователь, который держит открытым Конфигуратор и тонкий клиент на одном компьютере, обычно укладывается в одно место. Тот же пользователь на двух разных компьютерах займёт два.
Сетевые ключи HASP и файл nethasp.ini
Сетевой ключ вставляют в один компьютер, где установлен HASP License Manager. Клиенты находят менеджер по сети, по умолчанию широковещательным запросом на UDP-порт 475.
В подсети с несколькими сегментами, VPN или жёсткими правилами сети широковещание не доходит. Тогда адрес менеджера прописывают явно в файле nethasp.ini. Для 8.3 он лежит в каталоге C:\Program Files\1cv8\conf (для 32-разрядной платформы — C:\Program Files (x86)\1cv8\conf).
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
Что делает каждая строка:
- 🌐
NH_SERVER_ADDR— IP-адрес или имя компьютера с менеджером лицензий. Можно перечислить несколько через запятую. - 🔌
NH_PORT_NUMBER— порт, по умолчанию 475. - 📡
NH_TCPIP_METHOD— протокол запроса. Если UDP режется на маршрутизаторе, пробуют TCP. - 🚫
NH_USE_BROADCAST = Disabled— отключает широковещательный поиск, клиент идёт сразу по адресу. Запуск ускоряется на несколько секунд.
Файл правят на каждом клиенте, который берёт ключ сам. Если лицензии раздаёт сервер 1С, nethasp.ini нужен только на сервере.
На компьютере с менеджером лицензий откройте порт 475 (UDP и TCP) во входящих правилах брандмауэра. Это самая частая причина, по которой ключ в сети «не виден».
Чем сервер 1С отличается от клиента в работе с ключами
Сервер 1С берёт ключ HASP так же: локально или через менеджер по nethasp.ini в своём каталоге conf. Удобная схема для небольшого офиса — вставить сетевой ключ прямо в сервер 1С и включить выдачу лицензий сервером
. Тогда менеджер лицензий и рабочие места не настраиваются вовсе.
Лицензии при работе через веб-клиент и терминальный сервер
Пользователь веб-клиента работает в браузере, платформы у него нет. Значит, и лицензию ищет не его компьютер.
- 🖥 Веб-клиент, файловая база через веб-сервер. Лицензию ищет модуль расширения веб-сервера на самом веб-сервере. Там и нужна многопользовательская программная лицензия или ключ.
- 🏢 Веб-клиент, клиент-серверная база . Лицензию получает сервер 1С. Включите выдачу лицензий сервером и держите лицензии на сервере.
- 🧑💻 Терминальный сервер (RDP). Тонкий клиент запущен на терминальном сервере, поэтому лицензии ставятся туда же. Каждый терминальный сеанс занимает своё место.
- 🔐 Ключи на рабочих местах. Локальные USB-ключи и
.licна компьютерах пользователей веб-клиента не используются вообще.
Однопользовательскую программную лицензию на терминальный или веб-сервер ставить бессмысленно: она даст одно место на весь сервер.
Отключить поиск аппаратных ключей
Если все лицензии программные, поиск HASP только замедляет запуск. Параметр командной строки /UseHwLicenses- отключает его для клиента, /UseHwLicenses+ — включает обратно. Его добавляют в дополнительные параметры запуска информационной базы в окне её свойств в списке баз.
Настройка выдачи лицензий сервером 1С
Централизованная раздача удобна, когда рабочих мест больше пяти. Лицензии лежат в одном месте, и не нужно ходить по компьютерам при замене сотрудника.
- Активируйте многопользовательскую программную лицензию на сервере 1С, вариант «для всех пользователей». Либо вставьте в сервер сетевой ключ HASP.
- Откройте консоль администрирования серверов 1С, разверните кластер и
Информационные базы. - В свойствах нужной базы установите
Выдача лицензий сервером 1С:Предприятияв значениеДа. - Повторите для всех баз, с которыми работают пользователи.
- На одном рабочем месте удалите локальные лицензии и запустите базу. Если она открылась — сервер раздаёт лицензии.
В кластере из нескольких рабочих серверов можно закрепить выдачу за конкретным сервером. Для этого в свойствах рабочего сервера, в требованиях назначения функциональности, добавьте требование с объектом Клиентская лицензия. Так лицензии берутся с машины, где они реально установлены.
Изменение требований назначения функциональности перераспределяет нагрузку между рабочими процессами. Делайте это вне рабочего времени: часть сеансов может быть переподключена.
Ошибки получения лицензии и их причины
Текст ошибки почти всегда подсказывает, на каком шаге оборвался поиск. Самые частые сообщения — Не обнаружено свободной лицензии! и Не обнаружен ключ защиты программы или полученная программная лицензия!.
Как проверить программные лицензии на компьютере
В платформе 8.3 есть утилита ring с модулем license. Она показывает установленные лицензии и их параметры:
ring license list
ring license info --name <имя_лицензии>
Утилита ставится отдельно, вместе с инструментами лицензирования. Полный список команд даёт ring license help.
Не копируйте файлы .lic с компьютера на компьютер. На чужой машине привязка к оборудованию не совпадёт, лицензия не заработает. А исходную можно повредить, если перемещать файл без копии.
Аппаратный ключ не определяется
- 🔌 Ключ не горит — проверьте другой USB-порт, удлинители и хабы часто «теряют» ключ.
- 💿 Драйвер защиты не установлен — его ставят из дистрибутива платформы, отдельным компонентом установщика.
- 🖥 Виртуальная машина — USB-ключ нужно пробросить в гостевую систему средствами гипервизора. Без этого ОС его не видит.
Как следить за занятыми лицензиями и освобождать места
Когда мест впритык, кто-то всегда остаётся без лицензии. Задача администратора — видеть, кто их держит, и вовремя освобождать.
Где посмотреть, кто занял лицензии
| Источник лицензий | Чем смотреть |
|---|---|
| Сервер 1С (программные и ключи сервера) | Консоль кластера → Сеансы, колонки с данными о лицензии |
| Сервер 1С из командной строки | rac session list --licenses |
| Сетевой ключ HASP | Aladdin Monitor на компьютере с менеджером лицензий |
| Локальные лицензии клиента | Только на самом рабочем месте |
Команда rac обращается к агенту сервера (порт 1540). Сначала узнайте идентификатор кластера через rac cluster list, затем выведите сеансы с лицензиями. Подробности ключей смотрите в rac help session.
Как освободить место
- 🧹 Зависший сеанс — завершите его в консоли кластера. Это обрывает работу пользователя, несохранённые данные пропадут. Перед этим свяжитесь с ним.
- 🖥 Забытый терминальный сеанс — настройте на терминальном сервере автоматическое завершение отключённых сеансов через несколько часов.
- 🔁 Лишние Конфигураторы — договоритесь, что разработчики закрывают Конфигуратор после работы, он тоже держит место.
Перезапуск службы сервера 1С освобождает все лицензии разом, но обрывает сеансы всех пользователей и фоновые задания. Делайте это только вне рабочего времени и после предупреждения.
Как распределить пул между отделами
Отдельной «квоты на отдел» в платформе нет. Её делают физически: отдельный ключ или отдельный сервер лицензий на группу пользователей. Например, NET5 для склада с адресом в nethasp.ini только у кладовщиков, а программная лицензия на 10 мест на сервере 1С для бухгалтерии.
Частые ошибки при организации лицензирования
- ❌ Активация «для текущего пользователя» на сервере. Служба 1С не видит лицензию. Ставьте «для всех пользователей».
- ❌ Одна многопользовательская лицензия на файловую базу в сети. Клиенты на других компьютерах её не получат. Для общей файловой базы нужен сетевой ключ HASP, терминальный сервер или переход на клиент-серверный вариант.
- ❌ Смешанные источники без контроля. Локальные ключи на части машин плюс серверная раздача — места расходуются непредсказуемо, учёт теряется.
- ❌ Переустановка ОС без резервных пин-кодов. Каждая повторная активация расходует пин-код. Храните конверт с пин-кодами вместе с регистрационной анкетой.