Сервер 1С не стартует или не виден клиентам: запуск в Windows и Linux

· 10 мин

Содержание

Сервер 1С открывают запуском службы агента сервера ragent. В Windows это служба «Агент сервера 1С:Предприятия 8.3» (в списке служб чаще видна как 1C:Enterprise 8.3 Server Agent (x86-64)), в Linux — unit srv1cv8-<версия>@default через systemctl start. После старта агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591.

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

Учётная запись и права службы сервера 1С

Служба сервера работает от имени отдельного пользователя. При установке в Windows программа по умолчанию создаёт локальную учётную запись USR1CV8, в Linux — пользователя usr1cv8. Если запись удалили, сменили ей пароль или урезали права, служба не стартует или падает через секунду после запуска.

Что проверить в Windows:

  • 🔑 Пароль. Откройте services.msc, свойства службы агента, вкладка «Вход в систему». Если пароль USR1CV8 меняли политикой домена — введите актуальный здесь же.
  • 🛡️ Право «Вход в систему как служба». Путь: secpol.msc → Локальные политики → Назначение прав пользователя. Учётная запись службы должна быть в этом списке. Доменная групповая политика иногда перезаписывает список, и после очередного обновления политик служба перестаёт стартовать.
  • 📁 Каталог данных кластера. У учётной записи должен быть полный доступ к каталогу srvinfo (по умолчанию C:\Program Files\1cv8\srvinfo) и права на чтение каталога платформы C:\Program Files\1cv8\<версия>\bin.
  • 🗂️ Каталог временных файлов. Рабочие процессы пишут временные файлы в профиль пользователя службы. Если диск с профилем переполнен, сеансы начинают отваливаться.

В Linux те же проверки делают командами:

id usr1cv8
ls -ld /home/usr1cv8/.1cv8/1C/1cv8
sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8

Последнюю команду запускайте, только если владелец каталога действительно сменился, например после копирования данных кластера из резервной копии под root.

Не запускайте службу от «Локальной системы» ради быстрого результата. Сервер заработает, но рабочие процессы получат полный доступ к машине. Для продуктивной базы лучше отдельная запись с минимальными правами.

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

Через оснастку служб

  1. Нажмите Win + R, введите services.msc.
  2. Найдите службу «Агент сервера 1С:Предприятия 8.3». Если на машине стоит несколько версий платформы, в имени может быть указан номер версии.
  3. Откройте свойства и посмотрите «Исполняемый файл»: там видно, какая версия ragent.exe запускается и какие порты ей переданы.
  4. Тип запуска — «Автоматически». Нажмите «Запустить».
  5. Если служба поднялась и через несколько секунд остановилась — переходите к разделу о журналах.

Из командной строки

Точное имя службы удобно найти командой PowerShell:

Get-Service *1C* | Format-Table Name, DisplayName, Status

Дальше запуск, остановка и перезапуск:

Start-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Stop-Service  -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"

Имя в кавычках замените на то, что вернула первая команда.

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

Если службы нет вообще

Так бывает, когда платформу ставили без компонента «Сервер 1С:Предприятия 8» или без отметки «Установить сервер как сервис Windows». Службу можно зарегистрировать вручную из каталога bin нужной версии:

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

Удаляют службу ключом -rmsrvc, останавливают — -stop. Для ручного запуска без службы (на тестовом стенде, чтобы увидеть ошибку прямо в консоли) годится вариант ragent.exe -port 1540 -regport 1541 -range 1560:1591 -d "C:\srvinfo_test".

Сервер 1С в Linux: запуск через systemd

С платформы 8.3.21 вместо старого скрипта /etc/init.d/srv1cv83 в комплект входит unit-файл systemd. Он лежит в каталоге установленной версии, и его нужно один раз подключить:

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

Проверка состояния и перезапуск:

systemctl status srv1cv8-8.3.xx.xxxx@default
sudo systemctl restart srv1cv8-8.3.xx.xxxx@default

