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

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

При организации доступа к файловым базам 1С через веб-сервер (IIS или Apache) многие администраторы сталкиваются с проблемой неэффективного расхода лицензий. Веб-сервер по умолчанию выделяет одну лицензию на каждый открытый сеанс, будь то новая вкладка в браузере или отдельный запуск приложения. Это приводит к быстрому исчерпанию пула лицензий, для предотвращения чего можно использовать удаление спящих сеансов, даже если с базой работает всего несколько человек. Разберемся, как исправить эту ситуацию и заставить систему выдавать одну лицензию на компьютер пользователя, независимо от количества запущенных им сеансов.

Почему веб-сервер расходует лицензии на каждый сеанс?

Чтобы понять суть проблемы, проанализируем механизм получения лицензии в разных сценариях. Ключевое различие заключается в том, кто инициирует поиск лицензии.

Сценарий 1: Работа через веб-клиент (браузер)

Когда пользователь открывает базу в браузере, его компьютер напрямую с сервером 1С не общается, поэтому требуется управление сеансами 1С сервера. Вся работа идет через модуль расширения веб-сервера. Именно этот модуль на стороне сервера берет на себя задачу найти и выделить лицензию для обслуживания текущего подключения. Для него каждое новое подключение (например, новая вкладка) — это новый сеанс, требующий отдельной лицензии. В этой схеме настроить выдачу лицензий "на компьютер" невозможно, такова архитектура платформы.

Сценарий 2: Работа через тонкий клиент

Тонкий клиент — это полноценное приложение, установленное на компьютере пользователя. В отличие от браузера, он обладает логикой самостоятельного поиска лицензии. Перед тем как установить соединение с сервером, тонкий клиент выполняет следующие действия:

  1. Ищет активную лицензию локально (на компьютере пользователя).
  2. Если локальной нет, ищет лицензию в локальной сети у менеджера лицензий (HASP License Manager).
  3. Только если лицензия не найдена ни одним из способов, он обращается к серверу с просьбой выделить ему лицензию.

Именно эта особенность тонкого клиента позволяет нам построить схемы для экономного расходования лицензий. Если тонкий клиент сможет найти лицензию до обращения к веб-серверу, то веб-сервер не будет тратить свои.

Решение 1: Использование локальных программных лицензий

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

Рассмотрим по шагам:

  1. Активируйте однопользовательскую программную лицензию непосредственно на рабочем компьютере каждого пользователя, которому нужен доступ. Лицензия привяжется к уникальным параметрам "железа" этого ПК.
  2. Настройте подключение к базе через тонкий клиент, а не через браузер.

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

Важный нюанс: нужно предусмотреть ситуацию, когда локальная лицензия может "слететь" (например, после смены комплектующих ПК). В этом случае тонкий клиент по умолчанию начнет искать лицензию в сети и может занять одну из серверных. Чтобы этого не произошло, можно принудительно запретить клиенту искать лицензии где-либо, кроме локальной машины, с помощью файла конфигурации nethasp.ini. Но чаще всего достаточно простого контроля со стороны администратора.

Решение 2: Настройка сети для прямого получения лицензии с HASP LM

Этот способ более сложный в настройке, но позволяет централизованно управлять многопользовательским ключом. Он подходит, если у вас есть аппаратный (USB) или программный многопользовательский ключ, и вы хотите, чтобы пользователи получали лицензии с него, а не от веб-сервера.

Схема работы следующая: тонкий клиент пользователя должен "увидеть" сервер с менеджером лицензий (HASP License Manager) в сети и получить лицензию напрямую. Веб-сервер при этом должен быть настроен так, чтобы он сам лицензии не искал и не раздавал.

Разберем по шагам:

  1. Обеспечьте сетевую доступность. Компьютер пользователя должен иметь доступ к серверу, где установлен менеджер лицензий HASP LM и активирован ключ. Стандартно для этого используется UDP-порт 475. Если пользователи работают удаленно, необходимо настроить VPN-соединение, которое пропустит трафик по этому порту.

  2. Настройте клиентские машины. Чтобы ускорить поиск лицензии и сделать его более надежным, на компьютерах пользователей рекомендуется создать файл nethasp.ini. В нем можно явно прописать IP-адрес сервера с менеджером лицензий. Это избавляет от необходимости использовать широковещательные (broadcast) запросы, которые могут плохо работать в сложных сетях или через VPN.

  3. Изолируйте веб-сервер от поиска лицензий. Это критически важный шаг. Если этого не сделать, веб-сервер при запуске сам найдет ключ в сети, "захватит" все лицензии и начнет раздавать их по своему принципу — "на сеанс". Чтобы запретить ему это делать, нужно на самом компьютере, где работает веб-сервер, создать файл nethasp.ini со следующим содержимым:

    
    [NH_COMMON]
    NH_IPX = Disabled
    NH_NETBIOS = Disabled
    NH_TCPIP = Disabled
    [NH_TCPIP]
    NH_USE_BROADCAST = Disabled
    

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

Важно: как и предыдущий, этот метод работает только при использовании тонкого клиента. При доступе через браузер лицензию всегда будет запрашивать веб-сервер.

Что делать, если раньше работало, а после обновления перестало?

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

Часто это связано с тем, что ранее для обхода ограничений лицензирования использовались неофициальные методы: эмуляторы ключей, патчи или "кряки". Разработчики платформы 1С постоянно совершенствуют механизмы защиты. Каждое новое обновление может изменять алгоритмы проверки ключей, делая старые методы обхода неработоспособными. В результате после обновления система начинает работать по штатным правилам, что и приводит к ошибке "Лицензия не обнаружена" или к повышенному расходу лицензий. В этом случае единственно верный путь — переход на одну из легальных и стабильных схем лицензирования, описанных выше.

← На главную