Присоветуйте как быть с V81.COMConnector
пытаюсь подключиться к внешней информационной базе (файловая)
при этом: если подключаться к базе с пользователем без пароля - все хорошо, а если у пользователя есть пароль, то выдает сообщение:
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V81.COMConnector.1)... и дальше пишет ссылку на ошибку в "левом" общем модуле, который в данный момент не используется и самое непонятное - всегда работает без ошибок!
при этом: если подключаться к базе с пользователем без пароля - все хорошо, а если у пользователя есть пароль, то выдает сообщение:
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V81.COMConnector.1)... и дальше пишет ссылку на ошибку в "левом" общем модуле, который в данный момент не используется и самое непонятное - всегда работает без ошибок!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
// Соберем строку подключения
Если ЭтоФайловаяИБ = Истина Тогда
СтрокаПодключения = "File=""" + ПутьКБазе + """" + ?(ИБПользователь <> "",";Usr=""" + ИБПользователь + """","") +
?(ИБПароль <> "",";Pwd=""" + ИБПароль + """","") + ";";
Иначе
СтрокаПодключения = "Srvr=""" + КластерСерверов + """;Ref=""" + ИмяИБВКластере + """" +
?(ИБПользователь <> "",";Usr=""" + ИБПользователь + """","") +
?(ИБПароль <> "",";Pwd=""" + ИБПароль + """","") + ";";
КонецЕсли;
Попытка
#Если Клиент Тогда
Состояние("Идет процесс соединения ...");
#КонецЕсли
// не 7.7
Если ИБ.ВерсияПлатформы <> Справочники.ВерсииПлатформы.v77 Тогда
ОбъектПодключения = "V" + СокрЛП(ИБ.ВерсияПлатформы.Код) +".COMConnector";
Иначе
Сообщить("Коннектор для 7.7 не определен");
Возврат;
КонецЕсли;
ТекCOMПодключение = Новый COMОбъект(ОбъектПодключения);
ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения);
#Если Клиент Тогда
Состояние("Соединение установлено");
#КонецЕсли
МассивПольз = ТекCOMОбъект.ПользователиИнформационнойБазы.ПолучитьПользователей();
ТЧПользователи = ИБ.Пользователи.Выгрузить();
Для сч = 1 По МассивПольз.Count() Цикл
ИндCom = сч-1;
ИмяCom = МассивПольз.Get(ИндCom).Name;
Если ТЧПользователи.Найти(ИмяCom) = Неопределено Тогда
Стр = ТЧПользователи.Добавить();
Стр.Пользователь = ИмяCom;
КонецЕсли;
КонецЦикла;
ИБ.Пользователи.Загрузить(ТЧПользователи);
ИБ.Записать();
Исключение
СтрокаСообщенияОбОшибке = "При попытке подключения к информационной базе произошла ошибка:" + Символы.ПС + ОписаниеОшибки();
#Если Клиент Тогда
Состояние("Соединение установить не удалось");
Сообщить(ИБ.Наименование + ": соединение установить не удалось");
#КонецЕсли
Возврат;
КонецПопытки;
ТекCOMОбъект = Неопределено;
Показать
(2)
спасибо, нечто подобное я сумел собрать и сам, однако оно не работает.
COM-объект создается на ура :) , а вот подключения по верным параметрам к информационной базе при наличии пароля пользователя не даётся :(
вот именно здесь: ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения); и заканчивается
спасибо, нечто подобное я сумел собрать и сам, однако оно не работает.
COM-объект создается на ура :) , а вот подключения по верным параметрам к информационной базе при наличии пароля пользователя не даётся :(
вот именно здесь: ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения); и заканчивается
Спасибо тем, кто читал и особенно тем, кто писал!
Проблему решил:
просто в общих модулях были всякие "препроцессорные причиндалы" не отрезанные {#Если Клиент Тогда...#КонецЕсли} - поправил и всё заработало!
т.к. я в с этими делами первый раз столкнулся, то и не знал, что при внешнем подключении к информационной базе проводится такая вот "полупроверка" её модулей
Проблему решил:
просто в общих модулях были всякие "препроцессорные причиндалы" не отрезанные {#Если Клиент Тогда...#КонецЕсли} - поправил и всё заработало!
т.к. я в с этими делами первый раз столкнулся, то и не знал, что при внешнем подключении к информационной базе проводится такая вот "полупроверка" её модулей
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот