Добрый день, уважаемые специалисты и гости форума. Нужна ваша помощь. Платформа 8.2 Толстый клиент.
Пытаюсь запустить строку команды PowerShell из 1С разными способами с параметрами. Пробую через ЗапуститьПриложение("powershell -параметр команда") - PowerShell запускается, окно мигает и исчезает, а все, что после - не исполняется, т.е. не видит параметров. Аналогично пробую через WScript.Shell, пересылаю строку, которую "собираю" таким же способом, результат тот же. Пытаюсь внутри для параметров использовать """, но результата нет - окно PowerShell мигает и параметры с командами после "powershell... не выполняются. Кто сталкивался, как победил? Причем, строка вида "explorer.exe" + " "+""""+ Параметр +"""" выполняется, а если поменять "explorer.exe" на "powershell.exe" или просто на "powershell" - уже не выполняется, параметр не виден. Заранее спасибо за помощь.
Пытаюсь запустить строку команды PowerShell из 1С разными способами с параметрами. Пробую через ЗапуститьПриложение("powershell -параметр команда") - PowerShell запускается, окно мигает и исчезает, а все, что после - не исполняется, т.е. не видит параметров. Аналогично пробую через WScript.Shell, пересылаю строку, которую "собираю" таким же способом, результат тот же. Пытаюсь внутри для параметров использовать """, но результата нет - окно PowerShell мигает и параметры с командами после "powershell... не выполняются. Кто сталкивался, как победил? Причем, строка вида "explorer.exe" + " "+""""+ Параметр +"""" выполняется, а если поменять "explorer.exe" на "powershell.exe" или просто на "powershell" - уже не выполняется, параметр не виден. Заранее спасибо за помощь.
По теме из базы знаний
- Многопоточный CI-контур для 1С c Packer, Vagrant и Jenkins. Часть 1. Описание системы и обзор инструментария
- Вы запускаете приложения, но делаете это без уважения
- Запуск Wscript.Shell и Shell.Application. Заметки
- Мониторинг кластера 1С 8.3 в Zabbix
- RUNDECK – «швейцарский нож» для DEVOPS и GITOPS в экосистеме 1С
Найденные решения
Разобрался. Дело было не в платформе 1С.
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7) Импортировал у себя модуль BurntToastNotification, выполнил команду "New-BurntToastNotification" в PowerShell - уведомление вывелось.
Создал внешнюю обработку с кодом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗапуститьПриложение("powershell New-BurntToastNotification",,Истина);
КонецПроцедуры
- уведомление также вывелось корректно.
Предварительно моргнуло окно PS, затем уведомление.
Моя конфигурация: Win 10, 1С:Предприятие 8.3 (8.3.20.1838) Толстый клиент.
Создал внешнюю обработку с кодом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗапуститьПриложение("powershell New-BurntToastNotification",,Истина);
КонецПроцедуры
- уведомление также вывелось корректно.
Предварительно моргнуло окно PS, затем уведомление.
Моя конфигурация: Win 10, 1С:Предприятие 8.3 (8.3.20.1838) Толстый клиент.
(8) хммм, может, какой-то "прикол" в платформе 8.2.....неверно пересылает строку запуска. У меня та же строчка вызывает только моргание экрана PS. При этом та же строка запуска исправно отрабатывает через cmd или пункт "Выполнить" в меню "Пуск". Спасибо за информацию, попробую отработать в этом направлении.
Я не понял, что конкретно означает параметр и как вы догадались, что ничего не исполняется.
Вы хоть окно-то пока оставляйте открытым, см. параметр номер 3.
Если сделать, как-то так, то, и если передана правильная команда, то окно не закроется и можно будет посмотреть результат.
ЗапуститьПриложение("powershell.exe -command help", , Истина);
В принципе -command здесь параметр и есть, ну вот вам еще один параметр:
ЗапуститьПриложение("powershell.exe -executionpolicy unrestricted -command help", , Истина);
Тоже работает.
Вы хоть окно-то пока оставляйте открытым, см. параметр номер 3.
Если сделать, как-то так, то, и если передана правильная команда, то окно не закроется и можно будет посмотреть результат.
ЗапуститьПриложение("powershell.exe -command help", , Истина);
В принципе -command здесь параметр и есть, ну вот вам еще один параметр:
ЗапуститьПриложение("powershell.exe -executionpolicy unrestricted -command help", , Истина);
Тоже работает.
Я подумал, что правило общее, поэтому не уточнил.
Вот полная команда: ЗапуститьПриложение("powershell New-BurntToastNotification",,Истина);
BurntToast - это небольшой модуль, позволяющий создать тост-уведомление в стиле Windows 10 при помощи PowerShell. Именно вот эта команда отрабатывает как из "Выполнить...", так и в cmd, ну и в PowerShell, ессно. А из 1С - не желает: мигает синее окно PS и тут же закрывается. Строка с "простой" командой ЗапуститьПриложение("powershell.exe -command help", , Истина), действительно, работает. Есть какие-то идеи? Буду рад любому направлению для размышлений.
Вот полная команда: ЗапуститьПриложение("powershell New-BurntToastNotification",,Истина);
BurntToast - это небольшой модуль, позволяющий создать тост-уведомление в стиле Windows 10 при помощи PowerShell. Именно вот эта команда отрабатывает как из "Выполнить...", так и в cmd, ну и в PowerShell, ессно. А из 1С - не желает: мигает синее окно PS и тут же закрывается. Строка с "простой" командой ЗапуститьПриложение("powershell.exe -command help", , Истина), действительно, работает. Есть какие-то идеи? Буду рад любому направлению для размышлений.
(4) Вы имеете в виду "КомандаСистемы"? Или запуск вида "cmd /K......". В данном случае - тапки те же. Все, что после powershell - отбрасывается. Я пытаюсь уже просто запустить скрипт командой powershell путькскрипту (я даже спецом выбрал простой путь, без пробелов), но у меня та же проблема - скрипт не запускается. Окно PS мигнуло и все. На мгновение я успел заметить, что в этом окне вписался путь. На мгновение...
Вроде и лежит на поверхности, но никак не могу понять, в чем дело. Вариант с запуском скрипта AutoIt или batника я отложил пока про запас.
Вроде и лежит на поверхности, но никак не могу понять, в чем дело. Вариант с запуском скрипта AutoIt или batника я отложил пока про запас.
(10)
У меня это запускается даже без &&. Могу написать как "cmd /K powershell c:\script.ps1 и в Выполнить эта команда работает. Эта команда также работает из консоли cmd. А в 1С именно 8.2 - нет, мигает окно PS и все.
cmd /k "cd /d c:\myfolder && startbatch.bat"
У меня это запускается даже без &&. Могу написать как "cmd /K powershell c:\script.ps1 и в Выполнить эта команда работает. Эта команда также работает из консоли cmd. А в 1С именно 8.2 - нет, мигает окно PS и все.
Да, видимо, дело не в самой 1С, в 8.3.13.1926 эта команда тоже не работает, вылетает окно PS и тут же исчезает.
Я делал через БСП - Работает как часы, вот код:
&НаСервере
Функция ТестНаСервере()
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
КомандаЗапуска = Новый Массив;
КомандаЗапуска.Добавить("ping");
КомандаЗапуска.Добавить("127.0.0.1");
КомандаЗапуска.Добавить("-c");
КомандаЗапуска.Добавить(4);
Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
Сообщить(Результат.ПотокВывода);
КонецФункции
Показать
Разобрался. Дело было не в платформе 1С.
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
