Часто системные администраторы сталкиваются с ситуацией, когда сервер 1С:Предприятие работает корректно, если запустить службу вручную, но после плановой или аварийной перезагрузки системы служба 1C:Enterprise 8.3 Server Agent остается в остановленном состоянии. Это создает простои в работе пользователей и требует постоянного вмешательства. В этой статье мы подробно разберем, почему это происходит, как найти истинную причину в системных логах и какие шаги предпринять для исправления ситуации.
Разберем самую распространенную причину: конфликт очередности запуска системных компонентов. При старте Windows служба 1С может пытаться запуститься раньше, чем инициализируются сетевые протоколы или службы доменной аутентификации (если запуск настроен от имени доменного пользователя). В таком случае служба «отваливается» по таймауту или из-за ошибки авторизации.
Проанализируем наиболее эффективное решение, которое помогло автору обсуждения:
services.msc).1C:Enterprise 8.3 Server Agent.Это заставит систему запустить 1С чуть позже остальных критических служб Windows, что дает время на поднятие сети и Active Directory. Несмотря на первоначальные сомнения пользователя, именно этот метод зачастую оказывается решающим.
Рассмотрим ситуацию, когда служба падает сразу после попытки старта. Мы можем заставить Windows пытаться «поднять» её повторно. Для этого выполним следующие действия:
Это позволит службе успешно стартовать, даже если первая попытка в момент загрузки ОС провалилась из-за недоступности ресурсов.
Если служба запускается от имени доменного пользователя, выясним, достаточно ли у него прав. Часто администраторы забывают о локальных политиках безопасности. Разберем по шагам настройку прав в secpol.msc:
Проанализируем ситуацию, когда Windows считает службу зависшей. По умолчанию система ждет ответа от службы 30 секунд. Если сервер нагружен при загрузке, 1С может не успеть проинициализироваться. Чтобы исправить это, внесем изменения в реестр:
Перейдем в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
60000 или 120000 (в десятичной системе), что соответствует 60 или 120 секундам.Если мы точно знаем, что 1С должна запускаться строго после СУБД (например, MS SQL Server стоит на том же сервере), мы можем прописать жесткую зависимость. Разберем пример команды, которую нужно выполнить в cmd от имени администратора:
sc config "1C:Enterprise 8.3 Server Agent" depend= LanmanWorkstation/Dnscache/mssqlserver
Эта команда гарантирует, что агент 1С не начнет загрузку, пока не будут запущены сетевая служба, DNS-клиент и SQL-сервер.
Выясним причину отказа через проверку файловой системы. Службе 1С жизненно необходим полный доступ к каталогу, где хранятся настройки кластера. Рассмотрим, как это проверить:
C:\Program Files\1cv8\srvinfo).Если в журнале событий Windows (Event Viewer) пусто, а причина не ясна, воспользуемся инструментами самой платформы 1С. Создадим файл logcfg.xml в папке conf (по пути установки версии платформы).
Пример минимального конфига для отслеживания ошибок запуска:
<config xmlns="http://v8.1c.ru/7.4/logcfg">
<log location="C:\1C_Logs" history="24">
<event>
<eq property="Name" value="PROC"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
</log>
</config>
После перезагрузки сервера в папке C:\1C_Logs появятся файлы, в которых будет детально расписано, на каком этапе инициализации (PROC) произошло исключение (EXCP).
В завершение разберем «тонкие» моменты. Иногда корректному старту мешают «хвосты» от прошлых сессий. При остановленной службе попробуйте очистить временные файлы в директории srvinfo, исключая файлы .lst (в которых хранятся настройки баз). Также, если сервер имеет IPv6 адрес, попробуйте принудительно привязать службу к IPv4, добавив параметр -se в строку запуска службы в реестре, чтобы исключить попытки биндинга на неготовую сетевую конфигурацию.