Имя: Пароль:
1C
 
миллисекунды в 1С
0 t_vladimir
 
25.02.10
11:31
по теме отсюда:

http://www.forum.mista.ru/topic.php?id=21861

ДатаИсх = ТекущаяДата(); //простая дата+время

ДатаНов = ДатаИсх + 0.567; //дата+время+миллисекунды

Миллисекунды = (ДатаНов - ДатаИсх) * 1000; //вытаскиваем миллисекунды из даты


в этом примере лично у меня получается ожидаемые 567

что не так?
1 Slon747
 
25.02.10
11:33
(0) А смысл? Как получить текущее время в мсек для дальнейшего сравнения?
2 butterbean
 
25.02.10
11:34
(1) очевидно умножить на 1000
3 Широкий
 
25.02.10
11:36
(2) имеется ввиду что ТекущаяДата() получается без миллисекунд
4 Slon747
 
25.02.10
11:38
(3) Вот-вот
5 t_vladimir
 
25.02.10
11:45
имеется ввиду задача получения и использования миллисекунд в 1С штатными средствами
ветка ссылку на которую я дал окончилась примером от Волшебника который я и процитировал
ответа я не обнаружил
P.S. просьба не приводить в данной ветке ссылки и примеры работы с ВК
вот мой текущий вариант:

Функция ТекМиллисекунды() Экспорт

   Возврат MSScriptControl.eval("new Date().getTime()");

КонецФункции //ТекМиллисекунды

но вдруг можно и через 1С непосредственно
6 Живой Ископаемый
 
25.02.10
11:45
нет, нельзя...
7 Serg_1960
 
25.02.10
11:45
"А зачем?"(с) Для расчет траектории ядрёной боеголовки на 1С?
8 Wehrmacht
 
25.02.10
11:47
(7) Для более точно хронометража работы операторов :)
9 t_vladimir
 
25.02.10
11:49
для работы с большим потоком данных - десятки и сотни записей регистра сведений в секунду
нужно ТОЧНО знать какая после какой и с какой задержкой
10 Wehrmacht
 
25.02.10
11:50
(9) Мне кажется 1С не для этого придумывалась + мне кажется на выполнение MSScriptControl.eval("new Date().getTime()") уже уйдет столько времени, что миллисекунды будут никому не интересны.
11 Fragster
 
гуру
25.02.10
12:00
(10) да нет... у меня ЕМНИП около 4-7 мс это занимало
12 Serg_1960
 
25.02.10
12:02
(9) "Погрешность" самой 1С мешать будет для "точного хронометража". Имхо: можно увеличивать количество измерений. 10 измерений - точность 0.1, а сто тысяч - точность 0.000...
13 t_vladimir
 
25.02.10
12:02
MSScriptControl.eval("new Date().getTime()")
отлично выдает миллисекунды
и 1С (к огромному счастью нас всех!) умеет работать быстрее чем раз в секунду  
вопрос скорее красоты кода чем практический
14 Живой Ископаемый
 
25.02.10
12:04
MSScriptControl.eval("new Date().getTime()")  - не самый уродливый код.
15 t_vladimir
 
