quote
12.07.2018, 10:22
Здравствуйте!
Мы используем vbs-скрипт для отключения пользователей от базы перед бэкапом.
Если на машине стоит один сервер 1С, то с подключением к нему проблем не возникает.
Но если один сервер стоит на стандартном порту, а второй (другой версии) – на каком-то другом, то подключиться ко второму серверу у нас не получается.
В нашем случае 1С v8.2 стоит на порту 1541 и 1С v8.3 стоит на порту 2541 на машине vm205.
Скрипт, на котором воспроизводится проблема, занимает две строчки – инициализация коннектора и подключение к серверу.
Если вызвать его без указания порта:
Set Connector = CreateObject("V83.COMConnector")
Connector.ConnectAgent("vm205")
То результат выполнения скрипта будет таким (коннектор попытался подключиться к серверу на порту 1541):
V83.COMConnector.1: Различаются версии клиента и сервера (8.3.9.2170 – 8.2.19.83), клиентское приложение: COM-администратор
Если вызвать с явным указанием порта:
Set Connector = CreateObject("V83.COMConnector")
Connector.ConnectAgent("vm205:2541")
То результат будет уже таким:
V83.COMConnector.1: descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=831 file=src\RemoteCreatorImpl.cpp
Также пробовали вызывать с указанием протокола (tcp://) и пробовали использовать IP вместо имени компьютера. Результат такой же: без порта – «различаются версии», с портом – «сервер недоступен».
Есть подозрение, что эта проблема связана с дефолтными значениями RAgentPortDefault, RMngrPortDefault, LowBoundDefault и HighBoundDefault в COM-коннекторе (их описание: http://1cniku.ru/Articles/V8OLE.html#conmetod). Однако способов явно указать нужные значения мы не нашли.
Похожая проблема встречается на форумах, однако внятных решений предложено не было:
https://www.forum.mista.ru/topic.php?id=506518
https://www.forum.mista.ru/topic.php?id=531579
https://www.forum.mista.ru/topic.php?id=553442
Если у Вас есть решение, как подключить COM-коннектор к серверу на нестандартном порту, то очень прошу им поделиться.
Если каких-то данных не хватает -- спрашивайте, постараюсь оперативно отвечать.
Мы используем vbs-скрипт для отключения пользователей от базы перед бэкапом.
Если на машине стоит один сервер 1С, то с подключением к нему проблем не возникает.
Но если один сервер стоит на стандартном порту, а второй (другой версии) – на каком-то другом, то подключиться ко второму серверу у нас не получается.
В нашем случае 1С v8.2 стоит на порту 1541 и 1С v8.3 стоит на порту 2541 на машине vm205.
Скрипт, на котором воспроизводится проблема, занимает две строчки – инициализация коннектора и подключение к серверу.
Если вызвать его без указания порта:
Set Connector = CreateObject("V83.COMConnector")
Connector.ConnectAgent("vm205")
То результат выполнения скрипта будет таким (коннектор попытался подключиться к серверу на порту 1541):
V83.COMConnector.1: Различаются версии клиента и сервера (8.3.9.2170 – 8.2.19.83), клиентское приложение: COM-администратор
Если вызвать с явным указанием порта:
Set Connector = CreateObject("V83.COMConnector")
Connector.ConnectAgent("vm205:2541")
То результат будет уже таким:
V83.COMConnector.1: descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=831 file=src\RemoteCreatorImpl.cpp
Также пробовали вызывать с указанием протокола (tcp://) и пробовали использовать IP вместо имени компьютера. Результат такой же: без порта – «различаются версии», с портом – «сервер недоступен».
Есть подозрение, что эта проблема связана с дефолтными значениями RAgentPortDefault, RMngrPortDefault, LowBoundDefault и HighBoundDefault в COM-коннекторе (их описание: http://1cniku.ru/Articles/V8OLE.html#conmetod). Однако способов явно указать нужные значения мы не нашли.
Похожая проблема встречается на форумах, однако внятных решений предложено не было:
https://www.forum.mista.ru/topic.php?id=506518
https://www.forum.mista.ru/topic.php?id=531579
https://www.forum.mista.ru/topic.php?id=553442
Если у Вас есть решение, как подключить COM-коннектор к серверу на нестандартном порту, то очень прошу им поделиться.
Если каких-то данных не хватает -- спрашивайте, постараюсь оперативно отвечать.