VZ
25 - 01.06.2009 - 11:59
|
Ладно, дам еще наставление по доброте душевной ;)) КомандаСистемы() - не единственный метод в 1С (я счаз про "семерку"), который проглатывает сообщения винды о результате выполнения метода. Т.е. запустишь приложения - и фиг из 1С узнаешь, как оно исполнилось, или почему не исполнилось. И не поможет Попытка - 1С просто не выловит ошибку исполнения... Такой же облом может посетить, например, при использовании метода ФС.КопироватьФайл(). Вот как с этим можно побороться, используя WSH: ScriptControl = createobject("MSScriptControl.ScriptControl"); ScriptControl.language="vbscript"; стр="function CopyMyFile() |On Error Resume Next |Set FSO = CreateObject(""Scripting.FileSystemObject"") |FSO.CopyFile """+ПолныйПутьОткуда+ИмяФайла+""","""+ПолныйПутьКуда+ИмяФайла+""", 1 |if Err.Number = 0 then | CopyMyFile = """" |Else | CopyMyFile = err.Description |end if |end function"; рез=ScriptControl.run("CopyMyFile"); Если ПустаяСтрока(рез)=0 Тогда сообщить("Не удалось скопировать "+ИмяФайла+". Ошибка "+рез); //что то исполняем КонецЕсли; Что мы здесь используем? А мы задействуем перехват ошибки выполнения самой винды. То, что из 1С "штатно" сделать не выйдет. Соответствующего примера с эмуляцией КомандаСистемы предлагаю сотворить самостоятельно :) |