Каталог решений - Несколько версий сервера 1С на одном компьютере

Несколько версий сервера 1С на одном компьютере

Несколько версий сервера 1С на одном компьютере

В наличии

Как установить несколько экземляров сервера 1С на один компьютер. Как установить несколько служб агента 1С на один сервер? Как запустить сервера разных платформ на одном компьютере.

Категория:

Описание

Вопросы по установке двух серверов 1С на одном компьютере возникают регулярно, несмотря на то, что яндекс с гуглом выдают достаточное количество ссылок на мануалы, как это сделать. Однако лично мне они помогли лишь частично, так как все необходимые знания пришлось «собирать по частям». Поэтому я решил написать свой собственный мануал, который, возможно, мне пригодится через год-другой, когда сам забуду, как это делать.

Есть два основных случая:

  1. Вы хотите установить два сервера разных платформ, например 8.2.19.130 и 8.3.12.1412 (ключевым здесь будет отличие первых двух цифр – 8.2 и 8.3)

  2. Вы хотите установить два сервера одной платформы или платформ, отличающихся минорными релизами, например два сервера платформы 8.3.11.3034 (один с отладкой, другой без, один 32, другой 64) или два сервера 8.3.11.3034 и 8.3.11412 (здесь ключевым будет совпадение первых двух цифр релиза – 8.3 и 8.3)

 

Случай 1:

Будем считать, что у вас уже имеется штатно установленный и работающий сервер 1С платформы 8.2. Трогать его мы не будем и сразу перейдем к установке сервера на платформе 8.3.

Для установки новой платформы можете взять дистрибутив под названием «Технологическая платформа 1С:Предприятия (64-bit) для Windows» (файл обычно называется windows64full.rar).

ВАЖНО! При установке новой версии платформы необходимо снять галку «Установить сервер 1С:Предприятие 8 как сервис Windows».

После установки платформы, необходимо запустить Command Prompt (Admin) – если у вас Win 10 или Win 2012 – правой кнопкой по кнопке Пуск – там выбрать Command Prompt (Admin). Дальше я буду исходить из того, что у вас есть определенные навыки работы через командную строку (если же нет, рекомендую прерваться и уделить пару часов изучению темы).

Для начала перейдем в папку Bin установленной платформы 8.3.11.3034:

cd "C:\Program Files\1cv8\8.3.11.3034\bin"

И при помощи программы ragent.exe зарегистрируем еще один сервис для сервера 1С на платформе 8.3.11.3034:

.\ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -usr .\USR1CV8 -pwd PASSWORD -d "C:\Program Files\1cv8\srvinfo"

В данной строке мы даем команду создать службу, которая будет запускать агент сервера (RAGENT) на порту 2540, менеджер кластера (RMNGR) на 2541 и рабочие процессы (RPHOST) на портах с 2560 по 2591. Как вы заметили, порты отличаются от штатных первой цифрой (2 вместо 1). Напомню, что штатно используются порты 1540, 1541, 1560-1591. Также мы указываем локального пользователя .\USR1CV8 (точка и обратный слеш перед именем пользователя в данном случае обязательны), пароль пользователя PASSWORD и каталог C:\Program Files\1cv8\srvinfo, где будут храниться данные реестра кластера.

Запустить службу можно командной:

.\ragent.exe -start

Или же просто открыть список служб и запустить вашу новую службу оттуда.

Чтобы только что установленный сервер 1С был доступен по сети, необходимо добавить используемые сервером порты (2540, 2541, 2560-2591) в исключения Брандмауэра Windows (Windows Firewall). Сделать это можно в настройках Брандмауэра или вот этой строкой:

netsh advfirewall firewall add rule name="1c_server_ports" protocol=TCP dir=in localport=2540,2541,2560-2591 action=allow

Далее вам необходимо будет открыть консоль, расположенную по адресу:

 C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc

И создать еще один центральный сервер с указанным портом 2540. На картинке видны две консоли 8.2 (верхний) и 8.3 (нижний) и два сервера работающих на порту 1540 и 2540.

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

При написании этой части я опирался на статью Виталия Онянова http://tavalik.ru/zapusk-neskolkix-serverov-1spredpriyatiya-raznyx-versij/. Вы всегда можете обратиться к ней за дополнительной помощью.

Как вы видите, задача относительно простая. Однако цель моей статьи по большей части был второй случай, материалов по которому в гуглояндексах чуть меньше.

Случай 2:

И так, вам нужно установить два экземпляра сервера на одном компьютере, причем экземпляры одной версии платформы. Исходный материал, от которого должно все начинаться — https://its.1c.ru/db/v8312doc#bookmark:cs:TI000000130

Там сказано:

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

А также приведен пример скрипта, который позволит установить службу, однако он в чистом виде работать отказывается (по крайней мере у меня). Вот чуть подправленная и рабочая версия этого скрипта, полученная методом проб и ошибок:

@echo off

rem %1 — version number

rem %2 — first 2 port characters. for 1540,1541,1560:1591 it will be 15

rem %3 — cluster reg catalog

