Почему на терминальном сервере 1С не хватает программных лицензий и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Часто системные администраторы сталкиваются с парадоксальной ситуацией: на сервере установлены три однопользовательские программные лицензии, в базе одновременно должны работать три человека, но система пускает только двоих. Проблема обостряется после обновления платформы 1С:Предприятие. Проанализируем, почему это происходит, и разберем по шагам методы диагностики и исправления данной ошибки.

Анализ ситуации: почему "пропадает" лицензия?

Когда мы работаем в режиме терминального сервера (RDP), 1С:Предприятие использует специфический механизм подсчета программных лицензий. В отличие от локальной установки, на сервере лицензии должны собираться в общий пул. Рассмотрим основные причины, по которым одна из лицензий может стать недоступной:

  1. Зависшие RDP-сессии. Пользователь может закрыть окно терминала крестиком, не выходя из 1С. В этом случае сессия остается активной на сервере, и лицензия продолжает числиться за "призраком".
  2. Дублирование подключений. Один и тот же пользователь может запустить две разные базы или два окна одной базы. В некоторых конфигурациях это приводит к захвату двух лицензий вместо одной.
  3. Особенности кэширования лицензий. Платформа 1С хранит временную информацию о выданных лицензиях. При обновлении платформы (например, переход на 8.3.18 и выше) механизмы обращения к файлам .lic могут конфликтовать со старым кэшем.
  4. Права доступа к каталогу лицензий. Файлы программных лицензий обычно располагаются в C:\ProgramData\1C\licenses. Если у пользователя недостаточно прав на чтение или модификацию этой папки, лицензия может не подхватиться.

Метод "перезагрузки" пула лицензий

Рассмотрим практическое решение, которое помогло автору темы. Этот метод позволяет принудительно заставить платформу пересчитать доступные файлы лицензий. Проанализируем последовательность действий:

  1. Попросим всех пользователей полностью выйти из программ 1С и завершить терминальные сеансы.
  2. Зайдем в папку C:\ProgramData\1C\licenses.
  3. Временно переместим все файлы с расширением .lic в другую директорию.
  4. Поочередно возвращаем по одному файлу лицензии назад и просим пользователей заходить в базу по одному.

Этот нехитрый способ часто помогает "протолкнуть" застрявшую проверку, так как 1С при каждом входе заново инициализирует файл и связывает его с текущим сеансом.

Проверка параметров сессий в консоли администрирования

Выясним причину через мониторинг активных соединений. Даже если база файловая, мы можем увидеть ошибки в журнале регистрации или через диспетчер задач сервера. Если мы видим ошибку Превышено максимальное количество пользователей, разрешенное файлом программной лицензии, необходимо проверить следующее:

Проанализируем настройки терминального сервера. Рекомендуется ограничить пользователей одной сессией. В групповых политиках или настройках службы RDP установим параметр: "Ограничить пользователей служб удаленных рабочих столов одним сеансом". Это предотвратит ситуацию, когда один человек случайно занимает несколько лицензий.

Настройка файла nethasp.ini и поиск ключей

Несмотря на то что используются программные лицензии, платформа по умолчанию пытается искать аппаратные ключи защиты (HASP). Это может замедлять запуск и приводить к сбоям в логике выбора программной лицензии. Рассмотрим, как оптимизировать этот процесс.

Найдем файл nethasp.ini (обычно он находится в C:\Program Files\1cv8\conf\) и убедимся, что поиск сетевых ключей не мешает работе программных. Для программных лицензий критически важно, чтобы в файле conf.cfg не было жестких ограничений, препятствующих поиску в ProgramData.

Влияние обновлений платформы (8.3.18+)

В новых версиях платформы 1С изменился алгоритм опроса лицензий. Если раньше поиск шел последовательно, то теперь система может пытаться захватить лицензии параллельно. На терминальных серверах это иногда приводит к тому, что первая сессия «захватывает» файл лицензии монопольно, если у пользователя недостаточно прав на чтение/запись в папку C:\ProgramData\1C\licenses.

Важный момент: Файл лицензии блокируется на уровне файловой системы Windows. Убедитесь, что для группы "Пользователи" на папку с лицензиями выданы права "Чтение и выполнение", "Список содержимого папки" и "Чтение". В некоторых случаях требуется право "Модификация", так как 1С может обновлять временные метки внутри файлов.

Очистка кэша лицензирования

Разберем, где еще могут скрываться "хвосты" старых лицензий. Помимо основной папки в ProgramData, информация может дублироваться в профилях пользователей. Проанализируем следующие пути:

Попробуем очистить содержимое этих папок (кроме самих файлов лицензий, если они там лежат). Это заставит платформу при следующем запуске заново определить параметры окружения.

Проблема виртуализации

Если сервер 1С развернут на виртуальной машине, проанализируем настройки гипервизора. Программная лицензия жестко привязана к характеристикам железа, включая MAC-адрес сетевой карты. Если в настройках виртуальной машины MAC-адрес установлен как Dynamic, то после перезагрузки сервера он может измениться. В этом случае лицензия станет невалидной.

Чтобы избежать этого, проверим и установим Static MAC address в настройках сетевого адаптера виртуальной машины. Если лицензия уже "слетела", потребуется повторная активация с использованием резервного пин-кода.

Рекомендация по объединению лицензий

Если у вас есть несколько однопользовательских лицензий (например, 3 штуки по 1 рабочему месту), при следующей активации (например, при смене сервера или крупном обновлении) рекомендуется рассмотреть возможность их объединения. При активации можно ввести пин-код от одной лицензии, а затем добавить другие, чтобы получить один файл на 3 рабочих места. Это значительно упрощает администрирование и снижает вероятность конфликтов при распределении лицензий в RDP-сессиях.

Подводя итог, можно сказать, что проблема нехватки лицензий чаще всего кроется не в самой платформе, а в комбинации настроек прав доступа, зависших сессий и кэша старых версий 1С. Последовательная проверка прав на папку C:\ProgramData\1C\licenses и контроль RDP-сессий позволяют решить проблему в 90% случаев.

← На главную