1С. Получение времени с миллисекундами

Задача

Обмен данными со сторонним сервисом производится через 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";

Внимание!!! Если необходима точность, то необходимо будет раскладывать универсальную дату на год, месяц, день, час, минуту, секунду, и миллисекунду.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *