Запуск нескольких экземпляров сервера 1С:Предприятие на одной машине — задача, с которой сталкиваются многие администраторы при необходимости разделить тестовую и рабочую базы, использовать разные версии платформы или настроить сервер с отладкой отдельно от основного. Разберем детально, как выполнить эту настройку, чтобы избежать конфликтов и обеспечить стабильную работу систем.
Главная сложность при установке второго сервера 1С заключается в том, чтобы заставить операционную систему видеть их как два независимых процесса. Для этого необходимо обеспечить уникальность следующих параметров для каждого экземпляра:
ragent, rmngr и диапазон портов для рабочих процессов rphost.-d должен указывать на разные физические папки на диске.Чтобы новая установка не перезаписала существующую службу, при запуске инсталлятора новой версии платформы 1С обязательно снимайте галочку «Установить как службу». Если этого не сделать, установщик может подменить путь к исполняемому файлу в текущей службе, что приведет к остановке работающего сервера. Файлы платформы будут успешно распакованы в нужную директорию, но служба останется прежней, что и требуется для ручной настройки.
Для создания новой службы воспользуемся инструментом sc. Рассмотрим пример скрипта для автоматизации этой задачи. Создайте файл с расширением .bat и вставьте в него следующий код:
@echo off
rem Пример запуска: register-service 8.3.11.3034 25 "C:\Program Files\1cv8\srvinfo2541"
set SrvUserName=.\USR1CV8
set SrvUserPwd=ВАШ_ПАРОЛЬ
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvcName="1C:Enterprise 8.3 Server Agent %CtrlPort% %1"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d \"%~3\" -debug"
set Desctiption="1C:Enterprise 8.3 Server Agent. Paramaters: %1, %CtrlPort%, %BasePort%, %RangePort%"
if not exist "%~3" mkdir "%~3"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Tcpip/Dnscache/lanmanworkstation/lanmanserver/
Разберем важные нюансы этого скрипта:
.\USR1CV8.depend: в строке зависимостей обязательно должен присутствовать слэш в конце списка служб.-d. Не забудьте вручную предоставить пользователю USR1CV8 полные права на созданную папку srvinfo.Более современный и читаемый способ создания службы — использование командлета New-Service в PowerShell. Пример команды:
New-Service -Name '1C:Enterprise 8.3 Server Agent (8.3.9.2309)' ^
-BinaryPathName '"C:\Program Files (x86)\1cv8\8.3.9.2309\bin\ragent.exe" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\Srvinfo\8.3.9.2309" -debug' ^
-DisplayName 'Агент сервера 1С:Предприятия 8.3.9.2309' ^
-Description 'Агент сервера 1С:Предприятия 8.3.9.2309'
Когда службы запущены, возникает вопрос управления ими. Стандартная консоль администрирования может конфликтовать, если зарегистрированы компоненты разных версий. Вместо перерегистрации библиотек через regsvr32, мы рекомендуем добавлять в одну оснастку mmc.exe несколько элементов Администрирование серверов 1С:Предприятия. При добавлении каждого узла просто указывайте соответствующий порт (например, localhost:1540 для первого сервера и localhost:2540 для второго).
При работе двух экземпляров сервера на одном компьютере учитывайте следующее:
.lic, используя разные пути для параметров сервера. Однако наиболее стабильным решением остается использование аппаратных ключей HASP, которые видны всем процессам в рамках одного сервера.Docker. Контейнеризация позволяет полностью исключить конфликты путей, библиотек и настроек служб, так как каждый сервер 1С работает в собственной изолированной среде.ragent.exe в реестре Windows в ветке конкретной службы.Следуя этим шагам, вы сможете гибко настраивать серверную среду 1С, обеспечивая независимую работу нескольких кластеров на одной физической машине.