25.02.10
12:11
(14) спасиба :)
пользуйтесь :)
для тех кто вдруг когда будет писать биржевых роботов на 1С без миллисекунд никак
но теоретически даный код работать будет только под Виндой, а в перспективе 8.2 не всем нам под ней (Виндой) оставаться
да и вопрос то собственно другой:
Волшебник дал ответ
все успокоились
а код у меня не фурычит :(
волшебства видимо не случилось :(
16 БТР
 
25.02.10
12:20
В регистрах полюбому никаких миллисекунд нету. Так, что если даже узнаешь текущее время с точностью до секунды то это тебе ничем не поможет.
17 БТР
 
25.02.10
12:21
*текущее время с точностью до миллисекунды
18 БТР
 
25.02.10
12:24
Если ты проведешь приходный документ, а потом расходный с тем же временем (с точностью до секунды) тогда расходный документ может запросто встать перед приходным. И никак ты на это не повлияешь.
19 t_vladimir
 
25.02.10
12:26
(16-18) если я добавлю поле Миллисекунды в регистр -  то я все смогу (ура мне!!!)
20 hhhh
 
25.02.10
12:28
(19) ну и с использованием этого поля отчеты у тебя будут выполняться в 10-15 раз медленнее.
21 БТР
 
25.02.10
12:29
(20) Почему? Я надеюсь все таки у чела хватит ума использовать Реквизит, а не Измерение :-)
22 БТР
 
25.02.10
12:33
(19) А пофиг, все равно в базу платформа запишет в том порядке в котором захочет, внутри одной секунды ты на последовательность записи никак не повлияешь (если это документы разных типов)
23 t_vladimir
 
25.02.10
12:37
(19-21) ну с такими то помощниками я глядишь и до индексирования дотопаю скудным умишком то своим :D
друзья!
в теме нет ни слова о:
- проведении документов(в моей конфигурации нет ни одного документа - при таком потоке инфы мне только тормозов проведения не хватало),
- оптимизации структуры регистров,
- использовании последовательностей,
- скорости отчетов (мне они там нафик не нужны - пары запросов хватает)
- и проч. и проч.
есть у меня подозрения, что тема сдохла
увы
24 Живой Ископаемый
 
25.02.10
12:41
2(15) почему это не фурычит? Фурычит
25 БТР
 
25.02.10
12:42
(23) И чо?
РегистрНакопленияЗапись.<Имя регистра накопления> (AccumulationRegisterRecord.<Имя регистра накопления>)
Период (Period)
Использование:
Чтение и запись.
Описание:
Тип: Дата. Содержит дату и время записи регистра накопления. Совместно с Регистратор и НомерСтроки определяет последовательность движений.
Вот и все чем ты можешь повлиять на последовательность записи движений.
26 Живой Ископаемый
 
25.02.10
12:42
Просто его код - обманка.
27 Живой Ископаемый
 
25.02.10
12:42
И ты же сам пишешь: "в этом примере лично у меня получается ожидаемые 567 " - именно так и должно быть.
28 Живой Ископаемый
 
25.02.10
12:43
Во-вторых если не винда, то есть в конце концов Джава.
29 БТР
 
25.02.10
12:44
Можешь хоть атомные часы подключить к 1С и пикосекунды получать. Плевать платформа хотела на твои миллисекунды.
30 Живой Ископаемый
 
25.02.10
12:46
тема сдохла еще в прошлой своей ипостаси.
31 t_vladimir
 
25.02.10
12:50
аминь!
32 Wehrmacht
 
25.02.10
13:25
(18) Ну здрасти приехали... а про МоментВремени() мы как бы ничего не слышали?
33 Wehrmacht
 
25.02.10
13:27
(23) в теме нет ни слова о:
- проведении документов(в моей конфигурации нет ни одного документа - при таком потоке инфы мне только тормозов проведения не хватало),
(25) Тип: Дата. Содержит дату и время записи регистра накопления. Совместно с Регистратор и НомерСтроки определяет последовательность движений.
Вот и все чем ты можешь повлиять на последовательность записи движений.

Опять разговор немого с глухим :)
34 Живой Ископаемый
 
25.02.10
13:30
2(32) что - МоментВремени? это способ получить текущее время в милисекундах?  нет, не способ. Потому что:
https://docs.google.com/leaf?id=0B-jxtBB8IRaZZTM5MTcyZDMtODFkNS00ZjQ1LWIzYTMtYTk5NTkwNmI4Yzc1&hl=en

Если же у вас есть какая-то идея как все-таки использовать этот МЕТОД для указанной цели - потрудитесь оформить вербально
35 БТР
 
