Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 18:35

При попытке соединения с COM-сервером произошла следующая ошибка

Автор Sheriff, 11 июл 2018, 10:09

0 Пользователей и 1 гость просматривают эту тему.

Alex26


Sheriff

Цитата: Alex26 от 17 июл 2018, 13:07
скинь как ты подключаешься? что написал ?
В8 = Новый COMОбъект("V83.COMConnector.1");
    ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
            Попытка
                Соединение = В8.Connect(ПутьКБазе);
Сообщить("Ошибка создания объекта "+В8+" !") ;
Сообщить(ОписаниеОшибки()) ;
            Исключение
               // Сообщить("" + ТекущаяДата() + " " +"Ошибка " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()) + " база ", СтатусСообщения.Важное);
            КонецПопытки;   
           // Соединение = "";
           // В8 = ""

Если использовать весь твой код ,то вообще ничего не выдает.

Alex26

Цитата: Sheriff от 17 июл 2018, 13:17Попытка                 Соединение = В8.Connect(ПутьКБазе); Сообщить("Ошибка создания объекта "+В8+" !") ; Сообщить(ОписаниеОшибки()) ;

)))))) если не выдает то подключение удачно прошло, а если выдаст ошибку то не смог подключится, убери из попытки описание ошибки, а мой код раскоментируй

Добавлено: 17 июл 2018, 13:25


если после попытки в режиме отладки когда идешь переходит после подключения сразу к концу попытки то все удачно, от этого и пляши, делай в своем документа так

Sheriff

Цитата: Alex26 от 17 июл 2018, 13:21
Цитата: Sheriff от 17 июл 2018, 13:17Попытка                 Соединение = В8.Connect(ПутьКБазе); Сообщить("Ошибка создания объекта "+В8+" !") ; Сообщить(ОписаниеОшибки()) ;

)))))) если не выдает то подключение удачно прошло, а если выдаст ошибку то не смог подключится, убери из попытки описание ошибки, а мой код раскоментируй

Добавлено: 17 июл 2018, 13:25


если после попытки в режиме отладки когда идешь переходит после подключения сразу к концу попытки то все удачно, от этого и пляши, делай в своем документа так
Да, соединение установлено!
Но, как теперь грамотно прописать это в моём коде)
Перем СтрокаПодключения;

Если СтруктураПараметров = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;

ПараметровДостаточно = МодульЦемзавод.ОпределитьДостаточностьПараметровДляПодключенияКИнформационнойБазе(СтруктураПараметров, СтрокаПодключения, СтрокаСообщенияОбОшибке);

Если Не ПараметровДостаточно Тогда
Возврат Неопределено;
КонецЕсли;

Если СтруктураПараметров.СерверныйРежим Тогда
ПараметрыПодключения = "Srvr=""" + СокрЛП(СтруктураПараметров.ИмяСервера) + """; Ref=""" + СокрЛП(СтруктураПараметров.ИмяБазы) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
Иначе
ПараметрыПодключения = "File=""" + СокрЛП(СтруктураПараметров.ПутьКБазе) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
КонецЕсли;


Попытка
//#Если Клиент Тогда
//Состояние("Идет процесс соединения ...");
Сообщить("Идет процесс соединения ...");
//#КонецЕсли


Попытка
Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
Обработчик = Новый COMОбъект("V82.COMConnector");
Иначе
Обработчик = Новый COMОбъект("V83.COMConnector");
КонецЕсли;
Исключение
Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
Сообщить(ОписаниеОшибки()) ;
КонецПопытки;


ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
Сообщить("Соединение установлено");
//#КонецЕсли

Исключение

СтрокаСообщенияОбОшибке = "При попытке соедиения с COM-сервером произошла следующая ошибка:" + Символы.ПС
+ ОписаниеОшибки();
//#Если Клиент Тогда
Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Важное);
    //Состояние("Соединение установить не удалось");
//Состояние();
    Сообщить("Соединение установить не удалось");
//#КонецЕсли

Возврат Неопределено;

КонецПопытки;

Возврат ТекCOMОбъект;

Чтоб грамотно отрабатывало

Alex26

Ты только к одной базе подключаться собираешься или нескольким?

Sheriff

Цитата: Alex26 от 17 июл 2018, 13:40
Ты только к одной базе подключаться собираешься или нескольким?
Только к одной, файловой.

Alex26

Во первых добавь .1 в комконекторе пусть все отрабатывает перед строкой ТекCOMОбъект = Обработчик.Connect вставь ту строку подключения по которой у тебя удачно прошло подключение в скобке ТекCOMОбъект = Обработчик.Connect(ПутьКБазе) попробуй так просто незнаю что у теб она делает

Sheriff

Цитата: Alex26 от 17 июл 2018, 13:46
Во первых добавь .1 в комконекторе пусть все отрабатывает перед строкой ТекCOMОбъект = Обработчик.Connect вставь ту строку подключения по которой у тебя удачно прошло подключение в скобке ТекCOMОбъект = Обработчик.Connect(ПутьКБазе) попробуй так просто незнаю что у теб она делает
Попытка
Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
Обработчик = Новый COMОбъект("V82.COMConnector.1");
Иначе
Обработчик = Новый COMОбъект("V83.COMConnector.1");
КонецЕсли;
Исключение
Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
Сообщить(ОписаниеОшибки()) ;
КонецПопытки;

ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
//ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);
ТекCOMОбъект = Обработчик.Connect(ПутьКБазе);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
Сообщить("Соединение установлено");
//#КонецЕсли

И нихрена, база не обнаружена.
Тут он просто подключается к ней, а затем при записи документов, он их передаёт, по этому соединению.

