Сервер 1С:Предприятия 8.3 с нуля: служба агента, кластер и первая база
Содержание
Сервер 1С:Предприятия 8.3 запускается как служба операционной системы: на Windows это служба агента ragent.exe («1C:Enterprise 8.3 Server Agent»), на Linux — юнит systemd srv1cv8-<версия>@default. После старта агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591. Дальше остаётся открыть эти порты в брандмауэре, зарегистрировать информационную базу в кластере и подключить к ней клиентов.
Порядок настройки одинаков для обеих ОС: лицензия и СУБД → установка сервера той же версии, что у клиентов → запуск службы под отдельным пользователем → консоль администрирования → база в кластере. Отличаются только команды запуска и место, где искать логи. Если служба не стартует или клиенты не видят сервер, почти всегда виноваты три вещи: порты, имя компьютера и несовпадение версий.
Как устроен сервер 1С: агент, кластер и рабочие процессы
Сервер 1С — не одна программа, а связка процессов. Понимать их роли нужно, чтобы знать, какой порт открывать и какой процесс смотреть при сбое.
| Процесс | Файл | Порт по умолчанию | Что делает |
|---|---|---|---|
| Агент сервера | ragent | 1540 | Принимает первое подключение клиента и консоли, хранит список кластеров |
| Менеджер кластера | rmngr | 1541 | Держит реестр баз, сеансов, блокировок, распределяет нагрузку |
| Рабочие процессы | rphost | 1560–1591 | Выполняют серверный код конфигурации и ходят в СУБД |
| Сервер администрирования | ras | 1545 | Нужен утилите 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С:Предприятия 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.
| Экземпляр | Агент | Менеджер | Рабочие процессы | Каталог данных |
|---|---|---|---|---|
| Основной | 1540 | 1541 | 1560:1591 | C:\Program Files\1cv8\srvinfo |
| Второй | 2540 | 2541 | 2560:2591 | C:\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С:Предприятие на любой машине с клиентом той же версии и нажмите «Добавить».
- Выберите «Создание новой информационной базы» и шаблон конфигурации (или пустую базу, если будете загружать
.dt). - Вариант расположения — «На сервере 1С:Предприятия».
- Заполните параметры. В поле «Кластер серверов » — имя сервера 1С (с портом, если он не 1541). «Имя информационной базы в кластере» — латиницей, без пробелов. «Тип СУБД», «Сервер баз данных», «Имя базы данных», пользователь и пароль СУБД.
- Поставьте флажок «Создать базу данных в случае ее отсутствия».
- Для копии рабочей базы отметьте «Установить блокировку регламентных заданий». Иначе копия начнёт загружать банковские выписки и отправлять обмены вместо рабочей.
Для MS SQL в поле «Смещение дат» оставьте 2000, если база создаётся средствами 1С. Для PostgreSQL поле не используется.
Через консоль кластера
В консоли раскройте Центральные серверы 1С:Предприятия 8.3 → <сервер> → Кластеры → <кластер> → Информационные базы, в контекстном меню выберите «Создать → Информационная база». Поля те же, что в окне запуска. Консоль удобна, когда базу СУБД уже восстановили из бэкапа и нужно только «привязать» её к кластеру: флажок создания базы тогда не ставьте.
У администратора кластера есть свой логин и пароль, отдельный от пользователей баз. Задайте его сразу после первого запуска: Кластер → Администраторы. Без этого любой, кто откроет консоль по сети, сможет удалить базу из кластера.
Сервер 1С не запускается: логи и диагностика
Сначала определите, на каком шаге рвётся цепочка: служба не стартует, клиент не видит сервер или сервер видит, но не пускает в базу.
journalctl -u srv1cv8-8.3.24.1548@default. Типичные причины: порт 1540 занят другим экземпляром (netstat -ano | findstr 1540), у пользователя службы нет прав на каталог srvinfo, файлы кластера повреждены после аварийного выключения.ping по имени сервера, Test-NetConnection сервер -Port 1540 в PowerShell, брандмауэр и антивирус на сервере, корректность имени в строке подключения.C:\ProgramData\1C\licenses (на Linux — /var/1C/licenses).Где лежат логи сервера 1С
| Что смотреть | Windows | Linux |
|---|---|---|
| Запуск и падение службы | Журнал событий «Приложение» | 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С и СУБД на один компьютер?
Нужна ли перезагрузка после обновления платформы на сервере?
radmin.dll и обновить клиентов до той же сборки.