Работаем со временем с точностью до миллисекунд в 1С 8

millisec

До недавнего времени платформа 1С знать не знала, что такое миллисекунды. Умела работать только с секундами, но начиная с версии 8.2.17 разработчики реализовали возможность работы со временем в миллисекундах. Зачем они нужны? В большинстве случаев абсолютно бесполезная вещь, ведь если вы помните пользователи в  1с 7.7 спокойно обходились и  без секунд. Однако случаются ситуации, когда например происходит запись в регистр значений очень большого количества информации и в дальнейшем необходимо знать в какой последовательности они были записаны и с какой задержкой.

Для версий 8.2.17 и младше используется метод        ТекущаяУниверсальнаяДатаВМиллисекундах() , например нам необходимо узнать время выполнения запроса с точностью до миллисекунд:

Запрос=Новый Запрос;
Запрос.Текст=«…»;
ДатаНачала=ТекущаяУниверсальнаяДатаВМиллисекундах();
Результат = Запрос.Выполнить();
ДатаОкончания=ТекущаяУниверсальнаяДатаВМиллисекундах();
ВремяВыполненияЗапроса = ДатаОкончанияДатаНачала

P.S. В более старших версиях переменная с типом «Дата» тоже содержала в своем значении миллисекунды, только это нигде не афишировалось и не показывалось, например:

ИсходнаяДата = ТекущаяДата(); //обычная текущая дата
НоваяДата=ИсходнаяДата + 0.328; //прибавляем к текущей дате миллисекунды 
Миллисекунды = (НоваяДата - ИсходнаяДата) * 1000; //получаем миллисекунды из даты

Для более старших версий платформ  при работе со временем необходимо воспользоваться Java скриптами

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

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх