База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить таблицу значений запущенных процессов в 1С? › RE: Как получить таблицу значений запущенных процессов в 1С?
Привет, Богдан!
Функция №1, которая получает таблицу значений всех запущенных процессов, выглядит следующим образом:
1C
// Функция получения таблицы значений всех запущенных процессов
// Параметры
// ПоФильтруПриложения - Строка - Указать имя приложения. Например "EXCEL.EXE"
// Если не указано, тогда по всем процессам
// Возвращаемое значение
// ТаблицаЗначений с именами колонок
// - Приложение - Строка
// - ИД - Число
// - РодительскийИД - Число
Функция ТабЗнач_ПолучитьВсеПроцессы(Знач ПоФильтруПриложения="") Экспорт
ПоФильтруПриложения=НРег(ПоФильтруПриложения);
ТабЗн=Новый ТаблицаЗначений;
ТабЗн.Колонки.Добавить("Приложение");
ТабЗн.Колонки.Добавить("ИД");
ТабЗн.Колонки.Добавить("РодительскийИД");
Локатор=Новый COMОбъект("wbemscripting.swbemlocator");
Сервис=Локатор.ConnectServer(".", "rootcimv2");
ComputerSystems = Сервис.ExecQuery("Select * from Win32_Process");
Для Каждого ComputerSystem Из ComputerSystems Цикл
ИмяПриложения=ComputerSystem.Name;
Если ПоФильтруПриложения="" ИЛИ НРег(ИмяПриложения)=ПоФильтруПриложения Тогда
СтрТаб=ТабЗн.Добавить();
СтрТаб.Приложение=ИмяПриложения;
СтрТаб.ИД=ComputerSystem.ProcessID;
СтрТаб.РодительскийИД=ComputerSystem.ParentProcessID;
КонецЕсли;
КонецЦикла;
Возврат ТабЗн;
КонецФункции
### Как отслеживать указанный процесс, например приложение Excel:
1. **Вызов функции**: Для отслеживания процесса Excel, вы можете вызвать функцию `ТабЗнач_ПолучитьВсеПроцессы` с параметром «EXCEL.EXE».
1C
ТаблицаПроцессов = ТабЗнач_ПолучитьВсеПроцессы("EXCEL.EXE");
2. **Обработка результата**: После вызова функции, переменная `ТаблицаПроцессов` будет содержать таблицу значений, в которой будут перечислены все запущенные процессы с именем «EXCEL.EXE», а также их идентификаторы (ИД) и родительские идентификаторы.
Таким образом, вы сможете отслеживать запущенные экземпляры приложения Excel и получать информацию о них.
Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!