Работа в терминальном режиме (RDP) на сервере под управлением операционной системы Windows Server — один из самых популярных сценариев использования файловых баз данных «1С:Предприятие 8». Однако администраторы часто сталкиваются с неприятной ситуацией: приобретена и активирована программная лицензия на 5 пользователей, реально в базе работают всего двое, а третий подключиться уже не может. При попытке входа система выдает сообщение об отсутствии ключа защиты.
В этой статье мы подробно разберем, как локализовать и устранить эту проблему, проанализируем внутреннее устройство программного лицензирования 1С и выясним, где именно искать «потерянные» лицензии.
Когда платформа 1С не может получить лицензию, она выводит подробный лог поиска ключей. Давайте внимательно проанализируем фрагмент системного сообщения, который часто возникает в подобных ситуациях:
Ошибка программного лицензирования. Превышено максимальное количество пользователей, разрешенное файлом программной лицензии: file://C:/ProgramData/1C/licenses/201909.....lic
локальный ключ недоступен: Status=-10, ORGL8 Локальный, не установлен
Этот лог несет в себе важнейшую техническую информацию, которую мы должны правильно прочитать:
C:/ProgramData/1C/licenses/201909.....lic. Это значит, что сам файл физически существует на сервере и доступен для чтения текущему пользователю..lic-файла, исчерпан.Почему же лимит исчерпан, если в базе работают всего два человека, а лицензия покупалась на пять мест? Рассмотрим основные причины.
Комплект программных лицензий 1С на 5 пользователей поставляется с двумя принципиально разными наборами пин-кодов:
Если администратор при первой установке на сервер по ошибке ввел один из пяти однопользовательских пин-кодов, система создала файл лицензии, который жестко разрешает запуск только одного сеанса. Если затем был активирован второй однопользовательский пин-код, на сервере появилось два независимых файла лицензий, каждый из которых пускает ровно по одному пользователю.
Когда пытается зайти третий пользователь, система видит, что оба однопользовательских файла уже заняты текущими сессиями, и выдает ошибку превышения лимита. Таким образом, три пользователя одновременно работать уже не могут, хотя в коробке куплено 5 лицензий.
Выясним тип лицензии без повторной активации. Для этого мы можем открыть файл лицензии .lic с помощью обычного «Блокнота».
C:\ProgramData\1C\licenses на сервере. Обратите внимание, что папка ProgramData является скрытой в Windows, поэтому в проводнике нужно включить отображение скрытых элементов или ввести путь напрямую в адресную строку..lic, имя которого фигурирует в ошибке.Однопользовательская — значит, произошла ошибка при активации. Если указано Многопользовательская на 5 пользователей — файл активирован верно, и причину нужно искать дальше.Если лицензия действительно оказалась однопользовательской, нам потребуется запустить процедуру восстановления лицензии в 1С и активировать её заново, используя пин-код для многопользовательской лицензии.
В терминальной среде пользователи очень часто закрывают программу некорректно. Вместо того чтобы нажать «Файл — Выход» или закрыть крестик самой программы 1С, они просто закрывают окно подключения к удаленному рабочему столу (RDP), нажимая на крестик панели подключения вверху экрана.
При таком действии сеанс Windows на сервере не завершается, а переходит в состояние «Отключен» (Disconnected). Все запущенные в этом сеансе программы, включая клиентские процессы 1С (1cv8.exe или 1cv8c.exe), продолжают выполняться в памяти сервера в фоновом режиме.
Каждый такой работающий процесс продолжает прочно удерживать за собой программную лицензию 1С. Для диагностики выполним следующие действия:
1cv8.exe (или 1cv8c.exe для тонкого клиента), значит, именно они неявно расходуют свободные лицензии. Мы можем принудительно завершить эти процессы или полностью выйти из учетных записей отключенных пользователей.Чтобы избежать подобных проблем в будущем, рекомендуется настроить групповые политики Windows Server, которые будут автоматически завершать отключенные RDP-сессии через определенное время простоя (например, через 15-30 минут после отключения пользователя).
Поскольку наша база данных является файловой, в архитектуре системы отсутствует сервер приложений 1С:Предприятия, который мог бы централизованно управлять раздачей лицензий. В файловом варианте клиентское приложение 1С, запускаемое в сеансе конкретного пользователя RDP, должно самостоятельно считать файл лицензии с жесткого диска сервера.
Если у пользователя Windows, под которым происходит подключение к RDP, недостаточно прав для чтения файлов в каталоге с лицензиями, платформа не сможет применить лицензию и выдаст ошибку отсутствия ключа защиты.
Проанализируем и настроим права доступа к каталогам хранения лицензий. По умолчанию программные лицензии могут располагаться в следующих папках на сервере:
C:\ProgramData\1C\licenses (наиболее частый вариант при установке «Для всех пользователей»)C:\Users\%Имя_Пользователя%\AppData\Local\1C\1Cv8\Conf (при установке «Только для текущего пользователя»)C:\Program Files\1cv8\conf (или C:\Program Files (x86)\1cv8\conf для 32-битных систем)Для исправления прав выполним следующие шаги:
C:\ProgramData\1C\licenses, нажмите на нее правой кнопкой мыши и выберем «Свойства».Аналогичную проверку прав доступа рекомендуется провести для каталогов установки самой платформы 1С:Предприятие (C:\Program Files\1cv8).
В файловой базе данных регламентные и фоновые задания выполняются непосредственно в сеансах активных пользователей. Однако существуют сценарии, при которых фоновые задания могут забирать отдельные лицензии:
Чтобы исключить этот фактор, откроем программу 1С под администратором и перейдем в раздел «Администрирование» — «Обслуживание» — «Активные пользователи». Проанализируем список подключений. Если в списке помимо реальных пользователей присутствуют системные сеансы или внешние подключения, они также расходуют ваши лицензии.
Если вы используете современные версии платформы (начиная с версии 8.3.18 и новее, а также ветку 8.5), фирма 1С значительно упростила жизнь администраторам. В платформу был встроен специализированный инструмент — «1С:Предприятие – менеджер лицензий».
С помощью интерактивной обработки «Управление лицензиями» администратор может в реальном времени получить детальный отчет:
Если у вас установлена старая версия платформы (например, 8.3.16), мы настоятельно рекомендуем запланировать обновление платформы до актуального релиза. Это не только решит проблемы безопасности и стабильности работы, но и даст в руки администратору мощные встроенные средства диагностики лицензирования, избавляя от необходимости вручную анализировать процессы в диспетчере задач Windows.