При переходе на работу через веб-клиент или тонкий клиент по протоколу HTTP пользователи файловых баз часто сталкиваются с проблемой: лицензия на сервере активирована, но при попытке входа система выдает ошибку «Лицензия не обнаружена». Рассмотрим подробно, как работает механизм лицензирования в связке с веб-сервером (IIS или Apache) и файловым вариантом базы, и разберем по шагам правильный алгоритм настройки.
Проанализируем сначала теорию процесса. В классическом клиент-серверном варианте раздачей лицензий занимается Сервер 1С:Предприятия. В файловом же варианте при работе через веб-сервер ситуация иная: сеанс работы с базой инициирует модуль расширения веб-сервера, установленный на компьютере с IIS. Следовательно, именно этот модуль должен «подхватить» программный ключ. Если пользователь заходит через обычный браузер (веб-клиент), у него физически нет возможности использовать локальный ключ, установленный на его персональном компьютере. Значит, лицензия должна быть доступна веб-серверу.
Выясним причину, по которой активация «на сервере» часто не срабатывает. При активации программной лицензии (вводе пин-кодов) система предлагает выбор: «На текущего пользователя» или «На этот компьютер». Это критически важный момент для веб-сервера.
.lic сохраняется в профиль текущего пользователя Windows (например, администратора). Веб-сервер IIS обычно работает от имени системной учетной записи (например, IUSR или DefaultAppPoolIdentity). У этих системных пользователей нет прав на чтение вашего профиля, и они «не видят» этот файл лицензии.Рассмотрим структуру каталогов. Для того чтобы веб-сервер успешно обнаружил лицензию, файл с расширением .lic должен находиться в одной из системных директорий, которые 1С просматривает по умолчанию. В операционных системах Windows рекомендуемым местом является:
C:\ProgramData\1C\1cv8\conf
Если вы уже активировали лицензию и она попала в профиль пользователя, вы можете вручную перенести файл в указанную выше папку. Проанализируем типичный путь в профиле пользователя, откуда может потребоваться перенос:
%AppData%\1C\1cv8\Conf
Одной лишь физической доступности файла в папке ProgramData недостаточно. Разберем ситуацию с правами доступа. Пул приложений IIS (Application Pool) должен иметь права на чтение файлов из папки с лицензиями. Если прав недостаточно, веб-сервер проигнорирует файл лицензии, и пользователь получит отказ в доступе.
Необходимо добавить права «Чтение» на папку C:\ProgramData\1C\1cv8\conf и все вложенные файлы для группы пользователей IIS_IUSRS (или для конкретного пользователя, от имени которого запущен пул приложений вашего веб-сайта 1С).
Посмотрим на настройки публикации. При публикации информационной базы на веб-сервере создается файл default.vrd. В нем описываются параметры взаимодействия веб-сервера и 1С. Хотя большинство параметров лицензирования управляются самой платформой, важно убедиться, что публикация выполнена корректно.
Пример структуры типового файла публикации для файловой базы:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MyBase"
ib="File="C:\Bases\MyBase";">
<standardOdata enable="true" reuseSessions="autouse" sessionMaxAge="20" poolSize="10" poolTimeout="5"/>
</point>
Обратите внимание: если вы используете многопользовательскую лицензию, веб-сервер будет самостоятельно подсчитывать количество активных сеансов. Каждая открытая вкладка в браузере будет считаться отдельным сеансом и поглощать одну лицензию.
Разберем важный нюанс: если у вас есть несколько однопользовательских лицензий, активированных на компьютере с веб-сервером, он сможет раздавать их разным пользователям. Однако, если активирована только одна однопользовательская лицензия, то через веб-интерфейс сможет работать только один человек в единицу времени. Для одновременной работы группы сотрудников необходимо активировать либо одну многопользовательскую лицензию (на 5, 10, 20 и т.д. рабочих мест), либо несколько однопользовательских (путем последовательного ввода пин-кодов из разных комплектов).
Проанализируем ситуацию, когда веб-сервер развернут на виртуальной машине. Программные лицензии 1С «привязываются» к параметрам оборудования: MAC-адресу, ID процессора, объему оперативной памяти, имени компьютера и т.д. В виртуальной среде эти параметры могут измениться (например, при динамическом распределении памяти или миграции на другой хост). В этом случае лицензия станет недействительной («слетит»), и веб-сервер снова перестанет пускать пользователей. В таких случаях рекомендуется фиксировать параметры виртуальной машины или использовать аппаратные USB-ключи (если это позволяет хост-система).
Подводя итог, если веб-сервер пишет «Нет лицензии», выполните следующие шаги:
.lic находится в папке C:\ProgramData\1C\1cv8\conf, а не в Local Settings или AppData администратора.Соблюдение этих правил гарантирует стабильную работу файловой базы 1С через веб-интерфейс без необходимости покупки полноценного сервера 1С:Предприятия.