Как заставить рабочий сервер 1С выдавать лицензии клиентам и проверить результат
Содержание
Пользователи подключаются к базе на сервере, а 1С отвечает «Не обнаружено свободной лицензии». Ключ при этом вставлен и горит. Чаще всего дело в том, что рабочий сервер не выдаёт лицензии клиентам, а клиентские компьютеры собственных ключей не имеют.
Ответ коротко: флажок Разрешить выдачу лицензий сервером 1С:Предприятия в свойствах рабочего сервера включает схему, при которой лицензии берутся с ключа на стороне сервера, а не с рабочего места пользователя. Ниже — где этот флажок находится, что должно быть готово до его включения и как проверить, что лицензии действительно пошли.
Откуда клиент берёт лицензию: две схемы в клиент-серверном варианте
В клиент-серверной базе приложение пользователя (толстый, тонкий клиент или веб-клиент) не работает
с данными напрямую. Все запросы обрабатывают рабочие процессы rphost на сервере. Лицензию 1С при этом должна получить где-то в одном из двух мест.
| Схема | Где лежит ключ | Кто выдаёт лицензию | Когда уместна |
|---|---|---|---|
| Выдача сервером | на сервере или в доступной ему сети | рабочий сервер кластера | пользователей много, работают тонкие и веб-клиенты, ключей на рабочих местах нет |
| Лицензия на клиенте | на компьютере пользователя | клиентское приложение само | мало пользователей, у каждого свой ключ или программная лицензия |
Для веб-клиента вторая схема вообще невозможна: браузер не умеет читать ключ защиты. Поэтому для веб-доступа выдача лицензий сервером — единственный рабочий вариант.
💡 Мобильные пользователи и сотрудники на удалённом доступе — типичные кандидаты на первую схему. Ключ один, стоит в серверной, а лицензии «раздаются» по мере подключений.
Что именно меняет флажок «Разрешить выдачу лицензий сервером»
Флажок управляет одним: имеет ли право рабочий сервер искать и использовать лицензии на своей стороне для клиентских подключений.
Когда он стоит:
- 🔑 рабочий сервер ищет ключ или программную лицензию на своей машине и получает из них лицензию для подключившегося сеанса;
- 👥 число одновременных пользователей ограничивается количеством лицензий, которое доступно серверу;
- 🌐 веб-клиент и тонкий клиент могут работать, не имея ничего на рабочем месте.
Когда он снят:
- сервер лицензий клиентам не выдаёт;
- клиент должен принести лицензию с собой: аппаратный ключ на своём компьютере или программную лицензию, активированную на нём;
- если ничего нет, получаем ту же ошибку «Не обнаружено свободной лицензии», хотя на сервере ключей хватает.
Флажок не создаёт лицензий. Он только разрешает серверу ими распоряжаться. Если ключа на стороне сервера нет или он не читается, включение флажка ничего не даст.
Подготовка: ключ, драйвер и права службы
Прежде чем ставить галочку, проверьте три вещи. Это сэкономит час поисков.
1. Ключ или программная лицензия доступны именно серверу
Служба агента сервера запускается на той машине, где стоит кластер. Именно с неё должен читаться ключ.
- Аппаратный ключ вставлен в USB-порт сервера или проброшен на виртуальную машину средствами гипервизора либо USB-over-network.
- Для программной лицензии активация выполнена на самом сервере, а не на чьём-то рабочем месте.
- Ключ видит драйвер защиты, установленный вместе с платформой или отдельно.
⚠️ Ключ, подключённый к сеансу удалённого рабочего стола, сервер не увидит: служба работает вне вашего сеанса. Проверять нужно из-под учётной записи службы, а не по тому, что ключ «виден» администратору.
2. Учётная запись службы
Служба Агент сервера 1С:Предприятия 8.3 в Windows обычно работает от специально созданной учётной записи (часто её называют USR1CV8). Под ней рабочий процесс обращается к ключу и к файлам лицензий. Если у записи нет прав на каталог с программными лицензиями, сервер их просто не найдёт.
3. Версия платформы согласована
Кластер, сервер лицензий и клиенты должны быть одной ветки платформы. Сравнивайте номера однозначно: номер клиента не должен быть ниже номера сервера из той же ветки 8.3.2x. Иначе подключение может прерваться ещё до обращения к лицензии.
Пошагово: включаем выдачу лицензий в консоли кластера
Нужна консоль администрирования серверов 1С: она ставится вместе с платформой как оснастка, либо подключается отдельным модулем. Если консоль не запускается, начните с перерегистрации библиотеки radmin.dll (от имени администратора, командой regsvr32) и повторите запуск.
- Откройте консоль и подключите нужный центральный сервер. Если его нет в списке, добавьте через
Создать → Центральный сервер 1С:Предприятия 8.3. - Раскройте узел
Кластерыи войдите в нужный кластер. Если к кластеру задан пароль администратора, консоль его спросит. - Перейдите в
Рабочие серверы. - Откройте свойства рабочего сервера двойным щелчком.
- Найдите флажок
Разрешить выдачу лицензий сервером 1С:Предприятияи включите его. - Подтвердите изменения кнопкой
ОК.
Если в кластере несколько рабочих серверов, выставьте флажок на каждом, который должен выдавать лицензии. Ключи в этом случае нужны на тех машинах, где флажок включён.
⚠️ Что-либо перезапускать после смены флажка, как правило, не нужно. Но если вы решите перезапустить службу или завершить рабочие процессы, чтобы изменение подхватилось быстрее, учтите: все сеансы пользователей оборвутся. Делайте это вне рабочих часов или после предупреждения людей, чтобы никто не потерял несохранённые документы.
Как убедиться, что лицензии пошли
Откройте тонкий клиент от имени обычного пользователя без ключа на рабочем месте. Если база открылась, схема работает. Дальше посмотрите, кто что занимает.
- В консоли кластера в узле кластера есть раздел
Лицензии: он показывает выданные лицензии с привязкой к сеансам. - То же из командной строки:
rac session list --licensesпокажет сеансы вместе с использованными ими лицензиями. Остальные параметрыracсмотрите в справкеrac help.
В колонке происхождения лицензии видно, что она выдана сервером, а не пришла с клиента. Если у всех пользователей лицензии «клиентские», а вы ждали серверных, значит, флажок включён не на том рабочем сервере или сеансы идут через другой кластер.
Linux-сервер
Логика та же, но проверять нужно другое. Служба драйвера ключа должна быть запущена до агента сервера 1С, а пользователь, от имени которого работает агент, обязан иметь доступ к устройству ключа и к каталогу программных лицензий. Если после перезагрузки лицензии пропали, первым делом посмотрите порядок запуска служб: агент мог подняться раньше драйвера и не найти ключ.
Проверку выдачи это не меняет: подключите тонкий клиент на машине без ключа и посмотрите список лицензий в консоли или через rac.
Если лицензия не выдаётся: диагностика по шагам
Идите от простого к сложному. Каждая проверка отсекает целую группу причин.
Проверка 1. Видит ли сервер ключ
Откройте утилиту диагностики драйвера защиты, которая поставляется с драйвером, и убедитесь, что она показывает ключ на сервере. Запускайте её под учётной записью службы, а не под своей. Если утилита ключа не видит, платформа тем более его не найдёт.
Проверка 2. Хватает ли лицензий
Каждый подключённый пользователь занимает лицензию. Сравните две цифры: сколько лицензий на ключе и сколько сеансов открыто сейчас. Любая «зависшая» сессия отключившегося пользователя держит лицензию, пока кластер не завершит её по тайм-ауту.
В консоли кластера в разделе Сеансы найдите давно простаивающие подключения. Завершение сеанса освободит лицензию, но пользователь потеряет несохранённую работу, поэтому сначала убедитесь, что за этим сеансом никто не работает.
Проверка 3. Какой сервер обслуживает сеанс
Если рабочих серверов несколько, флажок мог быть включён только на одном. Клиент попал на другой и получил отказ. Проверьте свойства каждого рабочего сервера.
Проверка 4. Тип клиента и тип лицензии
Некоторые лицензии рассчитаны на определённый тип клиента. Если в организации купили пакет под тонкий клиент и веб-клиент, а подключается толстый клиент с конфигуратором, лицензия может не подойти. Состав лицензии смотрите в документации к приобретённому комплекту.
Файловая и клиент-серверная база: чем отличается лицензирование
В файловой базе нет сервера, а значит, и выдавать лицензии некому. Каждое рабочее место работает с файлом базы самостоятельно, и лицензию читает само клиентское приложение: либо с ключа на этом компьютере, либо из программной лицензии, активированной на нём.
| Вопрос | Файловая база | Клиент-серверная |
|---|---|---|
| Кто проверяет лицензию | клиентское приложение | клиент или рабочий сервер, зависит от флажка |
| Где должен быть ключ | на каждом рабочем месте | на сервере (при выдаче сервером) или на клиентах |
| Веб-клиент | возможен только через веб-сервер, лицензия всё равно нужна | требует выдачи сервером |
| Флажок выдачи лицензий | не существует | есть в свойствах рабочего сервера |
Практический вывод. Если вы перенесли базу из файлового режима на сервер, а клиентские ключи остались на рабочих местах, всё продолжит работать, пока флажок снят. Как только пользователей станет больше, чем ключей на рабочих местах, потребуется включить выдачу сервером и обеспечить ключ на серверной стороне.
Как не упереться в лимит: управление пулом лицензий
Когда лицензии выдаёт сервер, их количество становится общим ресурсом. Несколько правил помогают держать его под контролем.
- 📊 Раз в неделю смотрите максимальное число одновременных сеансов. Для этого сравните журнал сеансов и количество лицензий на ключе.
- ⏱ Настройте тайм-ауты неактивных сеансов, чтобы забытые окна не занимали лицензии на ночь.
- 🧹 Сервисные задания (обмены, регламентные операции) запускаются от имени пользователей. Не раздавайте им лишних подключений, если можно использовать один служебный пользователь.
- ➕ Если пик регулярно упирается в предел, докупайте пакет лицензий заранее, а не после жалоб в день закрытия периода.
Для разных ролей число лицензий можно считать так: берёте максимум одновременно работающих людей в самый загруженный день и добавляете запас на служебные подключения. Например, при 22 одновременных пользователях и 3 служебных нужно 25 лицензий. Пакет на 20 в этой ситуации заведомо не хватит в пик.
Частые вопросы
Нужно ли перезапускать службу после включения флажка?
Можно ли включить выдачу и на сервере, и оставить ключи у клиентов?
Почему веб-клиент требует выдачи лицензий сервером?
Где посмотреть, сколько лицензий занято прямо сейчас?
Лицензии или командой rac session list --licenses.