Часть @default — имя экземпляра. Так на одной машине можно держать несколько серверов с разными портами и каталогами данных. Параметры экземпляра заданы в самом unit-файле: посмотрите их через systemctl cat, а меняйте через sudo systemctl edit, чтобы правки не потерялись при обновлении платформы.

На старых версиях, где unit-файла ещё нет, работает классическая схема:

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

Параметры для неё (порты, каталог данных, ключ отладки) берутся из /etc/sysconfig/srv1cv83 или /etc/default/srv1cv83 в зависимости от дистрибутива.

После обновления платформы в Linux новый unit автоматически не подключается. Отключите старый экземпляр (systemctl disable --now со старым номером версии), подключите новый и проверьте, что старый процесс ragent больше не держит порт 1540.

Порты и фаервол: почему клиенты не видят сервер

Служба может работать идеально, но клиенты её не увидят, если сеть закрыта. Схема подключения такая: клиент обращается к агенту на порт 1540, агент отдаёт адрес менеджера кластера (1541), дальше клиента направляют в рабочий процесс из диапазона портов. Этот диапазон задаётся в свойствах рабочего сервера, по умолчанию 1560–1591.

ПортКто слушаетЗачем нужен
1540Агент сервера ragentТочка входа для клиентов и консоли администрирования
1541Менеджер кластера rmngrРегистрация кластера, распределение сеансов
1560–1591Рабочие процессы rphostОбработка сеансов пользователей
1545Сервер администрирования rasДоступ для rac и сторонних консолей, если ras запущен
475, 1947Сервер HASPТолько при аппаратных ключах защиты

Открыть порты в Windows:

netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

В Linux с ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

Проверить, что порт слушается на сервере и доступен с рабочего места:

netstat -ano | findstr :1540          # на сервере Windows
Test-NetConnection srv1c -Port 1541   # с компьютера пользователя
ss -tlnp | grep -E '154[01]|15[6-9][0-9]'

Отдельная ловушка — имя сервера. Кластер регистрируется по имени компьютера, и менеджер отдаёт клиенту именно имя, а не IP. Если клиент не может разрешить это имя через DNS, подключение к 1540 пройдёт, а дальше всё оборвётся. Лечится записью в DNS или строкой в C:\Windows\System32\drivers\etc\hosts на клиенте: 192.168.1.10 srv1c.

Журналы: где искать причину, если сервер не открывается

Когда служба падает или сеансы рвутся, смотрите три источника по очереди.

Журнал операционной системы

В Windows откройте eventvwr.msc → Журналы Windows → Приложение и отфильтруйте события по источнику, в названии которого есть «1C». Там видно, на каком шаге агент завершился: нет доступа к каталогу, занят порт, не найден файл кластера. Запись об остановке самой службы ищите в журнале «Система».

В Linux всё собирает journald:

journalctl -u srv1cv8-8.3.xx.xxxx@default --since "1 hour ago"

Журнал регистрации информационной базы

Он нужен, когда сервер запущен, но конкретная база ведёт себя странно. Хранится внутри каталога данных кластера: srvinfo\reg_1541\<GUID базы>\1Cv8Log. Открывают его из клиента: Администрирование → Обслуживание → Журнал регистрации в типовых конфигурациях на «Такси» или из Конфигуратора через меню Администрирование. Фильтруйте по уровню «Ошибка» и по времени, когда пользователи пожаловались.

Технологический журнал

Если первых двух источников мало, включите технологический журнал. Создайте файл logcfg.xml в каталоге C:\Program Files\1cv8\conf\ (в Linux — /opt/1cv8/conf/):

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Такая настройка пишет только исключения и хранит их 24 часа. Платформа подхватывает файл без перезапуска службы. Каталог C:\techlog должен быть доступен на запись учётной записи службы.

Не оставляйте техжурнал с событиями DBMSSQL или all на рабочем сервере надолго: за сутки он легко занимает десятки гигабайт. Собрали данные — удалите logcfg.xml.

Параметры запуска и настройка кластера

