При администрировании серверов 1С:Предприятия, особенно на платформах Linux, таких как CentOS 7, мы часто сталкиваемся с проблемами лицензирования. Одной из распространенных ситуаций является ограничение на количество одновременных подключений пользователей, несмотря на то что, казалось бы, все необходимые лицензии были приобретены. Давайте подробно разберем, почему может возникнуть такая ситуация, как ее диагностировать и какие шаги предпринять для устранения.
Мы рассмотрим конкретный случай, когда сервер 1С:Предприятия под управлением CentOS 7 с заявленной лицензией на 100 пользователей ограничивает работу с ПК до 10 человек, при этом веб-доступ работает без каких-либо ограничений. Ключевое сообщение, которое мы увидели при попытке подключиться более чем 10 пользователям, было: "На Сервере 1С не обнаружена программная лицензия." Это сообщение является отправной точкой для нашей диагностики.
Для начала, давайте проясним, какие типы лицензий существуют в экосистеме 1С:Предприятия и за что каждая из них отвечает. В нашем сценарии мы говорим о двух основных категориях:
В случае с программными лицензиями, как в нашем примере, они привязываются к ключевым параметрам компьютера (или виртуальной машины), таким как операционная система, дата установки, серийный номер, сетевое имя, модель материнской платы, свойства BIOS, компоненты процессора, MAC-адреса и перечень дисков. Если эти параметры изменяются, лицензия может "слететь", то есть стать недействительной.
Также существуют специализированные серверные лицензии, например, "Сервер МИНИ", которая имеет ограничение до 5 пользовательских сеансов и 1 сеанса конфигуратора. Хотя в нашем случае ограничение в 10 человек не соответствует напрямую "Серверу МИНИ", всегда полезно проверить, не установлен ли случайно такой тип лицензии, если вы сталкиваетесь с неожиданными ограничениями.
Важно понимать, что для работы в клиент-серверном варианте всегда требуются две отдельные лицензии: серверная для приложения сервера 1С:Предприятия и клиентские для запуска клиентского приложения.
Когда мы видим сообщение "На Сервере 1С не обнаружена программная лицензия", это однозначно указывает на проблему с серверной лицензией, а не с клиентскими. Это означает, что сам сервер 1С:Предприятия не может получить разрешение на свою работу, что, в свою очередь, блокирует или ограничивает выдачу клиентских лицензий и работу пользователей. Давайте проанализируем возможные причины и методы диагностики.
ring на Linux: Для управления программными лицензиями 1С на Linux-серверах существует специальная утилита ring. Мы можем найти ее в каталоге установки компонентов 1С:Предприятия, например, в `/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86` (где X.X.X+X — это номер версии).С помощью ring мы можем выполнить следующие действия:
/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86/ring license list
Эта команда покажет все активированные программные лицензии, их пин-коды и статусы.
/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86/ring license info --name <пин-код>-<регистрационный номер>
Это позволит нам увидеть, к каким параметрам привязана лицензия и ее текущее состояние.
/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86/ring license validate --name <пин-код>-<регистрационный номер>
Данная команда сообщит, действительна ли лицензия для текущей конфигурации сервера.
nethasp.ini: Важно помнить, что для программных лицензий файл nethasp.ini (который используется для указания IP-адреса сервера ключей HASP) не имеет никакого значения. Он актуален только для аппаратных ключей, когда служба "Hasp License manager" раздает лицензии клиентам. В нашем случае, когда мы имеем дело с программными лицензиями, попытка настройки nethasp.ini на рабочих местах не принесет результата и лишь запутает диагностику.В нашем конкретном случае, автор темы подтвердил: "у нас было 2 лицензии на сервер одна получена, другая нет. Нужна мне не получена." Это сразу сужает круг поиска и указывает на то, что серверная лицензия, которая должна была обеспечить 100 клиентских подключений, просто не была активирована.
Основываясь на проведенной диагностике, мы понимаем, что ключевым шагом является активация недостающей серверной лицензии. Для этого нам понадобится пин-код, входящий в комплект поставки лицензии на сервер 1С:Предприятия.
Несмотря на то что сервер 1С работает под Linux без графического интерфейса, наиболее привычный способ активации программных лицензий — через режим Конфигуратора. Для этого нам потребуется:
.lic будет создан в каталоге, который по умолчанию для Linux-серверов 1С является /var/1C/licenses/. Убедитесь, что этот файл появился и имеет корректные права доступа для пользователя, от имени которого запущен сервер 1С (обычно usr1cv8).ring (для опытных пользователей):
Если нет возможности или желания использовать графический режим, активацию можно выполнить напрямую через утилиту ring, хотя это более сложный процесс и требует точного знания всех параметров.
Пример команды для активации (параметры могут варьироваться в зависимости от версии 1С и типа лицензии):
/opt/1C/1CE/components/1c-enterprise-ring-X.X.X+X-x86/ring license activate \
--pin <пин-код_лицензии> \
--owner-name "Название_Организации" \
--owner-email "email@example.com" \
--owner-country "RU" \
--path /var/1C/licenses/
После активации сервер 1С:Предприятия должен быть перезапущен, чтобы он смог обнаружить новую лицензию.
LicData.txt: При активации лицензии, помимо файла .lic, часто создается файл LicData.txt, который содержит информацию о владельце, использованную при активации. Крайне важно сохранять этот файл, так как при повторной активации (например, после "слета" лицензии) вам потребуется ввести те же самые данные.Возникший в нашем случае вопрос, почему веб-доступ работает без ограничений, а доступ с ПК (тонкий/толстый клиент) ограничен, также имеет свое объяснение в механизмах поиска и получения лицензий:
Веб-клиент работает в среде интернет-браузера и не имеет возможности использовать локальные клиентские лицензии (файлы .lic или аппаратные ключи HASP, установленные на рабочей станции пользователя). Он получает лицензию исключительно от сервера 1С:Предприятия. Если серверная лицензия была частично не найдена (например, сервер мог запуститься в ограниченном режиме, или какие-то части лицензии были найдены, позволяющие веб-серверу функционировать), то веб-клиенты, подключенные через веб-сервер (например, Apache или Nginx), могли получать лицензии от него.
Для корректной выдачи лицензий веб-клиентам в параметрах информационной базы в кластере сервера 1С:Предприятия необходимо убедиться, что параметр "Разрешить выдачу лицензий сервером 1С:Предприятие" установлен в значение "Да".
Приоритет поиска лицензии для тонкого и толстого клиентов следующий:
В нашем случае, поскольку серверная лицензия была не активирована или не обнаружена, сервер 1С:Предприятия не мог выдавать клиентские лицензии. При этом, если локальных клиентских лицензий у пользователей не было, они сталкивались с ограничением. Это объясняет, почему доступ с ПК был ограничен, в отличие от веб-доступа, который полностью полагается на серверную часть.
В процессе обсуждения часто возникает вопрос о лицензировании тестовых баз данных. Мы можем однозначно утверждать следующее:
Приобретение дополнительных лицензий для тестовых баз данных, как правило, не требуется.
Если все необходимые серверные и клиентские лицензии уже получены и активированы, и вы создаете тестовые информационные базы:
В этом случае, созданные тестовые базы будут использовать уже имеющиеся лицензии. Вы можете создавать сколько угодно информационных баз, в том числе и тестовых, при условии, что они работают в рамках приобретенных лицензионных ограничений (например, не превышают общее количество одновременных пользователей, доступных по клиентским лицензиям, и используют активированную серверную лицензию).
Однако, если вы планируете развернуть тестовую базу на отдельном сервере или в отдельной виртуальной машине, которая не имеет доступа к уже активированной серверной лицензии, то вам потребуется либо перенести одну из имеющихся лицензий на этот новый сервер (если это позволяет тип лицензии и количество резервных активаций), либо приобрести новую серверную лицензию для тестового окружения.
Проблема ограничения количества пользователей на сервере 1С:Предприятия на CentOS 7, особенно когда веб-доступ работает без проблем, чаще всего указывает на отсутствие или некорректную активацию программной серверной лицензии 1С:Предприятия. Тщательная диагностика с использованием журнала поиска лицензий и утилиты ring на Linux-сервере, а также понимание различий в механизмах получения лицензий различными типами клиентов, позволяют быстро выявить и устранить проблему.
Мы настоятельно рекомендуем всегда внимательно проверять статус всех приобретенных лицензий, сохранять пин-коды и данные о владельце, а также быть осторожными при изменении параметров серверного оборудования или виртуальных машин для избежания "слета" программных лицензий. Эти меры помогут обеспечить стабильную и бесперебойную работу вашей системы 1С:Предприятия.