При проектировании инфраструктуры для работы с базами данных «1С:Предприятие 8» в файловом режиме системные администраторы часто сталкиваются с жесткими ограничениями лицензирования. Типичная задача: имеется несколько серверов (например, один терминальный сервер для работы со старыми конфигурациями на обычных формах и один веб-сервер для публикации управляемых форм) и ограниченный пул программных лицензий (например, 5 штук). Хочется, чтобы пользователи могли динамически и независимо подключаться к обоим серверам, разбирая лицензии из общего пула.
В этой статье мы подробно разберем, почему стандартный сервер лицензирования 1С не подходит для файловых баз, проанализируем особенности подсчета лицензий и рассмотрим четыре легальных практических способа решения этой задачи.
Для начала выясним причину технического ограничения. В экосистеме 1С роль Сервер лицензирования является частью кластера серверов «1С:Предприятие». Она настраивается через требования назначения функциональности и требует полноценной клиент-серверной архитектуры (наличия лицензии на сервер 1С и СУБД).
Если ваши базы данных работают в файловом режиме, у вас просто нет запущенного процесса кластера 1С (ragent.exe), который мог бы взять на себя роль раздатчика лицензий по сети для разных компьютеров. При прямом подключении к файловой базе программную лицензию ищет и получает непосредственно сам клиентский компьютер (локально) либо веб-сервер, на котором опубликована база.
Также важно понимать разницу в подсчете лицензий, которая сильно влияет на их расход:
Поскольку легально заставить два разных сервера обмениваться файловыми программными лицензиями «напрямую» невозможно, рассмотрим рабочие альтернативные варианты организации инфраструктуры.
Если ваши серверы развернуты в облаке в виде двух разных виртуальных машин, самым простым и эффективным решением будет объединение ролей терминального сервера и веб-сервера в рамках одной операционной системы (на одной виртуальной машине).
Проанализируем этот сценарий по шагам:
.lic должен быть помещен в общий каталог, к которому имеют доступ все пользователи и служба веб-сервера. В ОС Windows это путь: C:\ProgramData\1C\licenses (или системная переменная %AllUsersProfile%\1C\licenses).При такой схеме и терминальные сессии пользователей (для обычных форм), и веб-сервер (для управляемых форм) будут обращаться к одной и той же локальной папке с лицензиями, динамически забирая свободные лицензии из общего пула в 5 штук.
Если объединить серверы невозможно и они физически должны оставаться разными машинами, то лучшим выходом будет переход на аппаратное лицензирование.
Рассмотрим подробнее, как это реализовать:
VirtualHere, USB Network Gate или USB Redirector) пробрасываем USB-порт с ключом на одну из виртуальных машин в облаке.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
После этого оба сервера смогут динамически и без конфликтов получать лицензии по сети от единого менеджера лицензий.
Начиная с версии платформы 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С:Предприятие 8.3. Мини-сервер на 5 подключений».
Разберем преимущества этого подхода:
Выбор конкретного варианта зависит от специфики ваших конфигураций (используются ли обычные формы) и готовности к небольшим инфраструктурным изменениям. Оптимальным решением для файлового режима без дополнительных затрат остается консолидация терминальной и веб-роли на одном сервере.