Например, сотрудник проработал 3 года в компании, итого имеем 3 периода рабочих годов в 2006. Увольняем сотрудника и ограничиваем на дату увольнения 2006, соответственно ограничивается только последняя запись. Но при этом остаются еще 2 записи с прошлых рабочих годов. Они никаким образом не меняются. Обычно период окончания использования у записей либо 31.12.9999, либо все равно в далеком будущем, чтобы дать работнику возможность использовать права на отпуск за предыдущие года.
Соответственно если через какое-то время произведен повторный прием, заведен отпуск и если при этом не созданы еще новые права (отрицательное использование включено). Соответственно, система залезет в старые записи до повторного приема и удержит из них право на отсутствие. Если бы записи были ограничены, то такого бы не произошло. Конечно это ситуация ошибочного ведения данных, но все же она имеет место быть. Так же нельзя недооценивать «высокий интеллект» рядовых HR юзеров.
Я подумываю создать расширения на контроль данной ситуации, варианты следующие:
1) Через BAdI HRPAD00INFTY на IN_UPDATE, которое при ограничении записи в 2006 на день увольнения, так же прочитает все предыдущие записи и ограничит у них дату использования последним рабочим днем (если конечно они по какой-то причине не используются после даты ограничения через PTQUODED).
2) Через BAdI PT_QUOTA_DEDUCTION на CALCULATE_QUOTA и там запрещать удерживать из записей 2006, которые созданы (begda) до даты последнего приема
2 вариант безопаснее

Интерестно узнать есть ли стандартное решение.