natgeoliubiteli » 02 фев 2017, 15:13
Коллеги, у меня смешная ситуация с алгоритмом расчёта оклада в январе если работник был в отпуске.
Пример (оклад побольше, чтобы была видна разница)
Оклад 50 000 лей.
Работник был в отпуске с 9 по 15 января. Отработал 17 рабочих дней из 22-х. По моему мнению, оклад за отработанное время должен быть = 50 000 / 22 * 17 = 38 636,36 лей.
В 1-С установлен алгоритм от количества часов, а не дней. Разница получается, когда в календаре (и табеле) есть сокращение на 1 час в предпраздничный день. Например, 6 января = 7 часов. Итого, программа считает что норма за январь 175 часов (таки да).
По алгоритму в 1-С: 50 000 / 175 * 135 (отработано часов с учётом что 6 января 7 часов) = 38 571,43 лей. (разница 64,93 лей)
Если бы не было этого предпраздничного дня, тогда расчёт в 1-С был бы: 50 000 / 176 * 136 = 38 636,36 лей. Т.е. соответствовал бы алгоритму расчёта от дней, а не от часов.
Вариант 2. Работник был в отпуске со 2 января по 6 включительно (т.е. был в отпуске и не работал, когда был этот сокращённый день)
50 000 / 22 * 17 = 38 636,36 лей.
50 000 / 175 * 136 = 38 857,14 лей.
Снова разница и равна - 220,78.
Я считаю, что для окладников неправильно считать от нормы часов. Нужно от нормы дней. Каждый раз когда есть предпраздничный день такая разница вылазит. И тут вариант либо вручную править регламентированный календарь (у меня заполняется автоматом с предпраздничными днями на год) и ставить тупо обычный день 8 часов и нет разниц, либо менять алгоритм.