Консоль кластера не той версии: как переключить radmin.dll и подключиться к серверу

· 9 мин

Содержание

Чтобы запустить консоль сервера 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 именно этой версии.

  1. Откройте папку платформы в меню «Пуск» нужной версии.
  2. Запустите ярлык регистрации от имени администратора (правая кнопка → «Дополнительно» → «Запуск от имени администратора»).
  3. Дождитесь сообщения об успешной регистрации.
  4. Закройте все окна консоли и откройте её заново.

Минус способа: при нескольких версиях ярлыки легко перепутать, а в «Пуске» видно не всё.

Способ 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 <режим>.

Порядок работы, если серверов несколько

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

  1. Закройте все окна консоли администрирования. Пока оснастка открыта, она держит загруженный radmin.dll, и новая регистрация подействует только после перезапуска.
  2. Запустите bat-файл с версией нужного сервера.
  3. Откройте в дереве только тот сервер, который соответствует этой версии. Остальные серверы в оснастке будут выдавать ошибку подключения — это ожидаемо.
  4. Закончив, не забудьте, какая версия осталась зарегистрированной: следующий администратор на этом ПК получит именно её.

Для постоянной работы с разными версиями удобнее сохранить отдельные файлы .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, не та разрядность или сервер недоступен по сети. Ниже — симптомы и что проверять.

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

Быстрые проверки

  1. Версия сервера: свойства службы агента → путь к ragent.exe.
  2. Версия консоли: какой radmin.dll вы регистрировали последним. Если не помните — просто перерегистрируйте нужный.
  3. Порты на сервере:
netstat -ano | findstr "1540 1541 1545"
  1. Связь с клиентской машины: Test-NetConnection имя_сервера -Port 1540 в PowerShell.
  2. Если на кластере задан администратор, консоль попросит логин и пароль при открытии кластера. Это не ошибка версии.

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

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

Можно ли подключиться консолью 8.3.22 к серверу 8.3.24?
Иногда соединение проходит, но гарантий нет: часть свойств может не отображаться, возможны ошибки. Регистрируйте radmin.dll ровно той версии, что и сервер.
Нужно ли ставить сервер 1С на компьютер администратора, чтобы работала консоль?
Нет. Достаточно установить платформу нужной версии с компонентой администрирования сервера. Сам сервер ставить не нужно.
Почему после обновления клиента консоль перестала видеть старый сервер?
Установщик новой версии перерегистрировал radmin.dll на себя. Зарегистрируйте заново файл из каталога версии старого сервера.
Влияет ли перерегистрация radmin.dll на работу пользователей?
Нет. Регистрация меняет только компоненту на вашем компьютере. Сервер, сеансы и базы она не затрагивает.
Чем ras отличается от ragent?
ragent — агент сервера, без него кластер не работает. ras — вспомогательный сервер администрирования для rac и сторонних консолей. Его можно не запускать, если хватает MMC.