Здравствуйте!
Начальные данные: Сформирован резерв отпусков на январь, предоставляется отпуск ежегодный, затрагивающий два периода (март,апрель) + отпуск дополнительный (апрель), начисление было выполнено в конце февраля, движения по резервам выполнились нормально.
В конце марта делаем перерасчет (зарплата за февраль подъехала) и тут с резервами начинается что попало:
Во первых галка "начисление за счет резерва проводить в пределах накопленных сумм" отрабатывает с точностью наоборот: когда её НЕТ, программа пытается определить остатки резервов и списать только их, но у неё это не получается, поскольку ей "мешает" несколько разных периодов отпуска одного вида и получается непонятные суммы и количества дней. Если отпуск только в одном периоде, то списание резервов работает нормально.
Если же галку "начисление за счет резерва проводить в пределах накопленных сумм" ставить, то программа хотела бы делать списание резервов без контроля остатков (по коду видно), но у неё опять же ничего не получается, поскольку в коде ошибка в условии

. В этом случае движений по резервам вообще нет при любых периодах отпуска.
Ещё в документе есть галка "при перерасчете проводить только разницу". Если её поставить, то движений по резервам нет, т.к. в процессе определения этой разницы программа "теряет" ВидОтпуска, из-за чего потом не может получить остатки.
Вот как-то так.