Можно кого-нибудь попросить посмотреть, как у вас в системе отрабатывается такая ситуация. Самый простой случай, без замены годов, без ИТ0293. Пусть есть ТН, который в 2013 уходит на больничный по берем/родам (скажем 15.01.2013). Расчет среднего выполняется за 2011 и 2012 год. Пусть в 2012 году у Тн были больничные (20 дней), эти дни должны быть исключены из расчета среднего. То есть, за 2012 год должны быть учтены 366-20 = 346 дня.
За сбор кол-ва дней отвечает правило расчета среднего SNxx, за 2012 год это будет SN12. Можете посмотреть, какое значение примет поле NUM у ВО SN12 в таблице IT на выходе из функции RUAVE? У меня сейчас получается в таблице IT в SN12 сидит 366, то есть без исключения дней. При этом, в таблице AVERAGE значение SN12 правильное – 346. Сам расчет среднего тоже выполняется правильно, с учетом дней исключения.
Я проанализировал, почему так получается. На данный момент, мне кажется что, это следует из логики настройки среднего. RUAVE выполняет работу в два этапа: - сначала правила расчета среднего работают для всех ВО за все периоды, - затем для каждой записи, вызвавшей расчет среднего, отдельно только по текущему периоду. На первом этапе SN12 работает как задумано – собирает /890 из 2011 и 2012 годов, затем в правиле конечно обработке из кол-во дней в году (366) отнимается собранная сумма (20), и SN12 становится равным 346. На втором этапе сначала срабатывает правило расчета среднего для больничный по берем/родам (просто в порядке сортировки этот ВО идет раньше). Это правило получает собранные значения, в том числе SN12 равное 346, и на основе это вычисляет верное значение среднего. Затем правило опять работает правило SN12, напомню, только для текущего месяца. В текущем периоде уже нет релеватных ВО /890, поэтому вычисляется значение 366 – 0, и в итоге SN12 становился равным 366.
С одной стороны значение неправильное, с другой стороны, неправильное значение не используется. Но не используется оно просто только из-за порядка сортировки. Если будет какой-то ВО, например на Z, настроенный на правило PREG, то он будет обрабатываться после правила SNхх, а значит получит уже неверное значение.
Меня только смущает одно. Когда я в январе настраивал схему, мне кажется тогда все правильно заполнялось. У нас ВО SNxx участвует в отчете по расчету среднего, поэтому я этот момент проверял. Поэтому хотел удостоверится, что это проблема не только в нашей системе.
Как у вас заполнены SNхх на выходе из RUAVE?
|
|