![]() |
![]() |
![]() |
|
Как правильно разорвать COM соединение (7.7 - 8.2) | ☑ | ||
---|---|---|---|---|
0
ksupalo
08.10.10
✎
15:29
|
Добрый день!
После перевода ряда баз на 8.2 возникла проблема - процедура, которая работает по нажатию кнопки (вызывает процедуры соединения по COM и выполнения запроса) зависает после шага "КонецПроцедуры". Все, что в теле процедуры нормально отрабатывает. В процедуре в цикле вызываются несколько баз 8.1 и 8.2 |
|||
1
Рэйв
08.10.10
✎
15:32
|
СОМ="";
|
|||
2
ksupalo
08.10.10
✎
15:32
|
//==============================================================
Функция ОткрытиеБазы(ТипОткрытия,СтрокаПодключения) Экспорт ЗакрытиеКОМСоединения(); // Открываем Если ТипОткрытия = 1 тогда // Тип открытия связан с реквизитом Режим справочника Фирм, cntrLocal82 = СоздатьОбъект("V82.ComConnector"); // и означает соединение с базой 8.2 при значениие 1 connectionLocal82 = cntrLocal82.Connect(СтрокаПодключения); Возврат connectionLocal82; Иначе cntrLocal81 = СоздатьОбъект("V81.ComConnector"); connectionLocal81 = cntrLocal81.Connect(СтрокаПодключения); Возврат connectionLocal81; КонецЕсли; КонецФункции Сделал две переменные, т.к. вариантов просто не было. Но это не помогло. //==================================================== Процедура ЗакрытиеКОМСоединения() Экспорт // Обрываем коннект, если еще не оборвали ранее cntrLocal81 = 0; connectionLocal81 = 0; cntrLocal82 = 0; connectionLocal82 = 0; КонецПроцедуры Эта функция рвала соединение. пробовал "" и 0 - все равно зависало. Проблема решилась случайно - просто закаментил зануление процедур. После этого все стало работать. |
|||
3
ksupalo
08.10.10
✎
15:33
|
Вопрос такой - как из 7.7 правильно разрывать COM соединение с 8.1???
С 8.1 никаких проблем не было никогда. Заранее спасибо. |
|||
4
ksupalo
08.10.10
✎
15:35
|
Вопрос такой - как из 7.7 правильно разрывать COM соединение с 8.2??? -
сорри, уже просто совсем мозг сжег :( |
|||
5
ksupalo
08.10.10
✎
15:36
|
Не понятно, что происходит с оставшимися соединениями...
В принципе, все переменные вынес в документ - с закрытием документа они должны уничтожаться... Или... не знаю... |
|||
6
ksupalo
08.10.10
✎
15:38
|
//====================================================
Процедура ЗакрытиеКОМСоединения() Экспорт // Обрываем коннект, если еще не оборвали ранее //cntrLocal81 = 0; //connectionLocal81 = 0; //cntrLocal82 = 0; //connectionLocal82 = 0; КонецПроцедуры Так работает :) |
|||
7
ksupalo
08.10.10
✎
16:21
|
Не ужели никто не соединяется по СОМ?
|
|||
8
ilkoder
08.10.10
✎
16:49
|
Тут проскакивало как-то, что типа нужно обнулять все переменные хоть как-то задейстованные при обмене
|
|||
9
iloktev
08.10.10
✎
17:09
|
Есть возможность выложить код самой процедуры, что в ней выполняется?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |