Запуск сервера 1С:Предприятия: служба, порты, диагностика

· 9 мин

Содержание

Серверную часть 1С запускает один процесс: агент сервера (ragent). В Windows он работает как служба «Агент сервера 1С:Предприятия 8.3», в Linux — как служба srv1cv83. Запустите её, и агент сам поднимет менеджер кластера и рабочие процессы. Если служба стартует и слушает порты 1540 и 1541, сервер готов принимать клиентов и консоль администрирования.

Большинство проблем при запуске сводится к трём вещам: у пользователя службы нет прав на каталог данных, порты заняты или закрыты, имя сервера не разрешается в адрес. Ниже — подготовка, запуск в обеих системах, диагностика и настройка параметров. Речь о платформе 8.3 с клиент-серверным вариантом работы; для файловой базы служба не нужна.

Что подготовить до первого запуска

Сервер 1С ставится отдельным компонентом платформы. Проверьте заранее:

  • 🖥️ Имя сервера. Лучше латиница, цифры и дефис, без подчёркиваний. Клиенты подключаются по имени, поэтому оно должно разрешаться в DNS или в файле hosts на каждом клиенте и на самом сервере.
  • 👤 Пользователь службы. Отдельная учётная запись без прав администратора. В Windows это обычно локальный пользователь USR1CV8, в Linux — usr1cv8 из группы grp1cv8.
  • 📁 Каталог данных кластера. Здесь лежат список баз, журналы регистрации кластера и служебные файлы. Его нельзя держать на сетевой папке, и он должен быть на диске с запасом места.
  • 🔌 Порты. Агент слушает 1540, менеджер кластера — 1541, рабочие процессы занимают диапазон (по умолчанию 1560–1591).
  • 🔑 Лицензии. Серверная лицензия или программный ключ должны быть доступны серверу. Без них сам кластер поднимется, а вот сеансы пользователей не откроются.

Каталог данных удобно вынести на отдельный диск или раздел. Тогда переполнение журналов не остановит операционную систему.

Запуск службы в Windows

Служба создаётся установщиком платформы, если отметить компонент «Сервер 1С:Предприятия». Дальше всё делается в оснастке служб.

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

То же из PowerShell от имени администратора:

Get-Service | Where-Object { $_.DisplayName -like "*1С*" -or $_.DisplayName -like "*1C*" }
Start-Service -DisplayName "*Агент сервера 1С*"

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

Права на каталог данных

Если служба стартует и сразу останавливается, первым делом смотрите права. Пользователю службы нужно разрешение «Полный доступ» на каталог данных кластера (по умолчанию он лежит в папке установки в подкаталоге srvinfo) и «Чтение и выполнение» на каталог платформы 1cv8. Проверьте их в свойствах папки, вкладка «Безопасность».

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

Если установщик службу не создал или её пришлось удалить, агент можно зарегистрировать самому командой ragent с ключом -instsrvc. Параметры — порты, каталог данных, пользователь — задаются теми же ключами, что описаны в разделе про настройку ниже. Точный набор ключей для вашей версии платформы смотрите в справке установщика; ошибка в строке регистрации приводит к службе, которая не стартует.

Управление сервером 1С в Linux

В Linux серверный компонент ставится из пакетов .deb или .rpm, которые входят в дистрибутив платформы. Пакет создаёт пользователя usr1cv8, группу grp1cv8 и службу srv1cv83. Платформа лежит в каталоге /opt/1cv8/x86_64/<номер версии>/, данные кластера — в домашнем каталоге пользователя usr1cv8.

Основные команды (на системах с systemd):

sudo systemctl enable srv1cv83
sudo systemctl start srv1cv83
sudo systemctl status srv1cv83
sudo systemctl stop srv1cv83

Первая команда включает автозапуск при загрузке, вторая запускает службу сейчас. Если ваш дистрибутив пакет службы не зарегистрировал, поищите файл службы в каталоге платформы под /opt/1cv8 и подключите его по правилам вашей ОС.

Проверьте, что процессы поднялись и порты слушаются:

ps -ef | grep -E "ragent|rmngr|rphost"
ss -tlnp | grep -E ":1540|:1541"

Должны быть процессы ragent, rmngr и один или несколько rphost. Если ragent есть, а rmngr нет, смотрите журнал.

Параметры службы в Linux

Порты и каталог данных задаются в файле окружения службы. В большинстве сборок это /etc/default/srv1cv83, где переменные вроде SRV1CV8_PORT, SRV1CV8_REGPORT и SRV1CV8_RANGE отвечают за порты агента, менеджера и диапазон рабочих процессов, а SRV1CV8_DATA — за каталог данных. Откройте файл и сверьте имена переменных с тем, что стоит у вас: набор может отличаться в зависимости от пакета.

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

Диагностика: служба не запускается или кластер не виден

Начните с журнала, а не с догадок. В Windows откройте «Просмотр событий» → «Журналы Windows» → «Приложение» и найдите записи на время запуска службы. В Linux:

sudo journalctl -u srv1cv83 --since "10 minutes ago"
Диагностика: выберите симптом

Что проверять в брандмауэре

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

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

