Есть несколько мыслей по этому поводу.
1. Я не однократно сталкивался с проблемой неправильного использования замороженного значения в подобных случаях. На мой взгляд ее корень в не очень удачном алгоритме считывания замороженных значений . Обработка происходит в ФМ HRPY_AVERA_USE_FROZEN_AVERAGE. Например, в отношении ПРС с заморозкой A (по отсутствию) работает следующий код
Code:
if i51av_a-frozen eq 'A'.
READ TABLE AB WITH KEY ABZNR = AV_IT-ABZNR.
* if an average rule with A as "frozen type" is assigned to a wage type,
* this wage type must be generated by absence, so it has an AB-split.
* Otherwise, this wage type will not be processed and a warning message
* will be outputed.
if sy-subrc <> 0.
continue.
endif.
LOOP AT AVERAGE WHERE AVRULE = I51AV_A-AVRULE
AND BEGDA LE AB-endda
AND ENDDA GE AB-endda.
ENDLOOP.
Почему поиск выполняется по дате окончания события (AB-endda), если средний мы считаем на дату начала? На мой взгляд, это не правильно.
2. По началу мне показал странным, что проблема проявилась только с правилами AV06 и AV08, почему только с ними? Делаю предположение, что у вас AV06 и AV08 используются и для расчета компенсации, и для расчета отпуска, а остальные ПРС разные. Здесь есть не очень очевидная ошибка настройки - нельзя использовать ПРС с установленной заморозкой A для событий, который не связаны с отсутствием.
Компенсация увольнения не связанна с отсутствием, поэтому для его расчета нельзя использовать ПРС с заморозкой A.
То есть, если есть 2 ВО, один из которых имеет сплит AB, а другой нет, то средних для них должен рассчитываться не перекрывающимися наборами ПРС, даже если все остальные характеристики расчета среднего для них совпадает.
У вас в журнале расчета есть предупреждение, типа проверьте настройку таблиц T51AV_A и T51AV_P? Оно из-за этого. Будут и другие ошибки, связанные со средними.
Переделайте настройку. ВО без сплита AB не должны использовать ПРС с заморозкой A.