ЗапуститьПрограмму
страницаПредусмотрено две одноименных функции: ФайловаяСистема.ЗапуститьПрограмму для вызова с сервера ФайловаяСистемаКлиент.ЗапуститьПрограмму для вызова с клиента
1. Для вызова с клиента
Запускает внешнюю программу на исполнение (например, *.exe, *bat), или системную команду (например, ping, tracert или traceroute, обращаться к rac-клиенту), Позволяет также получать код возврата и значения потоков вывода (stdout) и ошибок (stderr) При запуске внешней программы в пакетном режиме поток вывода и поток ошибок может возвращаться на не ожидаемом языке. Для того чтобы передать внешней программе язык, на котором ожидается результат следует:
- указать язык в параметре запуска этой программы (если такой параметр предусмотрен). Например, в пакетном режиме платформы 1С:Предприятие предусмотрен ключ "/L en";
- в других случаях явно установить кодировку исполнения пакетной команды. См. свойство КодировкаИсполнения возвращаемого значения ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы.
Синтаксис
Процедура ЗапуститьПрограмму(Знач КомандаЗапуска, Знач ПараметрыЗапускаПрограммы = Неопределено) ЭкспортПараметры
КомандаЗапуска— Строка - командная строка для запуска программы.- Массив - первый элемент массива, путь к исполняемому приложению, если Массив, то первый элемент массива - путь к исполняемому приложению, остальные - передаваемые параметры, массив соответствует тому, который получит вызываемая программа в argv.
ПараметрыЗапускаПрограммы— см. ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы.
Пример вызова
// Простой запуск
ФайловаяСистемаКлиент.ЗапуститьПрограмму("calc");
// Запуск с ожиданием завершения и получения кода возврата:
ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
ПараметрыЗапускаПрограммы.Оповещение = Новый ОписаниеОповещения("ПриПолученииРезультатаЗапускаПрограммы", ЭтотОбъект);
ФайловаяСистемаКлиент.ЗапуститьПрограмму("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
Процедура ПриПолученииРезультатаЗапускаПрограммы(Результат, ДополнительныеПараметры) Экспорт
КодВозврата = Результат.КодВозврата;
ПотокВывода = Результат.ПотокВывода;
ПотокОшибок = Результат.ПотокОшибок;
КонецПроцедурыДоступность
Тонкий клиент, Толстый клиент
2. Для вызова с сервера
Запускает внешнюю программу на исполнение (например, *.exe, *bat), или системную команду (например, ping, tracert или traceroute, обращаться к rac-клиенту), Позволяет также получать код возврата и значения потоков вывода (stdout) и ошибок (stderr) При запуске внешней программы в пакетном режиме поток вывода и поток ошибок может возвращаться на не ожидаемом языке. Для того чтобы передать внешней программе язык, на котором ожидается результат следует:
- указать язык в параметре запуска этой программы (если такой параметр предусмотрен). Например, в пакетном режиме платформы 1С:Предприятие предусмотрен ключ "/L en";
- в других случаях явно установить кодировку исполнения пакетной команды. См. свойство КодировкаИсполнения возвращаемого значения ФайловаяСистема.ПараметрыЗапускаПрограммы.
Синтаксис
Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт Параметры
КомандаЗапуска— Строка - командная строка для запуска программы.- Массив - первый элемент массива, путь к исполняемому приложению, остальные элементы массива - это передаваемые параметры, массив соответствует тому, который получит вызываемая программа в argv.
ПараметрыЗапускаПрограммы— см. ФайловаяСистема.ПараметрыЗапускаПрограммы
Возвращаемое значение
Структура:
- КодВозврата - Число - код возврата программы;
- ПотокВывода - Строка - результат работы программы, направленный в поток stdout;
- ПотокОшибок - Строка - ошибки исполнения программы, направленные в поток stderr.
Пример вызова
// Простой запуск
ФайловаяСистема.ЗапуститьПрограмму("calc");
// Запуск с ожиданием завершения
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ФайловаяСистема.ЗапуститьПрограмму("C:\Program Files\1cv8\common\1cestart.exe",
ПараметрыЗапускаПрограммы);
// Запуск с ожиданием завершения и получением потока вывода
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
Результат = ФайловаяСистема("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);
// Запуск с ожиданием завершения и получением потока вывода и с конкатенацией команды запуска
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
КомандаЗапуска = Новый Массив;
КомандаЗапуска.Добавить("ping");
КомандаЗапуска.Добавить("127.0.0.1");
КомандаЗапуска.Добавить("-n");
КомандаЗапуска.Добавить(5);
Результат = ФайловаяСистема.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
ОбщегоНазначений.СообщитьПользователю(Результат.ПотокВывода);Доступность
Сервер, Толстый клиент, Внешнее соединение