Задача
Обмен данными со сторонним сервисом производится через XML. По документации необходимо имя файла формировать по времени с миллисекундами, например 2015-11-21-22-07-14-023.xml.
Решение
Многие пользуются COM-объектами, пример использования Javascript для получения времени в миллисекундах:
Script = Новый COMОбъект("MSScriptControl.ScriptControl"); Script.Language = "javascript"; Script.Timeout = -1; Время = Script.Eval("var d = new Date(); d.getTime()");
Но нам необходим кроссплатформенный подход и такой вариант не подойдет.
По документации обмен происходит с периодичностью более 10 секунд, в следствии чего точность можно пренебречь.
Для получения текущей даты будем использовать метод ТекущаяДатаСеанса(), почему его можно прочитать тут. А получать миллисекунды будем целочисленным делением универсальной даты в миллисекундах на 1000.
В результате получим следующий код:
ИмяФайла = Формат(ТекущаяДатаСеанса(), "ДФ=yyyy-MM-dd-hh-mm-ss") + "-" + (ТекущаяУниверсальнаяДатаВМиллисекундах()%1000) + ".xml";
Внимание!!! Если необходима точность, то необходимо будет раскладывать универсальную дату на год, месяц, день, час, минуту, секунду, и миллисекунду.