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

· 10 мин

Содержание

Сервер 1С:Предприятия 8.3 запускается как служба операционной системы: на Windows это служба агента ragent.exe («1C:Enterprise 8.3 Server Agent»), на Linux — юнит systemd srv1cv8-<версия>@default. После старта агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591. Дальше остаётся открыть эти порты в брандмауэре, зарегистрировать информационную базу в кластере и подключить к ней клиентов.

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

Как устроен сервер 1С: агент, кластер и рабочие процессы

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

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

Клиент сначала стучится к агенту на 1540, тот направляет его к менеджеру кластера на 1541, а уже менеджер выдаёт адрес рабочего процесса из диапазона. Поэтому открытого 1540 недостаточно: если закрыт диапазон рабочих процессов, клиент увидит сервер, но не войдёт в базу.

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

Сами данные базы хранятся не на сервере 1С, а в СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle. Сервер 1С и СУБД можно ставить на одну машину или на разные. Во втором случае откройте ещё и порт СУБД между ними (1433 для MS SQL, 5432 для PostgreSQL).

Подготовка перед установкой сервера 1С

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

  • 🔑 Лицензия на сервер. Клиент-серверный вариант требует отдельной серверной лицензии (ПРОФ, КОРП или «Мини» для небольшого числа пользователей). Клиентские лицензии её не заменяют. Без серверной лицензии клиенты получат сообщение об отсутствии лицензии сервера.
  • 🧩 Одна версия платформы. Клиенты подключаются только к серверу той же версии, вплоть до четвёртой цифры. Сервер 8.3.24.1548 не примет клиента 8.3.24.1467.
  • 🗄️ СУБД установлена и доступна. Для PostgreSQL берите сборку, адаптированную для 1С (от фирмы «1С» или Postgres Pro). Под MS SQL заведите логин SQL Server с правом создавать базы.
  • 🖥️ Имя компьютера разрешается. Клиенты обращаются к серверу по имени, указанному в кластере. Если имя не резолвится через DNS, пропишите его в hosts на клиентах. На Linux имя самого сервера тоже должно резолвиться в его внешний адрес, а не в 127.0.1.1.

Под службу заведите отдельного пользователя, без прав администратора домена. Установщик на Windows сам предлагает создать пользователя USR1CV8. Ему нужно право «Вход в качестве службы» и полный доступ к каталогу данных кластера.

Перед запуском сервера 1С
Выполнено: 0 / 6

Что ставить из дистрибутива

В дистрибутиве технологической платформы (не «тонкого клиента ») при установке выберите компоненты «Сервер 1С:Предприятия 8» и «Администрирование сервера 1С:Предприятия». Второй ставит библиотеку для консоли кластера. Клиент на сервер ставить необязательно, но с ним удобнее проверять подключение прямо с машины сервера.

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

При установке через setup.exe поставьте флажок «Установить сервер 1С:Предприятия как сервис Windows» и укажите пользователя. Служба зарегистрируется и запустится сама. Проверить её можно в оснастке «Службы» (services.msc): ищите «1C:Enterprise 8.3 Server Agent (x86-64)», статус «Выполняется», тип запуска «Автоматически».

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

Если служба не создалась, сломалась после обновления или нужно запустить второй экземпляр, регистрируйте её командой ragent из каталога нужной версии. Командную строку откройте от имени администратора.

cd "C:\Program Files\1cv8\8.3.24.1548\bin"

ragent.exe -instsrvc -usr .\USR1CV8 -pwd ПарольСлужбы -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

ragent.exe -start

Здесь -port — порт агента, -regport — порт менеджера кластера, -range — диапазон рабочих процессов, -d — каталог данных кластера (srvinfo). Остановка — ragent.exe -stop, удаление службы — ragent.exe -rmsrvc.

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

Две версии платформы на одном сервере

Частый случай: часть баз ещё на старом релизе, часть уже на новом. Две службы могут работать параллельно, если у них разные порты и разные каталоги srvinfo.

