|
Расскажите про ПолучитьОперативнуюОтметкуВремени | ☑ | ||
---|---|---|---|---|
0
Mashinist
13.06.13
✎
17:55
|
Кратко суть выглядит так
В базе похожей на Альфа-Авто периодически документы начинают проводится будущим временем Т.е. как бы последовательность уходит вперед Документ проводится оперативно по часам, скажем в 15:20, и после проведения получает время 17:30 Про сервер и время на локальном компе все проверили. Везде все хорошо. Вариант, который двигает оперативную отметку это ПолучитьОперативнуюОтметкуВремени() Т.е. если взять в цикле 600 раз ПолучитьОперативнуюОтметкуВремени() и провести после этого документ, то он и уйдет в будущее на 10 мин Нашел в конфе много, где встречающихся вызовов ПолучитьОперативнуюОтметкуВремени()... все еще не просмотрел, но многие вызывают удивление например такое КонецДня(ПолучитьОперативнуюОтметкуВремени()) Как по мне это равносильно такому КонецДня(ТекущаяДата()) потому как в описании ПолучитьОперативнуюОтметкуВремени() написано Возвращаемое значение соответствует текущей дате... Более сложный момент Если Документ.ЭтоНовый() Тогда МоментВремени = ПолучитьОперативнуюОтметкуВремени(); Иначе МоментВремени = Документ.МоментВремени(); КонецЕсли; тз = ОстаткиБонусов.Остатки(МоментВремени,Фильтр,"Автомобиль,БонусныйТалон","СуммаБонусов"); Ну т.е. если документ новый, то остатки мы получаем на оперативную отметку Оно вроде как и ничего... Пользователь создает документ и там что-то считается на ПолучитьОперативнуюОтметкуВремени. Может быть... потому как пока он нажмет проведение текущее время уже будет больше того, что получено и вроде все ОК Но почему нельзя использовать тот же КонецДня? |
|||
1
dauster
13.06.13
✎
18:20
|
я так понял, что рарус исправлял эту проблему у себя, путем переписывания модулей http://rarus.ru/forum/forum7/topic1121/
поэтому базу, похожую на Альфа-Авто - тоже, очевидно, нужно допилить, переписав блоки с вызовами ПолучитьОперативнуюОтметкуВремени(). В противном случае, время неизбежно будет убегать вперед, т.к. каждый вызов - это плюс 1 секунда. |
|||
2
Mashinist
13.06.13
✎
18:34
|
(1) Спасибо! Очень в тему
|
|||
3
EvgeniuXP
13.06.13
✎
19:00
|
(0) а если перепроводишь документ и меняешь у него дату, тоже прибавлять/вычитать остатки? :)
|
|||
4
EvgeniuXP
13.06.13
✎
19:00
|
(3) в смысле, остатки текущего документа попадут в расчет остатков - а это не гуд.
|
|||
5
EvgeniuXP
13.06.13
✎
19:02
|
(4) еще точнее: остатки текущего прошлого проведенного документа. Или движения чистят? Тогда зачем движения на 15 часов, если документ на 13 часов проводится, или перепроводится.
|
|||
6
Dethmont
13.06.13
✎
22:17
|
(0) В каком событии\процедуре этот код?
|
|||
7
Mashinist
14.06.13
✎
01:55
|
(3) если ты про
тз = ОстаткиБонусов.Остатки(МоментВремени,Фильтр,"Автомобиль,БонусныйТалон","СуммаБонусов"); То там четко видно, что ПолучитьОперативнуюОтметкуВремени(); только для нового. так что можно перепроводить и дату менять конкретно этот код кажется в форме документа уже и не помню... КонецДня(ПолучитьОперативнуюОтметкуВремени()) все равно где. реально это просто двигает момент отметку и ничего полезного не делает Рарус это все типа переписал... И нам придется :-) Просто удивился тупизне кода и подумал, что может я чего-то недопонимаю... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |