Как запустить две разные версии сервера 1С:Предприятие 8.3 на одном физическом сервере?

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

В практике системного администрирования 1С часто возникают ситуации, когда на одном сервере необходимо обеспечить одновременную работу разных версий платформ. Типичный пример — необходимость запуска современных конфигураций (ЗУП 3.1, Бухгалтерия 3.0) на актуальной платформе (например, 8.3.20 или выше) и параллельное использование специфических отраслевых решений, таких как "Альфа-Авто", которые из-за особенностей защиты или совместимости оборудования требуют строго определенную старую версию платформы (например, 8.3.10). Рассмотрим подробнее, как реализовать такую схему без приобретения дополнительного оборудования.

Теоретические основы: почему нельзя просто установить вторую платформу?

При стандартной установке 1С:Предприятие инсталлятор регистрирует службу 1C:Enterprise 8.3 Server Agent. Если вы попытаетесь установить вторую версию платформы тем же способом, инсталлятор либо предложит обновить существующую службу, либо создаст конфликт имен и портов. Для корректной работы двух экземпляров сервера нам необходимо разнести их по трем параметрам:

  1. Имя службы: каждая версия должна иметь свое уникальное имя в реестре Windows.
  2. Сетевые порты: стандартные порты 1540, 1541 и диапазон 1560-1591 будут заняты первой службой.
  3. Каталог данных (srvinfo): настройки кластера, списки баз и сеансов должны храниться в разных папках, иначе базы одной версии "перемешаются" с базами другой.

Шаг 1: Установка второй платформы

Проанализируем процесс установки. Первым делом скачиваем нужный дистрибутив (в нашем примере 8.3.10.2466). При запуске программы установки важно выбрать режим "Выборочная установка".

В списке компонентов мы оставляем "Сервер 1С:Предприятия" и "Модули расширения веб-сервера", если они нужны, но на этапе предложения "Установить сервер 1С:Предприятия как сервис" — снимаем эту галочку. Нам нужно, чтобы файлы просто скопировались в папку C:\Program Files\1cv8\8.3.x.xxxx\, но никакие системные службы автоматически не создавались. Это позволит нам создать службу вручную с нужными параметрами.

Шаг 2: Создание новой службы сервера через командную строку

Выясним, как прописать параметры запуска. Для создания службы воспользуемся утилитой sc. Откроем командную строку от имени администратора и введем команду. Разберем пример для платформы 8.3.10.2466, которую мы хотим посадить на порты 1640 и 1641.


sc create "1C_Enterprise_8.3.10" binPath= "\"C:\Program Files\1cv8\8.3.10.2466\bin\ragent.exe\" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d \"C:\Program Files\1cv8\srvinfo_1641\"" start= auto obj= "NT AUTHORITY\NetworkService"

Рассмотрим ключи этой команды подробнее:

Шаг 3: Настройка прав доступа

После создания службы необходимо убедиться, что у пользователя, под которым она будет работать (например, USR1CV8 или NetworkService), есть полные права на папку, указанную в ключе -d. Если права будут ограничены, служба может запуститься, но не сможет создать файлы конфигурации кластера 1cv8wsrv.lst, что приведет к её внезапной остановке через несколько секунд после старта.

Шаг 4: Регистрация баз и подключение пользователей

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

Пример: ServerName:1641

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

Проблема COM-соединителя при использовании разных версий

Проанализируем ситуацию, когда базы на разных серверах должны обмениваться данными через COMConnector. Windows хранит информацию о библиотеке comcntr.dll в реестре по фиксированному пути. Регистрация одной версии "затирает" регистрацию другой.

Если вам нужно, чтобы база на платформе 8.3.20 подключалась к базе на 8.3.10, вы можете столкнуться с ошибкой несоответствия версий. Решением является использование программного создания объекта с указанием конкретной версии, если это реализовано в вашем коде, либо ручная перерегистрация библиотеки перед выполнением обмена. Посмотрим на способ регистрации нужной версии библиотеки через regsvr32:

regsvr32 "C:\Program Files\1cv8\8.3.10.2466\bin\comcntr.dll"

Однако более надежным методом является настройка Side-by-Side (SxS) или использование разных имен COM-объектов в коде, если это поддерживается конфигурацией. В сообщениях форума упоминалось, что опытные администраторы создают в реестре копии веток COM-объекта с уникальными GUID для каждой версии платформы, что позволяет вызывать V83.COMConnector_8.3.14.1694 напрямую.

Обновление одной из платформ

Если вам потребовалось обновить одну из установленных платформ, рассмотрим алгоритм действий, чтобы не "сломать" вторую службу. Допустим, мы обновляем дополнительную службу с 8.3.17 на 8.3.19:

  1. Устанавливаем новую платформу без создания службы.
  2. Останавливаем текущую службу дополнительного сервера.
  3. Заходим в реестр Windows по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.
  4. Находим ветку нашей службы (например, 1C_Enterprise_8.3.10).
  5. В параметре ImagePath аккуратно меняем номер версии в пути к исполняемому файлу ragent.exe. Все остальные ключи (порты, путь к srvinfo) оставляем без изменений.
  6. Запускаем службу снова.

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

Дополнительные инструменты

Для тех, кто опасается работать с командной строкой и реестром вручную, существуют сторонние инструменты, такие как srvinstall или специализированные обработки с портала Инфостарт. Эти утилиты предоставляют графический интерфейс для управления службами 1С, позволяя в пару кликов создать новый экземпляр сервера с указанием всех необходимых портов и путей. Однако понимание ручного процесса крайне важно для диагностики возможных ошибок запуска.

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

← На главную