новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Запуск приложений из 1С:Предприятия 8.x

  • Добавить свою публикацию
  • для этого требуется регистрация

Платформа 1С:Предприятие 8.x позволяет выполнять запуск сторонних приложений встроенными средствами. Например, если нужно запустить браузер для открытия ссылки, то достаточно написать следующий программный код:

 ЗапуститьПриложение("http://1clancer.ru");

Таким же способом можно выполнять запуск любого другого приложения, явно указав путь к исполняемому EXE-файлу.

 ЗапуститьПриложение("C:\Windows\notepad.exe");

После выполнения этой строчки кода будет запущено стандартное приложение Windows - "Блокнот". 

Использовать этот метод глобального контекста больше имеет смысл на стороне клиента (тонкого или толстого), так как в абсолютном большинстве случаев после запуска приложения работать с ним из 1С:Предприятия не представляется возможным. Т.е. после открытия браузера обрабатывать его события или получать из него данные платформа не сможет.

Но выполнять взаимодейтсвие с запущенным таким способом приложением все же можно! Например, выполнив запуск ожидаем когда запущенное приложение сформирует ответный файл и затем читаем его. Если использовать метод "ЗапуститьПриложение()", то нам придется проверять наличие ответного файла в цикле и в случае появления доступа к этому файлу - обработать его.

Рациональней было бы запустить приложение, дождаться завершения его выполнения и затем выполнить все необходимые действия. А если запуск выполняется на клиентской машине, то показывать окно приложения вообще может оказаться не обязательно. 

Изображение

Для этих целей можно использовать COM-объект "WScript.Shell":

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run(<команда>,<вид окна приложения>, <требуется ожидать завершения>);

 Подробнее:

А) - команда системы (путь к исполняемому файлу или любая другая команда в формате DOS).

Б) - вариант показа окна приложения. Указывать не обязательно. Возможные значения:

1 - Активизирует и показывает окно. Если окно минимизировано или максимизировано, система восстанавливает его к оригинальному размеру и положению. Используется при первом открытии окна программы. 
2 - Активизирует окно в свернутом режиме. 
3 - Активизирует окно и разворачивает на весь экран. 
4 - Показывает окно в его новом размере и положении. Активным остается текущее окно. 
5 - Активизирует окно и показывает его в текущем размере. 
6 - Минимизирует окно и активизирует следующее на панеле задач. 
7 - Показывает окно как минимизированное. Активное окно остается активным. 
8 - Показывает окно в его текущем состоянии. Активное окно остается активным. 
9 - Активизирует и показывает окно. Если окно минимизировано или максимизировано, система восстанавливает его к оригинальному размеру и положению. Используется для восстановления минимизированного окна. 
10 - показывает окно в том-же состоянии, что и окно вызывающей программы. 

В) - нужно ли ожидать завершения команды: 0 - не нужно ждать завершения выполнения команды, 1 - ждать окончания выполнения команды.

Вот так выглядит запуск приложения "Блокнот" этим способом:

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("C:\Windows\notepad.exe", 1, 0);

 Но опять же, ожидания завершения работы приложения не будет. Для этого третий параметр нужно выставить в значение 1.

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("C:\Windows\notepad.exe", 1, 10)

Пример использования COM-объекта "WScript.Shell" можно посмотреть в обработке "Yandex.Wordstat", где с его помощью запускается утилита отправки JSON-запроса через Yandex.API.

Минусом второго способа является его не универсальность, ведь работа COM-объекта возможна только для случаев, когда платформа (или сервер 1С:Предприятия) запущены под управлением операционной системы Windows.

 
0
Еще от автора
≡ к списку статей