0
Виктрыч
05.02.22
✎
14:20
|
Добрый день, помогите решить задачку.
Надо рассчитать премию работнику. Премия равна определенному проценту от оклада прошлого месяца. Для вычисления начала и окончания базового периода (начало/окончание прошлого месяца) пробовал использовать ДобавитьМесяц(НачалоМесяца(Дата), -1) и ДобавитьМесяц(КонецМесяца(Дата), -1). Все бы ничего, получаю начало и окончание базового периода ровно на месяц меньше текущего периода. Но, если текущий месяц ноябрь (30 дней), то и базовый период программа считает 1.10.гггг - 30.10.гггг. Т.е. на один день меньше, а это 8 рабочих часов. Соответственно оклад прошлого месяца (база для расчета премии) уменьшается (как будто работник не доработал 8 часов) и премия рассчитывается не правильно.
|
|
2
Виктрыч
05.02.22
✎
14:39
|
Злопчинский, спасибо огромное. Все рассчиталось как надо. Я правильно понял, как работает этот механизм?
КонПериода = НачМесяца(ТекущаяДата())-1; - я от даты 1.02.2022 00:00:00 отнимаю секунду, получаю дату 31.01.2022 23.59.59 и соответственно конец периода равен 31.01.2022
НачПериод = НачМесяца(КонПериод); - находим начало месяца, что равно 1.01.2022 00:00:00
|
|