Имя: Пароль:
1C
1С v8
ЗУП 3.1 Вопрос по расчёту среднего заработка после проведения индексации
Ø (Фрэнки 03.08.2022 13:48)
0 DomenER
 
02.08.22
10:56
Всем привет.

Сделали индексацию документом "изменение плановых начислений" на июль. В регистр сведений "Коэффициент индексации заработка" появилась запись с периодом 01.07.2022 0:01:00.

Далее если отпуск начинается 01.07.2022, то коэффициент индексации не видит для начислений ранее 01.07.2022, а вот если сделать начало отпуска 02.07.2022 или позже, то видит.

Соответственно дата индексации 01.07.2022 0:01:00 > даты начала отпуска 01.07.2022 0:00:00.

Бухгалтера говорят, что при отпуске с 01.07.2022 также должна учитываться июльская индексация.

У вас также?
1 DomenER
 
02.08.22
10:57
Пока в общем модуле "УчетСреднегоЗаработка" в функции "ДанныеИндексации" немного поправил запрос и задаю, что отпуск начинается в конце дня

    Запрос.Текст =
        "ВЫБРАТЬ
        |    ИсходныеДанные.Сотрудник КАК Сотрудник,
        |    Месяцы.Период КАК Период,
        |    ЕСТЬNULL(КоэффициентИндексацииЗаработка.Коэффициент, 1) КАК КоэффициентИндексации
        |ИЗ
        |    ВТИсходныеДанные КАК ИсходныеДанные
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПериоды КАК Месяцы
        |        ПО (Месяцы.Период МЕЖДУ ИсходныеДанные.НачалоПериодаРасчетаСреднего И ИсходныеДанные.ОкончаниеПериодаРасчетаСреднего)
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КоэффициентИндексацииЗаработка КАК КоэффициентИндексацииЗаработка
        |        ПО ИсходныеДанные.Сотрудник = КоэффициентИндексацииЗаработка.Сотрудник
        |            И (Месяцы.Период >= НАЧАЛОПЕРИОДА(КоэффициентИндексацииЗаработка.Период, МЕСЯЦ))
        //+
        //|            И (КоэффициентИндексацииЗаработка.Период >= ИсходныеДанные.ДатаНачалаСобытия)
        |            И (КоэффициентИндексацииЗаработка.Период >= конецпериода(ИсходныеДанные.ДатаНачалаСобытия,день))
        //-
        |
        |УПОРЯДОЧИТЬ ПО
        |    Сотрудник,
        |    Период УБЫВ
        |ИТОГИ ПО
        |    Сотрудник,
        |    Период";
    
    Если Не КоэффициентУчитываетПоследующиеИндексации Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст, ">=", "<");
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "Период УБЫВ", "Период ВОЗР");
    КонецЕсли;
2 Фрэнки
 
02.08.22
10:59
Скорей всего, что в документе Отпуск идет в шапке Июнь, поэтому у него сидит такая ошибка.

Я бы предложил ввести на все отпуска перерасчеты, причем, вообще на все, потому что даже начавшиеся в ИюНе и продолжающиеся в ИюЛе - им тоже требуется перерасчет. И тогда все будет верно.
3 DomenER
 
02.08.22
11:02
(2) На самом деле сначала отпуск с 01.07.2022 рассчитали в июне и исправляющим документом делают расчёт на июль. И возникла такая ситуация
4 Фрэнки
 
02.08.22
11:03
(3) Тогда странно, что Индексация записывается с таким значением в периоде 01.07.2022 0:01:00

Может лучше этот документ верно перезаписать, чем править текст типового запроса?
5 DomenER
 
02.08.22
11:08
(4) Там по функции делается операция замены условия

Если Не КоэффициентУчитываетПоследующиеИндексации Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, ">=", "<");


В запросе получится
И (КоэффициентИндексацииЗаработка.Период < ИсходныеДанные.ДатаНачалаСобытия)


Даже если период индексации будет начало дня, то получится
По данным будет так: 01.07.2022 0:00:00 < 01.07.2022 0:00:00
И так же на 01.07.2022 система не увидит индексацию.
6 DomenER
 
02.08.22
11:15
Предположу, что это ошибка типовой конфигурации.
7 Gucci76
 
02.08.22
12:47
Вы средний сравниваете? А попробуйте сумму отпускных проверить.
Вроде если начало отпуска до индексации, а конец после, то сумма среднего умножается на коэффициент и получается "результат"
8 DomenER
 
02.08.22
14:28
(7) Я формирую отчёт по расчёту среднего заработка из документа отпуска и там для отпусков с 01.07.2022 индексация не учитывается
9 DomenER
 
02.08.22
14:33
(7) Рекомендую попробовать провести индексацию с июля и рассчитать отпуск с 01.07.2022, а дальше посмотреть отчёт по расчёту среднего из этого документа отпуска. Ранее 01.07.2022 помесячно должен отражаться коэффициент индексации, а не просто 1.0
10 Gucci76
 
02.08.22
14:53
(9) Вы средний из документа умножьте на количество дней отпуска и сравните с результатом что выдает 1С
11 Фрэнки
 
02.08.22
15:01
(10) тебе все правильно выше написали. Зачем ты ему морочишь голову, чтоб он чего-то перемножал?

Процедура перерасчета учитываемых сумм среднего заработка в типовой ЗУП работает практически одинаково много-много лет, начиная еще с версий для 7.7
И сопровождается печатной формой с расчетом.

В данном конкретном случае, просто из-за того, что период регистрации движений по документу индексации вводится почему-то с лишней минутой,
типовой код просто не корректно обрабатывает условия.

Т.е. печатная форма может показать даже более, чем одну индексацию заработка. Но сейчас у него сглючила.
12 Gucci76
 
03.08.22
09:29
(11) Я все правильно написал. И не морочу голову.
По ссылке наглядный пример: отпуск начинается с даты индексации заработка.
https://ibb.co/f1Bd8yf
Это, я так понимаю, задуманное поведение ЗУП - если индексация произошла внутри отпуска, то коэффициент накладывается на часть отпуска, которая после индексации.
В текущем случае весь отпуск после индексации и коэффициент применяется не в расчете среднего, а на средний.
Проверьте.
13 SleepyHead
 
гуру
03.08.22
13:14
(12) Вы правы, эту тонкость обычно забывают.
14 Gucci76
 
03.08.22
13:37
(13) Спасибо за поддержку!!!! ))))
15 Фрэнки
 
03.08.22
13:48
Уря!!!

всех поддержали и ветку наконец может сдохнуть