Сервер мини изнутри: процессы, порты, отладка и пределы
Содержание
«1С:Предприятие 8. Сервер мини» работает на тех же программах, что и обычный сервер 1С: агент ragent, менеджер кластера rmngr, рабочие процессы rphost, порты 1540, 1541 и диапазон 1560–1591. Отличается он лицензией. Она разрешает не больше 5 одновременных пользовательских сеансов во всех базах кластера вместе.
Отсюда практический вывод: отдельного «мини-дистрибутива» нет. Сервер мини ставится, запускается в отладочном режиме, администрируется и диагностируется так же, как полный сервер. Ниже по порядку: чем режимы различаются, как поднимается служба, из чего состоит кластер, как подключить базу и где искать причину, если клиенты не подключаются.
Чем Сервер мини отличается от полноценного сервера 1С
Главное отличие — в лицензии, а не в коде. Когда сервер получает лицензию «мини», он ограничивает число сеансов. Всё остальное работает как в обычной клиент-серверной схеме.
| Параметр | Сервер мини | Полный сервер (64-бит) |
|---|---|---|
| Дистрибутив | общий дистрибутив сервера 1С | тот же |
| Процессы | ragent, rmngr, rphost | те же |
| Сеансы 1С:Предприятия | не больше 5 на все базы | ограничены клиентскими лицензиями |
| Число информационных баз | не ограничено | не ограничено |
| СУБД | MS SQL Server, PostgreSQL и другие поддерживаемые | те же |
| Клиентские лицензии | нужны отдельно | нужны отдельно |
📌 Что важно понять про лимит:
- 🔢 пять сеансов — это сумма по всем базам. Три бухгалтера в БП и два кадровика в ЗУП уже исчерпали лимит;
- 🧑💻 сеанс Конфигуратора, по опыту администраторов, сверх этих пяти не блокируется, но рассчитывать на это при планировании нагрузки не стоит;
- 🔑 лицензия сервера не заменяет клиентские: на каждого пользователя всё равно нужна клиентская лицензия.
Сервер мини выгоден, когда база уже переросла файловый режим по надёжности, а пользователей мало. Например, 3–4 человека в одной БП, которым нужен регламентный бэкап средствами СУБД и нет блокировок файла 1Cv8.1CD.
Как запускается служба Сервера мини и отладочный режим
После установки сервера с отметкой «установить как сервис Windows
» появляется служба агента. Её имя выглядит как 1C:Enterprise 8.3 Server Agent (x86-64). Служба запускает ragent.exe с параметрами, которые видно в свойствах службы, в поле «Исполняемый файл».
Типичная командная строка:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Что здесь что:
-srvc— запуск в роли службы Windows.-agent— режим агента сервера.-port 1540— порт агента.-regport 1541— порт менеджера кластера.-range 1560:1591— диапазон портов для рабочих процессов.-d— каталог служебных данных кластера (srvinfo).
Включение отладки на сервере
Чтобы разработчик мог ставить точки останова в серверном коде, агент запускают с ключом -debug. Без него Конфигуратор подключится к базе, но серверные модули отлаживаться не будут.
Порядок действий:
- Предупредите пользователей: при перезапуске службы все сеансы оборвутся. Делайте это вне рабочего времени или после согласования.
- Остановите службу агента.
- Откройте редактор реестра, раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\и найдите ключ службы агента 1С. - В параметре
ImagePathдопишите в конец строки-debug. - Запустите службу и проверьте в диспетчере задач, что
ragent.exeподнялся.
Правьте только хвост строки ImagePath. Сломанная кавычка в пути к ragent.exe — и служба перестанет стартовать вовсе.
Если нужна отладка по протоколу HTTP (обязательна для мобильных клиентов и удобна в EDT), к -debug добавляют -http. Тогда отладка идёт через сервер отладки dbgs, по умолчанию на порту 1550.
Не оставляйте -debug на рабочем сервере постоянно. Отладка добавляет накладные расходы, а на машине с лимитом в 5 сеансов ресурсы обычно и так скромные.
Запуск на Linux
В актуальных версиях платформы для Linux поставляется юнит systemd. Ключ -debug добавляют в строку запуска ragent в файле юнита, затем выполняют systemctl daemon-reload и перезапускают службу. Предупреждение про обрыв сеансов действует и здесь.
Из каких процессов состоит облегчённый кластер
Кластер Сервера мини устроен так же, как у полного сервера. Просто в нём обычно один компьютер и немного нагрузки.
Цепочка подключения клиента:
- Клиент обращается к агенту сервера на порт 1540.
- Агент передаёт его менеджеру кластера на порт 1541.
- Менеджер кластера назначает рабочий процесс из диапазона 1560–1591, и дальше клиент работает с ним.
| Процесс | Роль | Что видно в диспетчере задач |
|---|---|---|
ragent | агент сервера: хранит список кластеров, принимает первое обращение | один процесс |
rmngr | менеджер кластера: реестр баз, сеансы, блокировки, регламентные задания | один или несколько |
rphost | рабочий процесс: выполняет серверный код и запросы к СУБД | один или несколько |
ras | сервер администрирования для утилиты rac | только если запущен |
🗂️ Настройки кластера хранятся в каталоге srvinfo, в подкаталоге reg_1541. Там лежит файл 1CV8Clst.lst со списком баз и администраторов. Этот каталог стоит включить в резервное копирование
: без него после сбоя базы придётся регистрировать заново.
Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера в консоли кластера. Там же — параметры перезапуска процессов и требования назначения функциональности. Для Сервера мини эти настройки обычно оставляют по умолчанию.
Если на сервере включён брандмауэр, откройте входящие TCP 1540, 1541 и весь диапазон 1560–1591. Открытый только 1540 — частая причина, когда клиент «видит» сервер, но базу не открывает.
Регистрация информационных баз и подключение клиентов
Базу на Сервере мини создают тремя способами. Результат одинаковый: запись в реестре кластера и база данных в СУБД.
| Способ | Когда удобен | Что нужно |
|---|---|---|
| Окно запуска 1С → «Добавить» → «Создание новой информационной базы» → «На сервере 1С:Предприятия» | первая база, нет навыков консоли | права на создание баз в СУБД |
| Консоль администрирования серверов 1С | несколько баз, нужны параметры блокировки | установленная консоль, зарегистрированный radmin.dll |
Утилита rac через ras | Linux, скрипты, удалённое администрирование | запущенный ras |
Через консоль администрирования
- Откройте «Администрирование серверов 1С Предприятия».
- Добавьте центральный сервер: имя компьютера, порт 1540.
- Раскройте
Кластеры → Локальный кластер → Информационные базы. - В контекстном меню выберите «Создать → Информационная база».
- Заполните имя базы в кластере, тип СУБД, сервер БД, имя базы в СУБД, пользователя и пароль СУБД.
- Отметьте «Создать базу данных в случае её отсутствия», если базы в СУБД ещё нет.
Если консоль не открывается с ошибкой про класс или оснастку, перерегистрируйте библиотеку из каталога нужной версии платформы:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Командную строку запускайте от имени администратора. Версия radmin.dll должна совпадать с версией сервера.
Через rac
Сначала запустите сервер администрирования, затем узнайте идентификатор кластера:
ras cluster --port=1545
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
Создание базы тоже доступно через rac infobase create, но набор ключей для СУБД длинный. Сверьте его со справкой rac help infobase для своей версии платформы.
Подключение пользователей
В окне запуска 1С пользователь добавляет существующую базу, тип «На сервере 1С:Предприятия». Указывает кластер серверов
(имя компьютера) и имя базы в кластере. В строке подключения это выглядит так: Srvr="srv1c";Ref="buh";.
Имя базы в кластере и имя базы в СУБД — разные поля. Клиент указывает именно имя в кластере.
Диагностика сбоев и чтение логов в реальном времени
Когда что-то идёт не так, у администратора Сервера мини четыре источника информации.
🔍 Список сеансов. Консоль: Информационные базы → <база> → Сеансы. Через rac:
rac session list --cluster=<uuid-кластера>
rac session list --cluster=<uuid-кластера> --licenses
Второй вариант показывает, какие лицензии заняты. При лимите в 5 сеансов это первое, что стоит проверить. Зависший сеанс ушедшего сотрудника легко «съедает» место коллеги.
🔍 Рабочие процессы. rac process list --cluster=<uuid-кластера> или ветка «Рабочие процессы» в консоли. Видно, сколько памяти занимает каждый rphost и сколько в нём соединений.
🔍 Журнал регистрации базы. Открывается в режиме 1С:Предприятия или Конфигуратора. Показывает ошибки прикладного кода, входы пользователей, падения регламентных заданий.
🔍 Технологический журнал. Пишет события самой платформы: исключения, взаимоблокировки, долгие запросы. Включается файлом logcfg.xml в каталоге 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>
Сервер перечитывает файл сам, перезапуск не нужен. Логи появятся в C:\techlog в подкаталогах по процессам. Параметр history="24" хранит журналы за 24 часа.
Не включайте сбор всех событий без фильтра. Журнал за пару часов займёт гигабайты, а на небольшом сервере место на диске заканчивается быстро. Собрали данные — удалите или переименуйте logcfg.xml.
Чтобы смотреть ошибки «вживую», откройте свежий файл .log в редакторе, который подхватывает дописывание, или в PowerShell:
powershell Get-Content "C:\techlog\rphost_1234\26100712.log" -Wait -Tail 20
Имя подкаталога и файла у вас будет своё: процесс и его PID, затем год, месяц, день и час.
Если не помогло
Если клиенты всё равно не подключаются, проверьте лицензию сервера. Без активной лицензии сервер не обслуживает сеансы 1С:Предприятия. Затем сравните номера версий: номер платформы клиента должен совпадать с номером версии сервера. Расхождение хотя бы в последней цифре сборки даёт ошибку подключения.
Ограничения производительности и когда Сервер мини подходит
Сам по себе Сервер мини не «урезан» по скорости. Те же процессы работают с той же СУБД. Ограничения задают лимит сеансов и, как правило, скромное железо, на которое его ставят.
✅ Сервер мини уместен:
- 👥 небольшой офис до 5 одновременно работающих пользователей;
- 💾 нужен бэкап средствами СУБД по расписанию, а не копирование файла базы;
- 🧪 тестовый или учебный стенд разработчика, где нужна отладка серверного кода в клиент-серверном режиме;
- 🗄️ файловая база выросла и стала тормозить из-за блокировок при одновременной работе.
❌ Пора переходить на полный сервер:
- 📈 пользователей стабильно больше пяти, и лимит мешает работе;
- 🔄 нужны внешние подключения, веб-сервисы или обмены, которые постоянно держат сеансы;
- 🏢 нужна отказоустойчивость или распределение нагрузки на несколько машин.
Ориентир по железу для 5 пользователей в одной типовой конфигурации: 4 ядра и 16 ГБ памяти на машине, где стоят и сервер 1С, и СУБД. Половину памяти обычно отдают СУБД. Диск — SSD: для клиент-серверной базы это важнее частоты процессора.
Частые вопросы
Нужно ли ставить отдельный дистрибутив для Сервера мини?
Можно ли держать на Сервере мини несколько баз?
Нужны ли клиентские лицензии при Сервере мини?
Можно ли перейти с Сервера мини на полный сервер без переноса баз?
Почему отладка серверного кода не останавливается на точке останова?
-debug, или в Конфигураторе не подключены предметы отладки. Проверьте строку запуска службы и список предметов отладки.