ЭкземплярАгентМенеджерРабочие процессыКаталог данных
Основной154015411560:1591C:\Program Files\1cv8\srvinfo
Второй254025412560:2591C:\Program Files\1cv8\srvinfo2540

Клиенты второго экземпляра указывают сервер с портом: ИмяСервера:2541 в строке подключения к базе.

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

После установки консоль администрирования (оснастка MMC) иногда выдаёт ошибку загрузки. Причина — не зарегистрирована библиотека radmin.dll нужной версии. Регистрируйте её вручную от администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

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

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

На Linux сервер работает под пользователем usr1cv8, который создаёт установщик. Каталог данных кластера по умолчанию — /home/usr1cv8/.1cv8/1C/1cv8. Сам сервер лежит в /opt/1cv8/x86_64/<версия>/.

В актуальных релизах платформы вместе с сервером в каталог версии кладётся шаблон юнита systemd. Его подключают, включают автозапуск и стартуют экземпляр default:

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

В выводе status должно быть active (running), а в дереве процессов — ragent, rmngr и хотя бы один rphost. Проверить, что порты слушаются, можно так:

sudo ss -tlnp | grep -E '1540|1541|156[0-9]'

Порты, каталог данных и параметры отладки задаются переменными окружения юнита. Не правьте сам файл в /opt — при следующем обновлении он будет заменён. Используйте переопределение: sudo systemctl edit srv1cv8-8.3.24.1548@default.

В старых сборках платформы вместо systemd-юнита использовался init-скрипт srv1cv83 с настройками в отдельном конфигурационном файле. Если вы видите такой скрипт, сервер установлен из старого дистрибутива. При переходе на новый релиз отключите старый скрипт, чтобы два агента не боролись за порт 1540.

Особенности Linux, о которых забывают

  • 🔤 Локаль. Для работы с кириллицей нужна установленная локаль ru_RU.UTF-8. Без неё возможны ошибки при создании базы и в отчётах.
  • 🔤 Шрифты. Печатные формы и отчёты формируются на сервере. Без шрифтов Microsoft (пакет с Arial и Times New Roman) печать «съезжает».
  • 🛡️ Брандмауэр. В ufw или firewalld откройте те же порты, что и на Windows.
  • 🧱 Имя хоста. Строка 127.0.1.1 имя-сервера в /etc/hosts заставляет кластер зарегистрировать себя на loopback. Клиенты с других машин тогда не подключатся. Пропишите имя на реальный IP.

Сервер администрирования ras и утилита rac

Графическая консоль MMC есть только на Windows. Для управления кластером на Linux, из скриптов или с другой машины используют пару ras + rac. ras — служба, rac — консольный клиент к ней.

Запуск ras вручную на Linux:

sudo -u usr1cv8 /opt/1cv8/x86_64/8.3.24.1548/ras cluster --daemon --port=1545 localhost:1540

На Windows ras регистрируют отдельной службой, чтобы он поднимался вместе с сервером:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto

Пробел после binPath= и start= обязателен, иначе sc выдаст ошибку синтаксиса.

Проверка, что кластер живой:

rac localhost:1545 cluster list

Команда вернёт идентификатор кластера (cluster), его имя и порт. Этот идентификатор нужен для остальных команд, например списка баз: rac localhost:1545 infobase summary list --cluster=<идентификатор>. Полный перечень подкоманд выводит rac help.

Как зарегистрировать информационную базу в кластере

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

Через окно запуска 1С

Самый простой путь, если база создаётся с нуля.

  1. Запустите 1С:Предприятие на любой машине с клиентом той же версии и нажмите «Добавить».
  2. Выберите «Создание новой информационной базы» и шаблон конфигурации (или пустую базу, если будете загружать .dt).
  3. Вариант расположения — «На сервере 1С:Предприятия».
  4. Заполните параметры. В поле «Кластер серверов » — имя сервера 1С (с портом, если он не 1541). «Имя информационной базы в кластере» — латиницей, без пробелов. «Тип СУБД», «Сервер баз данных», «Имя базы данных», пользователь и пароль СУБД.
  5. Поставьте флажок «Создать базу данных в случае ее отсутствия».
  6. Для копии рабочей базы отметьте «Установить блокировку регламентных заданий». Иначе копия начнёт загружать банковские выписки и отправлять обмены вместо рабочей.

