Добрый день, уважаемые специалисты и гости форума. Нужна ваша помощь. Платформа 8.2 Толстый клиент.
Пытаюсь запустить строку команды PowerShell из 1С разными способами с параметрами. Пробую через ЗапуститьПриложение("powershell -параметр команда") - PowerShell запускается, окно мигает и исчезает, а все, что после - не исполняется, т.е. не видит параметров. Аналогично пробую через WScript.Shell, пересылаю строку, которую "собираю" таким же способом, результат тот же. Пытаюсь внутри для параметров использовать """, но результата нет - окно PowerShell мигает и параметры с командами после "powershell... не выполняются. Кто сталкивался, как победил? Причем, строка вида "explorer.exe" + " "+""""+ Параметр +"""" выполняется, а если поменять "explorer.exe" на "powershell.exe" или просто на "powershell" - уже не выполняется, параметр не виден. Заранее спасибо за помощь.
Разобрался. Дело было не в платформе 1С.
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)
(5) этот вариант у меня как резервный. Я хотел избавиться от ненужных файлов в системе. Да и просто заинтересовал вопрос, почему нельзя элементарно отдать команду.
(7) Импортировал у себя модуль BurntToastNotification, выполнил команду "New-BurntToastNotification" в PowerShell - уведомление вывелось.
Создал внешнюю обработку с кодом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗапуститьПриложение("powershell New-BurntToastNotification",,Истина);
КонецПроцедуры
- уведомление также вывелось корректно.
Предварительно моргнуло окно PS, затем уведомление.
Моя конфигурация: Win 10, 1С:Предприятие 8.3 (8.3.20.1838) Толстый клиент.
(8) хммм, может, какой-то "прикол" в платформе 8.2.....неверно пересылает строку запуска. У меня та же строчка вызывает только моргание экрана PS. При этом та же строка запуска исправно отрабатывает через cmd или пункт "Выполнить" в меню "Пуск". Спасибо за информацию, попробую отработать в этом направлении.
(9) Изменил режим совместимости конфигурации на 8.1, затем 8.2.16 все отработало корректно. База локальная, абсолютно пустая. Попробуйте создать пустую на локальном ПК без сервера для проверки.
(12) База файловая - и так на локальном ПК. Пока разбираюсь. Есть мысль, что дело не только в номере версии 1С, но думаю, не знаю еще, куда копать. Спасибо за инфу.
Я не понял, что конкретно означает параметр и как вы догадались, что ничего не исполняется.
Вы хоть окно-то пока оставляйте открытым, см. параметр номер 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", , Истина), действительно, работает. Есть какие-то идеи? Буду рад любому направлению для размышлений.
(4) Вы имеете в виду "КомандаСистемы"? Или запуск вида "cmd /K......". В данном случае - тапки те же. Все, что после powershell - отбрасывается. Я пытаюсь уже просто запустить скрипт командой powershell путькскрипту (я даже спецом выбрал простой путь, без пробелов), но у меня та же проблема - скрипт не запускается. Окно PS мигнуло и все. На мгновение я успел заметить, что в этом окне вписался путь. На мгновение...
Вроде и лежит на поверхности, но никак не могу понять, в чем дело. Вариант с запуском скрипта AutoIt или batника я отложил пока про запас.
У меня это запускается даже без &&. Могу написать как "cmd /K powershell c:\script.ps1 и в Выполнить эта команда работает. Эта команда также работает из консоли cmd. А в 1С именно 8.2 - нет, мигает окно PS и все.
Разобрался. Дело было не в платформе 1С.
При работе powershell из папки пользователя C:\users\ххх скрипт срабатывал. Вписал -noexit, чтобы увидеть ошибку и вижу следующее: при выполнении команды "ЗапуститьПриложение" место выполнения определялось как папка common из директории 1С и тут хопа, ловлю ошибку того, что скрипт не загрузился с вердиктом "выполнение скриптов запрещено в этой системе". Разрешаем скрипты PowerShell в gpedit.msc и теперь все работает. Всем спасибо, все свободны =)