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

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Ситуация, когда на одном физическом сервере или рабочей станции требуется запустить одновременно два и более экземпляра сервера 1С:Предприятие, встречается довольно часто. Это может быть вызвано необходимостью тестирования новых релизов платформы, разделения ресурсов между критичными базами (например, ЗУП и самописные конфигурации) или требованиями специфического ПО, которое работает только на конкретной версии платформы. Однако при такой настройке системные администраторы часто сталкиваются с проблемой: стандартная консоль администрирования (MMC-снапшот) отказывается подключаться ко второму серверу, выдавая ошибку "Различаются версии клиента и сервера" или пытаясь соединиться по стандартному порту 1540, даже если в настройках указан другой.

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

Причина возникновения конфликта версий в консоли

Разберем природу проблемы. Консоль администрирования 1С представляет собой оснастку для Microsoft Management Console (MMC). Для взаимодействия с сервером приложений она использует программный интерфейс, реализованный в библиотеке radmin.dll. Главная сложность заключается в том, что эта библиотека регистрируется в реестре Windows как COM-компонент с определенным уникальным идентификатором (GUID). Когда вы устанавливаете новую версию платформы, установщик перерегистрирует этот GUID на свою библиотеку.

Если вы запускаете консоль, она обращается к реестру, находит путь к последней зарегистрированной radmin.dll и загружает ее. Если эта библиотека принадлежит версии 8.3.20, а вы пытаетесь подключиться к серверу версии 8.3.14, возникает ошибка несоответствия версий. Консоль "думает", что она должна работать по протоколам новой платформы, в то время как сервер ожидает старые команды.

Решение 1: Правильное добавление сервера в оснастку MMC

Прежде чем приступать к сложным манипуляциям с реестром, рассмотрим штатный способ настройки подключений. Проанализируем ситуацию, когда службы обоих серверов уже запущены на разных портах (например, первый на 1540, второй на 2140).

Выполним следующие шаги в консоли управления:

  1. Запустим стандартную консоль "Администрирование серверов 1С Предприятия".
  2. В дереве консоли нажмем правой кнопкой мыши на корень Central 1C:Enterprise 8.3 Servers и выберем "Создать" -> "Центральный сервер".
  3. В поле "Имя" укажем сетевое имя нашего сервера или localhost.
  4. В поле "Порт" необходимо явно указать номер порта агента сервера, который мы задали при создании второй службы (в нашем примере — 2140).
  5. После нажатия "ОК" консоль попытается подключиться к указанному порту.

Если после этого возникает ошибка несоответствия версий, значит, загруженная консолью библиотека radmin.dll не совпадает с версией исполняемого файла ragent.exe того сервера, к которому мы подключаемся. Перейдем к следующему методу.

Решение 2: Перерегистрация компоненты radmin.dll и использование бат-файлов

Этот метод является наиболее надежным, если вам нужно управлять серверами разных версий попеременно. Суть заключается в том, что перед запуском консоли мы будем принудительно указывать операционной системе, какую именно версию библиотеки нужно использовать.

Рассмотрим пример создания скрипта для запуска консоли под конкретную версию платформы. Предположим, у нас есть версии 8.3.14.1600 и 8.3.20.1674. Создадим два текстовых файла с расширением .bat.

Содержимое файла для версии 8.3.14:


regsvr32 "C:\Program Files\1cv8\8.3.14.1600\bin\radmin.dll" /s 
start mmc "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"

Содержимое файла для версии 8.3.20:


regsvr32 "C:\Program Files\1cv8\8.3.20.1674\bin\radmin.dll" /s 
start mmc "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"

Разберем, что делают эти команды. Команда regsvr32 с ключом /s (тихий режим) регистрирует нужную нам библиотеку в реестре. После этого команда start mmc запускает стандартный файл оснастки. Теперь консоль гарантированно загрузит те компоненты, которые соответствуют выбранному серверу. Для автоматизации этого процесса подойдёт утилита для быстрой регистрации нужной версии консоли кластера и её запуска.

Решение 3: Настройка параметров запуска второй службы

Часто проблемы с консолью начинаются еще на этапе создания второй службы сервера 1С. Если служба настроена некорректно, консоль просто не сможет найти рабочие процессы. Проанализируем правильные параметры создания службы через утилиту sc create.

Для второго экземпляра сервера необходимо выделить не только отдельный порт агента (порт, по которому "стучится" консоль), но и порты для менеджера кластера и диапазон портов рабочих процессов. Посмотрим на пример команды:


sc create "1C:Enterprise 8.3 Server Second" binPath= "\"C:\Program Files\1cv8\8.3.20.1674\bin\ragent.exe\" -srvc -agent -regport 2141 -port 2140 -range 2160:2191 -d \"C:\ProgramData\1C\1cv8_second\""

Обратим внимание на важные параметры:

Решение 4: Использование технологического стека RAS и RAC

Если работа с MMC-консолью кажется слишком громоздкой или нестабильной из-за постоянных перерегистраций DLL, мы можем воспользоваться современным инструментом — Remote Administration Server (RAS) и Remote Administration Client (RAC). Это кроссплатформенные утилиты администрирования, которые не зависят от COM-регистрации.

Для каждого сервера 1С можно запустить свою службу ras.exe:

  1. Запускаем ras для первого сервера на порту 1545.
  2. Запускаем ras для второго сервера на порту 2145.

После этого мы можем управлять серверами через командную строку утилитой rac или использовать сторонние графические интерфейсы, написанные на различных языках программирования, которые подключаются напрямую к RAS. Этот способ полностью исключает ошибку "Различаются версии клиента и сервера", так как взаимодействие происходит по сетевому протоколу, адаптированному под конкретную версию службы. В качестве такого решения можно выбрать кроссплатформенную мультиверсионную консоль администрирования кластера серверов 1С.

Режим совместимости как альтернатива "зоопарку" серверов

Проанализируем ситуацию: стоит ли вообще держать два сервера? Как отмечают опытные специалисты, часто страх перед обновлением платформы преувеличен. В системе 1С:Предприятие реализован мощный механизм режима совместимости.

Если ваша старая конфигурация стабильно работает на версии 8.3.14, а новая ЗКГУ требует 8.3.20, вы можете установить одну версию платформы (самую свежую) и запустить на ней обе базы. Для старой базы в свойствах конфигурации в поле "Режим совместимости" следует оставить значение "Версия 8.3.14". Это позволит коду выполняться по старым правилам, при этом серверная часть будет использовать все преимущества новой платформы в плане производительности и безопасности. Такой подход значительно упрощает администрирование и снижает нагрузку на оперативную память сервера.

Использование сторонних инструментов (ИР)

Для тех, кто предпочитает автоматизированные решения, существуют инструменты, такие как "Инструменты разработчика" (ИР). В этом наборе утилит есть специальная кнопка для запуска консоли конкретной службы. Программа самостоятельно анализирует пути к исполняемым файлам запущенных служб 1С, находит соответствующую библиотеку radmin.dll, регистрирует её в фоновом режиме и открывает окно MMC. Это избавляет системного администратора от необходимости писать бат-файлы вручную.

Подведем итог. Чтобы консоль "видела" второй сервер, мы должны:

  1. Убедиться, что служба второго сервера создана с уникальными портами и собственной папкой реестра кластера.
  2. При добавлении сервера в MMC-консоль явно прописывать порт агента (например, localhost:2140).
  3. Перед запуском консоли регистрировать через regsvr32 ту версию radmin.dll, которая соответствует версии управляемого сервера.

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

← На главную