Агент сервера 1С 8.3 в службах Windows: установка, регистрация вручную и первый запуск

· 10 мин

Содержание

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

Служба стартует вместе с Windows, не зависит от того, вошёл ли кто-то на сервер, и перезапускается без участия человека. Для клиент-серверной базы это единственный нормальный режим работы.

Почему сервер 1С запускают службой, а не вручную

Агент сервера можно запустить и как обычную программу из командной строки. Но тогда он живёт ровно до выхода администратора из сеанса или первой перезагрузки.

Что даёт режим службы:

  • 🔄 Автозапуск. Сервер поднимается после перезагрузки, обновлений Windows и отключения питания.
  • 👤 Отдельная учётная запись. Процессы ragent, rmngr и rphost работают под пользователем с ограниченными правами, а не под администратором.
  • 🛠 Управление стандартными средствами. Остановка, запуск, восстановление после сбоя — через services.msc или sc.
  • 📋 Журнал событий. Причины падения службы видны в журнале «Система».

Ручной запуск оправдан только для отладки: когда служба не стартует и нужно увидеть ошибку в консоли.

Что проверить на сервере до установки

Подготовка занимает 10-15 минут и снимает почти все проблемы первого запуска.

Версия ОС и разрядность

Ставьте 64-разрядный сервер 1С на Windows Server 2016 и новее. 32-разрядный сервер имеет смысл только для старых внешних компонент, которые не работают в x64.

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

Решите заранее, под кем будет работать служба:

ВариантКогда подходитРиски
Локальный USR1CV8 (создаёт установщик)Один сервер, СУБД и файлы на этой же машинеНет доступа к сетевым папкам
Доменная учётная записьВыгрузки в сетевые каталоги, обмены через общие папки, кластер из нескольких серверовНужно следить за сроком пароля
LocalSystemНе рекомендуетсяЛишние права у процессов 1С

Учётной записи нужны:

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

Для доменной учётной записи поставьте «Срок действия пароля не ограничен» или заведите управляемую учётную запись службы. Истёкший пароль — частая причина того, что сервер 1С не поднялся после плановой перезагрузки.

Порты

Стандартная схема:

  • 1540 — агент сервера, к нему сначала обращается клиент и консоль;
  • 1541 — менеджер кластера;
  • 1560-1591 — рабочие процессы (диапазон задаётся в свойствах рабочего сервера);
  • 1545 — сервер администрирования ras, если нужен rac.

Проверьте, что порты свободны:

netstat -ano | findstr ":1540 :1541"

И откройте их в брандмауэре:

netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

Лицензия и имя сервера

Серверу нужна своя лицензия — программная или аппаратный ключ. Без неё служба запустится, но клиенты к базе не подключатся.

Имя сервера должно разрешаться с клиентских машин. Если DNS не настроен, добавьте запись в C:\Windows\System32\drivers\etc\hosts на каждом клиенте.

Способ 1. Установщик платформы

Самый простой путь, подходит для первой установки.

  1. Запустите setup.exe из дистрибутива технологической платформы (для сервера x64 — дистрибутив «Технологическая платформа 1С:Предприятия (64-bit) для Windows»).
  2. В списке компонентов включите «Сервер 1С:Предприятия 8» и «Модули расширения веб-сервера», если нужна публикация.
  3. На шаге с параметрами сервера отметьте «Установить 1С:Предприятие 8 как сервис Windows».
  4. Выберите «Создать пользователя USR1CV8» и задайте пароль либо укажите существующую учётную запись.
  5. Завершите установку и откройте services.msc. Служба «Агент сервера 1С:Предприятия 8.3» должна быть в состоянии «Выполняется» с типом запуска «Автоматически».

После установки зарегистрируйте консоль администрирования, иначе оснастка не откроется:

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

Номер версии в пути подставьте свой. Регистрировать нужно radmin.dll той же версии и разрядности, что и сервер.

Способ 2. Регистрация службы через ragent.exe

Нужен, когда платформа уже стоит без службы, когда службу удалили или когда надо поменять порты и каталог данных.

Откройте командную строку от имени администратора и перейдите в каталог bin нужной версии:

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

Что означают ключи:

КлючНазначение
-instsrvcЗарегистрировать агент как службу
-usr, -pwdУчётная запись и пароль службы
-portПорт агента сервера
-regportПорт менеджера кластера
-rangeДиапазон портов рабочих процессов
-dКаталог данных кластера (srvinfo)
-start, -stopЗапустить или остановить службу
-rmsrvcУдалить службу

Для смены версии платформы сначала удалите старую службу из каталога старой версии, затем зарегистрируйте новую:

"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe" -stop
"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe" -rmsrvc

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

Вторая служба на том же сервере через sc create

ragent -instsrvc создаёт службу со стандартным именем, поэтому две версии платформы так не поставить. Вторую службу создают через sc с уникальным именем и другими портами:

sc create "1C:Enterprise 8.3 Server Agent 2540" binPath= "\"C:\Program Files\1cv8\8.3.25.1374\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\srvinfo2540\"" start= auto obj= .\USR1CV8 password= ПарольПользователя DisplayName= "Агент сервера 1С 8.3 (порт 2540)"
sc start "1C:Enterprise 8.3 Server Agent 2540"

Обратите внимание на синтаксис sc: после = обязателен пробел, а кавычки внутри binPath экранируются обратной косой чертой. Ключ -srvc говорит агенту, что он запущен диспетчером служб.

