Почему веб-клиент 1С не видит лицензию и как правильно настроить раздачу лицензий через сервер?

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

При организации удаленной работы сотрудников через веб-интерфейс или тонкий клиент по протоколу HTTP системные администраторы часто сталкиваются с ситуацией, когда обычные подключения внутри локальной сети работают корректно, а внешние пользователи получают сообщение «Лицензия не найдена». Проблема усложняется тем, что стандартные методы диагностики, такие как проверка файла nethasp.ini или мониторинг менеджера лицензий (HASP LM), на клиентских машинах не дают результата. Рассмотрим подробно, как работает механизм лицензирования в среде веб-публикаций, и разберем по шагам, почему возникают ошибки и как их исправить.

Различия в поиске лицензий для Тонкого и Веб-клиента

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

Тонкий клиент (подключение через HTTP/HTTPS) обладает двухуровневой логикой поиска:

  1. Локальный поиск: Сначала тонкий клиент пытается найти лицензию самостоятельно. Он опрашивает локальные USB-ключи, ищет программные лицензии на данном ПК или обращается к менеджеру лицензий (License Manager) по сети, используя настройки в локальном файле nethasp.ini.
  2. Запрос к серверу: Если локально лицензия не найдена, тонкий клиент обращается к серверу 1С (через веб-сервер) с просьбой выделить ему лицензию из общего пула сервера.

Веб-клиент (работа через браузер) работает принципиально иначе. Браузер в силу ограничений безопасности не имеет доступа к локальному оборудованию пользователя (USB-ключам) и не умеет читать файлы конфигурации типа nethasp.ini на локальном диске. Для веб-клиента существует только один путь получения лицензии — через сервер. Если сервер не настроен на выдачу лицензий, веб-клиент не запустится, даже если в компьютер пользователя вставлен ключ защиты.

Роль сервера 1С и настройка параметров базы

Выясним причину, по которой сервер может «отказывать» веб-клиенту в выдаче лицензии. В клиент-серверном варианте работы за распределение лицензий отвечает процесс rphost на стороне сервера приложений 1С. Однако это происходит не автоматически, а регулируется настройками конкретной информационной базы.

Разберем, как включить эту опцию:

  1. Запустим консоль администрирования серверов 1С Предприятия.
  2. Перейдем к списку информационных баз на нужной ветке сервера.
  3. Откроем свойства базы, с которой возникли проблемы.
  4. Найдем параметр «Разрешить выдачу лицензий сервером 1С предприятия».
  5. Установим значение «Да».

Если этот параметр установлен в значение «Нет», сервер будет игнорировать запросы от веб-клиентов на получение лицензии, ожидая, что клиент сам найдет себе ключ (что для браузера невозможно).

Особенности работы с файлом nethasp.ini на сервере

Рассмотрим ситуацию автора темы: у него есть выделенные серверы лицензий (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С через веб:

  1. Убедимся, что в свойствах информационной базы в консоли сервера 1С включен параметр «Разрешить выдачу лицензий сервером 1С предприятия».
  2. Если используются аппаратные ключи HASP и менеджеры лицензий (LM), проверим файл nethasp.ini именно на сервере 1С. Убедимся, что сервер видит ключи в сети.
  3. Если используется программное лицензирование, проверим, что лицензии активированы «на сервер» (многопользовательские) или установлены в папку, доступную серверу приложений.
  4. Для мобильных клиентов применим те же правила: они не могут искать ключи сами и полностью зависят от способности сервера выдать им лицензию.

Таким образом, основная ошибка администратора в рассматриваемой ситуации заключалась в запрете раздачи лицензий на стороне сервера при работе через веб-интерфейс. Включение этой опции и правильная настройка поиска ключей сервером решают проблему.

← На главную