Ситуация, когда сервер приложений 1С успешно раздает лицензии для клиент-серверных баз, но «отказывается» делать это для файловых баз на удаленных рабочих станциях, является классической проблемой понимания архитектуры платформы «1С:Предприятие 8». В данной статье мы подробно разберем, почему так происходит, и рассмотрим все доступные способы решения этой задачи.
Для начала проанализируем, как именно сервер 1С раздает лицензии. Когда пользователь подключается к клиент-серверной базе (SQL-вариант), клиентское приложение (тонкий или толстый клиент) обращается к кластеру серверов. Процесс rphost проверяет наличие доступных лицензий в своем пуле (программных файлов .lic или аппаратных ключей) и, если они есть, «выдает» лицензию конкретному сеансу. В этом случае физического доступа клиентского компьютера к файлу лицензии не требуется — лицензию держит сам сервер.
Однако, когда мы запускаем файловый вариант базы через сетевую папку, архитектура взаимодействия меняется коренным образом. В этом сценарии сервер приложений 1С вообще не участвует в процессе запуска. Клиентское приложение напрямую работает с файлом 1Cv8.1CD. Следовательно, некому инициировать запрос к серверу за лицензией. Программа ищет лицензию локально на том компьютере, где она запущена.
Важный нюанс: почему же файловая база запускается на самом хосте сервера? Как справедливо отмечено в обсуждении, она не «получает» лицензию от сервера как от раздатчика, а просто читает локальный файл лицензии, который физически лежит на этом же диске (обычно в папке C:\ProgramData\1C\1cv8\conf). Поскольку программная лицензия привязана к железу этого сервера, она успешно проходит проверку.
Это наиболее эффективный и современный способ заставить файловую базу использовать лицензии, установленные на сервере, без покупки дополнительных ключей на каждое рабочее место. Рассмотрим алгоритм действий:
default.vrd).В этом случае модуль расширения веб-сервера будет выступать в роли «клиента» для системы лицензирования и сможет забирать лицензии из общего пула сервера для каждого подключившегося пользователя. Это позволяет обойти ограничение на прямой поиск лицензий по сети.
Если вы используете аппаратную защиту (USB-ключи серии NET), ситуация упрощается, но требует настройки специального ПО. Рассмотрим, как обеспечить видимость ключа для файловых баз:
Проанализируем работу HASP License Manager. Это отдельная служба (не путать с драйвером ключа), которая транслирует информацию о наличии сетевого ключа в локальную сеть. Для того чтобы удаленный компьютер увидел ключ на сервере, выполните следующие шаги:
C:\Program Files\1cv8\conf) найдите или создайте файл nethasp.ini.Выясним причину, по которой автоматический поиск ключа может не работать (например, разные подсети). В таком случае в файле nethasp.ini необходимо принудительно указать адрес сервера:
[NH_COMMON]
NH_TCPIP = ENABLE
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; IP-адрес вашего сервера лицензий
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = DISABLE
Такая настройка заставит клиентское приложение 1С обращаться напрямую к серверу за лицензией, даже при запуске локальной файловой базы.
Если у вас программные лицензии, важно понимать: файл .lic принципиально не может быть сетевым для файловых баз. Платформа 1С ищет программные лицензии только в определенных локальных путях. Посмотрим на список мест поиска:
All Users (ProgramData).conf).Чтобы файловая база на другом компьютере «увидела» программную лицензию, эта лицензия должна быть активирована именно на этом компьютере с использованием своего пин-кода. Если вы хотите использовать одну многопользовательскую лицензию на несколько рабочих мест с файловыми базами, единственным легальным и техническим способом является перевод баз в клиент-серверный вариант или публикация через веб-сервер (см. Способ 1).
Проанализировав ситуацию, мы видим, что сервер приложений 1С не является «универсальным сервером лицензий» в общепринятом смысле. Он обслуживает только те сеансы, которыми управляет сам (через rphost).
Для решения проблемы автора рекомендуем рассмотреть следующие варианты:
Выясним еще один важный момент: начиная с версии платформы 8.3.15, в 1С появился Сервис лицензирования, который можно выделить в консоли администрирования кластера. Однако, он предназначен для оптимизации работы внутри кластера и также не помогает файловым базам, работающим через file:// протокол, увидеть лицензии удаленно.
Таким образом, для файловой базы на удаленном ПК «разрулить» ситуацию можно либо путем активации локальной лицензии на этом ПК, либо путем смены протокола доступа к базе на http:// через веб-сервер.