Как поставить агент сервера 1С:Предприятия службой Windows и запустить кластер

· 10 мин

Содержание

Установить сервер 1С:Предприятие как сервис Windows проще всего прямо в установщике платформы: отметьте компонент «Сервер 1С:Предприятия 8» и флажок «Установить сервер 1С:Предприятия 8 как сервис Windows», задайте пользователя службы — и после установки агент ragent.exe сам запустится и создаст локальный кластер на портах 1540/1541. Если сервер уже стоит без службы или служба слетела после обновления, её регистрируют вручную командой ragent.exe -instsrvc или sc create.

Первый способ подходит для чистого сервера. Второй — когда нужно несколько версий платформы, нестандартные порты или второй кластер на той же машине. Ниже оба пути, плюс настройка кластера, автозапуска и разбор ошибок старта службы.

Подготовка сервера к установке 1С

До запуска установщика решите четыре вопроса. Переделывать их после — дольше, чем сделать сразу.

Разрядность и версия. Для сервера берите 64-разрядный дистрибутив платформы (папка вида windows64full или server64). Версия платформы на сервере должна совпадать с версией у клиентов до последней цифры сборки, иначе клиент не подключится.

Операционная система. Подойдёт Windows Server 2016 и новее. Отключите спящий режим и выставьте схему питания «Высокая производительность» — на «Сбалансированной» процессор сбрасывает частоту, и 1С ощутимо тормозит.

Учётная запись службы. Варианты:

  • 👤 USR1CV8 — локальный пользователь, которого установщик создаёт сам. Хорош для одиночного сервера;
  • 🏢 доменная учётная запись — если сервер 1С ходит к SQL Server с Windows-аутентификацией или пишет выгрузки в сетевые папки;
  • ⛔ Local System — не используйте: у службы будет больше прав, чем ей нужно.

Пользователю службы нужно право «Вход в качестве службы» (secpol.msc → Локальные политики → Назначение прав пользователя) и полный доступ к каталогу кластера srvinfo.

Порты. Откройте во входящих правилах брандмауэра:

ПортКто слушаетЗачем
1540агент сервера (ragent)первое обращение клиента и консоли
1541менеджер кластера (rmngr)регистрация кластера, распределение сеансов
1560–1591рабочие процессы (rphost)основная работа пользователей
1545сервер администрирования (ras)только если используете rac

Диапазон 1560–1591 задаётся в свойствах рабочего сервера. Если его меняете — меняйте и правило брандмауэра.

Каталог srvinfo лучше вынести на отдельный SSD-диск, а не оставлять в C:\Program Files\1cv8. Там лежат журналы регистрации и сеансовые данные, они активно пишутся.

Установка платформы с сервером в режиме службы

  1. Запустите setup.exe из дистрибутива от имени администратора.
  2. На шаге выбора компонентов отметьте «Сервер 1С:Предприятия 8». Для администрирования с этой же машины добавьте «Администрирование сервера 1С:Предприятия». Клиентские компоненты на сервере нужны, только если будете заходить в базы локально.
  3. На следующем шаге поставьте флажок «Установить сервер 1С:Предприятия 8 как сервис Windows (рекомендуется)».
  4. Выберите пользователя: «Создать пользователя USR1CV8» с паролем или «Существующий пользователь» в формате ДОМЕН\имя.
  5. Дождитесь окончания установки. Драйвер защиты (HASP) ставьте, только если лицензия на сервер аппаратная.

После установки откройте services.msc. Там появится служба «Агент сервера 1С:Предприятия 8.3 (x86-64)» с типом запуска «Автоматически» и состоянием «Выполняется». При первом старте агент сам создаёт «Локальный кластер» и регистрирует в нём рабочий сервер.

Флажок «как сервис» можно пропустить случайно. Тогда сервер установится как приложение, и кластер будет работать, только пока запущен ragent.exe в сеансе администратора. Перерегистрируйте службу по следующему разделу.

Ручная регистрация службы агента сервера 1С

Способ 1: ключ ragent -instsrvc

У агента есть встроенные ключи для работы со службой. Откройте командную строку от имени администратора и выполните (номер версии подставьте свой):

cd "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -regport 1541 -port 1540 -range 1560:1591 -d "D:\srvinfo"
ragent.exe -start

Ключ -rmsrvc удаляет службу, -stop останавливает. Способ удобен тем, что агент сам собирает правильную строку запуска.

Способ 2: sc create

