Как зарегистрировать сервер 1С службой Windows и настроить её автозапуск
Содержание
Сервисом Windows в 1С запускается не сама программа, а агент сервера ragent.exe: он регистрируется как служба, стартует вместе с ОС и поднимает менеджер кластера и рабочие процессы. Регистрация делается одной командой ragent.exe -instsrvc или галочкой «Установить сервер
1С:Предприятия как сервис Windows» в установщике платформы.
Частое заблуждение — пытаться завернуть в службу обычный клиент 1cv8.exe, чтобы база «работала в фоне» и выполняла регламентные задания. Так это не работает
: клиенту нужен рабочий стол и сеанс пользователя. Для файловой базы есть свои способы автозапуска, о них — в отдельном разделе ниже.
Чем служба лучше запуска сервера 1С вручную
Агент сервера можно запустить и из командной строки, как приложение. Но тогда он живёт, пока открыт сеанс администратора. Вышли из RDP, сервер перезагрузился после обновлений Windows — кластер лёг, пользователи видят ошибку подключения.
Служба снимает эти проблемы:
- 🔁 Автостарт после перезагрузки без входа в систему.
- 👤 Отдельная учётная запись с минимальными правами вместо прав администратора.
- 🛠 Восстановление при сбое: Windows сама перезапустит упавший агент.
- 📋 Управление стандартными средствами:
services.msc,sc, PowerShell, мониторинг. - ⏱ Регламентные задания в клиент-серверной базе выполняются кластером круглосуточно, без открытых клиентов.
Без службы сервер 1С в продуктиве не используют. Ручной запуск оправдан разве что для отладки на машине разработчика.
Что подготовить до регистрации службы
Перед командами проверьте пять вещей.
| Что | Требование |
|---|---|
| Компонент платформы | При установке выбран «Сервер 1С:Предприятия 8» (разрядность — как у ОС, обычно x86-64) |
| Учётная запись | Локальный или доменный пользователь без прав администратора; установщик по умолчанию создаёт USR1CV8 |
| Права пользователя | Право «Вход в качестве службы», полный доступ к каталогу кластера srvinfo, членство в группе «Пользователи журналов производительности» |
| Порты | Свободны 1540 (агент), 1541 (менеджер кластера), диапазон 1560–1591 (рабочие процессы) |
| Лицензия | Для подключения клиентов к кластеру нужна лицензия на сервер; сама служба стартует и без неё |
Проверить, не заняты ли порты другим экземпляром:
netstat -ano | findstr ":1540 :1541"
Если в выводе есть строки со статусом LISTENING, по PID в последнем столбце найдите процесс в диспетчере задач. Чаще всего это уже работающий агент другой версии платформы.
Каталог кластера по умолчанию — C:\Program Files\1cv8\srvinfo. На сервере с отдельным быстрым диском его лучше вынести, например в D:\srvinfo: там лежат журналы регистрации и сеансовые данные, и на системном диске они быстро занимают место.
Как запустить 1С как сервис: пошагово
Способ 1. Галочка в установщике
В мастере установки платформы на шаге выбора компонентов отметьте «Сервер 1С:Предприятия 8». Дальше установщик спросит, устанавливать ли сервер как сервис Windows, и предложит создать пользователя
USR1CV8 или указать существующего.
Это самый простой путь. Служба получит стандартные порты и каталог srvinfo в папке установки. Если параметры по умолчанию подходят — больше ничего делать не нужно.
Способ 2. Регистрация командой ragent -instsrvc
Нужен, когда сервер ставили без службы, служба была удалена или требуется другой каталог кластера. Командная строка — от имени администратора.
- Перейдите в каталог
binнужной версии платформы:
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
- Откройте
services.mscи убедитесь, что служба «1C:Enterprise 8.3 Server Agent (x86-64)» в состоянии «Выполняется», тип запуска — «Автоматически».
Ключи команды:
-instsrvc— зарегистрировать агент как службу;-usrи-pwd— учётная запись службы; для локального пользователя имя пишут с.\;-port— порт агента,-regport— порт менеджера кластера;-range— диапазон портов рабочих процессов;-d— каталог данных кластера;-rmsrvc— удалить службу,-stop— остановить.
Ключ -debug включает отладку на сервере. В рабочей среде его не ставят: отладка нагружает процессы и даёт разработчику доступ к серверному коду.
Способ 3. Второй экземпляр через sc create
ragent -instsrvc регистрирует службу с фиксированным именем. Если на одном сервере нужен второй кластер — например, для другой версии платформы или тестовых баз, — службу создают вручную через sc на других портах:
sc create "1C Server 2541" binPath= "\"C:\Program Files\1cv8\8.3.25.1374\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"D:\srvinfo2541\"" start= auto obj= ".\USR1CV8" password= "Пароль_пользователя" DisplayName= "Агент сервера 1С 8.3 (порт 2540)"
Пробел после знака = у каждого параметра sc обязателен, без него команда не сработает. Ключи -srvc -agent говорят ragent.exe, что он запущен службой.
Клиенты подключаются к такому кластеру с указанием порта: в строке сервера базы пишут ИмяСервера:2541.
Служба сервера администрирования (ras)
Агент — не единственная служба. Для утилиты rac и сторонних консолей нужен сервер администрирования ras.exe. Его тоже регистрируют службой:
sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1467\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "Сервер администрирования 1С 8.3"
После запуска проверьте связь: rac cluster list должен вывести кластер с его UUID.
После обновления платформы
Служба указывает на ragent.exe конкретной версии. Поставили новую платформу — служба продолжит запускать старую. Есть два пути:
- удалить службу командой
ragent.exe -rmsrvcиз каталога старой версии и зарегистрировать заново из новой; - поправить путь в параметре
ImagePathраздела реестраHKLM\SYSTEM\CurrentControlSet\Services\<имя службы>.
Перед остановкой службы предупредите пользователей: все сеансы оборвутся, несохранённые документы пропадут. Делайте это вне рабочего времени и после завершения фоновых заданий.
Тонкая настройка службы: автозапуск, перезапуск и производительность
Восстановление при сбое
Чтобы Windows сама поднимала упавший агент, задайте действия при сбое:
sc failure "1C:Enterprise 8.3 Server Agent (x86-64)" reset= 86400 actions= restart/60000/restart/60000/restart/60000
Это три попытки перезапуска с паузой в минуту; счётчик сбоев обнуляется раз в сутки. То же можно выставить на вкладке «Восстановление» в свойствах службы.
Порядок старта с СУБД
Если PostgreSQL или MS SQL стоят на той же машине, агент может стартовать раньше СУБД. Тогда первые подключения после перезагрузки падают. Решения:
- тип запуска «Автоматически (отложенный запуск)»;
- зависимость от службы СУБД:
sc config "<имя службы 1С>" depend= MSSQLSERVER(имя службы СУБД посмотрите вservices.msc).
Производительность кластера
Скорость работы зависит не от службы, а от настроек кластера и ОС:
- В консоли администрирования откройте свойства рабочего сервера — там задаются количество информационных баз и соединений на процесс, критический объём памяти процессов и безопасный расход памяти за один вызов. Лимиты памяти защищают от ситуации, когда один тяжёлый отчёт съедает всю RAM.
- Схема электропитания Windows — «Высокая производительность». На «Сбалансированной» процессор занижает частоту, и 1С это чувствует.
- Каталог
srvinfoи временные папки пользователя службы — в исключения антивируса. Сканирование журналов регистрации на лету заметно тормозит запись. - Диапазон портов рабочих процессов — с запасом: если процессов станет больше, чем портов, новые не запустятся.
Безопасность службы 1С
Служба работает круглосуточно и слушает сеть. Ошибки в настройке здесь стоят дороже, чем на рабочей станции.
- 🔒 Не запускайте агент от LocalSystem или администратора. При уязвимости в коде конфигурации злоумышленник получит права учётной записи службы. Выделенный пользователь без прав администратора ограничивает ущерб.
- 🔑 Пароль службы — длинный, без истечения срока. Истёк пароль — служба не стартует после ближайшей перезагрузки.
- 👮 Администратор кластера. Пока он не создан, управлять кластером может любой, кто достучался до порта 1540. Создайте администратора в консоли, в ветке «Администраторы» кластера и агента.
- 🧱 Брандмауэр. Откройте только нужные порты и только для сети клиентов:
New-NetFirewallRule -DisplayName "1C Server" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow -RemoteAddress 192.168.1.0/24
Порт 1545 сервера администрирования наружу не открывайте — пусть к нему ходят только с сервера или из сети администраторов.
- 🛡 Профили безопасности кластера ограничивают доступ кода конфигурации к файловой системе, COM-объектам и внешним компонентам. Их включают для баз, куда загружают внешние обработки.
Если нужна не служба сервера: другие способы автоматического запуска 1С
Не у всех клиент-серверный вариант. Для файловой базы задача обычно звучит так: «нужно, чтобы регламентные задания выполнялись ночью без открытой 1С». Варианты:
| Способ | Когда подходит | Ограничения |
|---|---|---|
Служба ragent (кластер) | Клиент-серверная база | Нужна лицензия на сервер |
| Публикация файловой базы на веб-сервере | Файловая база, регламентные задания по расписанию | Задания выполняет модуль веб-сервера; нужен IIS или Apache |
Планировщик заданий + 1cv8.exe | Разовые ночные операции: обмен, выгрузка, обработка | Занимает клиентскую лицензию; нужен рабочий сеанс пользователя |
Автономный сервер ibsrv | Файловая база, к которой нужен доступ как к серверу | Платформа 8.3.14 и выше; параметры — в ibsrv --help |
Обёртки вроде NSSM для 1cv8.exe | Не рекомендуется | Клиенту без рабочего стола негде показать окна, зависает на первом вопросе |
Запуск через планировщик заданий Windows
Самый ходовой вариант для файловой базы. Создайте задачу в taskschd.msc с действием «Запуск программы»:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Регламент" /P"Пароль" /DisableStartupDialogs /DisableStartupMessages /Execute"D:\Scripts\NightExchange.epf"
/F— путь к файловой базе (для серверной —/S"Сервер\База");/Nи/P— пользователь 1С и пароль;/DisableStartupDialogsи/DisableStartupMessages— подавляют стартовые окна и предупреждения;/Execute— внешняя обработка, которая выполнит работу и закроет сеанс.
Задачу запускают от пользователя, который вошёл в систему, или на сервере терминалов с постоянно открытым сеансом. Режим «Выполнять для всех пользователей» без входа часто приводит к тому, что 1С висит в процессах без окна.
Под такие запуски заведите в базе отдельного пользователя 1С с минимальными правами. Его пароль в планировщике виден всем, кто может открыть задачу.
Ошибки при запуске службы 1С и что с ними делать
secpol.msc → «Локальные политики» → «Назначение прав пользователя».srvinfo или путь в ImagePath указывает на удалённую версию платформы. Запустите тот же ragent.exe с теми же ключами из консоли без -srvc — ошибка будет видна в окне.srvinfo или каталог был скопирован с другого сервера с чужими правами. Выдайте права на каталог и вложенные папки. Смотрите журнал «Приложение» в eventvwr.msc — агент пишет туда причину.ragent.exe. Перерегистрируйте службу из каталога новой версии или исправьте ImagePath.Частые вопросы
Можно ли запустить две версии сервера 1С на одном компьютере?
Под каким пользователем лучше запускать службу 1С?
USR1CV8. Для работы с сетевыми папками и доменными ресурсами — под доменным пользователем с теми же ограничениями.Нужно ли перезапускать службу после изменения настроек кластера?
Как узнать, какая версия платформы запущена службой?
services.msc: в поле «Исполняемый файл» виден путь к ragent.exe, номер версии — в названии папки.