Как при разработке нестандартных конфигураций, так и при создании внешних обработок к стандартным конфигурациям, довольно часто приходится сталкиваться с необходимостью запуска внешних приложений непосредственно из программного кода системы «1С:Предприятие». Чаще всего это конечно же бывает необходимо для открытия документов, формат которых не поддерживается системой, реже — для других целей.
Для запуска внешнего приложения из программного кода во встроенном языке системы «1С:Предприятие» предусмотрено две системных (встроенных) процедуры: ЗапуститьПриложение()
и КомандаСистемы()
.
Процедура КомандаСистемы()
(англоязычный синоним — System()
) вызывает на исполнение команду, как если бы она была введена в командной строке. При выполнении команды загружается исполняемый файл как «верхняя», активная программа.
Примечание: Если процедурой запускается Windows-приложение, то после этого управление немедленно возвращается в систему «1С Предприятие» на следующий за оператором КомандаСистемы()
оператор, и система продолжает выполняться как фоновая прикладная программа. Пользователь может возвратиться в запускающую программу, закончив выполнение запущенной или переключившись обратно посредством списка задач Windows.
Синтаксис процедуры:
КомандаСистемы(<СтрокаКоманды>);
где <СтрокаКоманды> — строковое выражение, содержащее строку команды, как она записывается в командной строке. Если в параметре не содержится полный путь к загружаемой программе, то её поиск происходит в следующей последовательности:
- текущий системный каталог;
- каталог Windows;
- системные каталоги Windows;
- все каталоги, указанные в переменной Path.
Пример использования процедуры:
Если Форматировать = 1 Тогда // Если установлена опция "Форматировать диск перед выгрузкой файлов", // выполняем форматирование диска КомандаСистемы("format A:"); КонецЕсли; . . .
Результат выполнения вышеприведённого кода показан на рисунке ниже.
Процедура ЗапуститьПриложение()
(англоязычный синоним — RunApp()
) вызывает запуск внешнего приложения. В отличие от процедуры КомандаСистемы()
запуск приложения выполняется непосредственно, минуя командный интерпретатор. Кроме того, процедура может открыть файл с помощью ассоциированного для данного вида файлов приложения (при условии, что таковое установлено на данном компьютере). При выполнении команды исполняемый файл загружается как «верхняя», активная программа.
Примечание: Если процедурой запускается Windows-приложение, то после этого управление немедленно возвращается в систему «1С Предприятие» на следующий за оператором ЗапуститьПриложение()
оператор и система продолжает выполняться как фоновая прикладная программа. Пользователь может возвратиться в запускающую программу, закончив выполнение запущенной или переключившись обратно посредством списка задач Windows.
Синтаксис процедуры:
ЗапуститьПриложение(<СтрокаКоманды>);
где <СтрокаКоманды> — строковое выражение, содержащее строку команды запуска внешнего приложения или имя файла, чтобы открыть его с помощью ассоциированного для данного вида файлов приложения. Если в параметре не содержится полный путь к загружаемой программе, то её поиск происходит в следующей последовательности:
- текущий системный каталог;
- каталог Windows;
- системные каталоги Windows;
- все каталоги, указанные в переменной Path.
Пример команды открытия документа с помощью ассоциированного для данного вида файлов приложения:
Процедура ОткрытьФайлДляПросмотра() ЗапуститьПриложение(КаталогПользователя() + "output.xml"); КонецПроцедуры
В вышеприведённом примере XML-файл будет открыт для просмотра в браузере Internet Explorer, который по умолчанию ассоциирован с данным видом файлов (если конечно не установлено какое-либо иное специальное приложение).
Пример команды для открытия текстового файла с помощью редактора Notepad:
КомандаСистемы("notepad " + КаталогПользователя() + "output.txt");
Другие статьи по схожей тематике