25.02.10
13:31
(32) С помощью МоментВремени() ты можешь отличить один объект от другого на временной оси, но ты не сможешь повлиять на запись объекта в базу.
36 БТР
 
25.02.10
13:34
Если просто получить миллисекунды, тогда (5) вполне достаточно. Что он только с этими миллисекундами делать будет, не представляю.
37 Wehrmacht
 
25.02.10
14:00
(34) Я это вообще-то в ответ на "Если ты проведешь приходный документ, а потом расходный с тем же временем (с точностью до секунды) тогда расходный документ может запросто встать перед приходным."

У меня вот лично так "запросто" ни разу не получалось.
38 БТР
 
25.02.10
14:04
(37) Я иногда такие косяки за операторами вылавливаю. Приход и расход в одном времени и партии не списываются. Причем распроведение и последовательное проведение ситуацию не исправляет. Только разносить по времени.
39 kiruha
 
25.02.10
14:11
(36) недавно делал замер производительности в многопользовательской среде.

Есть другой способ ?
40 t_vladimir
 
25.02.10
14:38
(36)
раз уж не аминь то поучаствую
для тех кто в танке или на БТРе ;)
в моем решении:
а) нет никаких документов
б) нет никаких операторов
в) мне пофик моменты времени, проведения приходы и расходы
происходит внешнее некое событие сотни раз в секунду, за которым следит 1С
мне нужно запомнить это событие в строго хронологическом порядке и в дальнейшем анализировать с какой задержкой оно происходило
я записываю это событие в регистр сведений в спец. реквизит которого сохраняю миллисекунды
на вопрос многоопытных почему не измерение сразу отвечу - в одну миллисекунду может произойти несколько событий, очень мне хочется видеть их отдельно
может ты мне другое решение подскажешь, дружище?
P.S.
вопрос вообще то был "КАК", попутные вопросы "ЗАЧЕМ" и "ЧЕ С ЭТИМ ДЕЛАТЬ В 1С" и "ДЛЯ ЧЕГО ВАПЩЕ ЭТА 1С СДЕАНА" имхо ни разу не в тему
с этим в 1С можно дохрена что делать, но естественно за рамками проведения операторами накладных
41 vde69
 
25.02.10
14:45
(40) для тех кто не в танке, счетчик таймера на материнке отсчитывает примерно 17 тиков в секунду, все что происходит на компе чаще должно работать напрямую с железом на уровне драйвера системы.

Изменения частоты таймера может повлечь например разрушение HDD.

Ни одно приложение не может справится с твоей задачей без дополнительного драйвера, а как я понимаю у тебя вряд-ли есть такой для твоего устройств, по этому получаемые тобой данные не являются достаточно достоверными
42 Живой Ископаемый
 
25.02.10
14:48
2(41) 18 с половиной в секунуду... С другой стороны для винды тик - это милисекунда.. Правда точность этих милисекуд да, вызывает сомнение...
43 t_vladimir
 
25.02.10
14:49
(41,42) спасибо, самая полезная инфа пока в этой ветке и по теме
в моей задаче в принципе достаточно погрешности 0.1 секунды
но все равно буду иметь ввиду
44 vde69
 
25.02.10
15:00
(42)(43) на материнке стоит тактовый генератор который фигачет импульсы, через микруху делителя которая делит на N тактовку и шлет уже на таймер (а таймер тупо выдает тик (прерывание) при достижение записаного в порт значения),
тоесть есть 2 сигнала не зависимых от частоты, это после делителя и после таймера.

Ловить сигнал после делителя но до микрухи таймера могут контролеры шины, я не знаю как его использует винда, но реально все простые компоненты таймеров винды имеют настройку 1 млсек, но в действительности там реально 1/18 сек достоверно а остальное фуфло.

дополнительно накладывает отпечаток многозадачность (то есть тупо событие произошло в 17.21.321 а ты его получишь только в 17.25.222)