| Александр 
 
 
 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)
 
 
 Хотелось бы помощи (Если главбух прав - то надо бы сделать для всех)
 |  |