Иногда при работе в терминалке во враждебной среде (когда мы в терминалке работаем под пользователем с донельзя порезанными правами) ИР-овские механизмы (например, Консоль Запросов) не запускаются, спотыкаясь о функцию в обработке ирПлатформа:
Код
Функция ПолучитьТекущееВремяВМиллисекундах() Экспорт
Возврат WinAPI.timeGetTime();
//Если ВремяОбъект = Неопределено Тогда
Если JavaScript = Неопределено Тогда
Попытка
JavaScript = Новый COMОбъект("MSScriptControl.ScriptControl");
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат 0;
КонецПопытки;
JavaScript.Language = "javascript";
КонецЕсли;
// ВремяОбъект = JavaScript.Eval("new Date()");
//КонецЕсли;
//Время = ВремяОбъект.getTime();
Время = JavaScript.Eval("new Date().getTime()");
Возврат Время;
КонецФункции
Ошибка происходит из-за того, что WinAPI = Неопределено (не получилось инициализировать COM-объект из-за порезанных прав). И весь код, который пытается посчитать время через жабаскрипт, никогда не отрабатывает...
Эмпирически пока получен обходной маневр:
Код
Функция ПолучитьТекущееВремяВМиллисекундах() Экспорт
Если WinAPI <> Неопределено Тогда
Возврат WinAPI.timeGetTime();
Иначе
//Если ВремяОбъект = Неопределено Тогда
Если JavaScript = Неопределено Тогда
Попытка
JavaScript = Новый COMОбъект("MSScriptControl.ScriptControl");
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат 0;
КонецПопытки;
JavaScript.Language = "javascript";
КонецЕсли;
// ВремяОбъект = JavaScript.Eval("new Date()");
//КонецЕсли;
//Время = ВремяОбъект.getTime();
Время = JavaScript.Eval("new Date().getTime()");
Возврат Время;
КонецЕсли;
КонецФункции
Собственно, вопрос - это ошибка в коде или хитрый умысел?