gifts2017

Получение времени с точностью до миллисекунд в 8.х

Опубликовал - - (Rebelx) в раздел Программирование - Универсальные функции

Для некоторых задач необходимо бывает определить текущее время с точностью большей чем секунда. Встроенные в платформу средства не позволяют получить такую точность. Обработка демонстрирует методику получения точного времени

Собственно забираем, плюсуем

Скачать файлы

Наименование Файл Версия Размер
- 184
.1236328910 8,14Kb
25.09.09
184
.1236328910 8,14Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Евгений Люлюк (Evg-Lylyk) 06.03.09 12:15
Простенько :).

Для замеров лучше использовать

Функция ТекущееВремяВМс() Экспорт
//Получаем время в м/с через скрипт
Script.Language = "javascript";
Счетчик = Script.eval("new Date().getTime()");
Возврат Счетчик;
КонецФункции
//---------------

НачалоЗамера = ТекущееВремяВМс();
//---
<Код>
//---
//-------КонецЗамера
ПрошлоМс = ТекущееВремяВМс() - НачалоЗамера;
2. Герман (German) 06.03.09 13:20
3. - - (Rebelx) 06.03.09 13:42
4. kadr (kadr) 13.03.09 09:55
(1) уже давненько используется в Enterprise Integrator
5. Евгений Люлюк (Evg-Lylyk) 13.03.09 14:00
(4) не знал. Я в стандарной консоли отчетов 1с подсмотрел.
6. eugenie zheludkov (eugeniezheludkov) 03.07.12 10:51
почитал скрипт и вправду замутный и незачем так изголяться ... да еще и минус у него есть MSScriptControl не на всех серверах установлен а значит есть вероятность падения базы если админов не потормошить :(
есть еще как минимум 2 варианта работающих на любом сервере это через Wbem и .Net но это все не то ..
7. - - (Rebelx) 03.07.12 10:59
(6)МоментВремени() - не содержит миллисекунд. Он содержит только время до секунд и уникальный идентификатор документа.
8. eugenie zheludkov (eugeniezheludkov) 03.07.12 11:09
да уже прочитал только что понял что всегда ошибался полагая что можно...спасибо.
пс: что нужно установить на сервере "файл.ехе" чтоб MSScriptControl зарегистрировать ? админа тереблю тот тоже не сном не духом
у мня ошибка : {ОбщийМодуль.Math_and_Server.Модуль(25)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
9. - - (Rebelx) 03.07.12 11:45
10. eugenie zheludkov (eugeniezheludkov) 04.07.12 06:22
недождавшись ответа использовал этот метод который работает помоему на всех серверах:
Функция ТекущаяДатаМилисекунды() Экспорт
Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
ServicesSet = Locator.ConnectServer(".");
pEnum = ServicesSet.InstancesOf("Win32_OperatingSystem");
Для каждого Object Из pEnum Цикл
Возврат сред(Object.LocalDateTime,1,20);
КонецЦикла;
Возврат 0;
//Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
//Скрипт.language = "javascript";
//Возврат Формат(Скрипт.eval("new Date().getTime()"),"ЧГ=0")/1000;
КонецФункции