При обновлении систем или необходимости тестирования новых релизов платформы системные администраторы часто сталкиваются с задачей параллельного запуска двух версий сервера «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
В данном примере мы использовали следующие ключи:
-port — главный порт агента сервера (по умолчанию 1540, мы меняем на 1640).-regport — порт менеджера кластера (по умолчанию 1541, меняем на 1641).-range — диапазон портов для рабочих процессов (по умолчанию 1560:1591, меняем на 1660:1691).-d — путь к каталогу кластера. Внимание: крайне важно указать отдельную папку для данных нового кластера, чтобы настройки разных версий не перемешались.Проанализируем ситуацию, описанную пользователем: «Старая версия работает, новая не видит лицензию». Одной из самых вероятных причин является различие в разрядности серверов. Выясним, почему это критично:
Лицензии на сервер 1С делятся на два типа:
Если на вашем сервере установлена лицензия для 32-разрядного сервера, и вы успешно использовали её для платформы 8.3.13 (x32), а новую платформу 8.3.17 решили установить как x64 — она не увидит вашу лицензию. В этом случае вы получите именно ту ошибку, о которой шла речь в теме. Проверьте разрядность установленных дистрибутивов в панели управления или через диспетчер задач (процесс rphost.exe).
Если вы используете программные лицензии (активация по пин-кодам), необходимо убедиться, что служба второй версии платформы имеет физический доступ к файлам лицензий. Рассмотрим сценарий, когда службы запущены от имени разных пользователей операционной системы:
USR1CV8.LocalSystem или другого пользователя.Программные лицензии обычно хранятся в каталоге C:\ProgramData\1C\licenses. Посмотрим на права доступа этой папки: если у пользователя, под которым работает новая служба, нет прав на чтение файлов в этой директории, сервер выдаст ошибку отсутствия лицензии. Рекомендуем запускать все экземпляры серверов 1С под одной технической учетной записью с соответствующими правами.
Если используется аппаратный ключ (USB), ситуация упрощается, но требует внимания к драйверам. Рассмотрим по шагам:
nnhasp.ini. Если вы перенастраивали его для работы через конкретные IP-адреса, убедитесь, что настройки доступны для обеих версий платформы. Обычно этот файл находится в C:\Program Files\1cv8\conf (или bin\conf конкретной версии).rphost на данной машине.После запуска службы необходимо правильно зарегистрировать её в консоли администрирования. Разберем типичную ошибку: попытку подключиться к новому серверу через старую консоль. Каждой версии платформы соответствует своя версия консоли (утилита mmc с соответствующей оснасткой). Хотя начиная с версии 8.3.15 консоль стала более универсальной, рекомендуется использовать утилиту администрирования той версии, которая является наиболее актуальной (в нашем случае 8.3.17).
При добавлении нового сервера в консоль укажите имя сервера и порт 1640 (тот самый порт, который мы указали в параметре -port при создании службы). После этого вы сможете создавать информационные базы на новом сервере.
В сообщениях форума (например, сообщение 5) упоминается настройка «Разрешить выдачу лицензий сервером». Разберем, почему это не относится к проблеме автора. Данная галочка в свойствах информационной базы отвечает исключительно за клиентские лицензии. Она позволяет серверу брать клиентские лицензии из своего состава и отдавать их пользователям, которые подключаются через веб-клиент или тонкий клиент без собственного ключа. Но чтобы эта настройка вообще сработала, сам сервер должен сначала успешно инициализироваться и найти свою серверную лицензию. Если серверная лицензия не найдена, кластер не запустится, и настройка выдачи клиентских лицензий будет недоступна.
Таким образом, для успешного запуска параллельных серверов 1С на одной лицензии мы должны:
-d).