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