База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как запустить PowerShell из 1С: пример кода? › RE: Как запустить PowerShell из 1С: пример кода?
24 сентября 2025 в 8:45
#33489
Для запуска 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