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

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

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

Разберем механизм работы сервера приложений как сервера лицензирования

Для начала проанализируем, как именно сервер 1С раздает лицензии. Когда пользователь подключается к клиент-серверной базе (SQL-вариант), клиентское приложение (тонкий или толстый клиент) обращается к кластеру серверов. Процесс rphost проверяет наличие доступных лицензий в своем пуле (программных файлов .lic или аппаратных ключей) и, если они есть, «выдает» лицензию конкретному сеансу. В этом случае физического доступа клиентского компьютера к файлу лицензии не требуется — лицензию держит сам сервер.

Однако, когда мы запускаем файловый вариант базы через сетевую папку, архитектура взаимодействия меняется коренным образом. В этом сценарии сервер приложений 1С вообще не участвует в процессе запуска. Клиентское приложение напрямую работает с файлом 1Cv8.1CD. Следовательно, некому инициировать запрос к серверу за лицензией. Программа ищет лицензию локально на том компьютере, где она запущена.

Важный нюанс: почему же файловая база запускается на самом хосте сервера? Как справедливо отмечено в обсуждении, она не «получает» лицензию от сервера как от раздатчика, а просто читает локальный файл лицензии, который физически лежит на этом же диске (обычно в папке C:\ProgramData\1C\1cv8\conf). Поскольку программная лицензия привязана к железу этого сервера, она успешно проходит проверку.

Способ 1: Использование веб-сервера как посредника

Это наиболее эффективный и современный способ заставить файловую базу использовать лицензии, установленные на сервере, без покупки дополнительных ключей на каждое рабочее место. Рассмотрим алгоритм действий:

  1. На компьютере, где активированы многопользовательские лицензии (сервер приложений), установите и настройте веб-сервер IIS или Apache.
  2. Опубликуйте файловую базу на веб-сервере. При публикации в диалоговом окне «Публикация на веб-сервере» убедитесь, что установлена галочка «Использовать лицензии сервера» (или аналогичная настройка в default.vrd).
  3. На удаленных компьютерах настройте подключение не через сетевой путь к папке, а через http-ссылку.

В этом случае модуль расширения веб-сервера будет выступать в роли «клиента» для системы лицензирования и сможет забирать лицензии из общего пула сервера для каждого подключившегося пользователя. Это позволяет обойти ограничение на прямой поиск лицензий по сети.

Способ 2: Настройка аппаратных ключей (USB) и HASP License Manager

Если вы используете аппаратную защиту (USB-ключи серии NET), ситуация упрощается, но требует настройки специального ПО. Рассмотрим, как обеспечить видимость ключа для файловых баз:

Проанализируем работу HASP License Manager. Это отдельная служба (не путать с драйвером ключа), которая транслирует информацию о наличии сетевого ключа в локальную сеть. Для того чтобы удаленный компьютер увидел ключ на сервере, выполните следующие шаги:

  1. Установите HASP License Manager на сервере, где вставлен USB-ключ.
  2. Убедитесь, что брандмауэр сервера пропускает трафик по порту UDP 475.
  3. На клиентском компьютере в папке с установленной платформой (например, 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С обращаться напрямую к серверу за лицензией, даже при запуске локальной файловой базы.

Способ 3: Особенности программных лицензий (.lic)

Если у вас программные лицензии, важно понимать: файл .lic принципиально не может быть сетевым для файловых баз. Платформа 1С ищет программные лицензии только в определенных локальных путях. Посмотрим на список мест поиска:

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

Подведем итоги и выберем стратегию

Проанализировав ситуацию, мы видим, что сервер приложений 1С не является «универсальным сервером лицензий» в общепринятом смысле. Он обслуживает только те сеансы, которыми управляет сам (через rphost).

Для решения проблемы автора рекомендуем рассмотреть следующие варианты:

  1. Переход на клиент-сервер: Если количество пользователей велико, это решит проблему централизованной раздачи лицензий.
  2. Публикация на IIS/Apache: Самый дешевый и эффективный способ для файловых баз, позволяющий использовать серверные лицензии.
  3. Терминальный сервер (RDP): Хотя автор упомянул, что RDP не используется, это классическое решение, где все пользователи работают фактически «внутри» сервера и видят лицензии как локальные.

Выясним еще один важный момент: начиная с версии платформы 8.3.15, в 1С появился Сервис лицензирования, который можно выделить в консоли администрирования кластера. Однако, он предназначен для оптимизации работы внутри кластера и также не помогает файловым базам, работающим через file:// протокол, увидеть лицензии удаленно.

Таким образом, для файловой базы на удаленном ПК «разрулить» ситуацию можно либо путем активации локальной лицензии на этом ПК, либо путем смены протокола доступа к базе на http:// через веб-сервер.

← На главную