обороты на момент времени 23:59:59
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Ноя 15, 2007 16:28  обороты на момент времени 23:59:59 |
|
Полезность: Нет оценки
|
Сегодня столкнулся с ошибкой при написании отчета, что машина игнорирует обороты при использовании операции ::[AC_FIN].[GET_SALDO] проведенные в 23:59:59, если отчет необходимо сформировать именно на это время. В 00:00:00 часов происходит смена дат и получается что остаток на 23:59:59 не сходится с остатком на счете на 00:00:00, хотя точно известно, что в данный момент времени ни какие операции не проводились..
Может кто сталкивался с подобным и поделится опытом как избежать данной ошибки _________________ всегда есть как минимум 2 выхода |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Чт Ноя 15, 2007 18:11  Re: обороты на момент времени 23:59:59 |
|
Полезность: 1
|
Приведу комментарий к этой операции:
Код: | /*********************************************************************
Класс: Финансовые счета
Операция: Получить остатки на счете на момент времени
Короткое имя: GET_SALDO
Параметры: Наименование Имя Вид Тип
Дата (и время) P_DATE -> Дата
Остаток в валюте P_SALDO <- Сумма
Остаток в основной валюте P_SALDO_NAT <- Сумма
Признак учета ЗО P_ZO -> Логика
Признак возвращения остатка P_NT -> Логика
в основной валюте
Вазвращает В Х О Д Я Щ И Й (на начало секунды) остаток типа Сумма
FTC, Лагута О.Н., последнее изменение 21.03.99 15:51
*********************************************************************/ |
НА 23:59:59 = на НАЧАЛО последней секунды суток.
НА 00:00:00 = на НАЧАЛО следующей секунды
Таким образом, есть гипотеза, что остатки отличаются в точности на обороты течение 59-ой секунды. А это есть (как правило) "вставка в прошлое". |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Ноя 15, 2007 18:25  Re: обороты на момент времени 23:59:59 |
|
Полезность: Нет оценки
|
timochev пишет: | ...
НА 23:59:59 = на НАЧАЛО последней секунды суток.
НА 00:00:00 = на НАЧАЛО следующей секунды
Таким образом, есть гипотеза, что остатки отличаются в точности на обороты течение 59-ой секунды. А это есть (как правило) "вставка в прошлое". |
Именно так и получается... последний файл с РКЦ приходит в поле нуля часов.. естественно что его никто не ждет...
в итоге отчет на момент времени рвет исходящий остаток
честно говоря не хочется писать операцию которая будет лезть в массив выписки и несложными математическими вычислениями получать необходимую цифру, когда есть дистрибутивная операция...
да и отчет придется усложнить и как показывается практика немного затормозить лазаниями по доп. массивам _________________ всегда есть как минимум 2 выхода |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Чт Ноя 15, 2007 21:56   |
|
Полезность: Нет оценки
|
Цитата: | в итоге отчет на момент времени рвет исходящий остаток |
Откровенно говоря, мне не совсем понятна поставленная задача. Мало информации. Что необходимо получить? Остаток на определенный момент астрономического времени? Файлы грузятся в текущий опер.день или в прошлый?
Если не секрет, зачем такой отчет нужен? В своей практике не сталкивался еще с такой необходимостью. |
|
 |
YuSokolov Профи
Вступление в Клуб: 29.06.2007
|
Пт Ноя 16, 2007 08:44  Re: обороты на момент времени 23:59:59 |
|
Полезность: 1
|
Alexsey пишет: | в итоге отчет на момент времени рвет исходящий остаток |
Алексей а почему бы для расчета остатка не использовать функцию f.a, например sum_tmp := f.a('В'||V_ACC.[ARC_MOVE]||'СВ', V_DATE); или sum_tmp := f.a('В'||V_ACC.[ARC_MOVE]||'СН', V_DATE);
"свою операцию" писать не надо. |
|
 |
dale Участник со стажем
Вступление в Клуб: 28.09.2007
|
Пт Ноя 16, 2007 11:41   |
|
Полезность: 1
|
Ну и GET_SALDO я так понимаю что можно использовать тока на начало след дня _________________ Программа делает не то, что хочет программист, а то, что написано в коде. (c) |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Пт Ноя 16, 2007 13:02   |
|
Полезность: Нет оценки
|
dale пишет: | Ну и GET_SALDO я так понимаю что можно использовать тока на начало след дня |
операция GET_SALDO считает на момент времени, что мне и было необходимо. Единственная проблема только в том, что считает она на начало секунды и не учитывает оборот по времени равный запросу (например 14/11/2007 23:59:59).В даном случае мне пришлось научить отчет заменять дату и время в данном случае на 15/11.2007 00:00:00 и получить актуальный остаток
YuSokolov пишет: | Алексей а почему бы для расчета остатка не использовать функцию f.a, например sum_tmp := f.a('В'||V_ACC.[ARC_MOVE]||'СВ', V_DATE); или sum_tmp := f.a('В'||V_ACC.[ARC_MOVE]||'СН', V_DATE);
"свою операцию" писать не надо. |
честно говоря я не смотрел эту функцию... но если она будет расчитывать не текущий остаток а остаток на момент времени, по почему бы и не использовать... _________________ всегда есть как минимум 2 выхода |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|