Alex26

Цитата: Sheriff от 17 июл 2018, 13:58
Цитата: Alex26 от 17 июл 2018, 13:46
Во первых добавь .1 в комконекторе пусть все отрабатывает перед строкой ТекCOMОбъект = Обработчик.Connect вставь ту строку подключения по которой у тебя удачно прошло подключение в скобке ТекCOMОбъект = Обработчик.Connect(ПутьКБазе) попробуй так просто незнаю что у теб она делает
Попытка
Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
Обработчик = Новый COMОбъект("V82.COMConnector.1");
Иначе
Обработчик = Новый COMОбъект("V83.COMConnector.1");
КонецЕсли;
Исключение
Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
Сообщить(ОписаниеОшибки()) ;
КонецПопытки;

ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
//ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);
ТекCOMОбъект = Обработчик.Connect(ПутьКБазе);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
Сообщить("Соединение установлено");
//#КонецЕсли

И нихрена, база не обнаружена.

Напиши код как я тебе скинул не поросто коннект а попытку добавь и исключения так же все сделай
Тут он просто подключается к ней, а затем при записи документов, он их передаёт, по этому соединению.
Добавлено: 17 июл 2018, 14:11


Закоментируй код при соединении где комконектор и ТекCOMОбъект = Обработчик.Connect вставь мой код только не так как ты его исправил а изначально

Sheriff

Цитата: Alex26 от 17 июл 2018, 14:03
Цитата: Sheriff от 17 июл 2018, 13:58
Цитата: Alex26 от 17 июл 2018, 13:46
Во первых добавь .1 в комконекторе пусть все отрабатывает перед строкой ТекCOMОбъект = Обработчик.Connect вставь ту строку подключения по которой у тебя удачно прошло подключение в скобке ТекCOMОбъект = Обработчик.Connect(ПутьКБазе) попробуй так просто незнаю что у теб она делает
Попытка
Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
Обработчик = Новый COMОбъект("V82.COMConnector.1");
Иначе
Обработчик = Новый COMОбъект("V83.COMConnector.1");
КонецЕсли;
Исключение
Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
Сообщить(ОписаниеОшибки()) ;
КонецПопытки;

ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
//ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);
ТекCOMОбъект = Обработчик.Connect(ПутьКБазе);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
Сообщить("Соединение установлено");
//#КонецЕсли

И нихрена, база не обнаружена.

Напиши код как я тебе скинул не поросто коннект а попытку добавь и исключения так же все сделай
Тут он просто подключается к ней, а затем при записи документов, он их передаёт, по этому соединению.
Добавлено: 17 июл 2018, 14:11


Закоментируй код при соединении где комконектор и ТекCOMОбъект = Обработчик.Connect вставь мой код только не так как ты его исправил а изначально
Вообще всё лишнее закомментил, оставил только то, что работало по кнопке, но нихрена, ошибка та же
Функция ПодключитсяКИнформационнойБазе2(СтруктураПараметров, СтрокаСообщенияОбОшибке = "") Экспорт

//Перем СтрокаПодключения;
//
//Если СтруктураПараметров = Неопределено Тогда
// Возврат Неопределено;
//КонецЕсли;
//
//ПараметровДостаточно = МодульЦемзавод.ОпределитьДостаточностьПараметровДляПодключенияКИнформационнойБазе(СтруктураПараметров, СтрокаПодключения, СтрокаСообщенияОбОшибке);
//
//Если Не ПараметровДостаточно Тогда
// Возврат Неопределено;
//КонецЕсли;
//
//Если СтруктураПараметров.СерверныйРежим Тогда
// ПараметрыПодключения = "Srvr=""" + СокрЛП(СтруктураПараметров.ИмяСервера) + """; Ref=""" + СокрЛП(СтруктураПараметров.ИмяБазы) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
//Иначе
// ПараметрыПодключения = "File=""" + СокрЛП(СтруктураПараметров.ПутьКБазе) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
//КонецЕсли;
//
// //Попытка
// //#Если Клиент Тогда
// //Состояние("Идет процесс соединения ...");
// Сообщить("Идет процесс соединения ...");
// //#КонецЕсли


//Попытка
В8 = Новый COMОбъект("V83.COMConnector.1");
    ПутьКБазе = "File=""C:\Users\1\Documents\InfoBase11"";Usr=""Администратор"";Pwd=""1"";";
            Попытка
                Соединение = В8.Connect(ПутьКБазе);
            Исключение
                Сообщить("" + ТекущаяДата() + " " +"Ошибка " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()) + " база ", СтатусСообщения.Важное);
            КонецПопытки;   
            Соединение = "";
            В8 = "";

// Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
// Обработчик = Новый COMОбъект("V82.COMConnector.1");
// Иначе
// Обработчик = Новый COMОбъект("V83.COMConnector.1");
// КонецЕсли;
//Исключение
// Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
// Сообщить(ОписаниеОшибки()) ;
//КонецПопытки;

// ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
////ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);
//ТекCOMОбъект = Обработчик.Connect(ПутьКБазе);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
//общить("Соединение установлено");
//#КонецЕсли

//Исключение
//
// СтрокаСообщенияОбОшибке = "При попытке соедиения с COM-сервером произошла следующая ошибка:" + Символы.ПС
// + ОписаниеОшибки();
// //#Если Клиент Тогда
// Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Важное);
//     //Состояние("Соединение установить не удалось");
// //Состояние();
//     Сообщить("Соединение установить не удалось");
// //#КонецЕсли
//
// Возврат Неопределено;
//
//КонецПопытки;
//
//Возврат ТекCOMОбъект;

КонецФункции

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск