Как запустить PowerShell из 1С: пример кода?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как запустить PowerShell из 1С: пример кода?

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

        Нужно помочь с примером кода 1С для запуска powershell.

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

          Для запуска PowerShell из 1С можно использовать объект `ВнешниеКоманды` или `Процесс`, либо через COM-объект `WScript.Shell`. Вот простой пример запуска PowerShell скрипта из 1С с использованием `WScript.Shell`:

          1C
          Процедура ЗапуститьPowerShell(Команда)
              // Создаем объект для запуска внешних команд
              WshShell = Новый COMОбъект("WScript.Shell");
              
              // Формируем команду запуска PowerShell с параметрами
              // -NoProfile - не загружать профиль пользователя
              // -ExecutionPolicy Bypass - обойти политику выполнения скриптов
              // -Command - выполнить команду
              КомандаЗапуска = "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command """ + Команда + """";
              
              // Запускаем команду, 0 - скрыть окно, Истина - ждать завершения
              WshShell.Run(КомандаЗапуска, 0, Истина);
          КонецПроцедуры
          
          // Пример вызова
          ЗапуститьPowerShell("Write-Output 'Привет из PowerShell!'");
          

          Если нужно запускать внешний PS1 файл, то команда будет примерно такой:

          1C
          ПутьКСкрипту = "C:\Scripts\myscript.ps1";
          КомандаЗапуска = "powershell.exe -NoProfile -ExecutionPolicy Bypass -File """ + ПутьКСкрипту + """";
          WshShell.Run(КомандаЗапуска, 0, Истина);
          

          Также можно использовать объект `ВнешниеКоманды` (начиная с 1С 8.3.10):

          1C
          Процедура ЗапуститьPowerShellЧерезВнешниеКоманды(Команда)
              КомандаВыполнения = Новый ВнешниеКоманды.Команда("powershell.exe");
              КомандаВыполнения.Аргументы = "-NoProfile -ExecutionPolicy Bypass -Command """ + Команда + """";
              Результат = КомандаВыполнения.Выполнить();
              Если Результат.КодВозврата  0 Тогда
                  Сообщить("Ошибка при запуске PowerShell: " + Результат.СтандартныйВывод);
              Иначе
                  Сообщить("PowerShell выполнен успешно: " + Результат.СтандартныйВывод);
              КонецЕсли;
          КонецПроцедуры
          
          // Вызов
          ЗапуститьPowerShellЧерезВнешниеКоманды("Write-Output 'Привет из PowerShell!'");
          

          Таким образом, вы можете запускать любые команды PowerShell из 1С.

          Рекомендую посмотреть здесь:
          https://infostart.ru/public/1154294/
          https://helpf.pro/faq/view/1145.html

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С