При работе в терминальном режиме системные администраторы часто сталкиваются с ситуацией, когда программные однопользовательские лицензии «1С:Предприятие 8» расходуются неэкономно. Вместо того чтобы занять одну лицензию на весь сеанс пользователя, система требует новую лицензию на каждую запущенную информационную базу. Разберем подробно, почему так происходит, и какие шаги необходимо предпринять, чтобы оптимизировать использование лицензионных ресурсов.
Проанализируем базовый механизм защиты 1С. В системе программного лицензирования существует два основных типа клиентских лицензий: однопользовательские и многопользовательские. Когда мы устанавливаем несколько однопользовательских лицензий на терминальный сервер, платформа 1С видит их как набор независимых файлов (с расширением .lic).
Если лицензия активирована как «однопользовательская» на данный компьютер, то при запуске первого сеанса 1С в терминальной сессии файл лицензии блокируется этим процессом. При попытке запустить вторую базу в той же самой терминальной сессии, механизм защиты клиентского приложения часто не может повторно использовать тот же файл лицензии, если он жестко привязан к конкретному процессу или если конфигурация не позволяет объединить эти лицензии в общий пул. В результате система ищет следующий свободный файл .lic. Когда файлы заканчиваются, пользователь получает ошибку лицензирования, хотя фактически на сервере работает всего один человек.
Как было отмечено в обсуждении, это самый надежный «железный» способ. Рассмотрим, почему он работает иначе. Аппаратный USB-ключ (например, HASP HL) имеет другую логику подсчета. При установке клиентского ключа на терминальный сервер, драйвер и менеджер лицензий позволяют одной терминальной сессии захватывать одну лицензию из ключа, независимо от того, сколько баз 1С открыто внутри этой сессии.
Преимущества этого подхода:
Если у вас уже приобретены программные лицензии, переходить на аппаратные может быть накладно. В этом случае наиболее конструктивным решением будет установка Сервера 1С:Предприятия. Рассмотрим по шагам, как это меняет ситуацию.
Выясним причину изменений: когда лицензии раздает сервер, он берет на себя управление пулом лицензий. Однако здесь есть важный нюанс. Чтобы сервер считал лицензии «по пользователям», а не «по сеансам», необходимо правильно настроить параметры информационной базы.
Проанализируем настройки в консоли администрирования серверов 1С:
1cv8 dev console.Если этот параметр установлен в значение «Да», то сервер сам выдает лицензию из доступного ему пула. Важно помнить: если лицензии раздает сервер 1С, то по умолчанию на каждый запущенный экземпляр 1С (каждое окно) будет тратиться отдельная лицензия. Чтобы этого избежать в терминальной среде, программные лицензии должны быть установлены на терминальный сервер как на компьютер, а не через сервер 1С.
Чтобы платформа могла эффективно использовать несколько однопользовательских лицензий, они должны быть доступны всем пользователям. Проверим пути размещения файлов.
Рассмотрим стандартные пути, где 1С ищет лицензии:
C:\ProgramData\1C\licenses (рекомендуется для терминального сервера).C:\Users\All Users\1C\licenses.conf в каталоге установки платформы.Если каждый пользователь активировал лицензию «на себя» (в свой профиль), другие пользователи их не увидят. Убедимся, что все файлы .lic собраны в одной общей папке C:\ProgramData\1C\licenses и на эту папку даны права «Чтение» для группы «Пользователи» или «Прошедшие проверку».
Посмотрим на настройки в окне запуска 1С. Часто проблема кроется в том, что программа тратит время на поиск несуществующих ключей или обращается не к тем ресурсам. Нажмем кнопку «Настройка» в списке баз и проанализируем параметры:
nnhasp.ini, если используете аппаратную защиту, чтобы клиент четко знал адрес сервера лицензий.Если у вас имеется три отдельных пин-кода от разных коробок «1С:Бухгалтерия ПРОФ», система воспринимает их как три разные однопользовательские лицензии. Рассмотрим вариант апгрейда. Для терминальных серверов 1С рекомендует использовать многопользовательские лицензии (на 5, 10, 20 рабочих мест).
В отличие от набора однопользовательских, одна многопользовательская лицензия на 5 рабочих мест, установленная на терминальный сервер, официально позволяет запускать произвольное количество баз в рамках одной сессии, расходуя всего одну единицу из своего лимита. Если ваша ситуация позволяет, попробуйте обратиться к партнеру 1С для объединения ваших лицензий в одну многопользовательскую (хотя технически это чаще всего делается через покупку новой лицензии или апгрейд).
Мы проанализировали ситуацию и выяснили, что для корректной работы 1С в терминальном режиме с минимальным расходом лицензий необходимо:
Соблюдение этих правил позволит вам избежать ошибок «Лицензия не обнаружена» при запуске второй и последующих баз в одном терминальном окне.