Как сделать, чтобы сервер 1С:Предприятия сам стартовал вместе с Windows

· 10 мин

Содержание

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

Пока сервер запущен вручную как приложение, всё держится на сеансе администратора. Он вышел из системы, сервер перезагрузился ночью после обновлений, и утром у бухгалтерии «Сервер 1С:Предприятия не обнаружен». Служба снимает эту проблему: кластер поднимается без входа в систему и перезапускается после сбоя.

Инструкция общая для платформы 8.3 и не зависит от конфигурации: БП, ЗУП и УТ работают на одном и том же кластере. Пути и команды даны для Windows Server 2016 и новее.

Подготовка: учётная запись службы, права и каталоги

Служба работает не от имени того, кто её установил, а от отдельной учётной записи. От её прав зависит почти всё: старт службы, доступ к каталогу кластера, к СУБД и к сетевым папкам.

Какую учётную запись выбрать:

  • 👤 Локальный пользователь USR1CV8 — установщик платформы создаёт его сам. Подходит для одиночного сервера, где СУБД стоит на той же машине.
  • 🏢 Доменная учётная запись (например, CORP\svc-1c) — нужна, если база на MS SQL с проверкой подлинности Windows на другом сервере, если выгрузки и обмены идут в сетевые папки или если в кластере несколько рабочих серверов.
  • 🚫 Учётная запись администратора или LocalSystem — не используйте. Служба получит лишние права, а пароль администратора рано или поздно сменят, и служба не стартует.

Что выдать учётной записи:

  1. Право «Вход в качестве службы». Оно задаётся в secpol.msc → Локальные политики → Назначение прав пользователя, в доменной сети — групповой политикой.
  2. Членство в группе «Пользователи журналов производительности». Без неё сервер не может читать счётчики производительности, и в журнале копятся предупреждения.
  3. Полный доступ к каталогу кластера, по умолчанию C:\Program Files\1cv8\srvinfo. Если переносите его на отдельный диск, например D:\srvinfo, создайте папку заранее и выдайте права.
  4. Чтение и выполнение для каталога платформы C:\Program Files\1cv8\<версия>\bin.
  5. Полный доступ к временному каталогу и к папкам, куда пишет технологический журнал.

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

Заранее определитесь с портами. Стандартный набор: 1540 — агент сервера, 1541 — менеджер кластера, 1560:1591 — рабочие процессы. Если на машине уже есть кластер другой версии, нужен второй набор, например 2540, 2541, 2560:2591.

Регистрация службы сервера 1С: три способа

Способ 1. Через установщик платформы

При установке или обновлении платформы выберите компонент «Сервер 1С:Предприятия». На следующем шаге мастер предложит «Установить сервер 1С:Предприятия как сервис Windows». Отметьте флажок и выберите: создать пользователя USR1CV8 или указать существующего.

Мастер сам создаст службу с типом запуска «Автоматически» и стандартными портами. Это самый надёжный путь, если не нужны нестандартные порты или каталог.

Способ 2. Через ragent.exe

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

cd /d "C:\Program Files\1cv8\8.3.24.1548\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -port 1540 -regport 1541 -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.

Способ 3. Через sc create

Этот способ дают, когда нужно полное управление: своё имя службы, второй кластер на нестандартных портах, отладка. Пробел после знака = в параметрах sc обязателен:

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

Ключи -srvc и -agent говорят агенту, что он работает как служба. Остальные те же, что во втором способе.

Каталог srvinfo у каждого кластера свой. Два агента с одним каталогом испортят реестр кластера 1CV8Clst.lst, и список баз пропадёт из консоли.

Ключ -debug в строке запуска включает сервер отладки. На рабочем сервере держите его выключенным, если не отлаживаете код прямо сейчас: так рабочие процессы тратят меньше ресурсов.

Автоматический запуск, таймауты и восстановление после сбоя

После регистрации проверьте три настройки службы. Их задают в services.msc (свойства службы) или командами sc.

Тип запуска

  • «Автоматически» — служба стартует вместе с Windows.
  • «Автоматически (отложенный запуск)» — стартует примерно через две минуты после загрузки. Удобно, если на той же машине стоит MS SQL или PostgreSQL: к первому подключению пользователей СУБД уже готова.
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" start= delayed-auto

Стандартное имя службы для 64-разрядной платформы — 1C:Enterprise 8.3 Server Agent (x86-64). Точное имя смотрите в свойствах службы, поле «Имя службы».

Перезапуск после сбоя

На вкладке «Восстановление» задайте «Перезапуск службы» для первого, второго и последующих сбоев. То же из командной строки — перезапуск через минуту, сброс счётчика сбоев раз в сутки:

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

Таймаут старта

Windows ждёт ответа службы 30 секунд. На медленном диске или при большом каталоге srvinfo агент не успевает, и система пишет ошибку 1053. Таймаут увеличивают параметром реестра:

reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v ServicesPipeTimeout /t REG_DWORD /d 120000 /f

Значение в миллисекундах, 120000 — две минуты. Оно начинает действовать после перезагрузки сервера.

Кластер после запуска службы: что донастроить

Служба поднимает агент, а дальше работу определяют настройки кластера и рабочего сервера. Их меняют в консоли администрирования серверов 1С.

Если консоль не открывается и пишет, что оснастка не найдена, зарегистрируйте radmin.dll той же версии, что и сервер. В каталоге bin для этого есть скрипт RegMSC.cmd: запустите его от имени администратора.

Что проверить в свойствах рабочего сервера:

ПараметрЧто даётС чего начать
Диапазон IP-портовпорты рабочих процессовтот же, что в -range
Количество ИБ на процесссколько баз обслуживает один процесс8–16 на средней нагрузке
Количество соединений на процесссколько сеансов на процесс128–256
Максимальный объём памяти рабочих процессовпосле какого порога сервер начинает защищаться от нехватки памяти70–80% ОЗУ сервера
Безопасный расход памяти за один вызовобрыв одного «тяжёлого» вызова вместо падения процессанесколько ГБ, по объёму отчётов
Менеджер под каждый сервисотдельные процессы для сервисов кластеравключать на нагруженном сервере

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

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

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

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

Служба удалённого администрирования 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"

После этого rac cluster list покажет кластер, а rac session list --licenses — сеансы и занятые лицензии. Остальные команды смотрите в rac help.

Как следить за службой: состояние, журналы, технологический журнал

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

Быстрая проверка из PowerShell:

Get-Service *1C*
netstat -ano | findstr ":1540 :1541"

Первая команда покажет статус служб 1С, вторая — слушает ли агент порт. Если служба «Выполняется», а порт 1540 никто не слушает, агент упал при старте.

Журнал событий Windows

Откройте eventvwr.msc → Журналы Windows → Приложение и отфильтруйте события по источнику, в имени которого есть «1C». Туда сервер пишет ошибки старта, нехватку памяти и аварийное завершение рабочих процессов. Ошибки самой службы (1053, 1069) ищите в журнале «Система» от источника «Service Control Manager».

Технологический журнал

Для разбора ошибок внутри кластера включите технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf установки платформы, например C:\Program Files\1cv8\conf. Минимальная настройка — только исключения, хранение 24 часа:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c_logs\excp" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Сервер перечитывает файл сам, перезапускать службу не нужно. Учётной записи службы нужен доступ на запись в D:\1c_logs.

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

Служба 1С не запускается: ошибки и что делать

Начните с текста ошибки в окне служб или в журнале «Система». По нему почти всегда видно, куда смотреть.

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

После обновления платформы удобно исправить службу без удаления — только путь к агенту:

sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.25.1374\bin\ragent.exe\" -srvc -agent -port 1540 -regport 1541 -range 1560:1591 -d \"C:\Program Files\1cv8\srvinfo\""
sc start "1C:Enterprise 8.3 Server Agent (x86-64)"

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

Если не помогло:

  • 🔍 Запустите агент вручную в консоли той же командой, что в binPath, но без ключа -srvc. Ошибка выведется прямо на экран.
  • 🔁 Удалите службу (ragent.exe -rmsrvc или sc delete) и зарегистрируйте заново с тем же каталогом -d. Список баз сохранится, потому что он лежит в srvinfo, а не в настройках службы.
  • 🛡️ Временно отключите антивирус на время одного запуска. Если служба стартовала, добавьте исключения для ragent.exe, rmngr.exe, rphost.exe и каталога srvinfo.

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

Можно ли запустить как службу обычный клиент 1С для файловой базы?
Платформа для этого не предназначена: 1cv8.exe — интерактивное приложение, службой его не запускают. Если нужна работа без входа пользователя, например регламентные задания, базу переводят на сервер 1С или веб-публикацию.
Нужна ли отдельная лицензия, чтобы сервер работал как служба?
Нет. Режим запуска на лицензирование не влияет: серверу нужна лицензия на сервер, клиентам — клиентские лицензии, независимо от того, запущен агент службой или вручную.
Как держать на одном компьютере серверы двух версий платформы?
Зарегистрируйте две службы с разными именами, разными портами (например, 1540 и 2540) и разными каталогами srvinfo. Клиент подключается к нужному кластеру, указывая порт: server1c:2541.
Почему после обновления платформы установщик создал вторую службу?
Если при установке новой версии снова отмечен флажок установки сервера как сервиса, а старую службу не удалили, может появиться вторая служба на тех же портах. Оставьте одну — с путём к новой версии, вторую удалите командой sc delete.
Как сменить учётную запись, от которой работает служба?
В свойствах службы на вкладке «Вход в систему» укажите новую запись и пароль, затем выдайте ей права на srvinfo и «Вход в качестве службы». Изменение вступит в силу после перезапуска службы, который оборвёт сеансы пользователей.