Консоль кластера не той версии: как переключить radmin.dll и подключиться к серверу
Содержание
Чтобы запустить консоль
сервера 1С нужной версии, зарегистрируйте библиотеку radmin.dll из каталога bin этой версии платформы: regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll" в командной строке от имени администратора. После этого откройте ярлык «Администрирование серверов 1С:Предприятия» — оснастка MMC подхватит именно ту версию, которую вы зарегистрировали последней.
Частое заблуждение — что версию консоли выбирают ярлыком в меню «Пуск» или что за неё отвечает comcntr.dll. Ярлык 1CV8 Servers.msc одинаков для всех версий, а comcntr.dll — это COM-соединитель для внешних подключений к базе, к консоли он отношения не имеет. Версию определяет только зарегистрированный в системе radmin.dll.
Как консоль связана с сервером 1С и почему важна версия
Консоль администрирования — это оснастка Microsoft Management Console. Сама по себе она пустая: всю работу делает COM-компонента radmin.dll, которая устанавливается вместе с платформой.
Схема подключения такая:
- 🖥️ консоль через
radmin.dllобращается к агенту сервера (ragent), по умолчанию порт1540; - 🧭 агент знает про кластеры и передаёт управление менеджеру кластера (
rmngr), порт1541; - ⚙️ рабочие процессы (
rphost) работают в диапазоне портов, который задают в свойствах рабочего сервера, по умолчанию1560:1591.
Консоль ходит в агент напрямую. Протокол между radmin.dll и агентом привязан к версии платформы, поэтому консоль версии 8.3.22 не обязана нормально работать с сервером 8.3.24. Безопасное правило одно: версия зарегистрированного radmin.dll должна совпадать с версией сервера до последней цифры сборки.
Отсюда и проблема. На машине администратора часто стоят три-четыре версии платформы, а зарегистрирован только один radmin.dll — тот, что был установлен или перерегистрирован последним.
Переключение версии консоли через radmin.dll в каталоге bin
Каждая версия платформы лежит в своём каталоге: C:\Program Files\1cv8\8.3.xx.xxxx\bin\. Внутри — свой radmin.dll. Переключение сводится к регистрации нужного файла.
Способ 1. Ярлык из меню «Пуск»
При установке платформы с компонентой «Администрирование сервера 1С:Предприятия» в меню «Пуск» появляется ярлык «Регистрация утилиты администрирования серверов». Он запускает регистрацию radmin.dll именно этой версии.
- Откройте папку платформы в меню «Пуск» нужной версии.
- Запустите ярлык регистрации от имени администратора (правая кнопка → «Дополнительно» → «Запуск от имени администратора»).
- Дождитесь сообщения об успешной регистрации.
- Закройте все окна консоли и откройте её заново.
Минус способа: при нескольких версиях ярлыки легко перепутать, а в «Пуске» видно не всё.
Способ 2. Командная строка
Надёжнее и нагляднее. Откройте cmd от имени администратора и выполните:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Подставьте свой номер версии. Узнать точную версию сервера проще всего в свойствах службы «Агент сервера 1С:Предприятия 8.3»: в поле «Исполняемый файл» виден полный путь к ragent.exe, а в нём — номер сборки.
Если хотите сначала снять регистрацию старой версии:
regsvr32 /u "C:\Program Files\1cv8\8.3.22.1709\bin\radmin.dll"
Это не обязательно: новая регистрация перезаписывает старую. Но так меньше путаницы, если на машине много версий.
Готовый bat-файл под каждую версию
Удобный приём практика — держать на рабочем столе по одному bat-файлу на каждую версию сервера. Запустили нужный — получили консоль нужной версии.
@echo off
set VER=8.3.24.1548
regsvr32 /s "C:\Program Files\1cv8\%VER%\bin\radmin.dll"
start "" mmc "C:\Program Files\1cv8\common\1CV8 Servers.msc"
Ключ /s убирает окно с сообщением. Запускать файл нужно от имени администратора, иначе регистрация молча не пройдёт.
Путь к 1CV8 Servers.msc может отличаться в зависимости от установки. Найдите файл через свойства ярлыка «Администрирование серверов 1С:Предприятия» — в поле «Объект» указан точный путь.
32 или 64 бита
Здесь спотыкаются чаще всего. На 64-битной Windows оснастка MMC по умолчанию запускается 64-битной. Ей нужен radmin.dll из 64-битной платформы, то есть из C:\Program Files\1cv8\.
Если на машине стоит только 32-битный клиент (C:\Program Files (x86)\1cv8\), есть два варианта:
| Ситуация | Что делать | Комментарий |
|---|---|---|
| Есть 64-битная платформа той же версии | Регистрировать radmin.dll из Program Files | Основной вариант |
| Только 32-битная платформа | Регистрировать radmin.dll из Program Files (x86) и запускать mmc /32 "путь\1CV8 Servers.msc" | Работает, но легко забыть ключ /32 |
| Обе разрядности одной версии | Регистрировать ту, что совпадает с разрядностью MMC | Иначе консоль не увидит компоненту |
Ключ mmc /32 принудительно открывает 32-битную оснастку. Без него 64-битная MMC не найдёт 32-битную компоненту, и консоль покажет ошибку создания объекта.
Утилиты ras и rac: управление кластером без MMC
Сервер администрирования ras — это отдельный процесс, который принимает команды по своему порту (по умолчанию 1545) и передаёт их агенту. С ним работают консольная утилита rac и сторонние графические консоли.
Важное уточнение: MMC-консоль через ras не ходит. Она подключается к агенту по 1540. ras нужен, когда:
- 🐧 сервер на Linux, а Windows-машины с нужной версией под рукой нет;
- 🧾 нужно управлять кластером из скриптов;
- 🔌 хочется обойти проблему с регистрацией
radmin.dll—racне требует ничего регистрировать.
Запуск ras вручную
ras.exe лежит в том же каталоге bin, что и сервер. Для разового запуска:
"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540
Здесь 1545 — порт самого ras, а localhost:1540 — адрес агента, которым он будет управлять.
Установка ras службой
Чтобы 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" DisplayName= "1C:Enterprise 8.3 Remote Server" start= auto
sc start "1C:Enterprise 8.3 Remote Server"
Пробелы после binPath=, DisplayName= и start= обязательны — так устроен синтаксис sc.
Первые команды rac
Утилиту rac берите из той же версии платформы, что и сервер:
rac cluster list localhost:1545
rac infobase summary list --cluster=<id_кластера> localhost:1545
rac session list --cluster=<id_кластера> localhost:1545
Идентификатор кластера возьмите из вывода первой команды. Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Полный список команд и параметров смотрите в rac help и rac help <режим>.
Порядок работы, если серверов несколько
Когда у вас три сервера разных сборок, удобно держать одну оснастку и переключать компоненту перед каждым сеансом работы:
- Закройте все окна консоли администрирования. Пока оснастка открыта, она держит загруженный
radmin.dll, и новая регистрация подействует только после перезапуска. - Запустите bat-файл с версией нужного сервера.
- Откройте в дереве только тот сервер, который соответствует этой версии. Остальные серверы в оснастке будут выдавать ошибку подключения — это ожидаемо.
- Закончив, не забудьте, какая версия осталась зарегистрированной: следующий администратор на этом ПК получит именно её.
Для постоянной работы с разными версиями удобнее сохранить отдельные файлы .msc под каждую группу серверов. В оснастке это Файл → Сохранить как. Тогда в bat-файле вместо общего 1CV8 Servers.msc указывается свой файл, и в дереве сразу видны только серверы нужной версии.
Ручной запуск агента и менеджера кластера rmngr
Процесс rmngr вручную не запускают. Его поднимает агент ragent при старте кластера, он же запускает рабочие процессы rphost. Если rmngr нет в диспетчере задач, проблема почти всегда в агенте или в каталоге с данными кластера.
Для диагностики агент можно запустить не службой, а в окне командной строки. Сначала остановите службу.
Остановка службы агента обрывает сеансы всех пользователей на этом сервере. Делайте это вне рабочего времени или после предупреждения пользователей.
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -agent -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Что означают параметры:
-port— порт агента;-regport— порт менеджера кластера;-range— диапазон для рабочих процессов;-d— каталогsrvinfoс настройками кластера;-debug— разрешить отладку на сервере.
Если агент в таком режиме сразу падает, в окне видно сообщение о причине: занятый порт, недоступный каталог srvinfo, нехватка прав. Это быстрее, чем искать причину в журнале событий.
Несколько версий сервера на одной машине
Два сервера разных версий могут работать параллельно, если у них разные порты и разные каталоги srvinfo. Типичная схема: версия А на 1540/1541/1560:1591, версия Б на 2540/2541/2560:2591.
Тогда консоль версии Б подключают к адресу имя_сервера:2540. В оснастке это делается через «Создать → Центральный сервер 1С:Предприятия 8.3», в поле «IP-порт» укажите 2540.
Консоль сервера 1С и Linux
На Linux своей MMC-консоли нет. Управлять сервером можно двумя путями.
Путь 1. Windows-консоль к Linux-серверу. MMC на Windows подключается к агенту на Linux по порту 1540 так же, как к Windows-серверу. Условие прежнее: на Windows-машине установлена и зарегистрирована та же версия платформы, что и на сервере. Порты 1540, 1541 и диапазон рабочих процессов должны быть открыты в межсетевом экране Linux.
Путь 2. ras и rac на самом сервере. В новых версиях платформы (8.3.21 и выше) она ставится в /opt/1cv8/x86_64/<версия>/, и в этом каталоге лежат готовые unit-файлы systemd для сервера и для ras.
VER=8.3.24.1548
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl link /opt/1cv8/x86_64/$VER/ras-$VER.service
sudo systemctl enable --now srv1cv8-$VER@default
sudo systemctl enable --now ras-$VER
/opt/1cv8/x86_64/$VER/rac cluster list localhost:1545
Если имена unit-файлов в вашем каталоге отличаются, посмотрите их командой ls /opt/1cv8/x86_64/$VER/*.service и подставьте свои.
На старых сборках платформа жила в /opt/1C/v8.3/x86_64/, а сервер запускался скриптом srv1cv83. Там две версии одновременно поставить сложнее: каталог общий, и новая установка заменяет старую.
Для Linux-сервера проще всего держать на одном Windows-ПК администратора все версии платформы, которые встречаются у вас на серверах, и bat-файлы для переключения radmin.dll.
Диагностика: консоль не подключается к серверу нужной версии
Большинство сбоев консоли сводится к трём причинам: зарегистрирован не тот radmin.dll, не та разрядность или сервер недоступен по сети. Ниже — симптомы и что проверять.
Быстрые проверки
- Версия сервера: свойства службы агента → путь к
ragent.exe. - Версия консоли: какой
radmin.dllвы регистрировали последним. Если не помните — просто перерегистрируйте нужный. - Порты на сервере:
netstat -ano | findstr "1540 1541 1545"
- Связь с клиентской машины:
Test-NetConnection имя_сервера -Port 1540в PowerShell. - Если на кластере задан администратор, консоль попросит логин и пароль при открытии кластера. Это не ошибка версии.
Если забыли пароль администратора кластера, не пересоздавайте кластер. Остановите службу агента в нерабочее время и восстановите каталог srvinfo из резервной копии или обратитесь к тому, кто администрирует сервер.