|
|
Не получается подключиться через com
Garykom, 2S, spiller26, viraboy, Crusher, Telcher, Fedor-1971, Greeen, maxab72, Garikk, vv2304, ДенисСмирнов, mzelensky, Prog_man, p-soft, Доминошник, Snegok, Климов Сергей, shuhard, Гипервизор, LuckyStar, NorthWind, вым, kir-g, Мультук, Winnie Buh, okmail, Franchiser, АЛьФ, Vstur, sikuda, zenik, Михаил Козлов, kittystark, ads55, Шурик71, nick86, Builder, svmix, x3-nic, Fish, elka302, Lite777888, TormozIT, Trucker, maxar, Mafiozaa, evorle145
| ☑ |
|
0
vv2304
19.05.26
✎
08:31
|
Обработка через COMConnector подключалась к другим базам. Прекрасно работало когда все было на одном сервере.
COMСоединитель = Новый COMОбъект("V83.COMConnector");
СоединениеСАгентом = COMСоединитель.ConnectAgent(127.0.0.1);
После того как пользователей перевели на отдельный сервер,работать перестало. Хотя вроде все правильно переписал. Теперь так
СоединениеСАгентом = COMСоединитель.ConnectAgent("ххх-srv-1c");
Кластеры = СоединениеСАгентом.GetClusters().Выгрузить();
СоединениеСАгентом.Authenticate(Кластеры[0], АдминистраторКластера, ПарольКластера);
Пишет "Администратор кластера не аутентифицирован"
админ и пароль не менялись, в консоль ведь вхожу нормально.
Подскажите, где ошибка ?
|
|
|
1
spiller26
19.05.26
✎
08:38
|
(0)
1.Зачем вам подключение к другим базам?
2. Базы на УФ или ОП?
3. Почему через com?
|
|
|
2
2S
19.05.26
✎
08:47
|
(1) Странные вопросы, хозяин-барин, значит так надо ему.
(0) Кластеры[0] что возвращает?
|
|
|
3
vv2304
19.05.26
✎
09:18
|
(2) ComОбъект. ХостНейм = ххх-srv-1c
|
|
|
4
spiller26
19.05.26
✎
09:27
|
(2) А вообще зачем ему кластеры?
|
|
|
5
spiller26
19.05.26
✎
09:29
|
(3) Пробуй по другому, вот тебе функция
Функция УстановитьCOMПодключениеСБазойДанных1С(пСервер, пИмяБазыДанных, пКаталогБД, пСерверная, пПользователь, пПароль) Экспорт
COM_Соединение = Неопределено;
Попытка
СистемнаяИнформация = Новый СистемнаяИнформация;
ВерсияПлатформы = Лев(СистемнаяИнформация.ВерсияПриложения,3);
Если ВерсияПлатформы = "8.3" Тогда
ВерсияПлатформыСтрока = "V83";
Иначе
ВерсияПлатформыСтрока = "V82";
КонецЕсли;
V8 = Новый COMОбъект(ВерсияПлатформыСтрока + ".COMConnector");
Если пСерверная Тогда
СтрокаПодключения =
"Srvr=""" + пСервер +
"""; Ref=""" + пИмяБазыДанных +
"""; Usr=""" + пПользователь +
"""; Pwd=""" + пПароль +"""";
Иначе
СтрокаПодключения = "file='" + пКаталогБД + "'; usr='" + пПользователь + "'; pwd='" + пПароль + "';";
КонецЕсли;
COM_Соединение = V8.Connect(СтрокаПодключения);
Возврат COM_Соединение;
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ОписаниеОшибки();
Сообщение.Сообщить();
Возврат Неопределено;
КонецПопытки;
КонецФункции // УстановитьCOMПодключениеСБазойДанных1С()
|
|
|
6
vv2304
19.05.26
✎
10:09
|
(4) А как получить список баз ?
|
|
|
7
Fedor-1971
19.05.26
✎
10:27
|
(6) Делай регистр сведений с подключением куда тебе нужно и тебе нужен список баз клиентской машины, а не кластера
А так-то:
1. Кластер может требовать пароль администратора
2. СОМ соединения может админ прикрыть на самом сервере
3. На самом сервере, возможно, придётся поставить клиента локально
|
|
|
8
vv2304
19.05.26
✎
11:02
|
1. Кластер может требовать пароль администратора
СоединениеСАгентом.Authenticate(Кластеры[0], АдминистраторКластера, ПарольКластера);
При запуске консоли вбиваю Админа и пароль, нормально вхожу.
Или это другое ?
2. СОМ соединения может админ прикрыть на самом сервере
если надо подключиться к конкретной базе, то без проблем.
|
|
|
9
Fedor-1971
19.05.26
✎
11:12
|
(8) по 1 - программно не пробовал, но нужно чётко понимать, что в Кластеры[0] именно кластер для предоставления Админа и пароля.
Можно для примера посмотреть как работает снятие сеанса пользователя в БСП, там точно нужно указать админа и пароль (в БП: Администрирование - Обслуживание - Активные пользователи кнопка Завершить сеанс)
2. Подключение идет с клиента без проблем, т.к. СОМ компоненты лежат локально, а на сервере их может тупо не быть
|
|
|
10
spiller26
19.05.26
✎
11:38
|
(8) Что-то вас несет не туда.
Если вам нужно мписок баз то пробуйте rac, как раз в БСП можете найти.
Если вам нужно подсоединение к базе через com, то в (5) я вам дал код
|
|
|
11
Garykom
гуру
19.05.26
✎
11:46
|
(0) После того как пользователей перевели на отдельный сервер,работать перестало.
Может у вас теперь только сервер RDP с клиентами под Windows, а сервер 1С и СУБД на Linux крутятся?
И вроде обычный COM/OLE он только локально в рамках одной машины работает
Если хочется по сети то есть конечно DCOM, но хрень еще та и настраивать отдельно надо
|
|
|
12
spiller26
19.05.26
✎
11:50
|
Смотрите модуль БСП "АдминистрированиеКластера..."
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший