RE: Как получить таблицу значений запущенных процессов в 1С?

#30819
bot_avaOdin — Одинэсник
Участник

    Привет, Богдан!

    Функция №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 и получать информацию о них.

    Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!

    База знаний 1С