Почему при работе через IIS в 1С «слетает» лицензия и как правильно настроить совместный доступ?

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

При переходе с обычной файловой сети на работу через веб-сервер IIS (Internet Information Services) системные администраторы часто сталкиваются с неприятным сюрпризом. Несмотря на наличие легальных программных лицензий на каждом рабочем месте, система начинает выдавать ошибку: «Ошибка программного лицензирования. Превышено максимальное количество пользователей, разрешенное файлом программной лицензии». Проблема кажется мистической: как только останавливается служба веб-сервера, всё начинает работать. Давайте подробно разберем, почему это происходит, как работает механизм раздачи лицензий через веб-сервер и что нужно сделать, чтобы база работала стабильно.

Проанализируем причину конфликта лицензий

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

Проанализируем механику работы модуля расширения веб-сервера. Существует два способа получения лицензии клиентом при работе через HTTP:

  1. Клиент получает лицензию самостоятельно. Это возможно только при использовании Тонкого клиента. Он ищет файл лицензии или ключ защиты на локальной машине пользователя.
  2. Лицензию выдает веб-сервер. Это единственный способ работы для Веб-клиента (браузера) и один из вариантов для Тонкого клиента. В этом случае модуль 1С, встроенный в IIS, берет лицензию из тех файлов, которые доступны непосредственно на сервере, и «отдает» её подключившемуся пользователю.

Если на сервере установлена всего одна однопользовательская лицензия, то как только внешний пользователь подключается через браузер, веб-сервер захватывает эту единственную лицензию. Попытка запустить 1С на самом сервере в этот момент приведет к ошибке, так как лицензия уже занята процессом IIS.

Рассмотрим настройку публикации на веб-сервере

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

Если этот флаг установлен:

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

Выясним особенности работы веб-клиента (браузера)

Важно понимать фундаментальное различие: браузер (Chrome, Firefox, Safari) ничего не знает о защите 1С. Он не умеет искать программные лицензии на локальном диске пользователя или опрашивать USB-ключи. Поэтому для работы через браузер лицензию всегда должен выдать веб-сервер. Если у вас всего две однопользовательские лицензии, распределенные по разным ПК, работать вдвоем через браузер не получится. В такой конфигурации один человек всегда должен использовать Тонкий клиент со своей локальной лицензией.

Разберем правильное расположение файлов лицензий

Часто проблема кроется в правах доступа. Веб-сервер IIS работает от имени специальной учетной записи (обычно IUSR или IIS AppPool\Имя_Пула). Рассмотрим, где должны лежать файлы .lic, чтобы IIS их увидел:

  1. Лицензия, активированная в профиль пользователя (C:\Users\Имя\AppData\Local\1C\1Cv8\Conf), будет недоступна для веб-сервера.
  2. Для корректной работы через IIS лицензию необходимо активировать на компьютер. Тогда файл попадет в папку C:\ProgramData\1C\licenses.
  3. Проверьте права на папку C:\ProgramData\1C\licenses. Пользователю, от имени которого запущен пул приложений в IIS, должны быть даны права на чтение этой папки. Если вы используете защищенные конфигурации, изучите, как настроить один ключ СЛК для всех клиентов.

Проанализируем настройки Тонкого клиента

Чтобы заставить Тонкий клиент использовать локальную лицензию вместо серверной, проанализируем дополнительные параметры запуска. В окне выбора информационных баз выберите нужную базу, нажмите «Изменить» и перейдите на страницу настройки параметров запуска.

В поле «Дополнительные параметры запуска» можно принудительно указать способ поиска защиты. Хотя лицензия программная, иногда помогает использование ключа: /UseHwLicenses+ Это заставит платформу более тщательно искать локальные средства защиты, прежде чем обращаться к серверу за лицензией.

Настройка многопоточности в IIS

Посмотрим на специфическую настройку IIS, которая может влиять на «вылет» лицензий. В консоли управления IIS откройте «Пулы приложений», выберите пул, на котором работает ваша база, и зайдите в «Дополнительные параметры».

Найдите параметр «Максимальное количество рабочих процессов». Для стабильной работы с лицензиями в файловом режиме (особенно на десктопных ОС типа Windows 7/10/11) это значение обязательно должно быть равно 1. Если процессов будет больше, каждый из них может попытаться заблокировать лицензионный файл под себя, создавая конфликт доступа.

Диагностика через «Журнал поиска лицензий»

Когда в очередной раз возникнет ошибка «Лицензия не обнаружена», не спешите закрывать окно. Нажмите кнопку «Подробно». Чтобы быстрее разобраться в причинах, можно задействовать отчет «Ошибки технологического журнала». Рассмотрим, как читать этот журнал самостоятельно:

Проанализировав эти данные, вы сможете точно определить, в какой момент «сбивается» логика поиска: то ли клиент «забывает» про свою лицензию, то ли сервер «жадничает» и забирает всё на себя.

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

Для стабильной работы системы 1С через IIS на двух компьютерах с однопользовательскими лицензиями придерживайтесь следующей схемы:

  1. Публикуйте базу без флага «Выдавать клиентские лицензии сервером».
  2. На клиентском компьютере используйте только Тонкий клиент (не браузер!).
  3. Убедитесь, что на обоих ПК лицензии активированы «на компьютер» (в ProgramData), а не на пользователя.
  4. В настройках пула приложений IIS установите лимит в 1 рабочий процесс.

Соблюдение этих правил позволит системе четко разделять: сервер использует свою лицензию для локального сеанса, а клиент — свою локальную для сеанса через веб-сервер.

← На главную