Имя: Пароль:
1C
1С v8
COMConnector. остаются висеть подключения
0 18_plus
 
29.05.15
15:21
значит есть две базы. обе на 8.3.5.1517.
через COM из одной базы вызываю процедуру общего модуля другой. всё работает, но после выполнения соединения остаются висеть (в списке активных пользователей, приложение работает нормально дальше). обкатываю сейчас обработкой, в которой вот такой код:

&НаКлиенте
Процедура Тест(Команда)
    connector = Новый COMObject("V83.COMConnector");
    Соединение  = connector.Connect("Srvr=srv;Ref=ref;Usr=usr;");
    
    Данные = Соединение.ОбщийМодуль1.Процедура1("ааааааа");
    Результат = Данные.Выгрузить();
    
    Для каждого Стр Из Результат Цикл
         Сообщить(Стр.Дата);
    КонецЦикла;
    
    Результат = неопределено;
    Данные = неопределено;
    Соединение = неопределено;
    connector = неопределено;
КонецПроцедуры

все эти неопределено уже от непонимания куда копать. что не так?
1 aka AMIGO
 
29.05.15
15:28
поставь везде ...=""; :)
2 Heckfy
 
29.05.15
15:29
Не хорошая практика сом на клиенте делать.
3 18_plus
 
29.05.15
15:31
(2) а в чём принципиальная разница?
4 Heckfy
 
29.05.15
15:33
(3) Ну, например, надумали вы обновлять платформу 1С по организации. Как обычно, сначала накатили обновления на клиентов и в этот момент, сом перестанет работать, пока сервер не обновите.
5 18_plus
 
29.05.15
15:37
(4) ааа, это пока не существенно.
тем паче, я сейчас переделал тест на выполнение на сервере - та же картина
6 Heckfy
 
29.05.15
15:39
Делай сразу лучше правильно. А то может ого каким гемором потом обернуться.
7 mTema32
 
29.05.15
15:41
(6) Если сервер на никсах, а клиент на винде, то com только на клиенте будет работать. Так что вопрос правильности тут неоднозначный.
8 Heckfy
 
29.05.15
15:42
(7) Ой, ну нафиг такую гетерогенность плодить...
9 mTema32
 
29.05.15
16:06
(8) Я не говорю что это хорошо) Но такое тоже бывает.
10 Fragster
 
гуру
29.05.15
16:08
в (0) забыл СТР
11 18_plus
 
29.05.15
16:16
(10) хаха

короче. процедура возвращала COMsafeArray. переделал на возврат обычного массива, соединения стали корректно прибиваться при выходе из процедуры.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.