|
Не получается подключиться через com Доминошник, Мультук, HobbyHorser, Fedor-1971, dedmoroz777, Garykom, 2S, , ДенисСмирнов, TTimur, ass1c, Homer, okmail, vv2304, Prog_man, Vstur, spiller26, viraboy, Crusher, Telcher, Greeen, maxab72, Garikk, mzelensky, p-soft, Snegok, Климов Сергей, shuhard, Гипервизор, LuckyStar, NorthWind, вым, kir-g, Winnie Buh, Franchiser, АЛьФ, 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
|
Смотрите модуль БСП "АдминистрированиеКластера..."
|
|||
|
13
vv2304
19.05.26
✎
12:38
|
И вроде обычный COM/OLE он только локально в рамках одной машины работает
Не, нормально работает. ИмяСервера = "xxx-srv-1c1:1841"; ПараметрыПодключенияИБ = "Srvr=" + ИмяСервера + ";Ref=" + ИмяИБНаСервере + ";Usr=" + ИмяПользователя + ";Pwd=" + ПарольПользователя; v8=Новый COMОбъект("V83.COMConnector"); Connection=v8.Connect(ПараметрыПодключенияИБ); только сервер пришлось писать вместе с портом. |
|||
|
14
Garykom
гуру
19.05.26
✎
12:44
|
(13) У тебя тут локальный COM внутри которого идет подключение к серверной базе по сети
|
|||
|
15
Garykom
гуру
19.05.26
✎
12:51
|
(14)+ Разные методы Connect vs ConnectAgent
ConnectAgent - точно умеет по сети? (в ИТС написано что умеет) А порт не надо указать аналогично? (если он не стандартный по умолчанию) И точно на сервере разрешили подключаться по этому порту к агенту сервера? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |