Как сделать, чтобы сервер 1С:Предприятия сам стартовал вместе с Windows
Содержание
Чтобы сервер 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— не используйте. Служба получит лишние права, а пароль администратора рано или поздно сменят, и служба не стартует.
Что выдать учётной записи:
- Право «Вход в качестве службы». Оно задаётся в
secpol.msc → Локальные политики → Назначение прав пользователя, в доменной сети — групповой политикой. - Членство в группе «Пользователи журналов производительности». Без неё сервер не может читать счётчики производительности, и в журнале копятся предупреждения.
- Полный доступ к каталогу кластера, по умолчанию
C:\Program Files\1cv8\srvinfo. Если переносите его на отдельный диск, напримерD:\srvinfo, создайте папку заранее и выдайте права. - Чтение и выполнение для каталога платформы
C:\Program Files\1cv8\<версия>\bin. - Полный доступ к временному каталогу и к папкам, куда пишет технологический журнал.
Для учётной записи службы включите «Срок действия пароля не ограничен» или используйте групповую управляемую учётную запись. Иначе через 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С или веб-публикацию.Нужна ли отдельная лицензия, чтобы сервер работал как служба?
Как держать на одном компьютере серверы двух версий платформы?
server1c:2541.Почему после обновления платформы установщик создал вторую службу?
sc delete.