Как запустить вторую службу сервера 1С на одном физическом сервере и решить проблемы с лицензированием

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

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

Лицензионная политика: сколько ключей нужно на самом деле?

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

  1. Аппаратные ключи (HASP): Если у вас установлен один физический ключ на сервер (например, на 64-разрядную версию), он будет обслуживать все запущенные службы сервера 1С на этой машине. Важно учитывать, что в один сервер нельзя вставить два ключа одной серии (например, два ключа «Server 64-bit»), так как драйвер и система защиты увидят только один из них.
  2. Программные лицензии: Файл лицензии .lic привязывается к параметрам сервера (имя, процессор, ОС). Поскольку при запуске второй службы эти параметры не меняются, все экземпляры сервера 1С будут успешно использовать одну и ту же активированную лицензию.
  3. Разрядность платформы: Это критический момент. Если у вас установлена лицензия на 32-разрядный сервер, а вы пытаетесь запустить вторую службу 64-разрядной версии, система закономерно потребует соответствующую лицензию. Рассмотрим ситуацию, когда оба сервера имеют одинаковую разрядность — в этом случае дополнительная покупка не требуется.

Техническая настройка второй службы по шагам

Для корректной работы двух и более служб недостаточно просто изменить порты в настройках. Проанализируем ключевые параметры, которые должны быть уникальными для каждого экземпляра.

1. Уникальный каталог данных кластера (параметр -d)

Каждая служба должна иметь свой собственный каталог реестра кластера. Это место, где хранятся списки баз, настройки рабочих процессов и сеансов. Если запустить вторую службу с тем же путем к данным, что и у первой, возникнет критический конфликт доступа к файлам 1CV8Reg.lst. Выясним, как это настроить при создании службы через командную строку:


sc create "1C:Enterprise 8.3 Server Second" binPath= "\"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\ProgramData\1C\1cv8_second\"" displayname= "1C:Enterprise 8.3 Server Second" depend= tcpip start= auto

В этом примере мы создаем новую службу с именем 1C:Enterprise 8.3 Server Second и указываем ей путь к новому каталогу данных C:\ProgramData\1C\1cv8_second. Обратите внимание на кавычки и пробелы — это частая причина ошибок при регистрации службы.

2. Разделение портов

Проанализируем стандартный набор портов 1С. По умолчанию это 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560-1591 (рабочие процессы). Для второй службы необходимо выделить новый диапазон. Рассмотрим типичную схему смещения:

Решение проблемы «Просит лицензию» при запуске

Если технически всё настроено верно, но сервер всё равно сообщает об отсутствии лицензии, проанализируем возможные причины, основываясь на опыте решения подобных инцидентов.

Конфликт идентификаторов баз

Рассмотрим специфическую ситуацию: если вы копировали файлы реестра кластера (папку snccntry.lst и другие) из одной службы в другую, идентификаторы информационных баз могут дублироваться. Это приводит к тому, что менеджер лицензий или сам сервер 1С начинает «путаться» в объектах защиты. В такой ситуации рекомендуется:

  1. Остановить вторую службу.
  2. Очистить каталог данных кластера (параметр -d), оставив его пустым.
  3. Запустить службу и заново добавить информационные базы через консоль администрирования.

Права доступа системной учетной записи

Выясним причину, связанную с правами. Часто службы запускаются от имени разных пользователей (например, USR1CV8 и LocalSystem). Если программные лицензии расположены в папке C:\ProgramData\1C\Licenses, убедитесь, что у обоих пользователей есть права на чтение этой директории. В противном случае одна служба увидит лицензию, а вторая — нет.

Использование современного сервиса лицензирования

В версиях платформы, начиная с 8.3.15, мы можем применить более элегантное решение — выделенный сервис лицензирования. Рассмотрим его преимущества:

Это отдельное приложение (служба), которое централизованно управляет выдачей лицензий. Вместо того чтобы настраивать каждый кластер на поиск ключей или файлов .lic, мы можем указать в настройках каждого экземпляра сервера адрес этого сервиса. Это полностью снимает вопросы о том, видит ли конкретная служба ragent аппаратный ключ или файл лицензии.

Для настройки взаимодействия с сервисом лицензирования в консоли администрирования кластера необходимо:

  1. Перейти в свойства кластера.
  2. Найти раздел управления лицензиями.
  3. Указать адрес и порт развернутого сервиса лицензирования.

Резюме и практические советы

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

Во-первых, убедитесь, что разрядность устанавливаемой службы совпадает с имеющейся лицензией. Если ключ 64-битный, он покроет любую службу. Если 32-битный — 64-битная служба работать не будет.

Во-вторых, при регистрации службы через sc create обязательно задавайте уникальный путь к данным (-d) и уникальные порты (-port, -regport, -range). Никогда не используйте общую папку данных для разных служб.

В-третьих, если возникают ошибки с лицензиями, проверьте, не дублируются ли UID баз в списке. Как показал опыт обсуждения на форуме, это одна из неочевидных причин «глюков» системы защиты. Также проанализируйте содержимое файла nnhsrv.ini, если используете сетевые ключи HASP — возможно, требуется явно указать IP-адрес сервера с ключом для каждой службы.

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

← На главную