Как настроить работу консоли администрирования 1С для близких релизов платформы

Системный администратор IT и автоматизация бизнеса
← На главную

При администрировании нескольких серверов 1С часто возникает необходимость использовать оснастку MMC (консоль управления сервером) для разных релизов одной ветки платформы (например, 8.2.19.68 и 8.2.16.352). Однако при попытке параллельного запуска одной из консолей администраторы сталкиваются с тем, что работает только последняя установленная версия, а при попытке переключиться возникает ошибка инициализации оснастки.

Рассмотрим причины возникновения этой проблемы и разберем по шагам рабочие способы её решения.

Почему возникает конфликт консолей одного семейства

Проанализируем ситуацию изнутри. Консоль управления сервером 1С представляет собой стандартный файл оснастки Microsoft Management Console (файлы с расширением .msc), который взаимодействует с сервером через динамическую библиотеку администрирования radmin.dll.

Основная причина конфликта заключается в особенностях COM-регистрации библиотеки radmin.dll в операционной системе Windows:

  1. Все библиотеки radmin.dll в рамках одного семейства релизов (например, 8.2 или 8.3) имеют одинаковый уникальный идентификатор класса (CLSID) в реестре Windows по адресу HKEY_CLASSES_ROOT\CLSID.
  2. При установке или перерегистрации новой версии платформы ссылка в реестре перезаписывается и начинает указывать на библиотеку radmin.dll последней зарегистрированной версии.
  3. Консоль MMC обращается к системному реестру, находит зафиксированный путь к DLL и запускает экземпляр именно той версии, которая зарегистрирована в системе на данный момент.

Решение 1. Использование командных скриптов для перерегистрации компоненты

Для переключения между консолями разных релизов можно использовать динамическую перерегистрацию библиотеки radmin.dll перед запуском оснастки. В платформе 1С предусмотрен штатный утилитарный файл RegMSC.cmd (или RegMSC64.cmd для 64-разрядных систем), находящийся в каталоге bin нужного релиза.

Разберем создание управляющих батников для каждого релиза. Для этого создадим отдельные командные файлы для запуска каждой версии консоли.

Пример командного файла для запуска консоли версии 8.2.16.352:


@echo off
rem Регистрация компоненты администрирования для версии 8.2.16.352
regsvr32 /s "C:\Program Files (x86)\1cv82\8.2.16.352\bin\radmin.dll"

rem Запуск оснастки MMC
start "" "C:\Program Files (x86)\1cv82\8.2.16.352\bin\1CV8 Servers (x86-64).msc"

Пример командного файла для запуска консоли версии 8.2.19.68:


@echo off
rem Регистрация компоненты администрирования для версии 8.2.19.68
regsvr32 /s "C:\Program Files (x86)\1cv82\8.2.19.68\bin\radmin.dll"

rem Запуск оснастки MMC
start "" "C:\Program Files (x86)\1cv82\8.2.19.68\bin\1CV8 Servers (x86-64).msc"

Важное примечание: Командные файлы необходимо запускать с правами администратора, иначе команда regsvr32 не сможет внести изменения в системный реестр Windows.

Решение 2. Особенности использования 32-разрядных и 64-разрядных консолей

При использовании скриптов перерегистрации следует учитывать разрядность консоли MMC:

  1. Для 64-разрядных консолей: Оснастка MMC не позволяет удерживать одновременно два разных процесса с перезаписанной DLL. При перерегистрации библиотеки прямо во время работы открытая консоль выдаст ошибку («MMC could not create the snap-in»). Поэтому перед переключением релизов предыдущую 64-битную консоль нужно закрыть.
  2. Для 32-разрядных консолей: Вы можете запустить первую консоль, выполнив регистрацию DLL первого релиза, затем перерегистрировать DLL под второй релиз и открыть вторую консоль. В 32-битном режиме уже загруженный процесс удерживает DLL в памяти, что позволяет работать двум консолям одновременно в рамках одного сеанса.

Решение 3. Переход на Сервер администрирования (RAS) и RAC

Если требуется постоянно управлять серверами разных версий и уйти от проблем с регистрацией системных библиотек Windows MMC, рекомендуется отказаться от классической консоли в пользу сервера администрирования RAS (Remote Administration Server) и утилиты командной строки RAC.

Преимущества данного подхода:

  1. Служба RAS запускается отдельно для каждого релиза кластера и работает на своем сетевом порту.
  2. Отсутствует привязка к реестру Windows и библиотеке radmin.dll.
  3. Появляется возможность использовать сторонние графические интерфейсы или собственные обработки на 1С для взаимодействия с кластером через утилиту rac.exe или Java SDK.

Для запуска сервера администрирования нужного релиза в режиме службы используется следующая команда:

ras.exe cluster --daemon --port=1545 127.0.0.1:1540

Где --port=1545 — порт службы RAS, а 127.0.0.1:1540 — адрес и порт агента соответствующего сервера 1С.

← На главную