Довольно часто в практике системного администрирования и разработки на платформе 1С возникает ситуация, когда на предприятии успешно функционирует 1С:Сервер, а клиентские лицензии активированы непосредственно на нем. Однако при необходимости запустить локальную файловую базу (например, для работы специализированных инструментов вроде 1С:Автоматизированная проверка конфигураций — АПК или статический анализатор кода) пользователь сталкивается с ошибкой лицензирования. Система сообщает, что лицензия не найдена, хотя в консоли сервера их может быть свободны десятки.
В этой статье мы подробно разберем, почему так происходит, и рассмотрим технические способы решения этой задачи без необходимости приобретения дополнительных лицензий.
Для начала проанализируем механизм работы платформы. Когда мы запускаем базу в режиме «клиент-сервер», лицензию может выдавать либо сам клиент (локальный ключ или файл лицензии), либо сервер 1С. Если лицензии установлены на сервере и в настройках базы включена опция «Разрешить выдачу лицензий сервером», то процесс nwrksp выделяет лицензию из своего пула под конкретный сеанс (учитывайте ограничение количества сеансов).
Однако файловая база работает иначе. Она запускается как автономный процесс на локальном компьютере (или терминальном сервере) и ищет лицензию в следующем порядке:
.lic).HASP License Manager.Важно понимать: файловая база технически не может обратиться к серверу 1С за лицензией, так как она с этим сервером никак не связана. Она «не знает» о существовании серверного пула лицензий. Поэтому нам нужно сделать так, чтобы лицензия стала доступна процессу файловой базы локально.
Рассмотрим ситуацию, когда локальная база нужна только для работы конфигурации «Автоматизированная проверка конфигураций». Бытует мнение, что АПК работает исключительно с файловыми базами, однако это не совсем так. В современных версиях 1С:АПК предусмотрена возможность работы с серверными информационными базами.
Выясним, как настроить систему, чтобы избежать использования файлового варианта:
При такой схеме вопрос с «локальной» лицензией отпадает сам собой, так как все сеансы будут клиент-серверными, и сервер 1С сможет штатно выдать им лицензии из имеющегося пакета.
Если же файловая база необходима, а у вас используются программные лицензии (пин-коды), проанализируем способ их активации. Когда пакет лицензий (например, на 50 пользователей) активируется на сервере 1С как одна многопользовательская лицензия, она становится «видимой» только для сервера.
Чтобы лицензии стали доступны файловым базам на терминальном сервере, мы можем использовать другой подход:
.lic сохранились в общедоступном профиле, обычно это: C:\ProgramData\1C\1cv8\conf (поможет расшифровщик файлов программных лицензий).В этом случае любая файловая база, запущенная на данном сервере, сможет самостоятельно подхватить файл лицензии из общей папки. Однако помните, что при таком способе лицензия расходуется на каждый запуск процесса 1С, а не на терминальную сессию в целом.
Если на вашем предприятии используются аппаратные USB-ключи, и вы пытаетесь «пробросить» их с локального ноутбука на терминальный сервер, это часто приводит к нестабильной работе. Посмотрим на алгоритм правильной настройки сетевого ключа.
Вместо проброса порта через RDP, лучше установить ключ в сервер, находящийся в той же локальной сети, и запустить на нем службу HASP License Manager. После этого на терминальном сервере необходимо принудительно указать, где искать ключ.
Разберем настройку файла nethasp.ini. Нам нужно найти этот файл в каталоге установленной платформы (обычно в папке conf) и отредактировать секцию [NH_TCPIP]:
[NH_COMMON]
NH_TCPIP = ENAB
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP-адрес машины с USB-ключом
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = DISAB
Такая жесткая привязка IP-адреса позволяет файловой базе гарантированно найти сетевой ключ, даже если широковещательный опрос сети (broadcast) заблокирован или не работает в терминальной среде.
Иногда проблема кроется в банальных настройках списка баз. Проанализируем файл 1CEStart.cfg или индивидуальные настройки информационной базы. Убедимся, что в параметрах запуска не стоит запрет на использование аппаратных ключей.
Параметр UseHasp должен иметь значение 1. Это можно проверить в диалоге редактирования информационной базы на последней вкладке «Дополнительно». В поле «Дополнительные параметры запуска» не должно быть флага /NoHasp, который иногда ошибочно добавляют для ускорения запуска клиент-серверных баз.
Согласно лицензионной политике фирмы 1С, клиентские лицензии дают право доступа к любой легально приобретенной конфигурации. Если у вас уже куплена «1С:Бухгалтерия» или «1С:ERP», то использование этих же клиентских лицензий для работы с «1С:АПК» является абсолютно легальным.
Как указано в официальной документации к АПК, приобретение специальных клиентских лицензий именно для этого продукта не требуется, если у пользователя есть действующая подписка ИТС и основная поставка «1С:Предприятия 8». Проблема, с которой сталкиваются администраторы, носит сугубо технический характер (способ «доставки» лицензии до процесса 1С), а не лицензионный.
Подведем итог нашему исследованию. Для того чтобы успешно запустить файловую базу в окружении 1С:Сервера, мы можем:
C:\ProgramData\1C\1cv8\conf на терминальном сервере, активировав их как однопользовательские.HASP License Manager и настроить nethasp.ini на прямой IP-адрес сервера ключей.Выбор конкретного метода зависит от типа ваших лицензий и топологии сети. Мы рекомендуем начать с настройки АПК на работу с серверными базами, так как это наиболее технологичный путь, не требующий манипуляций с файлами лицензий.