PDA

Просмотр полной версии : Подключение к серверу 1С через COM-компонент



quote
12.07.2018, 09: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-коннектор к серверу на нестандартном порту, то очень прошу им поделиться.

Если каких-то данных не хватает -- спрашивайте, постараюсь оперативно отвечать.

qwerty11
15.07.2018, 22:47
тоже бился с данной проблемой , забил . Я думаю на уровне dll прописано , как только порт не указывал , все равно не работает.

quote
16.07.2018, 08:15
Спасибо, что поделились опытом.
Совсем забить не получится -- выкидывать пользователей всё-таки необходимо. Случайно не подскажете, есть ли варианты, как этого добиться без COM-компонента?

zip10
27.10.2018, 20:14
Недавно столкнулся с похожей проблемой, друг посоветовал обратиться к программисту и дал этот контакт, он тоже когда-то обращался https://www.pro1c-alfa.ru/ позвонил, там мне все подробно объяснили, попробуйте может быть вам тоже помогут

avm3110
30.10.2018, 09:34
Спасибо, что поделились опытом.
Совсем забить не получится -- выкидывать пользователей всё-таки необходимо. Случайно не подскажете, есть ли варианты, как этого добиться без COM-компонента?

Нет, если пользователи сидят в "клиент-серверном варианте", то без подключения с серверу 1С предприятия ты не сможешь их выгнать.

если сидят на сетевой - файловой - то как вариант - рубить шару, но и это не так уж и просто