В среде корпоративной разработки и администрирования информационных систем часто возникает нестандартная задача, требующая изоляции процессов или тестирования различных версий платформы на одной физической или виртуальной машине. Обычная установка 1С:Предприятие регистрирует один системный сервис, который берет под контроль стандартные порты и пути конфигурации. Однако для сложных сценариев отладки, миграции баз данных или организации мультитенантной среды требуется запустить второй экземпляр службы.
Решение этой проблемы лежит в плоскости ручного управления системными сервисами Windows и глубокой настройки конфигурационных файлов кластера. Вам предстоит создать копию исполняемых файлов, зарегистрировать новый сервис с уникальным именем и корректно разнести сетевые порты, чтобы избежать конфликтов прослушивания. Это позволит вам иметь две полностью независимые среды выполнения на одном хосте.
Данная процедура требует прав локального администратора и внимательности при работе с реестром и командной строкой. Ошибка в нумерации портов или путях может привести к тому, что ни один из агентов не запустится, или же консоль управления кластером перестанет видеть нужные ресурсы. Ниже мы детально разберем каждый этап этого процесса.
Подготовка файловой структуры и копирование компонентов
Первым шагом является создание изолированного пространства для второго агента. Стандартный установщик платформы не предусматривает возможность выбора альтернативного каталога для второго экземпляра в рамках одного сеанса установки, поэтому мы будем действовать вручную. Вам необходимо скопировать содержимое папки сервера в новое расположение.
Найдите директорию, куда изначально была установлена платформа. Обычно это путь C:\Program Files\1cv8 или C:\Program Files (x86)\1cv8. Внутри этой папки найдите подкаталог с номером версии, например, 8.3.22.1234. Создайте новую папку в корне диска или в удобном месте, например, C:\1C_Second_Agent, и скопируйте туда все файлы из оригинальной папки версии. Особое внимание уделите исполняемым файлам ragent.exe и rmngr.exe.
Важно сохранить структуру подпапок внутри новой директории, так как агент сервера обращается к вспомогательным библиотекам и конфигурационным файлам относительно своего расположения. Если вы переместите только исполняемый файл, он не сможет найти необходимые зависимости и завершит работу с ошибкой инициализации.
⚠️ Внимание: Убедитесь, что у учетной записи, от имени которой будет запускаться новый сервис, есть права на чтение и запись в новую папку. Отсутствие прав доступа — самая частая причина молчаливого падения службы при старте.
Используйте команду robocopy для копирования с сохранением всех атрибутов файлов и прав доступа: robocopy "C:\Program Files\1cv8\8.3.xx.xxxx" "C:\1C_Second_Agent" /E /COPYALL
Регистрация нового системного сервиса Windows
После подготовки файлов необходимо зарегистрировать новый сервис в операционной системе. Стандартный агент уже занимает имя службы 1C:Enterprise 8.3 Server Agent, поэтому новому экземпляру требуется уникальное системное имя. Мы будем использовать утилиту командной строки sc.exe, встроенную в Windows.
Запустите командную строку от имени администратора. Вам потребуется сформировать команду создания службы, указав путь к скопированному исполняемому файлу ragent.exe. Имя службы должно быть уникальным, например, 1C_Second_Agent. Также критически важно указать параметры запуска, определяющие имя кластера и порты.
sc create 1C_Second_Agent binPath= "C:\1C_Second_Agent\ragent.exe -cluster C:\1C_Second_Agent" DisplayName= "1C Second Agent Service" start= auto
Обратите внимание на синтаксис команды: пробел после знака равно = является обязательным требованием утилиты sc. Если вы опустите этот пробел, система выдаст ошибку синтаксиса и служба не будет создана. После успешного выполнения команды новый сервис появится в списке системных служб, но пока не будет запущен.
☑️ Регистрация службы
Настройка сетевых портов и избежание конфликтов
Самый критический этап настройки — разведение сетевых портов. По умолчанию агент сервера 1С использует порт 1541 для общения с клиентами и консолью администрирования, а также динамический диапазон портов для рабочих процессов. Два агента не могут слушать один и тот же TCP-порт на одном IP-адресе.
Для второго агента необходимо выбрать свободные порты. Обычно выбирают значения, близкие к стандартным, но отличающиеся последней цифрой, например, 1542 для основного порта агента. Это изменение производится через ключи командной строки при регистрации службы или через параметры реестра, если служба уже создана.
Рекомендуется явно указать порты при создании службы, добавив ключи -port и -range. Это гарантирует, что даже после перезагрузки сервера конфигурация не собьется. Пример модификации пути к исполняемому файлу в свойствах службы:
"C:\1C_Second_Agent\ragent.exe" -cluster "C:\1C_Second_Agent" -port 1542 -range 1560,1590
Здесь параметр -range задает диапазон портов, которые менеджер кластера будет выделять для рабочих процессов (rphost). Убедитесь, что выбранный диапазон не пересекается с диапазонами первого агента и не занят другими приложениями на сервере.
⚠️ Внимание: Не забудьте открыть новые порты в брандмауэре Windows. Если порты второго агента будут заблокированы, клиенты не смогут подключиться к информационным базам, размещенным на этом кластере, хотя сама служба будет работать исправно.
Как проверить занятость порта?
Используйте команду netstat -ano | findstr :1542 в командной строке. Если вывод пуст, порт свободен. Если отображается PID процесса, значит порт уже используется другим приложением.
Конфигурация кластеров и рабочих процессов
После запуска службы необходимо убедиться, что кластеры корректно инициализированы. Каждый агент сервера управляет своим набором кластеров. Для второго агента часто требуется создать отдельный центральный сервер кластера или перенастроить существующий на работу с новыми параметрами.
Используйте консоль администрирования кластеров серверов 1С:Предприятия. При подключении укажите имя компьютера (localhost) и новый порт агента (например, 1542). Вы должны увидеть пустой список кластеров или кластер по умолчанию. Для полноценной работы рекомендуется создать новый кластер с уникальным именем через контекстное меню.
В свойствах нового кластера можно настроить параметры безопасности, лимиты памяти и расписание регламентных заданий. Важно понимать, что рабочие процессы rphost.exe, запущенные вторым агентом, будут потреблять оперативную память независимо от процессов первого агента.
| Параметр | Агент 1 (Стандарт) | Агент 2 (Дополнительный) | Назначение |
|---|---|---|---|
| Имя службы Windows | 1C:Enterprise 8.3 Server Agent | 1C_Second_Agent | Уникальная идентификация в ОС |
| Порт агента | 1541 | 1542 | Сетевой адрес для подключения |
| Диапазон портов | 1535-1554 | 1560-1590 | Порты для рабочих процессов |
| Путь к данным | C:\ProgramData\1C\... | C:\1C_Second_Agent\data | Хранение временных файлов |
Разделение диапазонов портов — обязательное условие стабильной работы двух агентов. Пересечение портов приведет к непредсказуемым разрывам соединений.
Управление правами доступа и пользователями
Безопасность многоагентной среды требует тщательной настройки прав. Пользователи кластера 1С и администраторы серверов 1С — это разные сущности. Вам потребуется добавить пользователей во второй кластер и назначить им соответствующие роли.
По умолчанию второй агент может не иметь настроенных администраторов. Подключитесь к нему через консоль администрирования, используя учетную запись локального администратора Windows или доменную учетную запись с правами админа на сервере. В ветке "Администраторы" добавьте необходимых специалистов.
Также стоит проверить настройки запуска процессов. В свойствах кластера убедитесь, что указан корректный пользователь, от имени которого будут запускаться процессы rphost. Часто для изоляции используют специально созданную сервисную учетную запись, отличную от той, что используется основным агентом.
- 👤 Добавьте доменных пользователей в список администраторов кластера второго агента.
- 🔐 Настройте права доступа к каталогам временных файлов для нового пользователя службы.
- 🛡️ Проверьте, что брандмауэр не блокирует RPC-вызовы между консолью и новым агентом.
Если вы планируете использовать файловые базы в режиме клиент-сервер через этот агент, убедитесь, что у службы есть права на чтение и запись в сетевые шары, где расположены эти базы. Отсутствие прав вызовет ошибку "Каталог базы данных не найден".
Диагностика и мониторинг работы системы
После завершения настройки необходимо провести комплексное тестирование. Запустите тестовый клиент 1С и попробуйте подключиться к информационной базе, размещенной на втором кластере. В строке подключения укажите сервер в формате ИмяСервера:1542/ИмяКластера/ИмяБазы.
Для мониторинга используйте стандартные средства Windows, такие как Диспетчер задач или Resource Monitor. Отфильтруйте процессы по имени ragent и rphost. Вы должны видеть два процесса агента и соответствующее количество рабочих процессов, сгруппированных по разным пользователям или сессиям.
Обратите внимание на потребляемую память. Суммарное потребление двух агентов и их рабочих процессов не должно превышать доступный объем ОЗУ сервера. Если наблюдается нехватка памяти, настройте параметры "Максимальный объем памяти" в свойствах кластера для каждого агента индивидуально.
⚠️ Внимание: Интерфейсы и параметры конфигурации могут незначительно отличаться в зависимости от конкретной версии платформы 1С:Предприятие. Всегда сверяйтесь с официальной документацией к вашей конкретной сборке перед изменением критических параметров реестра.
Часто задаваемые вопросы (FAQ)
Можно ли запустить более двух агентов сервера 1С на одном компьютере?
Технически ограничений на количество агентов нет, если позволяют ресурсы сервера (ОЗУ, процессор, порты). Однако каждый новый агент требует уникального имени службы, своего набора портов и отдельной копии файлов или сложной настройки параметров запуска. На практике более 3-4 агентов на одной машине создают излишнюю нагрузку на планировщик ОС.
Что делать, если второй агент не виден в консоли администрирования?
Проверьте, запущена ли служба Windows с новым именем. Убедитесь, что вы подключаетесь к правильному порту (по умолчанию 1542 для второго агента). Проверьте настройки брандмауэра и убедитесь, что порт не блокируется. Также проверьте логи службы в журнале событий Windows.
Влияет ли запуск второго агента на лицензирование 1С?
Лицензирование сервера 1С:Предприятие привязано к количеству одновременно работающих подключений и серверным лицензиям, а не к количеству запущенных агентов. Однако убедитесь, что у вас достаточно лицензий для покрытия всех рабочих процессов, которые будут запущены на обоих агентах суммарно.
Как удалить второй агент, если он больше не нужен?
Остановите службу через оснастку "Службы" (services.msc). Затем выполните команду sc delete Имя_Вашей_Службы в командной строке от администратора. После этого можно удалить папку с файлами агента и очистить записи в реестре, если они были созданы вручную.