Как установить два сервера 1С разных версий на один физический сервер с одной лицензией

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

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

Лицензионная политика: одна лицензия на один хост

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

Рассмотрим подробнее механизм проверки. Серверная лицензия проверяется не «версией платформы», а рабочим процессом rphost в момент инициализации. Если несколько рабочих процессов разных версий запущены в рамках одной операционной системы (одного сетевого имени и ID оборудования), они могут успешно использовать общую защиту. Если у вас возникла ошибка «Лицензия не найдена», проблема кроется не в ограничении количества серверов, а в технических настройках окружения.

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

Для того чтобы два сервера «мирно» сосуществовали, нам необходимо выполнить полную изоляцию их сетевых ресурсов. Выясним причину конфликтов: по умолчанию любая версия 1С пытается занять порты 1540, 1541 и диапазон 1560–1591.

Рассмотрим, как правильно зарегистрировать вторую службу с измененными портами. Допустим, первая служба работает на стандартных портах. Для второй службы (8.3.17) мы будем использовать смещение (например, 1640, 1641 и т.д.).

Для регистрации новой службы в командной строке (от имени администратора) используется утилита sc create. Проанализируем пример параметров запуска исполняемого файла ragent.exe:


sc create "1C:Enterprise 8.3.17 Server" binPath= "\"C:\Program Files\1cv8\8.3.17.xxxx\bin\ragent.exe\" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d \"C:\ProgramData\1C\Server83_17\"" displayname= "1C:Enterprise 8.3.17 Server" depend= LanmanWorkstation/Messenger/Tcpip/dnscache start= auto

В данном примере мы использовали следующие ключи:

  1. -port — главный порт агента сервера (по умолчанию 1540, мы меняем на 1640).
  2. -regport — порт менеджера кластера (по умолчанию 1541, меняем на 1641).
  3. -range — диапазон портов для рабочих процессов (по умолчанию 1560:1591, меняем на 1660:1691).
  4. -d — путь к каталогу кластера. Внимание: крайне важно указать отдельную папку для данных нового кластера, чтобы настройки разных версий не перемешались.

Проблема разрядности (x32 vs x64)

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

Лицензии на сервер 1С делятся на два типа:

Если на вашем сервере установлена лицензия для 32-разрядного сервера, и вы успешно использовали её для платформы 8.3.13 (x32), а новую платформу 8.3.17 решили установить как x64 — она не увидит вашу лицензию. В этом случае вы получите именно ту ошибку, о которой шла речь в теме. Проверьте разрядность установленных дистрибутивов в панели управления или через диспетчер задач (процесс rphost.exe).

Особенности поиска программных лицензий

Если вы используете программные лицензии (активация по пин-кодам), необходимо убедиться, что служба второй версии платформы имеет физический доступ к файлам лицензий. Рассмотрим сценарий, когда службы запущены от имени разных пользователей операционной системы:

  1. Первый сервер работает от имени USR1CV8.
  2. Второй сервер запущен от имени LocalSystem или другого пользователя.

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

Взаимодействие с HASP-ключом

Если используется аппаратный ключ (USB), ситуация упрощается, но требует внимания к драйверам. Рассмотрим по шагам:

Настройка консоли администрирования

После запуска службы необходимо правильно зарегистрировать её в консоли администрирования. Разберем типичную ошибку: попытку подключиться к новому серверу через старую консоль. Каждой версии платформы соответствует своя версия консоли (утилита mmc с соответствующей оснасткой). Хотя начиная с версии 8.3.15 консоль стала более универсальной, рекомендуется использовать утилиту администрирования той версии, которая является наиболее актуальной (в нашем случае 8.3.17).

При добавлении нового сервера в консоль укажите имя сервера и порт 1640 (тот самый порт, который мы указали в параметре -port при создании службы). После этого вы сможете создавать информационные базы на новом сервере.

Резюме: почему решение «раздавать лицензии сервером» не поможет

В сообщениях форума (например, сообщение 5) упоминается настройка «Разрешить выдачу лицензий сервером». Разберем, почему это не относится к проблеме автора. Данная галочка в свойствах информационной базы отвечает исключительно за клиентские лицензии. Она позволяет серверу брать клиентские лицензии из своего состава и отдавать их пользователям, которые подключаются через веб-клиент или тонкий клиент без собственного ключа. Но чтобы эта настройка вообще сработала, сам сервер должен сначала успешно инициализироваться и найти свою серверную лицензию. Если серверная лицензия не найдена, кластер не запустится, и настройка выдачи клиентских лицензий будет недоступна.

Таким образом, для успешного запуска параллельных серверов 1С на одной лицензии мы должны:

  1. Развести службы по разным сетевым портам.
  2. Использовать разные рабочие каталоги (параметр -d).
  3. Проверить соответствие разрядности (x32/x64) сервера и купленной лицензии.
  4. Обеспечить права доступа к файлам программных лицензий для всех служб.
← На главную