Александр
Joined: 11 Sep 2002 Posts: 130 Location: Гершанов
|
Posted: 25 Oct 2007 23:39 Post subject: Расчет ОТПУСКА (НОРМОДНИ не равны РАБОЧИМ ДНЯМ) |
|
|
В алгоритме расчета ОТПУСКА заложено, что если НОРМОДНИ не равны РАБОЧИМ ДНЯМ, то КАЛЕНДАРНЫЕ ДНИ
рассчитываются по формуле РАБ.ДНИ*1.4, а когда РАВНЫ, то КАЛЕНД.ДНИ=29.4
На крупном предприятии главбух настаивает, что КАЛЕНД.ДНИ=РАБ.ДНИ*1.4 только если НОРМОДНИ<РАБ.ДНИ и
РАБ.ДНИ*1.4<=29.4, а в противном случае КАЛЕНД.ДНИ=29.4 (показывают комментарии к Закону и демонстрируют, что если
сотрудник отработал больше, чем НОРМОДНИ, то у него кал. дней будет больше 29.4, а также, если НОРМОДНИ=23, а
сотрудник отработал 22 дня то КАЛЕНД.ДНИ=22*1.4>29.4).
1. Что думают на этот счет специалисты компании "БЭСТ"? Можем ли резонно ответить, что главбух не прав?
2. Я внес изменение в алгоритм ТАБЛИЧНОГО ДОКУМЕНТА в соответствии с их указаниями. Табличный документ рассчитывает среднюю зарплату так, как хочет главбух.
3. Далее стал вносить изменение в форму Т-60. Здесь приходится действовать по-наитию (АЛГОРИТМ достаточно сложный).
Заменил строки во фрагменте:
//с учетом ежемесячных премий
aVars[23]:= aVars[23] + A[I,4]*Coef + A2*A[I,7] + A3
aVars[6] := aVars[6]+If(A[I,7]=aVars[36],29.4,A[I,7]*1.4)
aVars[7] := aVars[7]+round(aVars[37]*1.4,0)
на
//с учетом ежемесячных премий
aVars[23]:= aVars[23] + A[I,4]*Coef + A2*A[I,7] + A3
aVars[6] := aVars[6]+If(A[I,7]>=aVars[36].OR.A[I,7]*1.4>=29.4,29.4,A[I,7]*1.4)
aVars[7] := aVars[7]+round(aVars[37]*1.4,0)
Но результат не всегда правильный (календ.дни не всегда формируются правильно)
Не понял, на что заменить строку
aVars[7] := aVars[7]+round(aVars[37]*1.4,0)
Хотелось бы помощи (Если главбух прав - то надо бы сделать для всех) |
|