Строка запуска агента в Windows видна в свойствах службы, в Linux — в unit-файле. Типичный вид:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Что в ней менять и зачем:

  • 🔢 -port, -regport, -range. Меняют, когда на одной машине нужны два сервера разных версий. Второму экземпляру дают, например, 2540, 2541 и 2560:2591, иначе он не стартует из-за занятого порта.
  • 📂 -d. Каталог данных кластера. Его разумно вынести на быстрый диск: там лежат журналы регистрации и сеансовые данные.
  • 🐞 -debug. Разрешает отладку на сервере. Для разработки удобно, для продуктивной базы — лишняя нагрузка; уберите ключ и перезапустите службу.

Остальное настраивают в консоли «Администрирование серверов 1С Предприятия». Если оснастка не открывается или в ней нет пункта для подключения к серверу, перерегистрируйте библиотеку консоли той же версии, что и сервер (командная строка от имени администратора):

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

В консоли полезны две группы настроек:

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

На Linux, где оснастки нет, кластер администрируют через ras и rac. Запустите сервер администрирования командой ras cluster, затем проверьте связь: rac cluster list выведет кластеры и их параметры. Остальные подкоманды смотрите в справке rac help.

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

Частые проблемы при старте сервера 1С

После обновления платформы сервер не открывается. Новая версия поставилась, но служба по-прежнему указывает на старый ragent.exe, или две службы разных версий спорят за порт 1540. Остановите и удалите службу старой версии (ragent.exe -rmsrvc из её каталога bin), убедитесь, что новая служба смотрит в тот же каталог srvinfo, и запустите её.

Служба стартует, но в консоли нет баз. Агент запущен с другим каталогом данных -d, чем раньше. Список баз хранится в файле реестра кластера внутри srvinfo\reg_1541. Верните прежний путь в параметрах службы.

Файл реестра кластера повреждён. Чаще всего после аварийного отключения питания. Служба падает сразу после старта, в журнале — ошибка чтения файлов кластера. Не удаляйте каталог srvinfo целиком: вместе с ним пропадут регистрации всех баз и журналы регистрации. Остановите службу, восстановите каталог reg_1541 из резервной копии и запустите службу снова.

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

Сервер виден в локальной сети, но не через VPN. VPN пропускает 1540, но режет диапазон рабочих процессов или не отдаёт DNS-имена внутренней сети. Откройте весь набор портов в туннеле и пропишите имя сервера в hosts на удалённом компьютере.

Не хватает лицензий при старте сеансов. Сам агент запускается без проверки клиентских лицензий, а вот пользователи получают ошибку при входе. Посмотреть, какие сеансы и какие лицензии заняты, можно командой rac session list --licenses или в консоли в разделе сеансов.

Перед тем как открыть сервер 1С пользователям
Выполнено: 0 / 7

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

Можно ли держать на одном компьютере два сервера 1С разных версий?
Да. Каждой службе нужны свои порты (например, 1540/1541/1560:1591 и 2540/2541/2560:2591) и свой каталог данных. В строке подключения ко второму серверу порт указывают после имени: srv1c:2541.
Нужен ли перезапуск службы после добавления базы в кластер?
Нет. Базу регистрируют в консоли или при создании из окна запуска, и она сразу доступна без остановки службы.
Почему консоль администрирования не видит сервер, хотя пользователи работают?
Чаще всего версия консоли не совпадает с версией сервера. Перерегистрируйте radmin.dll из каталога той версии, что установлена на сервере.
Чем серверный вариант отличается от запуска файловой базы?
Файловую базу клиент открывает напрямую из папки, служба ему не нужна. В клиент-серверном варианте клиент работает через агент и рабочие процессы, а данные хранит отдельная СУБД: PostgreSQL, MS SQL Server или другая поддерживаемая.
Как узнать, какая версия сервера сейчас запущена?
В Windows — по пути к ragent.exe в свойствах службы, в Linux — по имени unit-файла в выводе systemctl list-units 'srv1cv8*'.