При переходе с обычной файловой сети на работу через веб-сервер IIS (Internet Information Services) системные администраторы часто сталкиваются с неприятным сюрпризом. Несмотря на наличие легальных программных лицензий на каждом рабочем месте, система начинает выдавать ошибку: «Ошибка программного лицензирования. Превышено максимальное количество пользователей, разрешенное файлом программной лицензии». Проблема кажется мистической: как только останавливается служба веб-сервера, всё начинает работать. Давайте подробно разберем, почему это происходит, как работает механизм раздачи лицензий через веб-сервер и что нужно сделать, чтобы база работала стабильно.
Первым делом выясним причину, по которой 1С блокирует запуск второго сеанса. В типичной ситуации у нас есть «сервер» (компьютер, где лежит база и поднят IIS) и «клиент» (соседний компьютер). На обоих активированы однопользовательские программные лицензии. Когда мы запускаем 1С локально на сервере, она подхватывает свою лицензию. Когда мы подключаемся через веб-сервер, ситуация меняется.
Проанализируем механику работы модуля расширения веб-сервера. Существует два способа получения лицензии клиентом при работе через HTTP:
Тонкого клиента. Он ищет файл лицензии или ключ защиты на локальной машине пользователя.Веб-клиента (браузера) и один из вариантов для Тонкого клиента. В этом случае модуль 1С, встроенный в IIS, берет лицензию из тех файлов, которые доступны непосредственно на сервере, и «отдает» её подключившемуся пользователю.Если на сервере установлена всего одна однопользовательская лицензия, то как только внешний пользователь подключается через браузер, веб-сервер захватывает эту единственную лицензию. Попытка запустить 1С на самом сервере в этот момент приведет к ошибке, так как лицензия уже занята процессом IIS.
Разберем по шагам, на что обратить внимание при публикации информационной базы. Если ручная настройка через конфигуратор кажется неудобной, можно использовать специальный публикатор баз 1С. В стандартном же меню «Администрирование» — «Публикация на веб-сервере», на вкладке «Основные» есть критически важный параметр: «Выдавать клиентские лицензии сервером 1С:Предприятия».
Если этот флаг установлен:
.lic, находящихся на сервере.Решение: Если вы используете Тонкий клиент на удаленных рабочих местах и на них уже активированы свои лицензии, снимите галочку «Выдавать клиентские лицензии сервером 1С:Предприятия» при публикации.
Важно понимать фундаментальное различие: браузер (Chrome, Firefox, Safari) ничего не знает о защите 1С. Он не умеет искать программные лицензии на локальном диске пользователя или опрашивать USB-ключи. Поэтому для работы через браузер лицензию всегда должен выдать веб-сервер. Если у вас всего две однопользовательские лицензии, распределенные по разным ПК, работать вдвоем через браузер не получится. В такой конфигурации один человек всегда должен использовать Тонкий клиент со своей локальной лицензией.
Часто проблема кроется в правах доступа. Веб-сервер IIS работает от имени специальной учетной записи (обычно IUSR или IIS AppPool\Имя_Пула). Рассмотрим, где должны лежать файлы .lic, чтобы IIS их увидел:
C:\Users\Имя\AppData\Local\1C\1Cv8\Conf), будет недоступна для веб-сервера.C:\ProgramData\1C\licenses.C:\ProgramData\1C\licenses. Пользователю, от имени которого запущен пул приложений в IIS, должны быть даны права на чтение этой папки. Если вы используете защищенные конфигурации, изучите, как настроить один ключ СЛК для всех клиентов.Чтобы заставить Тонкий клиент использовать локальную лицензию вместо серверной, проанализируем дополнительные параметры запуска. В окне выбора информационных баз выберите нужную базу, нажмите «Изменить» и перейдите на страницу настройки параметров запуска.
В поле «Дополнительные параметры запуска» можно принудительно указать способ поиска защиты. Хотя лицензия программная, иногда помогает использование ключа:
/UseHwLicenses+
Это заставит платформу более тщательно искать локальные средства защиты, прежде чем обращаться к серверу за лицензией.
Посмотрим на специфическую настройку IIS, которая может влиять на «вылет» лицензий. В консоли управления IIS откройте «Пулы приложений», выберите пул, на котором работает ваша база, и зайдите в «Дополнительные параметры».
Найдите параметр «Максимальное количество рабочих процессов». Для стабильной работы с лицензиями в файловом режиме (особенно на десктопных ОС типа Windows 7/10/11) это значение обязательно должно быть равно 1. Если процессов будет больше, каждый из них может попытаться заблокировать лицензионный файл под себя, создавая конфликт доступа.
Когда в очередной раз возникнет ошибка «Лицензия не обнаружена», не спешите закрывать окно. Нажмите кнопку «Подробно». Чтобы быстрее разобраться в причинах, можно задействовать отчет «Ошибки технологического журнала». Рассмотрим, как читать этот журнал самостоятельно:
Локальный ключ защиты или Файл программной лицензии.ProgramData вашего клиентского ПК, значит клиент даже не пытается искать свою собственную лицензию.Проанализировав эти данные, вы сможете точно определить, в какой момент «сбивается» логика поиска: то ли клиент «забывает» про свою лицензию, то ли сервер «жадничает» и забирает всё на себя.
Для стабильной работы системы 1С через IIS на двух компьютерах с однопользовательскими лицензиями придерживайтесь следующей схемы:
Тонкий клиент (не браузер!).ProgramData), а не на пользователя.Соблюдение этих правил позволит системе четко разделять: сервер использует свою лицензию для локального сеанса, а клиент — свою локальную для сеанса через веб-сервер.