При организации удаленной работы сотрудников через веб-интерфейс или тонкий клиент по протоколу HTTP системные администраторы часто сталкиваются с ситуацией, когда обычные подключения внутри локальной сети работают корректно, а внешние пользователи получают сообщение «Лицензия не найдена». Проблема усложняется тем, что стандартные методы диагностики, такие как проверка файла nethasp.ini или мониторинг менеджера лицензий (HASP LM), на клиентских машинах не дают результата. Рассмотрим подробно, как работает механизм лицензирования в среде веб-публикаций, и разберем по шагам, почему возникают ошибки и как их исправить.
Прежде всего, проанализируем фундаментальную разницу в поведении различных клиентских приложений 1С. Это критически важно для понимания того, где именно искать проблему.
Тонкий клиент (подключение через HTTP/HTTPS) обладает двухуровневой логикой поиска:
nethasp.ini.Веб-клиент (работа через браузер) работает принципиально иначе. Браузер в силу ограничений безопасности не имеет доступа к локальному оборудованию пользователя (USB-ключам) и не умеет читать файлы конфигурации типа nethasp.ini на локальном диске. Для веб-клиента существует только один путь получения лицензии — через сервер. Если сервер не настроен на выдачу лицензий, веб-клиент не запустится, даже если в компьютер пользователя вставлен ключ защиты.
Выясним причину, по которой сервер может «отказывать» веб-клиенту в выдаче лицензии. В клиент-серверном варианте работы за распределение лицензий отвечает процесс rphost на стороне сервера приложений 1С. Однако это происходит не автоматически, а регулируется настройками конкретной информационной базы.
Разберем, как включить эту опцию:
Если этот параметр установлен в значение «Нет», сервер будет игнорировать запросы от веб-клиентов на получение лицензии, ожидая, что клиент сам найдет себе ключ (что для браузера невозможно).
Рассмотрим ситуацию автора темы: у него есть выделенные серверы лицензий (LM1 и LM2), а в настройках баз раздача лицензий сервером запрещена. Когда он пытается зайти через веб-интерфейс, система выдает ошибку. Почему же не помогает nethasp.ini?
Посмотрим на ситуацию со стороны сервера приложений. Когда мы включаем опцию «Разрешить выдачу лицензий сервером», именно процесс rphost на сервере srv-1c начинает искать ключи в сети. Для того чтобы сервер 1С «увидел» менеджеры лицензий LM1 и LM2, файл nethasp.ini должен быть настроен на сервере приложений 1С, а не на веб-сервере или клиентской машине.
Типовой путь для настройки файла на сервере Windows: C:\Program Files\1cv8\conf\nethasp.ini (или в папке конкретной версии платформы). В этом файле необходимо явно указать адреса серверов лицензий:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11 ;; Адреса ваших LM1 и LM2
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
Проанализируем важный нюанс: настройка nethasp.ini на веб-сервере (где установлен IIS или Apache) имеет смысл только в файловом варианте работы базы. В клиент-серверном варианте веб-сервер лишь транслирует запросы к серверу приложений, и сам за лицензиями в сеть не «ходит».
Если вы используете программные лицензии (пин-коды), требования становятся еще строже. Рассмотрим основные правила:
Интересный момент касается использования нескольких вкладок в одном браузере. В отличие от тонкого клиента, который при определенных условиях может использовать одну лицензию на несколько запущенных копий приложения на одном ПК, веб-клиент часто ведет себя иначе. Каждая новая вкладка с открытой базой 1С — это отдельный сеанс на сервере. Если не настроены механизмы разделения лицензий, сервер может «занять» по одной лицензии на каждую открытую вкладку. Это стоит учитывать при планировании общего количества необходимых лицензий.
Подводя итог, составим чек-лист для успешного запуска 1С через веб:
nethasp.ini именно на сервере 1С. Убедимся, что сервер видит ключи в сети.Таким образом, основная ошибка администратора в рассматриваемой ситуации заключалась в запрете раздачи лицензий на стороне сервера при работе через веб-интерфейс. Включение этой опции и правильная настройка поиска ключей сервером решают проблему.