В процессе администрирования инфраструктуры 1С часто возникает вопрос: где именно следует активировать программные лицензии, если в сети присутствует как сервер приложений (клиент-серверный вариант), так и терминальный сервер (RDP), через который работают пользователи? Ситуация осложняется, когда сотрудникам требуется одновременный доступ и к высокопроизводительным серверным базам, и к небольшим файловым базам, расположенным в сетевых папках.
Разберем детально, почему активация на RDP-сервере в данном случае является наиболее рациональным решением, и какие технические нюансы необходимо учесть для стабильной работы системы.
Рассмотрим стандартную логику работы системы. Если мы активируем многопользовательскую лицензию на сервере приложений (SRV1), то выдачей лицензий начинает заниматься сама служба 1C:Enterprise 8.3 Server Agent. Это отлично работает для баз, находящихся под управлением СУБД (SQL/PostgreSQL), так как сервер сам «подсчитывает» сеансы и выдает им разрешения.
Однако при попытке запустить файловую базу через общую сетевую папку (share), механизм меняется. Файловая база запускается локальным «толстым» или «тонким» клиентом непосредственно на компьютере пользователя (в нашем случае — на SRV_RDP). Этот клиент ничего не знает о лицензиях, которые хранятся на SRV1, так как он не обращается к серверу приложений для работы с файлами .1CD. В результате пользователь получает ошибку: «Не обнаружена свободная лицензия».
Проанализируем ситуацию и придем к выводу: для того чтобы лицензии были универсальными, они должны быть доступны клиенту 1С напрямую в той среде, где он запускается.
Выясним, какие выгоды мы получаем, выбрав сервер SRV_RDP в качестве основной точки активации:
.lic собраны в одном месте, что упрощает мониторинг их состояния.Поскольку в современных инфраструктурах сервера SRV1 и SRV_RDP обычно являются виртуальными машинами, мы должны учитывать риск «слета» лицензий. Программная лицензия 1С «привязывается» к ключевым характеристикам оборудования. Для виртуальной среды критически важно настроить следующие параметры в гипервизоре (Hyper-V, VMware, Proxmox):
При активации программного пин-кода на RDP-сервере крайне важно выбрать правильный режим. Разберем по шагам, как это сделать:
Важный нюанс: Если вы активируете лицензию «На текущего пользователя», файл лицензии сохранится в профиле администратора (например, в папке %AppData%). Другие пользователи, заходя под своими учетными записями, не смогут получить доступ к этой лицензии. Мы рекомендуем проверять наличие файлов .lic в общесистемном каталоге:
C:\ProgramData\1C\licenses
Если файлы находятся там, значит, лицензия доступна всем пользователям сервера.
Если по каким-то причинам вы не хотите хранить файловые базы в «шарах», рассмотрим вариант их публикации на веб-сервере (IIS или Apache), который можно развернуть на SRV1. В этом случае:
Однако помните, что в этом сценарии на каждое подключение будет тратиться отдельная лицензия, и экономия «одна сессия — много баз» работать не будет. Поэтому для терминального сервера активация лицензий непосредственно на нем остается приоритетным вариантом.
Если ваша инфраструктура разрастется, мы рекомендуем рассмотреть функционал сервера лицензирования. В настройках кластера 1С можно выделить отдельный менеджер лицензирования. Это позволяет централизованно управлять распределением ключей, однако для связки «RDP + файловые базы» самым надежным и простым методом все равно остается размещение файлов лицензий на самом терминальном сервере.
Рассмотрим пример того, как может выглядеть файл конфигурации conf.cfg, если необходимо явно указать путь к лицензиям или настроить приоритеты (хотя в стандартных случаях это происходит автоматически):
ConfLocation=C:\Program Files\1cv8\conf
# Пример настройки поиска лицензий
# Если нужно отключить использование аппаратных ключей
Hasps=0
Подведем итог: Для вашей инфраструктуры наиболее правильным будет активировать многопользовательские лицензии на сервере SRV_RDP. Это обеспечит стабильный доступ ко всем типам баз и позволит максимально эффективно использовать имеющиеся лицензии, привязывая их к терминальной сессии пользователя, а не к каждому открытому окну программы.