Когда нужен свой идентификатор службы (например, второй кластер или вторая версия платформы), регистрируйте через sc. Пробел после знака = обязателен, кавычки внутри пути экранируются обратной косой чертой:

sc create "1C83Agent_1540" binPath= "\"C:\Program Files\1cv8\8.3.24.1467\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"D:\srvinfo\" -debug" start= auto obj= ".\USR1CV8" password= "Пароль" DisplayName= "Агент сервера 1С 8.3 (1540)"
sc start "1C83Agent_1540"

Что значат параметры:

  • -srvc — агент работает как служба;
  • -agent — запуск в режиме агента сервера;
  • -port — порт агента, -regport — порт менеджера кластера;
  • -range — диапазон портов рабочих процессов;
  • -d — каталог данных кластера;
  • -debug — разрешает отладку на сервере. На рабочем сервере ключ можно убрать.

Второй кластер на той же машине

Задайте другой набор портов и отдельный каталог: например, -port 2540 -regport 2541 -range 2560:2591 -d "D:\srvinfo2". Имя службы тоже должно быть другим. Два агента с одинаковыми портами не запустятся: второй упадёт с ошибкой занятости порта.

Служба после обновления платформы

Частая ловушка: поставили новую версию платформы, а служба продолжает запускать ragent.exe из папки старой версии. Клиенты новой версии не подключаются.

Варианты исправить:

  1. Остановить службу, удалить её (ragent.exe -rmsrvc из папки старой версии или sc delete) и зарегистрировать заново из папки новой.
  2. Поправить путь к исполняемому файлу в параметре ImagePath ветки реестра HKLM\SYSTEM\CurrentControlSet\Services\<имя службы> и перезапустить службу.

Остановка службы агента обрывает сеансы всех пользователей кластера. Делайте это вне рабочего времени, предупредив людей заранее.

Кластер серверов: проверка и создание

Если служба установлена штатно, кластер уже есть. Проверить его можно двумя инструментами.

Через консоль администрирования

Запустите «Администрирование серверов 1С Предприятия» (оснастка MMC). Если консоль пишет, что не может загрузить оснастку, зарегистрируйте библиотеку той же версии, что сервер:

regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"

Дальше: правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3», укажите имя компьютера и порт агента 1540. Раскройте его — внутри должен быть «Локальный кластер» с портом 1541. Если кластера нет, создайте его через контекстное меню узла «Кластеры».

Через rac

Утилита rac.exe работает не напрямую с агентом, а через сервер администрирования ras. Его тоже стоит поставить службой:

sc create "1C83RAS" binPath= "\"C:\Program Files\1cv8\8.3.24.1467\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "Сервер администрирования 1С 8.3"
sc start "1C83RAS"

Проверка и создание кластера:

rac.exe localhost:1545 cluster list
rac.exe localhost:1545 cluster insert --host=SRV1C --port=1541 --name="Основной кластер"

Команда cluster list вернёт идентификатор кластера (cluster). Он понадобится для остальных команд: список рабочих серверов — rac server list --cluster=<id>, сеансы — rac session list --cluster=<id>. Полный перечень подкоманд и параметров — в rac help и rac help <режим>.

Если на кластере задан администратор, к командам добавляют --cluster-user и --cluster-pwd. Пароль администратора кластера храните там же, где пароли от СУБД: восстановить его без резервной копии каталога srvinfo не получится.

Автозапуск, восстановление и наблюдение за службой

Тип запуска «Автоматически» поднимает службу при старте Windows. Если сервер 1С и СУБД стоят на одной машине, поставьте «Автоматически (отложенный запуск)», чтобы агент стартовал после SQL Server или PostgreSQL.

Чтобы служба сама поднималась после падения, настройте восстановление. В services.msc → свойства службы → вкладка «Восстановление» выберите «Перезапуск службы» для первого, второго и последующих сбоев. Или одной командой:

sc failure "1C83Agent_1540" reset= 86400 actions= restart/60000/restart/60000/restart/60000

Здесь пауза перед перезапуском — 60 секунд, счётчик сбоев обнуляется раз в сутки.

Что отслеживать:

  • 📄 журнал «Система» в просмотре событий: записи диспетчера служб о неожиданной остановке агента;
  • 📈 память процессов rphost в диспетчере задач или в консоли кластера (колонка занятой памяти рабочих процессов);
  • 🔌 доступность порта 1540: Test-NetConnection SRV1C -Port 1540 в PowerShell с клиентского компьютера;
  • 🗂 технологический журнал — включается файлом logcfg.xml в каталоге bin\conf платформы. Включайте его на время поиска проблемы: при широком фильтре он быстро занимает диск.

