Агент, кластер, рабочие процессы: запускаем сервер 1С:Предприятия 8.3 и проверяем подключение

· 10 мин

Содержание

Чтобы запустить сервер 1С, нужно запустить службу агента сервера ragent. В Windows это служба «Агент сервера 1С:Предприятия 8.3» в services.msc, в Linux — юнит srv1cv8-<версия>@default через systemctl start. Агент сам поднимает менеджер кластера и рабочие процессы. Дальше остаётся проверить, что открыты порты 1540, 1541 и 1560–1591, а база видна в консоли администрирования.

Типичная ситуация: утром бухгалтерия не может войти в базу, на экране Сервер 1С:Предприятия не обнаружен. Причин обычно три: служба не стартовала после ночной перезагрузки, клиента не пускает брандмауэр или имя сервера не разрешается. Всё описанное относится к платформе 8.3 на Windows Server 2016 и новее и современных дистрибутивах Linux.

Как устроен сервер 1С и что именно мы запускаем

Сервер 1С:Предприятия — не одна программа, а три вида процессов. Запускаете вы только первый, остальные он порождает сам.

ПроцессФайлПорт по умолчаниюЧто делает
Агент сервераragent1540Принимает первое обращение клиента и консоли, хранит список кластеров
Менеджер кластераrmngr1541Хранит реестр кластера: базы, сеансы, рабочие серверы
Рабочий процессrphostиз диапазона 1560–1591Выполняет код конфигурации, работает с СУБД

Порядок подключения клиента такой:

  1. Клиент обращается к агенту на порт 1540.
  2. Агент отдаёт адрес менеджера кластера (1541).
  3. Менеджер назначает рабочий процесс, и дальше клиент общается с rphost на порту из диапазона.

Отсюда практический вывод. Если открыт только порт 1540, клиент «доходит» до сервера, но падает на втором или третьем шаге. Открывать нужно все три группы портов.

📂 Где лежат данные кластера:

  • 🪟 Windows: C:\Program Files\1cv8\srvinfo (если при установке не указали другой каталог);
  • 🐧 Linux: /home/usr1cv8/.1cv8/1C/1cv8.

В каталоге srvinfo\reg_1541 лежит файл 1CV8Clst.lst — реестр кластера со списком баз. Этот каталог копируйте перед любыми экспериментами со службой. Без него кластер придётся собирать заново.

Запуск сервера 1С как службы Windows

На Windows сервер 1С работает как служба под отдельной учётной записью, обычно USR1CV8. Её создаёт установщик, если при установке отметить компонент «Сервер 1С:Предприятия 8» и флажок установки как сервиса Windows.

Запустить службу через оснастку

  1. Нажмите Win + R, введите services.msc.
  2. Найдите строку «Агент сервера 1С:Предприятия 8.3» (для 64-битной платформы в названии будет x86-64).
  3. Правой кнопкой → «Запустить».
  4. В свойствах службы, на вкладке «Общие», поставьте тип запуска «Автоматически» — иначе после перезагрузки сервер снова будет выключен.

На одной машине могут стоять службы разных версий платформы. Запущена должна быть та, версия которой совпадает с клиентами. Номер версии виден в поле «Исполняемый файл» свойств службы — это путь вида C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe.

Запустить из командной строки

Точное имя службы удобнее сначала найти, а не набирать по памяти:

sc query state= all | findstr /i "1C"

Затем запуск, остановка и проверка состояния (подставьте имя из вывода):

net start "1C:Enterprise 8.3 Server Agent (x86-64)"
sc query "1C:Enterprise 8.3 Server Agent (x86-64)"
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"

В PowerShell то же самое делают Get-Service *1C*, Start-Service и Restart-Service.

Остановка или перезапуск службы обрывает сеансы всех пользователей и фоновые задания. Делайте это вне рабочего времени или после предупреждения пользователей.

Если службы нет: регистрация вручную

Бывает, что платформу ставили без флажка службы или службу удалили при обновлении. Тогда её регистрируют из каталога bin нужной версии, командная строка от имени администратора:

cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
ragent.exe -start

Ключ -rmsrvc удаляет зарегистрированную службу, -stop останавливает её. Каталог в параметре -d должен совпадать со старым srvinfo, если вы хотите сохранить существующий кластер.

Запуск агента как приложения для диагностики

Если служба стартует и тут же останавливается, запустите агент в консоли. Он напишет ошибку прямо в окно:

ragent.exe -agent -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Перед этим остановите службу, иначе порт 1540 будет занят. Закрытие окна консоли остановит сервер, поэтому для работы такой режим не годится — только для поиска причины.

Как запустить сервер 1С на Linux

На Linux сервер работает под пользователем usr1cv8, платформа ставится в /opt/1cv8/x86_64/8.3.xx.xxxx/. Способ запуска зависит от версии платформы.

Актуальные версии: юнит systemd

В каталоге платформы лежит готовый файл юнита. Проверьте, есть ли он:

ls /opt/1cv8/x86_64/8.3.xx.xxxx/ | grep service

Если файл srv1cv8-8.3.xx.xxxx@.service есть, подключите его и запустите экземпляр default:

sudo systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
sudo systemctl enable srv1cv8-8.3.xx.xxxx@default
sudo systemctl start srv1cv8-8.3.xx.xxxx@default
sudo systemctl status srv1cv8-8.3.xx.xxxx@default

enable отвечает за автозапуск после перезагрузки, start — за запуск сейчас. Порты и каталог данных для экземпляра default берутся по умолчанию: 1540, 1541, 1560–1591.

Старые версии: скрипт srv1cv83

В более ранних версиях платформы установщик клал скрипт /etc/init.d/srv1cv83, а параметры (порты, каталог, отладка) — в файл /etc/sysconfig/srv1cv83 или /etc/default/srv1cv83, в зависимости от дистрибутива. Запуск:

sudo /etc/init.d/srv1cv83 start
sudo /etc/init.d/srv1cv83 status

Где смотреть, почему не стартовало

journalctl -u srv1cv8-8.3.xx.xxxx@default -n 50
ps -ef | grep -E "ragent|rmngr|rphost"

Если в списке процессов есть ragent, но нет rmngr, проблема обычно в правах на каталог данных. Владельцем /home/usr1cv8/.1cv8 должен быть usr1cv8:

sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8

На Linux при старте сервер проверяет, правильно ли разрешается имя машины. Строка в /etc/hosts с реальным IP и именем хоста (а не только 127.0.1.1) снимает целый класс ошибок подключения.

Проверка портов и сетевого подключения к серверу 1С

Служба запущена — следующий шаг проверить, что сервер слушает порты и клиент до них дотягивается.

На самом сервере

ОСКомандаЧто должно быть
Windowsnetstat -ano | findstr "1540 1541"Строки со статусом LISTENING
Linuxss -tlnp | grep -E "154[01]"Процессы ragent и rmngr

Если порт 1540 занят другим процессом, агент не запустится. PID из вывода netstat сверьте в диспетчере задач.

С компьютера пользователя

В PowerShell:

Test-NetConnection srv-1c -Port 1540
Test-NetConnection srv-1c -Port 1541
Test-NetConnection srv-1c -Port 1560

TcpTestSucceeded : True по всем трём — сеть в порядке. Порт 1560 отвечает, только если на нём уже работает рабочий процесс, поэтому проверяйте его после первого подключения к базе.

Открыть порты в брандмауэре

Windows, PowerShell от администратора:

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

Linux с firewalld:

sudo firewall-cmd --permanent --add-port=1540-1541/tcp --add-port=1560-1591/tcp
sudo firewall-cmd --reload

С ufw: sudo ufw allow 1540:1541/tcp и sudo ufw allow 1560:1591/tcp.

Имя сервера

Кластер регистрирует себя под именем машины. Клиент может подключиться к агенту по IP, но дальше получит от него адрес менеджера в виде имени. Если это имя не разрешается, соединение обрывается. Проверка с клиента: ping srv-1c. Не отвечает по имени — добавьте запись в DNS или в C:\Windows\System32\drivers\etc\hosts:

192.168.1.10    srv-1c

Консоль администрирования и настройки кластера после запуска

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

Если консоль не открывается

Консоль — оснастка MMC, ей нужна зарегистрированная библиотека radmin.dll. После обновления платформы или при ошибке открытия зарегистрируйте её заново, командная строка от администратора:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Версия в пути должна совпадать с версией запущенного агента. Консоль одной версии корректно управляет сервером той же версии.

Подключить сервер в консоли

  1. В дереве консоли правой кнопкой по узлу центральных серверов → «Создать» → центральный сервер.
  2. Укажите имя машины и порт 1540.
  3. Раскройте сервер → «Кластеры» → кластер (по умолчанию «Локальный кластер», порт 1541).
  4. В узле «Информационные базы» добавьте базу или проверьте, что нужная уже есть.

Если на кластере назначены администраторы, консоль попросит логин и пароль. Забытый пароль администратора кластера не сбрасывайте удалением файлов: остановите службу и восстановите каталог srvinfo из резервной копии либо обратитесь к тому, кто настраивал сервер.

Что настроить в первую очередь

