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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как получить таблицу значений запущенных процессов в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #30818
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Функция №1 получения таблицы значений всех запущенных процессов, чтобы отслеживать указанный процесс в параметре можно указать любой из них, например приложение Excel

      • #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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С