Если нужно быстро убедиться, что кластер отвечает без графической консоли, используйте утилиту администрирования rac. Для этого на сервере должен работать сервер администрирования (ras), который по умолчанию слушает порт 1545:

ras cluster
rac cluster list

Первая команда запускает сервер администрирования, вторая — выводит список кластеров с их идентификаторами. Полный набор команд смотрите в справке rac help.

Настройка параметров запуска и оптимизация

Часть параметров задаётся при запуске агента, часть — в консоли администрирования в свойствах рабочего сервера. Не путайте уровни.

Что настраиваемГде
Порт агента, порт менеджера, диапазон портовКлючи запуска ragent или переменные службы
Каталог данных кластераКлюч запуска (-d) или переменная службы
Количество соединений и баз на процессСвойства рабочего сервера в консоли
Допустимый объём памяти процессовСвойства рабочего сервера в консоли
Безопасный расход памяти за один вызовСвойства рабочего сервера в консоли

Ключи агента, в которых можно быть уверенным: -port (порт агента), -regport (порт менеджера), -range (диапазон портов рабочих процессов, формат 1560:1591) и -d (каталог данных). Запуск вручную из консоли нужен для отладки, в продуктивной работе агент запускают службой.

Практические ориентиры

  • 🧮 Диапазон портов должен быть не меньше числа рабочих процессов, которое вы собираетесь запускать. Для небольшого предприятия хватает значения по умолчанию.
  • 💾 Для ориентира: на одну активную нагрузку по 1С обычно закладывают несколько гигабайт оперативной памяти на рабочий процесс. Точные числа зависят от конфигурации и числа пользователей, поэтому проверьте их на нагрузочном тесте.
  • 📈 Ограничение «Допустимый объём памяти процессов» защищает сервер от одного разросшегося процесса: при превышении рабочий процесс перезапускается после завершения вызовов. Не ставьте значение слишком низким, иначе процессы будут перезапускаться постоянно.
  • 🗂️ Если на сервере несколько версий платформы, служба указывает на конкретный каталог версии. После установки новой версии проверьте, на какой бинарник смотрит служба, иначе кластер продолжит работать на старой.

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

Как проверить запуск с рабочего места

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

  1. С компьютера пользователя выполните ping по имени сервера, затем проверьте доступность порта 1540 (в PowerShell подойдёт Test-NetConnection имя_сервера -Port 1540).
  2. Запустите консоль администрирования серверов 1С и добавьте центральный сервер в формате имя_сервера:1540. Если порт стандартный, номер можно не указывать.
  3. Раскройте кластер. Если он открылся без запроса пароля, администратор кластера не назначен. Если запросил — введите учётные данные администратора кластера.
  4. Создайте тестовую информационную базу или откройте существующую из списка запуска, указав имя сервера и имя базы.

Если на третьем шаге консоль зависает, а на втором порт отвечает, вероятнее всего, проблема с именем: консоль получила от сервера его имя, а оно с вашего компьютера не разрешается. Исправляется записью в hosts или правкой DNS.

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

Автоматизация контроля состояния службы

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

В Windows настройте восстановление службы: свойства службы → вкладка «Восстановление» → «Перезапуск службы» для первого и второго сбоя. Это поможет при единичном падении, но не замаскирует постоянную проблему, поэтому смотрите журнал событий.

В Linux добавьте в файл службы политику перезапуска (Restart=on-failure) через drop-in конфигурацию, а не правкой исходного файла пакета, чтобы обновление её не затёрло:

sudo systemctl edit srv1cv83

В открывшемся редакторе укажите:

[Service]
Restart=on-failure
RestartSec=10

Затем примените изменения: sudo systemctl daemon-reload.

Для оповещения достаточно задания по расписанию, которое проверяет порт и пишет вам в мессенджер или на почту. Минимальный вариант для Linux:

#!/bin/bash
if ! ss -tln | grep -q ":1541 "; then
  echo "Менеджер кластера 1С не слушает порт 1541 на $(hostname)" | mail -s "1С: сервер не отвечает" admin@example.com
fi

Запускайте скрипт из cron раз в пять минут. Адрес и способ отправки замените на свои.

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

Нужно ли запускать службу для файловой базы?
Нет. Служба нужна только для клиент-серверного варианта. Файловая база открывается напрямую с клиента.
Можно ли запускать сервер 1С без службы?
Можно, запустив ragent из командной строки с нужными ключами. Это годится для отладки: после закрытия окна сервер остановится вместе со всеми сеансами.
Какие порты открывать для сервера 1С?
Как минимум 1540 и 1541, а также диапазон портов рабочих процессов. Для консоли через сервер администрирования понадобится ещё 1545.
Можно ли держать сервер 1С и СУБД на одной машине?
Можно, для небольших баз так и делают. С ростом нагрузки их разносят на разные серверы, чтобы они не конкурировали за память.
Как узнать, под какой версией платформы работает служба?
В Windows откройте свойства службы и посмотрите путь к исполняемому файлу: в нём есть номер версии. В Linux он виден в пути /opt/1cv8/x86_64/<версия>/.