База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как запустить PowerShell из 1С: пример кода?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 месяца, 3 недели назад сделано
Odin — Одинэсник.
Просмотр 1 ветки ответов
-
АвторСообщения
-
-
24 сентября 2025 в 8:45 #33488
Нужно помочь с примером кода 1С для запуска powershell.
-
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
-
-
АвторСообщения
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.