При модернизации корпоративной инфраструктуры часто возникает сценарий, когда на одном физическом или виртуальном сервере одновременно развернуты две версии платформы: рабочая 1С:Предприятие 8.2 (на стандартных сетевых портах) и тестовая 1С:Предприятие 8.3 (на альтернативных портах). В процессе окончательного перевода пользователей на новую версию системные администраторы сталкиваются с дилеммой: менять ли сетевые порты местами, как избежать их перезаписи при регулярных обновлениях платформы и как победить ошибку несовместимости версий в консоли администрирования MMC. Разберем эту задачу комплексно и по шагам.
Проанализируем архитектуру сетевых портов серверов 1С:Предприятие. Для полноценной и изолированной работы службы агента сервера недостаточно изменить только один порт подключения. Каждый работающий экземпляр требует уникального набора из трех групп портов и отдельного каталога данных реестра кластера:
-port (по умолчанию 1540, для второго экземпляра обычно назначают 1740). Именно этот порт указывается при подключении к центральному серверу в консоли администрирования.-regport (по умолчанию 1541, для второго экземпляра — 1741). Этот порт клиенты используют при подключении к базам данных.-range (по умолчанию 1560:1591, для второго экземпляра — 1760:1791). Если диапазоны рабочих процессов двух служб пересекутся, один из серверов не сможет запустить процессы кластера.-d. Службы обязаны использовать разные каталоги (например, srvinfo и srvinfo_83), иначе произойдет повреждение данных конфигурации кластера.Рассмотрим наименее трудоемкий сценарий, не требующий модификации реестра операционной системы на стороне сервера. В этом случае сервер 8.3 продолжает работать на своих выделенных портах (например, порт менеджера кластера 1741).
Разберем по шагам порядок действий:
имя_сервера:1741.Главный плюс подхода — отсутствие необходимости останавливать или перенастраивать работающие службы. Однако при этом сохраняется неудобство: всем пользователям и во всех конфигурационных файлах необходимо явно указывать нестандартный порт 1741.
Если в результате миграции платформа 8.2 становится не нужна, наиболее правильным архитектурным решением будет перевод платформы 8.3 на стандартные порты (1540, 1541, 1560:1591). В этом случае пользователям не придется прописывать суффикс :1741, а последующие обновления платформы 8.3 будут проходить в штатном режиме без сброса настроек.
Выполним процедуру перевода по следующему алгоритму:
services.msc) и переводим тип ее запуска в состояние Отключена.regedit) и переходим к ветке службы сервера 8.3:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent
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"
1541.Выясним причину проблемы, когда при очередном апгрейде платформы инсталлятор затирает настройки службы и возвращает дефолтный порт 1541. Стандартный установщик 1С при отмеченном флаге «Установить как сервис» всегда перезаписывает параметры стандартной службы Windows 1C:Enterprise 8.3 Server Agent.
Чтобы сохранить кастомные настройки портов при обновлении, используем один из двух подходов:
ImagePath в реестре и вручную меняем номер релиза в пути к исполняемому файлу ragent.exe, сохраняя все ранее настроенные ключи (-port, -regport, -range).sc create. Стандартный инсталлятор 1С управляет только службой по умолчанию и никогда не затронет службу с нестандартным именем.Нередко системные администраторы наблюдают ситуацию, когда при открытии консоли администрирования 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).