Часть параметров живёт в свойствах кластера, часть — в свойствах рабочего сервера. Их часто путают.

ГдеПараметрЗачем менять
Рабочий серверДиапазон IP-портовЕсли 1560–1591 заняты или закрыты политикой сети
Рабочий серверМаксимальный объём памяти рабочих процессовЧтобы rphost не съели всю память машины
Рабочий серверКоличество ИБ на процесс, соединений на процессРаспределение нагрузки между процессами
КластерИнтервал перезапуска рабочих процессовПлановая очистка «распухших» процессов
КластерУровень отказоустойчивости, режим распределения нагрузкиДля кластеров из нескольких рабочих серверов

На одном сервере на 10–30 пользователей значения по умолчанию обычно подходят. Менять стоит то, что решает конкретную проблему: нехватку памяти, конфликт портов.

Управление из командной строки

Для скриптов и Linux без графики есть сервер администрирования ras (порт 1545) и утилита rac:

ras cluster --daemon localhost:1540
rac cluster list
rac session list --cluster=<uuid кластера>

В Windows ras вместо --daemon запускают с ключом --service при регистрации службы. Остальные подкоманды смотрите в rac help.

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

Ошибки запуска сервера 1С и как их убрать

Ошибка 1069: Служба не была запущена из-за сбоя при входе в систему

Windows не может войти под учётной записью службы. Причины:

  • 🔑 пароль USR1CV8 сменили или у него истёк срок действия;
  • 🚫 у пользователя отобрали право «Вход в качестве службы» групповой политикой.

Решение: в свойствах службы, вкладка «Вход в систему», введите актуальный пароль. Для служебной учётки включите «Срок действия пароля не ограничен». Если пароль верный, проверьте локальную политику безопасности: secpol.msc → «Локальные политики» → «Назначение прав пользователя» → «Вход в качестве службы».

Ошибка 1053: Служба не ответила на запрос своевременно

Агент не успел стартовать. Чаще всего мешает занятый порт или повреждённый каталог данных. Запустите агент как приложение (команда выше) — он покажет причину текстом.

Служба «Выполняется», но базы не открываются и консоль зависает

Иногда портится сеансовый кэш кластера. Практический приём:

  1. Предупредите пользователей: все сеансы оборвутся.
  2. Остановите службу агента.
  3. Скопируйте каталог srvinfo целиком в резервную папку.
  4. В srvinfo\reg_1541 удалите файлы и папки, имя которых начинается с snccntx.
  5. Запустите службу.

Файл 1CV8Clst.lst при этом не трогайте — в нём список баз.

Различаются версии клиента и сервера

Клиент и сервер должны быть одной сборки, вплоть до последней цифры номера. Решение — поставить на рабочие места ту же версию или указать в свойствах базы в списке баз нужную версию клиента. Если на сервере установлено несколько платформ, проверьте, служба какой версии запущена: две службы на одних портах одновременно работать не могут.

Сервер запущен, но пишет про отсутствие лицензии

Без лицензии сервер не обслуживает базы. Серверная лицензия должна быть активирована на том компьютере, где работает агент, или стоять аппаратный ключ с драйвером. Программную лицензию, привязанную к оборудованию, нужно переактивировать после замены сервера или существенной смены железа.

Перед удалением файлов в srvinfo, перерегистрацией службы и переактивацией лицензии делайте копию каталога данных и согласуйте простой с ответственным за базу.

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

Можно ли запустить сервер 1С без службы?
Да, командой ragent -agent с теми же портами и каталогом. Но сервер работает, пока открыто окно и выполнен вход пользователя. Для постоянной работы нужна служба.
Как запустить два сервера 1С разных версий на одной машине?
Зарегистрируйте вторую службу со своими портами, например -port 2540 -regport 2541 -range 2560:2591 и отдельным каталогом -d. Клиенты второй версии указывают сервер как srv-1c:2541.
Нужно ли перезапускать сервер после обновления конфигурации?
Нет. Обновление конфигурации базы проходит без перезапуска службы. Перезапуск нужен после обновления самой платформы и смены параметров службы.
Почему после перезагрузки сервера 1С не запускается автоматически?
У службы стоит тип запуска «Вручную», или на Linux не выполнен systemctl enable. Ещё один вариант — служба стартует раньше сети и падает; помогает тип запуска «Автоматически (отложенный запуск)».
Как включить отладку на сервере 1С?
Добавьте ключ -debug в строку запуска агента: на Windows — в параметр ImagePath службы в разделе реестра HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>, на Linux — в настройки службы. Затем перезапустите службу. На рабочем сервере держите отладку выключенной.