Показать сообщение отдельно
Старый 16.06.2017, 12:34   #1  
CHESER85 is offline
CHESER85
Участник
 
93 / 11 (1) +
Регистрация: 04.08.2011
Адрес: Ufa
Записей в блоге: 1
Ошибка в классе
Добрый день! Версия системы АХ 4.0. Нашел ошибку в классе, которая стрельнула при расчете ограничения по дням ребенка по модулю Расчеты с Персоналом.
Класс RPayAverageEarnEngine_SickList, функция mapIllTypeRestriction:

...
X++:
    if (rhrmVirtualNetworkFamily)
    {
        for (tmpDate = rhrmVirtualNetworkFamily.BirthDate ; tmpDate <= rPayAverageEarnEmplPeriodTable.sickListStartDate() ; tmpDate = nextyr(tmpdate))
        {
            familyAge++;
        }

        birthDay = mkdate(dayofmth(rhrmVirtualNetworkFamily.BirthDate),mthofyr(rhrmVirtualNetworkFamily.BirthDate), year(rPayAverageEarnEmplPeriodTable.sickListStartDate()));
        birthDay = birthDay > rPayAverageEarnEmplPeriodTable.sickListStartDate() ?
                              birthDay :
                              mkdate(dayofmth(rhrmVirtualNetworkFamily.BirthDate),mthofyr(rhrmVirtualNetworkFamily.BirthDate), year(rPayAverageEarnEmplPeriodTable.sickListStartDate()) + 1);

        daysRestrictionBirthDate =  birthDay - rPayAverageEarnEmplPeriodTable.sickListStartDate();
    }
...
Переменная familyAge должна содержать в себе количество полных лет ребенка на дату начала больничного по уходу за ребенком. И получается что она считает на год больше. Вопрос: если у кого нибудь есть AX 2009 или AX 2012, там эта ошибка исправлена или нет?

Последний раз редактировалось mazzy; 16.06.2017 в 12:43. Причина: тег xpp для кода