При переходе на работу через веб-клиент многие администраторы сталкиваются с парадоксальной ситуацией: локально 1С запускается без проблем, количество лицензий в сети достаточное, но при попытке входа через браузер система выдает ошибку: «Не обнаружено свободной лицензии». Ситуация осложняется тем, что использование VPN может временно «исправлять» проблему, запутывая диагностику. В этой статье мы подробно разберем, как именно 1С ищет лицензии при работе через веб-сервер, и выясним, какие настройки необходимо выполнить для стабильной работы.
Первое и самое важное, что нам необходимо понять: при работе через браузер (веб-клиент) поиск лицензии выполняет не компьютер пользователя, а модуль расширения веб-сервера (например, Apache или IIS). Это принципиальное отличие от тонкого клиента, который может самостоятельно дотянуться до USB-ключа, вставленного в компьютер сотрудника.
Проанализируем стандартный алгоритм поиска для файловой базы данных, опубликованной на веб-сервере:
Важное ограничение: Веб-сервер в принципе может выдать лицензии только с двух аппаратных источников: с одного ключа, установленного локально на машину с веб-сервером, и только с одного сетевого ключа, который будет найден первым по протоколу UDP (широковещательный запрос). Если в вашей сети установлено несколько многопользовательских ключей (например, три ключа по 5 пользователей), веб-сервер увидит только один из них. Если на этом «первом попавшемся» ключе заняты все лицензии, веб-сервер не пойдет искать дальше и выдаст ошибку, даже если на других ключах есть свободные места.
Чтобы веб-сервер перестал искать ключи «наугад» и видел именно те менеджеры лицензий, где есть свободные слоты, нам необходимо отредактировать файл nethasp.ini. Рассмотрим подробнее, где он находится. Обычно это каталог conf внутри папки с установленной платформой 1С на сервере (например, C:\Program Files\1cv8\conf\).
Разберем по шагам, какие параметры нужно изменить в секции [NH_TCPIP], чтобы направить веб-сервер на нужные IP-адреса:
[NH_COMMON]
NH_TCPIP = ADENABLED
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11 ; Укажите здесь IP-адреса машин с ключами
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = DISABLED
Отключение широковещательного запроса NH_USE_BROADCAST = DISABLED и явное указание адресов NH_SERVER_ADDR позволяет веб-серверу гарантированно обращаться к нужным менеджерам лицензий, минуя ограничения сетевого окружения и проблем с VPN.
Еще одним критическим узлом является файл описания публикации default.vrd, который находится в папке, куда вы опубликовали базу (например, C:\inetpub\wwwroot\mybase\). В этом файле содержатся параметры, управляющие поведением веб-модуля 1С.
Проверим наличие и значение параметра useHWLicenses. Если этот параметр установлен в значение false, веб-сервер даже не попытается искать аппаратные ключи. Правильная настройка должна выглядеть следующим образом:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MyBase"
ib="File="C:\Bases\Trade";">
<ws>
<point name="WebServices" alias="ws1.1cws"/>
</ws>
<standardtimeout>20</standardtimeout>
<useHWLicenses>true</useHWLicenses>
</point>
Также стоит обратить внимание на параметр sessionMaxAge. В веб-клиенте лицензия не всегда освобождается мгновенно после закрытия вкладки браузера. Сессия может «висеть» на сервере еще 20 минут по умолчанию, удерживая лицензию за собой. Если лицензий мало, это часто становится причиной ошибки для новых пользователей.
Выясним причину, связанную с системными правами. Веб-сервер Apache обычно запускается от имени системной учетной записи LocalSystem или специального пользователя SYSTEM. У этой учетной записи должны быть соответствующие права для взаимодействия с драйвером защиты Sentinel HASP.
Если веб-сервер не видит ключи, попробуйте выполнить следующие действия:
services.msc).Apache2.4).hasp_windows.dll или веткам реестра драйвера.Рассмотрим ситуацию, описанную опытными администраторами: если вы запускаете «толстый» или «тонкий» клиент непосредственно на той же физической машине, где стоит Apache, вы можете столкнуться с конкуренцией за лицензию. Если на сервере запущен Конфигуратор или пользовательский сеанс под локальной учетной записью, этот сеанс может «захватить» единственную доступную веб-серверу лицензию.
Золотое правило: Для стабильной работы веб-клиента старайтесь не запускать 1С на самом сервере. Все административные действия (обновление конфигурации) лучше выполнять в периоды отсутствия активных веб-пользователей или использовать программные лицензии, которые суммируются корректнее аппаратных.
Чтобы окончательно решить проблему с обнаружением лицензии через браузер, пройдемся по списку:
ORGL8 работать не будут.[NH_TCPIP] на сервере, где работает Apache.HASP License Manager и драйвера Sentinel. Для 64-битных операционных систем это критично.useHWLicenses установлен в true..ini или .vrd файлах обязательно перезапускайте службу веб-сервера (Apache/IIS) и службу 1С:Предприятия (если используется серверный вариант).Следуя этим рекомендациям, вы настроите прозрачную и надежную схему распределения лицензий, и ваши пользователи забудут об ошибке «Не обнаружено свободной лицензии» при работе в 1С через любой современный браузер.