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

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

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

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

Почему принудительный запуск EXE-файла из папки новой платформы не решает проблему?

Многие начинающие администраторы совершают одну и ту же ошибку: они пытаются запустить исполняемый файл тонкого или толстого клиента (например, 1cv8.exe или 1cv8c.exe) напрямую из каталога новой платформы (например, C:\Program Files\1cv8\8.3.15.1830\bin\), надеясь, что база откроется под этой версией.

Однако в клиент-серверном варианте работы архитектура 1С устроена иначе. Клиентское приложение осуществляет первичное подключение к кластеру серверов 1С:Предприятия. Если служба сервера запущена на старой версии (например, 8.3.12.1780), сервер принудительно сообщает клиенту, какая версия платформы необходима для работы. В итоге клиентская машина автоматически закрывает текущий исполняемый файл и перезапускает ту версию платформы, которая соответствует работающей службе сервера. Если же нужная версия не установлена у пользователя, система выдаст ошибку несоответствия версий клиента и сервера.

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

Пошаговый алгоритм развертывания второго сервера 1С

Разберем по шагам весь процесс установки и конфигурирования новой службы сервера 1С параллельно с уже существующей.

Шаг 1. Установка новой платформы 1С:Предприятие

Запустим программу установки (дистрибутив технологической платформы) новой версии. При выборе устанавливаемых компонентов необходимо отметить «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия». Однако на этапе настройки параметров запуска сервера как службы Windows крайне важно снять галочку «Установить сервер 1С:Предприятия как службу Windows». Если этого не сделать, установщик перезапишет параметры существующей службы старого сервера, из-за чего старый кластер перестанет запускаться.

Шаг 2. Создание каталога для нового реестра кластера

Каждая служба сервера 1С хранит настройки своих баз, список зарегистрированных пользователей, журнал регистрации и служебные файлы в специальном каталоге реестра кластера (по умолчанию это папка srvinfo). Если запустить две разные службы сервера с указанием одного и того же каталога реестра, произойдет конфликт доступа к файлам конфигурации, что гарантированно приведет к повреждению структуры баз в кластере.

Создадим на диске сервера отдельную пустую папку для реестра нового кластера. Например:

C:\Program Files\1cv8\srvinfo_new

Шаг 3. Настройка прав доступа к новому каталогу

По умолчанию службы сервера 1С запускаются от имени специального локального пользователя Windows (обычно это системная учетная запись USR1CV8). Нам необходимо убедиться, что у этого пользователя есть полные права на только что созданную папку.

Для этого выполним следующие действия:

  1. Нажмем правой кнопкой мыши по папке srvinfo_new и выберем «Свойства».
  2. Перейдем на вкладку «Безопасность» и нажмем кнопку «Изменить».
  3. Найдем в списке пользователей учетную запись USR1CV8 (или ту доменную/локальную запись, под которой работает ваша служба 1С).
  4. Установим галочку «Полный доступ» (Full Control) в колонке «Разрешить».
  5. Нажмем «Применить» и «ОК» для сохранения прав.

Шаг 4. Определение свободных портов

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

Для второй службы сервера нам необходимо задать альтернативные порты. Рекомендуется использовать смещение на 1000 единиц вперед:

Шаг 5. Ручная регистрация новой службы в Windows

Для создания новой службы Windows воспользуемся стандартной консольной утилитой sc.exe. Запустим командную строку (CMD) обязательно от имени Администратора.

При составлении команды обратим особое внимание на синтаксис утилиты sc: после знака равенства (=) перед значением параметра обязательно должен стоять пробел, а перед самим знаком равенства пробела быть не должно. Пути, содержащие пробелы, должны быть обернуты в кавычки, которые внутри параметра binPath необходимо экранировать обратным слэшем (\").

Рассмотрим пример команды для регистрации службы платформы версии 8.3.15.1830 с альтернативными портами и новым каталогом реестра:


sc create "1C_Enterprise_8.3.15.1830" binPath= "\"C:\Program Files\1cv8\8.3.15.1830\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\Program Files\1cv8\srvinfo_new\"" start= auto DisplayName= "1C:Enterprise 8.3.15.1830 Server Agent"

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

После выполнения команды в консоли должно появиться сообщение об успешном создании службы: [SC] CreateService: успех.

Шаг 6. Настройка параметров входа для новой службы

По умолчанию созданная служба регистрируется с правами системы (Local System), однако для стабильной и безопасной работы СУБД и сервера 1С рекомендуется запускать ее под той же учетной записью, что и основной сервер.

  1. Откроем оснастку «Службы» (выполним команду services.msc).
  2. Найдем созданную службу с именем 1C:Enterprise 8.3.15.1830 Server Agent.
  3. Дважды кликнем по ней и перейдем на вкладку «Вход в систему».
  4. Переключим переключатель в положение «С учетной записью» и укажем данные пользователя USR1CV8 и его пароль.
  5. Нажмем «Применить» и запустим службу.

Подключение пользователей к новому кластеру серверов

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

Обратите внимание, что указывать нужно именно порт менеджера кластера (в нашем примере это 2541), а не порт агента (2540).

Особенности администрирования двух кластеров разной версии

Администрирование серверов 1С традиционно выполняется с помощью стандартной консоли MMC (файл 1CV8 Servers.msc). Однако в операционной системе Windows в один момент времени может быть зарегистрирована только одна библиотека удаленного администрирования radmin.dll, отвечающая за взаимодействие оснастки MMC с агентом сервера.

Если вы попытаетесь подключиться консолью администрирования к серверу версии 8.3.15, когда в системе зарегистрирована DLL-библиотека от версии 8.3.12, вы получите ошибку о несоответствии версий утилиты администрирования и сервера.

Для решения этой проблемы необходимо перерегистрировать соответствующую библиотеку в операционной системе перед запуском консоли. Сделать это можно с помощью создания простых файлов сценариев (бат-файлов) с расширением .bat.

Создадим файл admin_8.3.12.bat для переключения на старый сервер:

regsvr32 /s "C:\Program Files (x86)\1cv8\8.3.12.1780\bin\radmin.dll"

Создадим файл admin_8.3.15.bat для переключения на новый сервер:

regsvr32 /s "C:\Program Files\1cv8\8.3.15.1830\bin\radmin.dll"

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

Альтернативное решение: Использование утилит автоматизации

Если ручная регистрация через командную строку кажется вам слишком трудоемкой или вы опасаетесь допустить ошибку в синтаксисе кавычек и пробелов, можно воспользоваться готовыми решениями от сообщества. Существуют специализированные графические утилиты-регистраторы (например, доступные на порталах для разработчиков 1С, таких как Инфостарт).

Подобные программы предоставляют удобный графический интерфейс, где достаточно выбрать каталог с установленной новой платформой, указать желаемые порты и нажать одну кнопку. Утилита самостоятельно сгенерирует правильную строку запуска службы, автоматически создаст каталог реестра с нужными правами доступа и зарегистрирует службу в системе без риска опечаток.

← На главную