Имя: Пароль:
1C
1С v8
ЗУП начисление
0 neomarat
 
13.03.18
19:29
В организации есть верхняя граница начислений. Например 100 000. Завели Показатель: "НачислЗаМесяцСНДФЛОбщВ".

Он должен делиться пропорционально отработанному времени.

Сотрудник работает по графику и получает набор всяких начислений.

В конце месяца надо в зависимости от заработанного сравнить с данным "НачислЗаМесяцСНДФЛОбщВ"(который рассчитался пропорционально отработанному времени) и если сотрудник заработал меньше - доначислить до этой суммы, а если больше - не начислять.

Как это сделать?

Попробовал сделать такую формулу:

МАКС(НачислЗаМесяцСНДФЛОбщВ /  НормаЧасов * ВремяВЧасах - РасчетнаяБаза,0)

Все отрабатывает хорошо до тех пор, пока сотрудник не разбивает период (например кадровым перемещением) или не возникает начисление по 2-м периодам - тогда это начисление расчитывается дважды и не корректно - по периодам. Как избавиться от такого поведения. В 2.5 все работало, а в 3.1 видимо поменяли механизм и не работает после переноса.
1 Малыш Джон
 
13.03.18
21:24
(0) если у тебя расчетная база и время в часах тоже разбивается на два периода, то должно верно считать
2 neomarat
 
13.03.18
21:52
Разбивается, но вот НормаЧасов то одна и та же на обе строки - не поэтому считает неверно.
3 Малыш Джон
 
13.03.18
21:56
а при чем тут норма часов?

считай, что  у тебя НачислЗаМесяцСНДФЛОбщВ/НормаЧасов - это такое почасовое начисление: умножил на 10 - получил начисление за 10 часов, умножил на 20 - получил за двадцать.

если у тебя ВремяВЧасах и РасчетнаяБаза разбиваются пропорционально периодам, то и МАКС(НачислЗаМесяцСНДФЛОбщВ /  НормаЧасов * ВремяВЧасах - РасчетнаяБаза,0) разбивается пропорционально периодам
4 Малыш Джон
 
13.03.18
22:01
(3) если расчетная база разбивается НЕ пропорционально периодам - тогда, да, могут быть варианты не очень хорошие
5 neomarat
 
13.03.18
22:16
(4) Да вот как то криво она разбивается, и похоже не пропорционально. А вот как заставить разбиваться пропорционално периодам?Там в расчетной базе все начисления и  по периодам, и фиксированной суммой...
6 Малыш Джон
 
13.03.18
22:20
ну а как у тебя начисление за один период может "знать", что у тебя в другом периоде? делай объединенные показатели(общая расчетная база и общее время в часах) и считай одной суммой свое доначисление, а потом уже пропорционально дели на периоды
7 neomarat
 
13.03.18
22:38
(6) не понял как?
НачислЗаМесяцСНДФЛОбщВ  - фиксированная сумма
Расчетная база - период одного месяца, но в нем есть начисления например оклада. Все нормально когда оклад не менялся - возникает одна запись по приведенной формуле.
А вот если сотрудник был переведен на новую должность - например 10.02, то возникает 2 записи с этой формулой:
- 01.02 - 10.02 Часть расчетной базы
- 11.02 - 28.02 Вторая часть расчетной базы
Но расчетная база не пропорциональная длине периодов и в первой записи результат расчета ноль, а во второй в 2 раза больше чем если бы запись не билась...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.