Клиенты подключаются ко второму кластеру по адресу ИмяСервера:2541 — с портом менеджера кластера, а в консоли администрирования сервер добавляют по порту агента 2540.

Служба сервера администрирования ras

Утилите rac нужен запущенный ras. Его тоже удобно держать службой:

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

Способ 3. NSSM как обёртка

NSSM (Non-Sucking Service Manager) превращает любую консольную программу в службу. Для агента 1С это нештатный путь: штатные способы выше работают надёжнее. NSSM выручает, когда нужна запись вывода процесса в файл или гибкая политика перезапуска без правки реестра.

Пример для агента, запущенного без ключа -srvc (NSSM сам выступает службой):

nssm install 1CAgent "C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
nssm set 1CAgent ObjectName .\USR1CV8 ПарольПользователя
nssm set 1CAgent Start SERVICE_AUTO_START
nssm set 1CAgent AppStdout C:\Logs\1cagent.log
nssm set 1CAgent AppStderr C:\Logs\1cagent.log
nssm start 1CAgent
СпособКогда выбиратьМинусы
УстановщикПервая установка, одна версияПорты и каталог по умолчанию
ragent -instsrvcПереустановка, смена портовОдно стандартное имя службы
sc createНесколько кластеров или версий на сервереЛегко ошибиться в кавычках
NSSMНужен лог вывода, особые правила перезапускаСторонний инструмент, нештатная схема

Не держите одновременно штатную службу и NSSM-службу на одних портах. Вторая не запустится, а в журнале будет только код завершения процесса.

Первый запуск: кластер и информационная база

Когда служба стартует с пустым каталогом srvinfo, агент сам создаёт «Локальный кластер» на порту менеджера (1541) и рабочий сервер с именем машины.

Дальше:

  1. Откройте «Администрирование серверов 1С Предприятия» (оснастка 1CV8 Servers.msc).
  2. Добавьте центральный сервер: правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя машины и порт агента 1540.
  3. Раскройте кластер и создайте базу через контекстное меню узла «Информационные базы». Укажите СУБД, адрес сервера СУБД, имя базы и пользователя.
  4. Включите «Создать базу данных в случае ее отсутствия», если базы в СУБД ещё нет.
  5. Добавьте базу в список у клиента: «Добавить» → «На сервере 1С:Предприятия», кластер — имя сервера, база — имя из консоли.

Сразу задайте администратора кластера в свойствах кластера. Без него любой, кто дотянется до порта 1540, сможет управлять сервером.

Если удобнее командная строка, после запуска ras проверьте кластер:

rac cluster list
rac session list --cluster=<uuid_кластера> --licenses

Список остальных команд выдаёт rac help.

Сервер 1С готов к работе
Выполнено: 0 / 7

Как ускорить и стабилизировать сервер

Пара настроек Windows и кластера даёт заметный эффект на рабочих базах.

Настройки Windows

  • ⚡ Схема электропитания «Высокая производительность». На «Сбалансированной» процессор сбрасывает частоту, и проведение документов идёт медленнее.
  • 🛡 Исключения антивируса. Исключите из проверки каталог srvinfo, каталог файлов СУБД и процессы ragent.exe, rmngr.exe, rphost.exe.
  • 💾 Каталог данных на SSD. В srvinfo лежат сеансовые данные и кэши, диск под ним нагружен постоянно.

Настройки кластера и рабочего сервера

В свойствах кластера задают перезапуск рабочих процессов: «Интервал перезапуска» и «Допустимый объем памяти». Это страхует от утечек памяти в долгоживущих процессах.

В свойствах рабочего сервера задают «Количество ИБ на процесс», «Количество соединений на процесс», «Максимальный объем памяти рабочих процессов» и диапазон портов. На сервере с 3-4 крупными базами полезно выставить одну базу на процесс — тогда тяжёлая операция в одной базе не тормозит остальные.

Восстановление службы после сбоя

Настройте автоматический перезапуск при падении:

sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000//

Имя службы посмотрите в её свойствах в services.msc — поле «Имя службы», а не «Отображаемое имя».

Ключ -debug в строке запуска агента включает отладку на сервере. Держите его только там, где разработчики действительно отлаживают код, — на рабочем сервере он не нужен.

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

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

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

Дополнительно загляните в журнал Windows: eventvwr.msc → Журналы Windows → Система, фильтр по источнику «Service Control Manager». Там видно, когда служба упала и с каким кодом.

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

Можно ли на одном сервере держать две версии платформы 1С?
Да. Каждой версии нужна своя служба с уникальным именем, своими портами (например, 1540 и 2540) и своим каталогом srvinfo. Создают вторую службу через sc create.
Нужно ли переустанавливать службу при обновлении платформы?
Если ставите новую версию установщиком с флажком «как сервис», он перепишет службу сам. При ручной схеме удалите службу старой версии через ragent -rmsrvc и зарегистрируйте новую из каталога новой версии.
Где сервер 1С хранит список баз и настройки кластера?
В каталоге данных кластера, который задан ключом -d. По умолчанию это srvinfo в каталоге установки. Этот каталог стоит включить в резервное копирование.
Можно ли запускать службу 1С под LocalSystem?
Технически служба запустится, но процессы 1С получат лишние права в системе. Лучше отдельная учётная запись с правом входа в качестве службы.
Как узнать, под каким пользователем работает служба?
Откройте свойства службы в services.msc, вкладка «Вход в систему». Или выполните sc qc с именем службы — строка SERVICE_START_NAME.