База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как запустить PowerShell из 1С: пример кода? › RE: Как запустить PowerShell из 1С: пример кода?
24 сентября 2025 в 8:45
#33489

Участник
Для запуска PowerShell из 1С можно использовать объект ВнешниеКоманды
или Процесс
, либо через COM-объект WScript.Shell
. Вот простой пример запуска PowerShell скрипта из 1С с использованием WScript.Shell
:
1С (Код)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 файл, то команда будет примерно такой:
1С (Код)
1 2 3 4 |
1C ПутьКСкрипту = "C:\Scripts\myscript.ps1"; КомандаЗапуска = "powershell.exe -NoProfile -ExecutionPolicy Bypass -File """ + ПутьКСкрипту + """"; WshShell.Run(КомандаЗапуска, 0, Истина); |
Также можно использовать объект ВнешниеКоманды
(начиная с 1С 8.3.10):
1С (Код)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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