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

· 9 мин

Содержание

Сервисом 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

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

  1. Перейдите в каталог bin нужной версии платформы:
cd "C:\Program Files\1cv8\8.3.24.1467\bin"
  1. Зарегистрируйте службу (номер версии в пути подставьте свой):
ragent.exe -instsrvc -usr ".\USR1CV8" -pwd "Пароль_пользователя" -regport 1541 -port 1540 -range 1560:1591 -d "D:\srvinfo"
  1. Запустите её:
ragent.exe -start
  1. Откройте 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).

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

Скорость работы зависит не от службы, а от настроек кластера и ОС:

  1. В консоли администрирования откройте свойства рабочего сервера — там задаются количество информационных баз и соединений на процесс, критический объём памяти процессов и безопасный расход памяти за один вызов. Лимиты памяти защищают от ситуации, когда один тяжёлый отчёт съедает всю RAM.
  2. Схема электропитания Windows — «Высокая производительность». На «Сбалансированной» процессор занижает частоту, и 1С это чувствует.
  3. Каталог srvinfo и временные папки пользователя службы — в исключения антивируса. Сканирование журналов регистрации на лету заметно тормозит запись.
  4. Диапазон портов рабочих процессов — с запасом: если процессов станет больше, чем портов, новые не запустятся.

Безопасность службы 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С и что с ними делать

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

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

Можно ли запустить две версии сервера 1С на одном компьютере?
Да. Каждая версия регистрируется отдельной службой на своих портах и со своим каталогом кластера. Клиенты указывают порт менеджера кластера в строке сервера базы.
Под каким пользователем лучше запускать службу 1С?
Под выделенной учётной записью без прав администратора, как USR1CV8. Для работы с сетевыми папками и доменными ресурсами — под доменным пользователем с теми же ограничениями.
Нужно ли перезапускать службу после изменения настроек кластера?
Большинство настроек рабочего сервера применяется без перезапуска. Перезапуск нужен при смене портов, каталога кластера, учётной записи службы и версии платформы.
Как узнать, какая версия платформы запущена службой?
Откройте свойства службы в services.msc: в поле «Исполняемый файл» виден путь к ragent.exe, номер версии — в названии папки.
Работает ли служба сервера 1С на Linux?
Да, сервер 1С есть и для Linux. Там он запускается как сервис systemd, а команды и пути отличаются от Windows.