Для MS SQL в поле «Смещение дат» оставьте 2000, если база создаётся средствами 1С. Для PostgreSQL поле не используется.

Через консоль кластера

В консоли раскройте Центральные серверы 1С:Предприятия 8.3 → <сервер> → Кластеры → <кластер> → Информационные базы, в контекстном меню выберите «Создать → Информационная база». Поля те же, что в окне запуска. Консоль удобна, когда базу СУБД уже восстановили из бэкапа и нужно только «привязать» её к кластеру: флажок создания базы тогда не ставьте.

У администратора кластера есть свой логин и пароль, отдельный от пользователей баз. Задайте его сразу после первого запуска: Кластер → Администраторы. Без этого любой, кто откроет консоль по сети, сможет удалить базу из кластера.

Сервер 1С не запускается: логи и диагностика

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

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

Где лежат логи сервера 1С

Что смотретьWindowsLinux
Запуск и падение службыЖурнал событий «Приложение»journalctl -u srv1cv8-<версия>@default
Журнал регистрации базыsrvinfo\reg_1541\<id базы>\1Cv8Log~usr1cv8/.1cv8/1C/1cv8/reg_1541/<id базы>/1Cv8Log
Технологический журналНастраивается файлом logcfg.xml в каталоге conf платформыТо же, в /opt/1cv8/conf/

Технологический журнал по умолчанию выключен. Включайте его, только когда ищете конкретную проблему. Начните с событий EXCP (исключения) и PROC (старт и падение процессов) — они показывают, почему рабочий процесс завершился. Полный журнал всех событий за час может занять гигабайты, поэтому ограничьте срок хранения параметром history и после диагностики отключите.

Сброс кэша сервера

Если после обновления конфигурации или аварии кластер ведёт себя странно (базы не видны, сеансы «висят» после выхода), помогает очистка сеансовых данных. Порядок такой: остановить службу агента, удалить содержимое папок snccntx* внутри каталога кластера reg_1541, запустить службу. Файлы 1CV8Clst.lst и 1CV8Reg.lst не удаляйте: в них список баз кластера, без них базы придётся регистрировать заново. Перед очисткой скопируйте весь каталог srvinfo в сторону.

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

Можно ли запустить сервер 1С без службы, просто программой?
Да. Агент запускается из консоли с ключом -debug или без него: ragent.exe -port 1540 -regport 1541 -range 1560:1591 -d "каталог". Сервер проработает, пока открыт сеанс Windows. Для рабочей эксплуатации нужна служба.
Как включить отладку на сервере 1С?
Добавьте ключ -debug в параметры запуска агента. На Windows это строка запуска службы в реестре (HKLM\SYSTEM\CurrentControlSet\Services\<служба>\ImagePath), на Linux — переопределение юнита. Потом перезапустите службу. Держать отладку включённой на рабочем сервере не стоит: она снижает производительность.
Сколько рабочих процессов нужно?
По умолчанию кластер сам запускает процессы по мере роста нагрузки. Для начала оставьте автоматический режим. Число процессов меняют, когда видят упор в память одного rphost или неравномерную нагрузку.
Можно ли поставить сервер 1С и СУБД на один компьютер?
Можно, и для 10–30 пользователей это обычная схема. Выделите СУБД отдельную память, иначе она и рабочие процессы будут вытеснять друг друга. На MS SQL ограничьте максимальную память сервера в его настройках.
Нужна ли перезагрузка после обновления платформы на сервере?
Перезагружать компьютер не требуется. Нужно остановить службу старой версии, зарегистрировать и запустить службу новой, перерегистрировать radmin.dll и обновить клиентов до той же сборки.