Столкнулся с проблемою записи табличного документа в pdf файл – виртуальный принтер Bullzip PDF Printer записывает в файл, но при отправлении по почте обработка файл не находит. Оказывается принтер имеет некоторую задержку – нам говорит что файл создан, а на самом деле еще дозаписывает файл. В таких случаях необходимо сделать пазу в коде. Так как 1С своими методами не умеет делать паузу я воспользовался методом Sleep объекта операционной системы Windows Script Host.
Процедура Пауза(ИнтервалОжидания) Экспорт Скрипт = Новый ТекстовыйДокумент(); Скрипт.УстановитьТекст ( "if (WScript.Arguments.Count()==0) | WScript.Quit(); |else | if (isNaN(parseInt(WScript.Arguments(0)))) | WScript.Quit(); |WScript.Sleep(WScript.Arguments(0));" ); Скрипт.Записать(КаталогВременныхФайлов()+"sleep.js", КодировкаТекста.ANSI); WshShell = Новый COMОбъект("WScript.Shell"); WshShell.Run("WScript.exe """ + КаталогВременныхФайлов() + "sleep.js"" " + Формат(ИнтервалОжидания, "ЧГ=0"), 0, -1); УдалитьФайлы(КаталогВременныхФайлов() + "sleep.js"); КонецПроцедуры // Пауза