Имя: Пароль:
1C
1С v8
ЗУП Индексация и перерасчет
,
0 жменчик
 
03.08.21
14:51
Здравствуйте. ЗУП 3.1.14.555

1 июля у нас была индексация заработка.
Бухгалтера делают перерасчет отпуска, который был с 1 июля по 2 июля. Так вот при расчете среднего пишет, что "индексация заработка сотрудника не выполнялась".
Причем если изменить дату начала отпуска на 30 июня, то берет коэффициент индексации прошлого года. Если изменить дату начала на 2ое июля берет текущую индексацию. А вот именно с 1го июля (с даты самой индексации) ее не применяет.
Подскажите, пожалуйста, почему так.
1 Said_We
 
03.08.21
15:47
(0) В таблице индексации ЗП, в отпуске что заполняется?
2 Said_We
 
03.08.21
15:48
(0) А чего такой старый релиз?
3 жменчик
 
03.08.21
16:16
(1) А где эту таблицу индексации посмотреть?
(2) Да, вроде, не особо старый. От 21.06.21
4 Said_We
 
03.08.21
18:19
(3) Это табличная часть документа Отпуск. Посмотри что там за информация хранится.
5 жменчик
 
04.08.21
09:14
(4) В таблице все месяца и везде коэффициент индексации = 1. И это только когда начало отпуска совпадает с датой индексации.
Если двинуть начало отпуска на день вперед, то вся таблица заполняется уже с корректным коэффициентом индексации.
6 2S
 
04.08.21
09:18
(5) может нормативку почитаем?
7 Said_We
 
04.08.21
10:18
(6) А чего там читать? Положение 922 п.16
"
...
если повышение произошло в период сохранения среднего заработка, - часть среднего заработка повышается с даты повышения тарифной ставки, оклада (должностного оклада), денежного вознаграждения до окончания указанного периода.
...
"
8 Said_We
 
04.08.21
10:25
(6) Если по русски и применительно к ситуации в (0), то если повышение произошло в течении отпуска, то повышается с даты повышения оклада. Если с 01 отпуск и с 01 повышение, то повышается за весь период, но не все начисления. Последний абзац этого же пункта:

"...
При повышении среднего заработка выплаты, учитываемые при определении среднего заработка, установленные в абсолютных размерах, не повышаются.
"

В прошлых редакциях положения о среднем заработке, в такой ситуации не разделяли начисления в части учета повышения на пропорциональные окладу или нет, а повышали сам средний заработок. Но это уже история...
9 Said_We
 
04.08.21
10:30
К (8) Если повышение было например с 05, а отпуск с 02 по 09, то должны быть две строчки в начислениях:
1) с 02 по 04 с средним
2) с 05 по 09 с средним * Кооф, но не по всем начислениям.

Т.е. у данных двух строчек в показателях должно быть разное значение среднего заработка.
10 Said_We
 
04.08.21
10:55
(0) Можешь проверить - на две строчки отпуск разбивается в случае повышения оклада в середине отпуска?
11 Said_We
 
04.08.21
11:18
(0) Должны учитываться все повышения оклада, сколько бы их не было в течении с даты начала расчетного периода по конец отпуска.
п.16 Положение 922
- если повышение произошло в расчетный период...
- если повышение произошло после расчетного периода до наступления случая
- если повышение произошло в период сохранения среднего заработка

Т.е. если несколько повышений, то Начисление * коэф_1 * коэф_2 *...* коэф_N. Но не все начисления и не на все коэффициенты повышения умножаются. Зависит от того кто раньше повышение или начисление и в какой из трех вариантов попадает.

И ещё...
"выплаты, учитываемые при определении среднего заработка и начисленные в расчетном периоде ЗА предшествующий повышению ПЕРИОД времени".
т.е. если оклад в случае повышения разбивается на две строчки в регистре расчетов, то и премию, начисленную % от оклада, надо разбивать на две строчки в расчете среднего заработка. + в течении оклада могли быть вытеснения БЛ и т.д. И сумму надо разбивать ещё на несколько строк. + Пусть с 10-го ещё и стаж поменялся и стал действовать другой %. Премия от базы, в которую входит оклад и надбавка за выслугу, которая так же от оклада.
Соответственно что бы узнать какая сумма Премии к какому периоду до повышения и после повышения относится, необходимо её фактически заново по честному (с учетом вытеснении оклада) рассчитать но в разрезе периодов. Что РР не позволит никогда. Это либо отдельный РР или искусственный расчет.
Вот поэтому я и говорю что РР даже по сравнению с 7.7 полная профанация с методологической точки зрения. Это не хорошая реализация.
12 Said_We
 
04.08.21
11:34
(0) У Вас точно типовая конфигурация без изменений и расширений?
13 Said_We
 
04.08.21
12:23
Посмотрел модуль как заполняется данная табличная часть.
ВСЕХ поздравляю. Повышение не с начала месяца типовая учитывать НЕ УМЕЕТ с вероятностью 99.99%. Я мельком смотрел, но то что нашел -этого там точно нет.

Таблица повышения заполняется всегда началом месяца.
Вызывается функция ЗапросВТПериоды(), которая заполняется по месяцам.
При заполнении из РегистраСведений.КоэффициентИндексацииЗаработка все данные регистра приводятся к началу месяца и уже они сравниваются на >=.
14 pavlika
 
04.08.21
12:32
(13) Мы при индексации ограничиваем все временные переводы датой индексации. Кадровики это уже наизусть помнят.
15 Said_We
 
