Имя: Пароль:
1C
1С v8
Найти начало и конец месяца, предшествующего текущему месяцу
,
0 Виктрыч
 
05.02.22
14:20
Добрый день, помогите решить задачку.
Надо рассчитать премию работнику. Премия равна определенному проценту от оклада прошлого месяца. Для вычисления начала и окончания базового периода (начало/окончание прошлого месяца) пробовал использовать ДобавитьМесяц(НачалоМесяца(Дата), -1) и ДобавитьМесяц(КонецМесяца(Дата), -1). Все бы ничего, получаю начало и окончание базового периода ровно на месяц меньше текущего периода. Но, если текущий месяц ноябрь (30 дней), то и базовый период программа считает 1.10.гггг - 30.10.гггг. Т.е. на один день меньше, а это 8 рабочих часов. Соответственно оклад прошлого месяца (база для расчета премии) уменьшается (как будто работник не доработал 8 часов) и премия рассчитывается не правильно.
1 Злопчинский
 
05.02.22
14:23
КонПериод = НачМесяца(ТекущаяДата())-1;
НачПериод = НачМесяца(КонПериод);
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
3 Злопчинский
 
05.02.22
14:51
(2) угу.