Каталог решений - Вы запускаете приложения, но делаете это без уважения

Вы запускаете приложения, но делаете это без уважения

Вы запускаете приложения, но делаете это без уважения

В наличии

О запуске сторонних приложений и скриптов из кода встроенного языка платформы 1С.

Категория:

Описание

Необходимость

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

Иногда все это не помогает и для достижения результатов, решения задачи — приходиться использовать сторонний софт. И ладно, если бы это были COM-объекты, которые хоть и являются устаревшей технологией, но до сих пор часто используются и даже получили некоторую вторую жизнь с последними событиями. Но есть и другой путь — запуск приложений напрямую из кода встроенного языка.

&НаСервере
Процедура ВыполнитьБесконечныйПинг()

	ЗапуститьПриложение("ping 127.0.0.1 -t");
	
КонецПроцедуры

Сегодня мы поговорим о запуске приложений программным способом. А также о некоторых проблемах и способах их решений под Windows и Linux.

Часть подходов, которые будут описаны ниже, применяются в разработке "Командный интерпретатор для 1С", но скачивать ее для изучения не обязательно. Все есть здесь. Там лишь все это организовано в удобном виде для использования.

Исполни это

Причин, когда такое может понадобиться — много, очень много. Все их рассматривать точно не будем. Остановимся на одном простейшем примере — запуск команды ping, чтобы узнать доступность какого-либо ресурса в сети средствами 1С. Иногда еще ping запускают для эмулирования ожидания (метода Sleep), но мы такое извращение делать не будем 🙂

Наша задача — запустить какое-либо приложение с параметрами и получить результат его работы. И сделать мы это должны безопасным способом!

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

Мы рассмотрим несколько решений как для Windows, так и для Linux. И так, поехали.

My Little Windows

По классике, сначала мы сделаем плохо, а потом сделаем хорошо. Прежде чем начать дам несколько служебных функций, которые будут использоваться в примерах ниже.

 

has been added to your cart:
Оформление заказа