Идея: С определенной периодичностью (например 15 минут) проверять список запущенных процессов, запоминать их PID(идентификатор процесса). Если по прошествии периода при повторном сканировании PID все ещё присутствует - значит процесс завис и пора его рубить.
Реализация: Для реализации этой идеи есть в Windows 2 функции: tasklist и taskkill. Первая - выводит список запущенных процессов, вторая - их убивает. С tasklist все непросто: он умеет выводить результат в файл, но через WScript почему-то этого не делает. Зато можно написать батник и запускать его. Для хранения батника и файла со списком запущенных приложений можно использовать папку Мои документы (чтобы точно доступ был). Итого получается батник с такой командой: tasklist /FO CSV > "%userprofile%\Documents\Process.txt" . CSV - чтобы читать было удобнее. Для хранения старого списка можно использовать этот же файл. То есть процесс выглядит так: Читаем ранее выгруженный список процессов, перезаписываем новый, сравниваем их, если есть повторяющиеся, делаем им "taskkill /F /PID %1 /T" по идентификатору.
В прикрепленной обработке это реализовано. Батник вставляется сам, для процессов выставлен фильтр(прописан в модуле объекта), пропускающий только excel.exe,winword.exe. Для отладки есть форма, выводящая список запущенных процессов чтобы проверить что у 1С достаточно прав на такие махинации. Обработку можно добавить как внешнюю и запускать по расписанию. Тестировалось на 8.3.9.1818.