Сервер лицензирования для файловых баз 1С: Возможно ли это и как решить проблему распределения лицензий?

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

При проектировании инфраструктуры для работы с базами данных «1С:Предприятие 8» в файловом режиме системные администраторы часто сталкиваются с жесткими ограничениями лицензирования. Типичная задача: имеется несколько серверов (например, один терминальный сервер для работы со старыми конфигурациями на обычных формах и один веб-сервер для публикации управляемых форм) и ограниченный пул программных лицензий (например, 5 штук). Хочется, чтобы пользователи могли динамически и независимо подключаться к обоим серверам, разбирая лицензии из общего пула.

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

Почему стандартный сервер лицензирования 1С не работает в файловом режиме

Для начала выясним причину технического ограничения. В экосистеме 1С роль Сервер лицензирования является частью кластера серверов «1С:Предприятие». Она настраивается через требования назначения функциональности и требует полноценной клиент-серверной архитектуры (наличия лицензии на сервер 1С и СУБД).

Если ваши базы данных работают в файловом режиме, у вас просто нет запущенного процесса кластера 1С (ragent.exe), который мог бы взять на себя роль раздатчика лицензий по сети для разных компьютеров. При прямом подключении к файловой базе программную лицензию ищет и получает непосредственно сам клиентский компьютер (локально) либо веб-сервер, на котором опубликована база.

Также важно понимать разницу в подсчете лицензий, которая сильно влияет на их расход:

  1. На веб-сервере (IIS или Apache) при работе с файловой базой: Лицензии всегда расходуются по принципу «на сеанс» (per-connect). Это значит, что если один и тот же пользователь запустит две разные базы данных в двух вкладках браузера или тонкого клиента, система спишет из общего пула сразу 2 лицензии. При лимите в 5 лицензий они закончатся практически мгновенно.
  2. На терминальном сервере: Если многопользовательская программная лицензия активирована на самом терминальном сервере для всех пользователей (в общую папку), то лицензии могут расходоваться по принципу «на компьютер/сессию». В этом случае пользователь внутри своей терминальной сессии может открыть хоть 5 баз данных, израсходовав всего 1 лицензию из пула.

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

Вариант А. Консолидация ролей на одном сервере (Самый простой путь)

Если ваши серверы развернуты в облаке в виде двух разных виртуальных машин, самым простым и эффективным решением будет объединение ролей терминального сервера и веб-сервера в рамках одной операционной системы (на одной виртуальной машине).

Проанализируем этот сценарий по шагам:

  1. Разворачиваем службы удаленных рабочих столов (RDS) и веб-сервер (IIS или Apache) на одной машине. Для небольшого количества пользователей (например, 5-10 человек) совмещение этих ролей не вызовет проблем с производительностью.
  2. Активируем многопользовательскую программную лицензию на 5 рабочих мест, используя пин-код «для этого компьютера».
  3. Крайне важный момент: файл лицензии должен быть активирован от имени учетной записи с правами администратора, а сам файл лицензии с расширением .lic должен быть помещен в общий каталог, к которому имеют доступ все пользователи и служба веб-сервера. В ОС Windows это путь: C:\ProgramData\1C\licenses (или системная переменная %AllUsersProfile%\1C\licenses).

При такой схеме и терминальные сессии пользователей (для обычных форм), и веб-сервер (для управляемых форм) будут обращаться к одной и той же локальной папке с лицензиями, динамически забирая свободные лицензии из общего пула в 5 штук.

Вариант Б. Обмен программных лицензий на аппаратный USB-ключ (HASP)

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

Рассмотрим подробнее, как это реализовать:

  1. Вы имеете официальное право обменять имеющиеся программные лицензии на аналогичный аппаратный USB-ключ (HASP) через любого партнера фирмы «1С» (эта процедура платная, но абсолютно легальная).
  2. Поскольку серверы находятся в облаке, физически вставить USB-ключ в виртуальную машину невозможно. Для обхода этого ограничения используем технологию USB-over-IP. Ключ устанавливается в физический компьютер (например, в вашем офисе или у облачного провайдера, предоставляющего услугу аренды USB-портов).
  3. С помощью специализированного программного обеспечения (например, VirtualHere, USB Network Gate или USB Redirector) пробрасываем USB-порт с ключом на одну из виртуальных машин в облаке.
  4. На этой машине запускаем службу сетевого менеджера лицензий — HASP License Manager (HASPLM).
  5. На терминальном и на веб-сервере в каталоге установки платформы 1С настраиваем конфигурационный файл nethasp.ini. Нам необходимо явно указать IP-адрес машины, на которую проброшен ключ, чтобы отключить медленный поиск ключа широковещательными запросами.

Пример настройки секции подключения в файле nethasp.ini:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP-адрес машины с запущенным HASPLM
NH_PORTNUM = 475 ; Стандартный порт службы HASP LM
NH_TCPIP_METHOD = UDP

После этого оба сервера смогут динамически и без конфликтов получать лицензии по сети от единого менеджера лицензий.

Вариант В. Использование «Автономного сервера 1С»

Начиная с версии платформы 8.3.14, в «1С:Предприятие» появился новый замечательный инструмент — Автономный сервер (исполняемый файл ibsrv.exe), управление которым осуществляется через утилиту ibcmd.

Этот компонент разработан специально для эффективной работы с файловыми базами данных без необходимости приобретения дорогостоящей лицензии на сервер «1С:Предприятия». Автономный сервер фактически берет на себя роль веб-сервера и СУБД для файловой базы.

Посмотрим на пример конфигурации автономного сервера. В его файле настроек conf.yml можно включить встроенную раздачу лицензий:


# Пример фрагмента файла conf.yml для автономного сервера
server:
  addresses: [ "*:8314" ]
  distribute-licenses: true # Разрешаем серверу самостоятельно раздавать программные лицензии клиентам
database:
  path: "C:\1C_Bases\Accounting"

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

Важное ограничение: Этот способ идеально подходит для конфигураций на управляемых формах (УФ). Если же вам требуется полноценный доступ через толстого клиента для работы с обычными формами в терминальном режиме, этот вариант вам не подойдет, так как автономный сервер не поддерживает работу обычных форм без прямого доступа к файлу базы данных.

Вариант Г. Переход на клиент-серверный режим с «Мини-сервером 1С»

Если инфраструктура планирует масштабироваться, правильным архитектурным решением будет уход от файлового режима. Чтобы сделать это с минимальными финансовыми затратами, рекомендуем рассмотреть приобретение лицензии «1С:Предприятие 8.3. Мини-сервер на 5 подключений».

Разберем преимущества этого подхода:

  1. Вы переводите базы данных под управление бесплатной СУБД (например, PostgreSQL).
  2. Мини-сервер 1С позволяет развернуть полноценный кластер серверов, ограниченный лишь количеством сессий (не более 5 подключений на весь кластер).
  3. Полноценный сервер приложений 1С берет на себя задачу автоматического и динамического распределения любых доступных программных лицензий. В этом случае совершенно не важно, где территориально и на каких серверах находятся ваши пользователи (в терминале или в веб-браузере) — сервер приложений сам выдаст им лицензии из своего пула.

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

← На главную