rem register-service 8.3.11.3034 25 "C:\Program Files\1cv8\srvinfo2541"

set SrvUserName=.\USR1CV8

set SrvUserPwd=PASSWORD

set RangePort=%260:%291

set BasePort=%241

set CtrlPort=%240

set SrvcName="1C:Enterprise 8.3 Server Agent %CtrlPort% %1"

set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d \"%~3\" -debug"

set Desctiption="1C:Enterprise 8.3 Server Agent. Parameters: %1, %CtrlPort%, %BasePort%, %RangePort%"

if not exist "%~3" mkdir "%~3"

sc stop %SrvcName%

sc delete %SrvcName%

sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Tcpip/Dnscache/lanmanworkstation/lanmanserver/

 

Ключевые отличия – перед именем пользователя указывается точка и обратный слеш, в переменной BinPath вместо «/» перед параметрами указывается «-» и в параметре depend обязательно после lanmanserver должен быть «/». Ну и конечно не забудьте заменить PASSWORD на пароль вашего USR1CV8.

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

Для начала сохраните вашу отредактированную версию скрипта (назвав его register-service.bat) в папке с установленной новой платформой C:\Program Files\1cv8\8.3.11.3034\bin.

После этого откройте командную строку и перейдите в папку Bin установленной платформы 8.3.11.3034:

cd "C:\Program Files\1cv8\8.3.11.3034\bin"

Теперь запустите ваш скрипт register-service.bat указав 3 обязательных параметра (пример этой команды в 4й строчке скрипта, который приведен выше):

register-service 8.3.11.3034 25 "C:\Program Files\1cv8\srvinfo2541"

Данный скрипт установит службу для платформы 8.3.11.3034 (первый параметр), пропишет штатные порты на 25** (второй параметр), укажет папку C:\Program Files\1cv8\srvinfo2541 (третий параметр) как каталог для данных реестра кластера (если папка отсутствует – она будет создана).

Тут важно понимать, что новому экземпляру сервера 1С нужна будет своя папка C:\Program Files\1cv8\srvinfo2541 (назвать ее можете как угодно), так как штатная папка C:\Program Files\1cv8\srvinfo уже будет занята первым экземпляром сервера.

Следующий важный нюанс, про который не говориться в статье на ИТС – необходимо дать права на папку C:\Program Files\1cv8\srvinfo2541 пользователю USR1CV8.

Готово. Можно открывать консоль служб Windows и запускать службу. Все дальнейшие действия не отличаются от случая 1.

НО. Есть еще нюанс. Если у вас второй экземпляр сервера другого релиза (например первый 8.3.10.2299, а второй 8.3.11.3034), то у вас возникнут определенные трудности связанные с запуском консоли сервера.

По умолчанию, вы всегда запускаете консоль C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc, которая в свою очередь работает с определенной версией файла radmin.dll. Т.е. консоль для работы с платформой 8.3.10.2299 должна работать с файлом C:\Program Files\1cv8\ 8.3.10.2299\bin\radmin.dll, а для работы с 8.3.11.3034 — C:\Program Files\1cv8\8.3.11.3034\bin\radmin.dll. Есть рекомендации, что перед запуском консоли для работы с определенной версией сервера – необходимо каждый раз регистрировать нужную версию radmin.dll при помощи regsvr32. Однако мне этот вариант не помог (и судя по вопросам на форумах не мне одному). И я нашел один рабочий способ.

В папке C:\Program Files\1cv8\common создаете два файла 8.3.10.2299.reg и 8.3.11.3034.reg с соответствующим содержим:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A42674D4-2D97-4988-A81D-2C113CC42A95}\InprocServer32]

@="C:\\Program Files\\1cv8\\8.3.10.2299\\bin\\radmin.dll"

"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{803144C8-17E6-4926-86C5-C195B6D226D4}\InprocServer32]

@="C:\\Program Files\\1cv8\\8.3.10.2299\\bin\\radmin.dll"

"ThreadingModel"="Both"

И

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A42674D4-2D97-4988-A81D-2C113CC42A95}\InprocServer32]

@="C:\\Program Files\\1cv8\\8.3.11.3034\\bin\\radmin.dll"

"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{803144C8-17E6-4926-86C5-C195B6D226D4}\InprocServer32]

@="C:\\Program Files\\1cv8\\8.3.11.3034\\bin\\radmin.dll"

"ThreadingModel"="Both"

 

Также вы создаете два bat файла Console83102299.bat и Console83113034.bat с соответствующим содержимым:

regedit /s "C:\Program Files\1cv8\common\8.3.10.2299.reg"

mmc /s "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"

и

regedit /s "C:\Program Files\1cv8\common\8.3.11.3034.reg"

mmc /s "C:\Program Files\1cv8\common\1CV8 Servers (x86-64).msc"

И теперь для запуска консоли используете нужный вам bat файл Console831*****.bat.

В принципе, все. Ставьте лайки, подписывайтесь на канал, оставляйте комментарии (с).

has been added to your cart:
Оформление заказа