Ситуация, когда необходимо поднять второй экземпляр сервера «1С:Предприятие» на той же физической или виртуальной машине, где уже функционирует рабочий (production) сервер, встречается довольно часто. Основная мотивация — экономия на серверных лицензиях (так как одна лицензия на сервер позволяет запускать неограниченное количество служб в рамках одной операционной системы) и эффективное использование имеющихся аппаратных ресурсов. В данной статье мы подробно разберем, как реализовать такую схему для целей отладки, не нарушая работу основной системы.
Прежде чем приступать к технической настройке, проанализируем правовую сторону вопроса. Согласно лицензионной политике фирмы «1С», серверная лицензия привязывается к компьютеру (инстансу ОС). Это означает, что если на одном сервере запущено две или три службы ragent.exe, дополнительная лицензия на сервер не требуется. Однако помните, что клиентские лицензии будут расходоваться в обычном режиме для каждого подключения к любой из баз на обоих серверах.
С точки зрения архитектуры, нам не нужно устанавливать платформу во второй раз в другой каталог. Мы можем использовать одни и те же исполняемые файлы (бинарники) для запуска нескольких независимых служб. Главная задача — полностью изолировать их друг от друга на уровне сетевых портов и рабочих данных.
Стандартный сервер 1С занимает определенный диапазон портов. Чтобы второй сервер запустился успешно, мы должны назначить ему свободные порты, которые не пересекаются с основным сервером. Разберем, какие именно параметры нам нужно изменить:
rphost. Для второго сервера следует выделить свой диапазон, например 2560:2591.Это критически важный момент. По умолчанию сервер 1С хранит настройки кластера, списки баз и сеансов в каталоге %ProgramFiles%\1cv8\srvinfo. Если запустить вторую службу без указания отдельного каталога, она попытается использовать те же файлы, что приведет к неминуемому повреждению данных обоих кластеров.
Проанализируем параметр -d. При создании новой службы мы обязательно должны указать путь к новой пустой папке, например C:\1C_Data\DebugServer. Именно там вторая служба создаст свои собственные конфигурационные файлы 1CV8Reg.lst.
Рассмотрим самый надежный способ — создание новой службы Windows с помощью утилиты sc create. Откройте командную строку от имени администратора и выполните команду, адаптировав пути под вашу версию платформы. Обратите внимание на пробелы после знаков равенства — они обязательны в синтаксисе sc.
sc create "1C:Enterprise 8.3 Debug Server" binPath= "\"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\1C_Data\DebugServer\" -debug" start= auto displayname= "1C:Enterprise 8.3 Debug Server"
Разберем ключи, которые мы использовали:
-srvc — запуск в режиме службы.-agent — запуск агента сервера.-regport 2541 — порт главного менеджера кластера.-port 2540 — порт агента.-range 2560:2591 — диапазон портов для рабочих процессов.-d "C:\1C_Data\DebugServer" — путь к реестру кластера.-debug — обязательный флаг для отладочного сервера, который включает возможность подключения конфигуратора к процессам сервера.Важное замечание: Если при запуске службы возникает ошибка, связанная с зависимостями, проанализируйте настройки системных зависимостей. В некоторых случаях служба по умолчанию пытается найти tcpip6. Если протокол IPv6 в вашей сети не используется или не настроен, это может блокировать запуск. В таком случае в реестре (в ветке службы) можно скорректировать параметр DependOnService.
Если отладочный сервер нужен вам лишь эпизодически, не обязательно «засорять» систему лишними службами. Мы можем запустить сервер как обычное приложение. В этом случае сервер будет работать до тех пор, пока открыто окно консоли.
Для этого создайте .bat файл со следующим содержимым:
"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe" -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\1C_Data\DebugServer" -debug
pause
Выясним преимущество этого метода: вы видите все сообщения сервера в реальном времени, а после завершения отладки просто закрываете окно, высвобождая оперативную память.
Начиная с современных версий платформы (8.3.7 и выше), 1С рекомендует использовать отладку по протоколу HTTP. Для второго сервера это особенно удобно, так как не нужно беспокоиться о динамических портах отладки. Чтобы включить этот режим, добавьте в строку запуска параметры:
-http -debugserverport 2543
В этом случае в настройках конфигуратора при подключении к базе нужно будет указать адрес отладочного сервера и выбранный порт.
После того как служба успешно запущена, нам необходимо «увидеть» ее в стандартной консоли mmc (Администрирование серверов 1С Предприятия). По умолчанию консоль подключается к порту 1540. Чтобы добавить наш новый сервер:
localhost (или имя вашего сервера), а в поле «Порт» укажите 2540 (тот самый порт агента, который мы прописали в ключе -port).Теперь вы можете создавать информационные базы на отладочном сервере точно так же, как на рабочем, не опасаясь их перемешивания.
Мы проанализировали основные способы сосуществования двух серверов 1С на одном хосте. Помните, что хотя ресурсы позволяют такой запуск, интенсивная отладка (например, замер производительности на больших циклах) может создавать нагрузку на процессор и дисковую подсистему, что косвенно отразится на пользователях рабочего сервера.
Краткий чек-лист для проверки:
-d создан заранее и у пользователя, от имени которого идет запуск (например, USR1CV8), есть права на запись в эту папку.-debug.Следуя этой инструкции, вы сможете создать полноценную изолированную среду для разработки и тестирования, минимизировав риски для стабильности бизнес-процессов.