Как настроить переход с Сервера 1С 8.2 на 8.3 при их параллельной установке на одном сервере?

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

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

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

  1. Порт главного агента сервера (ragent) — параметр -port (по умолчанию 1540, для второго экземпляра обычно назначают 1740). Именно этот порт указывается при подключении к центральному серверу в консоли администрирования.
  2. Порт главного менеджера кластера (rmngr) — параметр -regport (по умолчанию 1541, для второго экземпляра — 1741). Этот порт клиенты используют при подключении к базам данных.
  3. Диапазон портов рабочих процессов (rphost) — параметр -range (по умолчанию 1560:1591, для второго экземпляра — 1760:1791). Если диапазоны рабочих процессов двух служб пересекутся, один из серверов не сможет запустить процессы кластера.
  4. Каталог данных реестра кластера — параметр -d. Службы обязаны использовать разные каталоги (например, srvinfo и srvinfo_83), иначе произойдет повреждение данных конфигурации кластера.

Вариант 1. Перевод баз на 8.3 без изменения портов службы

Рассмотрим наименее трудоемкий сценарий, не требующий модификации реестра операционной системы на стороне сервера. В этом случае сервер 8.3 продолжает работать на своих выделенных портах (например, порт менеджера кластера 1741).

Разберем по шагам порядок действий:

  1. Создаем информационную базу в кластере 8.3 и переносим данные из 8.2.
  2. На рабочих станциях пользователей устанавливаем клиентскую платформу 8.3.
  3. В диалоге добавления или редактирования информационной базы в списке запуска 1С указываем сетевой адрес кластера с явным портом менеджера: имя_сервера:1741.

Главный плюс подхода — отсутствие необходимости останавливать или перенастраивать работающие службы. Однако при этом сохраняется неудобство: всем пользователям и во всех конфигурационных файлах необходимо явно указывать нестандартный порт 1741.

Вариант 2. Полный перевод 8.3 на стандартные порты и вывод 8.2 из эксплуатации

Если в результате миграции платформа 8.2 становится не нужна, наиболее правильным архитектурным решением будет перевод платформы 8.3 на стандартные порты (1540, 1541, 1560:1591). В этом случае пользователям не придется прописывать суффикс :1741, а последующие обновления платформы 8.3 будут проходить в штатном режиме без сброса настроек.

Выполним процедуру перевода по следующему алгоритму:

  1. Останавливаем службу агента сервера 1С:Предприятие 8.2 через оснастку управления службами Windows (services.msc) и переводим тип ее запуска в состояние Отключена.
  2. Открываем редактор реестра Windows (regedit) и переходим к ветке службы сервера 8.3:
    
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent
    
  3. Находим строковый параметр ImagePath и приводим строку запуска к стандартным портам:
    
    "C:\Program Files\1cv8\8.3.X.XXXX\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
    
  4. Запускаем службу агента сервера 8.3. Теперь кластер принимает подключения по умолчанию на порту 1541.

Как избежать сброса портов при обновлениях платформы 8.3

Выясним причину проблемы, когда при очередном апгрейде платформы инсталлятор затирает настройки службы и возвращает дефолтный порт 1541. Стандартный установщик 1С при отмеченном флаге «Установить как сервис» всегда перезаписывает параметры стандартной службы Windows 1C:Enterprise 8.3 Server Agent.

Чтобы сохранить кастомные настройки портов при обновлении, используем один из двух подходов:

  1. Обновление без переустановки сервиса: при инсталляции нового релиза платформы 1С снимаем флаг «Установить 1С:Предприятие как системную службу». После завершения установки открываем параметр ImagePath в реестре и вручную меняем номер релиза в пути к исполняемому файлу ragent.exe, сохраняя все ранее настроенные ключи (-port, -regport, -range).
  2. Создание службы с уникальным системным именем: регистрируем службу кластера с пользовательским именем через утилиту sc create. Стандартный инсталлятор 1С управляет только службой по умолчанию и никогда не затронет службу с нестандартным именем.

Решение ошибки: «Различаются версии клиента и сервера» в консоли MMC

Нередко системные администраторы наблюдают ситуацию, когда при открытии консоли администрирования 8.3 возникает ошибка: «Ошибка соединения с Сервером 1С:8.3. Различаются версии клиента и сервера (8.3.X.XXXX - 8.2.XX.XXX) клиентское приложение: консоль кластера». При этом в свойствах кластера порт самопроизвольно переключается на 1540.

Выясним причину этой ошибки: оснастка консоли MMC (1CV8 Servers.msc) взаимодействует с сервером через COM-библиотеку radmin.dll. В операционной системе Windows в глобальном реестре COM одновременно может быть зарегистрирована только одна версия этой библиотеки. Если последней была зарегистрирована версия от 8.2, то даже консоль, запущенная из каталога 8.3, загрузит в память библиотеку версии 8.2 и попытается подключиться по протоколу старой платформы.

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


cd "C:\Program Files\1cv8\8.3.X.XXXX\bin"
regsvr32 radmin.dll

В каталоге bin платформы 1С также присутствует вспомогательный командный файл RegMsc.cmd, выполняющий аналогичную операцию в автоматическом режиме. После перерегистрации библиотеки запустим консоль управления серверами 8.3 — ошибка несовместимости версий исчезнет, а при добавлении центрального сервера станет доступно корректное указание порта агента (например, имя_сервера:1740).

← На главную