04.08.21
12:36
(14) Если повышение произошло 15-го числа месяца, то что можно ограничить при расчете отпуска с 5-го по 20-е того же месяца?
16 жменчик
 
04.08.21
12:49
(12) Изменения есть, но незначительные. Индексацию, расчет среднего, отпуска и прочее точно не трогали.
(9) Если повышение в середине отпуска, то да. Начисление разбивается на 2 части и считается по разным средним.
Если дата отпуска до индексации (например 30 июня) то он при расчете среднего индексирует прошлогодний июнь, прошлогодним коэффициентом.
Если дата отпуска после индексации (например 2 июля) то при расчете среднего индексирует весь прошлый год нынешним коэффициентом.
Если дата отпуска = дате индексации (1 июля) то вообще ничего не индексирует. При печати формы "Расчет среднего заработка" из отпуска даже столбец с коэффициентом не отображается.
17 Said_We
 
04.08.21
12:51
(16) Вы про разбиение по месяцам про 30-е июня. В РР всегда записи бьются по периоду действия по месяцам. К повышению оклада - это не имеет отношения. Записи в любом случае будут разбиты по месяцам.
18 Said_We
 
04.08.21
12:52
(16) "Если дата отпуска после индексации (например 2 июля)", а я про если дата индексации в середине отпуска и не с первого числа.
19 Said_We
 
04.08.21
12:58
Т.е. таблица повышения должна заполняться по честному с тех дат, когда это повышение фактически произошло, а не подсовываться всегда начало месяца.
Если повышений совсем не было, то зачем генерировать всегда таблицу с каждым месяцем и сувать туда 1, мне тоже не понятно. Это лишняя информация. Нет повышения - нет данных.
А если есть повышение, то какое и с какого числа. Так естественным образом хранится информация и только то что фактически имело место. База на пустом месте не растет.
Архитекторы ЗиУП не понятно чем руководствовались, когда сделали что сделали.
20 Said_We
 
04.08.21
13:02
(0) В вашем случае само заполнение какое-то не верное. То что я глянул с 01 повышение должно попадать. У меня знак >= в модуле. Но не проверял по факту. Визуально код должен отработать.
Посмотрите что за связь в запросе с РегистраСведений.КоэффициентИндексацииЗаработка общем модуле в функции УчетСреднегоЗаработка.ДанныеИндексации() ?
21 жменчик
 
04.08.21
13:04
(18) Мы делали индексацию документом "изменение плановых начислений". Если ставить галочку "Учитывать как индексацию", то там в принципе нельзя выбрать дату начала действия. Только месяц.
22 Said_We
 
04.08.21
13:09
(21) У регистра "РегистраСведений.КоэффициентИндексацииЗаработка" много регистраторов.
23 Said_We
 
04.08.21
13:10
(5) А месяца какие в ТЧ? Там есть месяц начала самого отпуска? По идее должен быть.
24 Said_We
 
04.08.21
13:14
К (23) Единственное, я везде по коду вижу расчетный период и дату начала события, а дату окончания события не наблюдаю. Для индексации в среднем не дата начала события важна, а именно дата окончания события с которым связана оплата по среднему. Если отпуск переходящий через месяц, например с 29.06 по 02.08, то важна индексация и 02.08 тоже.
25 Said_We
 
04.08.21
13:25
(0) Вопрос в (23) важен. Если строк с месяцами не хватает, то это ошибка определения периода в котором ищется индексация ЗП по РС. И тогда (24) рассказывает почему.
Что делать в этом случае - подсунуть не дату начала события, А например костыль дата начала события + 2 месяца, но только для обработки в этой ТЧ в функции УчетСреднегоЗаработка.ДанныеИндексации().

Там в двух местах. Во-первых при генерации таблицы периодов, надо расширить период. Во вторых при связи с ИсходнымиДанными и ВТПериоды надо не по дату окончания периода, а задействовать дату начала события + пару месяцев.
26 Said_We
 
04.08.21
13:26
К (25) Но это костыль. По хорошему весь расчет среднего надо переписывать, но этим пусть 1С занимается. А они этого делать не будут точно.
27 Said_We
 
04.08.21
13:44
(0) Обычно по ЗиУП здесь на форуме ответ типа ответа в (6). Или тишина - когда ответить не чего. Секта веры в идеальность ЗиУП. :-) А по факту ЗиУП одна из самых дырявых конфигураций. И сложнее она на порядок.
28 жменчик
 
04.08.21
13:52
(26)
Подправил в модуле УчетСреднегоЗаработка() запрос.

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

Рассчитал один документ и вернул все в зад. Спасибо большое, вы мне очень помогли.
29 Said_We
 
04.08.21
14:17
(28)
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПериоды КАК Месяцы
|        ПО (Месяцы.Период МЕЖДУ ИсходныеДанные.НачалоПериодаРасчетаСреднего И ИсходныеДанные.ОкончаниеПериодаРасчетаСреднего)

Я про пот эту связь имел ввиду.

И выше там запрос есть где определяются входные параметры для получения ВТПериоды. Там период слишком маленький.
30 Said_We
 
04.08.21
14:20
(28) Главное чтобы потом этот документ случайно не пересчитали. :-)
31 жменчик
 
04.08.21
14:22
(29) Да, спасибо. Работает и хорошо. Сегодня-завтра отправлю репорт 1Сникам. Чтобы не мне одному эти грабли достались.
32 Said_We
 
04.08.21
14:25
(31) Не за что.