Настройка производительности сервера 1С

Основные рычаги — в свойствах рабочего сервера (консоль → кластер → «Рабочие серверы» → свойства):

ПараметрЧто даётС чего начать
Количество ИБ на процесссколько баз обслуживает один rphost0 или 1 при нескольких тяжёлых базах
Количество соединений на процесскогда запускать новый рабочий процессоставить по умолчанию, менять по замерам
Безопасный расход памяти за один вызовзащищает от одного «тяжёлого» отчётаограничить, если один вызов съедает гигабайты
Критический объём памяти процессовпорог, при котором сервер перезапускает процессыниже физической памяти с запасом под СУБД

В свойствах кластера есть «Интервал перезапуска» рабочих процессов. Он помогает, если память rphost растёт сутками. Учтите, что перезапуск идёт с переводом сеансов на новый процесс, и в момент перезапуска у пользователей может быть пауза.

Ещё три вещи, которые дают заметный эффект:

  1. Исключить каталог srvinfo и каталоги баз СУБД из проверки антивирусом в реальном времени.
  2. Не держать на сервере 1С терминальных пользователей: их клиенты съедают ту же память и процессор.
  3. Если СУБД на отдельной машине — проверить задержку сети между серверами. Каждая лишняя миллисекунда умножается на тысячи запросов при проведении документов.

Автоматизация развёртывания

Для типового развёртывания на нескольких серверах установщик запускают без интерфейса через msiexec. Пакет лежит в дистрибутиве рядом с setup.exe:

msiexec /i "1CEnterprise 8 (x86-64).msi" /qn TRANSFORMS=adminstallrelogon.mst;1049.mst SERVER=1 SERVERCLIENT=1 DESIGNERALLCLIENTS=0 THICKCLIENT=0 THINCLIENT=0 WEBSERVEREXT=0 CONFREPOSSERVER=0 CONVERTER77=0 LANGUAGES=RU

Тихая установка ставит файлы, но службу надёжнее зарегистрировать отдельной командой — так вы явно задаёте пользователя, порты и каталог данных. Пример сценария PowerShell, который собирает всё вместе:

$ver  = "8.3.24.1467"
$bin  = "C:\Program Files\1cv8\$ver\bin"
$data = "D:\srvinfo"
$user = ".\USR1CV8"
$pwd  = Read-Host "Пароль пользователя службы"

New-Item -ItemType Directory -Path $data -Force | Out-Null
icacls $data /grant "USR1CV8:(OI)(CI)F" | Out-Null

& "$bin\ragent.exe" -instsrvc -usr $user -pwd $pwd -regport 1541 -port 1540 -range 1560:1591 -d $data
& "$bin\ragent.exe" -start

New-NetFirewallRule -DisplayName "1C Server" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow

Пароль здесь запрашивается при запуске, а не хранится в файле. Для большого парка серверов те же шаги обычно переносят в систему управления конфигурациями, а версию платформы передают параметром.

Почему служба 1С не запускается

Диагностика: выберите симптом

Если ни один вариант не подошёл, запустите агент вручную в консоли с теми же параметрами, но без -srvc — сообщение об ошибке появится прямо в окне, а не потеряется в журнале событий.

Частые вопросы

Нужна ли отдельная лицензия для сервера 1С?
Да. Для работы баз в клиент-серверном режиме нужна лицензия на сервер 1С:Предприятия. Клиентские лицензии её не заменяют.
Можно ли на одном компьютере держать две версии сервера 1С?
Можно. Каждой версии нужна своя служба с отдельными портами агента, менеджера и рабочих процессов и свой каталог srvinfo.
Где хранится список баз кластера?
В каталоге данных кластера, который задан ключом -d при регистрации службы. По умолчанию это srvinfo внутри каталога установки платформы. Резервную копию этого каталога стоит делать вместе с бэкапом СУБД.
Как перенести srvinfo на другой диск?
Остановите службу вне рабочего времени, скопируйте каталог на новый диск с сохранением прав, исправьте путь после -d в строке запуска службы и запустите её снова.
Обязательно ли ставить ras?
Нет. Он нужен только для утилиты rac и сторонних инструментов администрирования. Консоль MMC работает с агентом напрямую.