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

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

В практике системного администрирования 1С часто возникает ситуация, когда на одном физическом или виртуальном сервере необходимо запустить сразу несколько версий платформы. Это может быть связано с необходимостью плавного перехода на новый релиз (например, с 8.3.11 на 8.3.15), тестированием баз на новой платформе или поддержкой специфических конфигураций, которые еще не адаптированы под последние обновления. Разберем подробно, как реализовать этот сценарий, обеспечив стабильную работу обеих служб.

Принципы сосуществования двух серверов 1С

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

  1. Главный порт агента (IP-порт): по умолчанию 1540. Для второй службы выберем, например, 2540.
  2. Порт менеджера кластера: по умолчанию 1541. Для второй службы назначим 2541.
  3. Диапазон рабочих портов: стандартный диапазон 1560-1591 заменим на 2560-2591.
  4. Каталог данных (Registry): место, где хранятся настройки списка баз и кластера. Это критически важный момент — нельзя использовать одну папку для разных версий.

Способ 1: Использование специализированных утилит

Рассмотрим наиболее простой и удобный вариант — использование готовых инструментов, которые автоматизируют создание служб Windows. Программисты часто рекомендуют использовать утилиту Управление службами серверов 1С. Рассмотрим алгоритм действий при ее использовании:

  1. Установим новую платформу 1С:Предприятие. При установке в диалоговом окне выбора компонентов обязательно отметим «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия».
  2. Важно: на этапе предложения создать службу «Агент сервера 1С:Предприятия» в инсталляторе лучше отказаться (снять галочку), чтобы не создать конфликт с уже работающей старой версией.
  3. Запустим утилиту управления службами. В ней мы увидим текущую рабочую службу (например, на платформе 8.3.11).
  4. Нажмем кнопку создания новой службы. В параметрах укажем путь к исполняемому файлу ragent.exe новой версии платформы (например, в папке 8.3.15.хххх\bin).
  5. Настроим порты: укажем основной порт 2540 и смещение для остальных портов.
  6. Укажем отдельный каталог для реестра кластера. Рекомендуется создать структуру вида C:\ProgramData\1C\server_8_3_15.

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

Способ 2: Ручное создание службы через командную строку

Если вы предпочитаете полный контроль или не хотите использовать стороннее ПО, проанализируем процесс ручного создания службы с помощью стандартной команды Windows sc create. Выясним причину, по которой это решение считается максимально надежным для опытных администраторов.

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


sc create "1C:Enterprise 8.3.15 Server" binPath= "\"C:\Program Files\1cv8\8.3.15.1830\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\ProgramData\1C\server_8_3_15\"" start= auto obj= "NT AUTHORITY\NetworkService"

Разберем параметры этой команды подробнее:

Настройка прав доступа и пользователей

Для повышения стабильности работы рассмотрим вариант запуска служб под разными пользователями. Если обе службы (8.3.11 и 8.3.15) запущены под стандартным пользователем USR1CV8, они могут конфликтовать при доступе к временным файлам в профиле пользователя. Посмотрим, как это предотвратить:

  1. Создадим в системе второго пользователя, например USR1CV8_15.
  2. Назначим ему необходимые права: «Вход в качестве службы», доступ к папке с установленной платформой и права на папку данных кластера (параметр -d).
  3. В настройках новой службы Windows на вкладке «Вход в систему» укажем данные этого нового пользователя.

Подключение клиентов к новому серверу

После того как обе службы запущены, нам нужно научить клиентские приложения подключаться к правильному экземпляру сервера. Если при использовании стандартного сервера мы просто пишем имя хоста (например, 1C-Main-Server), то для подключения к серверу с нестандартными портами необходимо явно указывать порт агента.

В строке соединения или в поле «Сервер предприятия» при добавлении базы в список указываем:

1C-Main-Server:2540

Если мы попытаемся запустить базу на новой платформе, не указав порт, система по умолчанию обратится к порту 1540 и попытается найти базу в реестре старого кластера (8.3.11), что приведет к ошибке «Информационная база не обнаружена» или ошибке соответствия версий клиента и сервера.

Администрирование нескольких кластеров

Проанализируем ситуацию с консолью администрирования. Оснастка MMC (1cv8.msc) обычно регистрируется для последней установленной версии. Если вам нужно одновременно управлять обоими кластерами, выполним следующие шаги:

  1. При регистрации сервера в консоли администрирования для второй службы также обязательно указывайте порт 2540.
  2. Если консоль от версии 8.3.15 отказывается работать с сервером 8.3.11, используйте утилиту ras (сервер администрирования). Запустите для каждой версии свой экземпляр ras на разных портах, и тогда вы сможете подключаться к ним через универсальные средства управления.

Нюансы работы с COM-соединением

Важно помнить, что в реестре Windows может быть зарегистрирована только одна версия COM-соединителя (comcntlev.dll). Если ваши базы обмениваются данными через COM, они будут использовать ту версию, которая была установлена или зарегистрирована последней. Рассмотрим решение: если требуется работа разных версий COM, используйте механизм запуска COM-объекта в отдельном процессе через «Службы компонентов» (COM+), создав там отдельное приложение для каждой версии библиотеки comcntlev.dll.

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

← На главную