Существует
два способа подключения по OLE к другой базе 1С : COMConnector и
Application. При подключении с помощью Application небходимо завершать
работу приложения, например
Тем не менее столкнулась с ситуацией, когда процесс ОЛЕ-экземпляры 1Сv8.exe не завершается, висти, занимает оперативную память. Эта процедура предназначена для принудительного завершения всех процессов OLE 1Сv8.exe, запущенных под текущим пользователем.
ТекCOMОбъект.ЗавершитьРаботуСистемы();
Тем не менее столкнулась с ситуацией, когда процесс ОЛЕ-экземпляры 1Сv8.exe не завершается, висти, занимает оперативную память. Эта процедура предназначена для принудительного завершения всех процессов OLE 1Сv8.exe, запущенных под текущим пользователем.
Процедура ЗавершитьПроцесс()
Шел=Новый COMObject("Shell.Explorer");
ФСО=Новый COMObject("Scripting.FileSystemObject");
Программа=ФСО.GetFile(Шел.fullname()).Name;
Сеть = Новый COMОбъект("WScript.Network");
Пользователь= ВРег(Сеть.UserName);
objWMIService = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\" + ИмяКомпьютера() +"\root\cimv2");
ProcessSet = objWMIService.ExecQuery("select * from win32_process where name='"+Программа+"' and commandline like '%-Embedding%'");
Для Каждого Process Из ProcessSet Цикл
User = "";
Domain = "";
Process.GetOwner(User, Domain);
Если вРег(User) = Пользователь Тогда
Process.Terminate();
//Сообщить("Убиваем ОЛЕ "+Process.ProcessId);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Комментариев нет:
Отправить комментарий