Как решить проблемы с активацией и раздачей лицензий на сервере 1С:Предприятие 8.3?

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

При администрировании серверных решений «1С:Предприятие 8.3» одной из наиболее запутанных задач часто становится настройка и распределение клиентских лицензий. Ситуация существенно усложняется, когда в одной локальной сети или на одном сервере смешиваются программные лицензии (пин-коды) и аппаратные ключи защиты (HASP USB). Администраторы часто сталкиваются с тем, что после успешной активации многопользовательской лицензии (например, на 10 или 50 пользователей) сервер упорно отказывается раздавать их клиентам, сообщая об отсутствии свободных лицензий, при этом продолжая без проблем раздавать аппаратные или старые программные ключи.

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

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

Существует распространенное заблуждение (которое также упоминалось в Сообщении 25 форума), что аппаратные ключи защиты «глушат» программные лицензии и их одновременное использование невозможно. Проанализируем, так ли это на самом деле.

Начиная с версии платформы 8.2.10, разработчики «1С» реализовали полноценную поддержку одновременного использования аппаратной и программной защиты. Однако между ними возникает конфликт приоритетов на этапе опроса ключей клиентским приложением. Рассмотрим подробнее стандартный порядок (алгоритм) поиска свободной лицензии, когда пользователь запускает тонкий или толстый клиент:

  1. Локальный компьютер (рабочая станция): Сначала клиент пытается обнаружить программные лицензии на локальном ПК. Поиск производится в каталогах профиля пользователя и в общих системных папках.
  2. Локальный HASP-ключ: Если программная лицензия не найдена, клиент опрашивает локальные USB-порты на предмет наличия однопользовательского аппаратного ключа защиты (HASP).
  3. Сетевые HASP-ключи: Далее клиент отправляет широковещательный запрос в локальную сеть для поиска менеджеров лицензий HASP License Manager. Если в сети развернуты аппаратные многопользовательские ключи (красного цвета), клиент пытается забрать лицензию оттуда.
  4. Запрос у сервера «1С:Предприятие»: И только если на предыдущих трех шагах свободная лицензия не была обнаружена, клиент обращается к серверу приложений «1С» с запросом: «Выдай мне лицензию». В этот момент сервер начинает искать свободные лицензии из своего пула (сначала программные файлы .lic, затем — аппаратные ключи, подключенные к самому серверу приложений).

В чем заключается конфликт: Если на рабочих местах пользователей или в сети активен аппаратный ключ и запущен HASP License Manager, клиентские компьютеры забирают лицензии на шаге 3. Они просто не доходят до шага 4 и не запрашивают у сервера «1С» новые программные лицензии (например, те самые 10 или 15 пользователей). В результате пул серверных программных лицензий остается нетронутым, а пользователи аппаратных ключей быстро исчерпывают свой лимит.

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

/UseHwLicenses-

Обратим внимание на знак «минус» на конце параметра. Он дает платформе четкое указание: полностью пропустить шаги поиска локальных и сетевых HASP-ключей и сразу перейти к получению программной лицензии от сервера «1С».

Выясним причину ошибки: Однопользовательские или Многопользовательские пин-коды

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

Программные продукты «1С» на несколько рабочих мест комплектуются двумя принципиально разными наборами пин-кодов:

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

Важное ограничение Центра лицензирования: Как только вы активируете хотя бы один пин-код из однопользовательского набора, многопользовательский пин-код из этого же комплекта навсегда блокируется. И наоборот: если вы активировали многопользовательский код, все однопользовательские пин-коды становятся недействительными.

Как исправить ситуацию: Если произошла ошибочная активация, самостоятельно решить проблему не получится. Потребуется написать официальное обращение в Центр лицензирования «1С» по адресу lic@1c.ru. В письме подробно опишите ситуацию, укажите регистрационный номер программного продукта, ИНН организации и приложите сканы регистрационной карточки (желтой бумажки). Специалисты аннулируют ошибочную транзакцию и вышлют вам новый резервный пин-код для правильной многопользовательской активации на сервере.

Настроим выдачу лицензий в свойствах информационной базы

Прежде чем приступать к сложным манипуляциям с файловой системой, проверим самую простую, но часто упускаемую настройку в консоли администрирования кластера серверов «1С».

Посмотрим на свойства нашей информационной базы:

  1. Откроем утилиту «Администрирование серверов 1С:Предприятия».
  2. Раскроем дерево нашего кластера и перейдем в ветку «Информационные базы».
  3. Найдем базу, у пользователей которой возникают проблемы с лицензированием, и откроем ее свойства (контекстное меню — «Свойства»).
  4. Найдем параметр «Разрешить выдачу лицензий сервером».
  5. Убедимся, что значение этого параметра установлено в «Да».

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

Проанализируем разницу в механизмах подсчета лицензий (сеансовый и компьютерный учет)

Часто после перехода с аппаратных USB-ключей на программные лицензии системные администраторы начинают получать жалобы от пользователей на внезапную нехватку лицензий. Номинально лицензий куплено столько же, сколько было раньше, но теперь их почему-то не хватает. Выясним причину этого феномена, скрытую в различиях логики подсчета сеансов:

Этот фактор необходимо обязательно учитывать при расчете необходимого количества программных лицензий, особенно если ваши сотрудники привыкли работать одновременно в нескольких базах (например, «Бухгалтерия», «Зарплата и управление персоналом» и «Управление торговлей»).

Проверим права доступа службы сервера к каталогу лицензий

Перейдем к техническим нюансам файловой системы Windows. Начиная с версии 8.3, программные лицензии по умолчанию сохраняются в общую системную директорию:

C:\ProgramData\1C\licenses

В этой папке хранятся файлы с расширением .lic. Однако сама служба сервера приложений «1С» работает в операционной системе не от имени Администратора, а под специальной ограниченной учетной записью. Обычно это пользователь USR1CV8 или локальная системная служба SYSTEM.

Если активация лицензии производилась администратором вручную через запуск платформы «от имени Администратора», созданные файлы .lic могли унаследовать права доступа, закрывающие их чтение для других учетных записей.

Проанализируем и настроим права доступа по шагам:

  1. Перейдем в проводнике к каталогу C:\ProgramData\1C\.
  2. Кликнем правой кнопкой мыши по папке licenses и выберем пункт «Свойства».
  3. Перейдем на вкладку «Безопасность» и нажмем кнопку «Изменить».
  4. В открывшемся списке найдем пользователя, под которым запущена служба сервера «1С» (например, USR1CV8 или Служба).
  5. Если такого пользователя в списке нет, нажмем кнопку «Добавить» и введем его имя.
  6. Установим для этого пользователя права «Полный доступ» (или как минимум «Чтение», «Запись» и «Модификация»).
  7. Нажмем «Применить» и закроем окна свойств, убедившись, что права успешно унаследовались всеми вложенными файлами .lic.

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

Устраним конфликт дублирования файлов лицензий

Иногда в процессе бесконечных попыток активировать систему (особенно при получении резервных пин-кодов взамен утерянных) в каталоге C:\ProgramData\1C\licenses скапливается несколько файлов лицензий, созданных для одного и того же регистрационного номера продукта.

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

Решение: Нам необходимо навести порядок в папке лицензий. Оставьте в папке C:\ProgramData\1C\licenses только один, самый последний по дате изменения файл .lic для каждого уникального регистрационного номера программы. Все остальные, более старые или дублирующиеся файлы, переместите во временную резервную папку в другом месте на диске (чтобы платформа «1С» не могла их просканировать).

Пошаговый сценарий развертывания лицензий на терминальном сервере

Рассмотрим классический и наиболее надежный сценарий развертывания программных лицензий в связке «Сервер 1С + Терминальный сервер (RDP)», который обсуждался в сообщениях 20–24 форума.

Представим структуру: у нас есть выделенный сервер приложений «1С:Предприятие», СУБД MS SQL Server и отдельный терминальный сервер, на который пользователи заходят по RDP и запускают тонкий клиент для работы.

Как правильно выполнить активацию клиентских лицензий в такой конфигурации?

  1. Активация лицензии на сервер «1С»: Данную лицензию мы активируем непосредственно на самом сервере приложений «1С». При запуске Конфигуратора на этом сервере выбираем пункт «Получить лицензию», вводим пин-код лицензии на сервер и привязываем ее к аппаратным параметрам этого компьютера.
  2. Активация многопользовательских клиентских лицензий: Лучшим решением будет активировать все пакеты клиентских лицензий (и на 5, и на 10, и на 50 пользователей) также на сервере приложений «1С». При этом во время процедуры активации обязательно указываем способ привязки лицензии — «К компьютеру сервера 1С:Предприятия».
  3. Настройка тонкого клиента на терминальном сервере: На сервере терминалов мы устанавливаем только «Тонкий клиент». Поскольку все наши клиентские лицензии установлены на сервере «1С», они будут централизованно выдаваться сервером при каждом подключении пользователя к базе. Нам не придется активировать лицензии для каждого пользователя терминала отдельно, а администрирование всей системы лицензирования сведется к контролю одной папки на сервере приложений.

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

← На главную