При развертывании инфраструктуры «1С:Предприятия» системные администраторы часто сталкиваются со следующей ситуацией: в организации настроены два сервера — один выполняет роль терминального сервера (RDP), а на втором развернута СУБД SQL и сервер «1С:Предприятия», на котором активированы программные лицензии. Если создавать базу в клиент-серверном режиме, всё работает корректно. Однако, если запустить файловую базу непосредственно на RDP-сервере, система выдает ошибку об отсутствии лицензии. Попытки прописать сетевой адрес сервера лицензирования в файле nethasp.ini не приносят результата. Выясним причину этой проблемы и рассмотрим подробнее, как правильно настроить инфраструктуру.
Для начала проанализируем ситуацию и разберем ключевое различие в технологиях защиты «1С:Предприятия». Исторически в 1С использовались и продолжают использоваться два принципиально разных типа защиты:
nethasp.ini.Важно понимать, что программные лицензии не используют протокол HASP. Файл nethasp.ini полностью игнорируется платформой при поиске программных лицензий. Платформа «1С:Предприятие» ищет файлы лицензий .lic исключительно в локальных каталогах той машины, на которой запущен сеанс пользователя (например, в директории C:\ProgramData\1C\licenses или в профиле пользователя AppData). Напрямую «по сети» забрать файл лицензии с другого компьютера файловая база не умеет и технически не может.
Рассмотрим по шагам три проверенных архитектурных решения, которые помогут исправить эту проблему и запустить файловую базу на RDP-сервере с использованием имеющихся лицензий.
Поскольку у вас уже развернуты и работают SQL-сервер и сервер приложений «1С:Предприятия», самым надежным и правильным решением будет отказ от файлового режима работы в пользу клиент-серверного.
Давайте разберем, как это решает проблему с лицензиями:
Важный нюанс: при такой схеме работы лицензии будут расходоваться из расчета «один сеанс — одна лицензия». То есть, если один пользователь на RDP-сервере откроет три разные клиент-серверные базы, сервер 1С выдаст ему три отдельные лицензии из общего пула.
Если базу по каким-то причинам критически важно оставить именно в файловом формате на RDP-сервере, то вам придется перенести программные лицензии на этот же RDP-сервер.
Для этого выполните следующие действия:
В результате успешной активации файл с расширением .lic запишется в общий системный каталог RDP-сервера: C:\ProgramData\1C\licenses. Теперь любой пользователь, зашедший в терминальную сессию, сможет беспрепятственно запускать файловую базу, так как платформа мгновенно обнаружит локальный файл лицензии.
Преимущество этого метода: терминальный сервер экономит лицензии. При активации многопользовательской лицензии непосредственно на RDP-сервере «для всех пользователей» подсчетом лицензий занимается сам терминал. В этом случае один пользователь внутри своей RDP-сессии может запустить неограниченное количество окон и баз 1С, затратив при этом всего одну программную лицензию.
Если вы не хотите переносить лицензии с сервера приложений 1С на RDP-сервер и при этом хотите оставить базу файловой, можно использовать механизм веб-публикации.
Разберем этот процесс по шагам:
При таком сценарии веб-сервер выступает в роли посредника: он сам забирает локальные лицензии с машины, на которой установлен, и раздает их подключающимся по сети клиентам. Это позволяет использовать централизованный пул лицензий для работы с удаленными файловыми базами.
При выполнении активации обязательно обратите внимание на тип используемых пин-кодов из вашего комплекта поставки 1С. В коробке (или в PDF-файле поставки) всегда присутствуют два вида кодов:
Используя предложенные варианты настройки, вы сможете быстро и грамотно решить проблему доступности лицензий в вашей локальной сети.