|
Ошибка в УПП при расчете отпуска | ☑ | ||
---|---|---|---|---|
0
Черников
31.03.25
✎
09:11
|
УПП. в новом релизе 244.1
есть ошибка в расчете суммы отпускных и командировочных в документах начисление отпуска и оплата по среднему. Расчет среднего умноженное на число дней отпуска не совпадает с итоговой суммой. 1С признала эту ошибку. Может кто нашел возможность обхода? |
|||
1
Kobol
31.03.25
✎
09:44
|
Предположительно: Модуль "ПроведениеРасчетовПереопределяемый", функция "ПолучитьСтруктуруНеобходимыхДанных" - в условии "ИначеЕсли СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням" забыли РК и СН.
В релизах по ориентировочной дате сегодня новая версия должна выйти, можете её дожидаться, вдруг исправят. |
|||
2
Кочеврыжка
02.04.25
✎
12:37
|
Есть варианты как это поправить?
если откатиться, то на какую версию?где все более менее считалось нормально? |
|||
3
Kobol
02.04.25
✎
15:13
|
Модуль "НачислениеОтпускаРаботникамОрганизацийПереопределяемый"
Функция "РасчетСреднегоЗаработка" В конце функции из выборки берется значения "ОтработаноДнейРК", которое равно 0, его надо заменить на "ОтработаноДней" (в других модулях так сделано в типовой конфигурации). Там же для СН и расчета по часам исправить. И проверку на заполненные значения добавить перед расчетом результата, запрос возвращает NULL для "СреднийЗаработокСН". (1) Это тоже исправить, добавить еще 4 значения из перечисления, иначе выдаст ошибку, если указаны только дополнительные дни отпуска без основных. |
|||
4
vis
04.04.25
✎
06:44
|
Новую версию выпустили.
Бух. проверяла и сказала что ошибка не ушла... |
|||
5
lex1972
04.04.25
✎
10:37
|
Как временное решение:
В модуле объекта документа "НачислениеОтпускаРаботникамОрганизаций" в процедуре "Рассчитать" временно вернул старый расчет: ИначеЕсли РассчитываемыеТаблицы.РасчетСреднего Тогда НаборОсновныеНачисления.Записать(Истина, Ложь, Истина, Ложь); НаборДополнительныеНачисления.Записать(Истина, Ложь, Истина, Ложь); Если НаборОсновныеНачисления.Количество() > 0 Тогда Если ДатаВыплатыДохода < ПроведениеРасчетов.ДатаЗакона176ФЗ() Тогда ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); Иначе //yae //ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего2025("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); КонецЕсли; КонецЕсли; Если НаборДополнительныеНачисления.Количество() > 0 Тогда Если ДатаВыплатыДохода < ПроведениеРасчетов.ДатаЗакона176ФЗ() Тогда ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ДополнительныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); Иначе ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего2025("ДополнительныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); КонецЕсли; КонецЕсли; КонецЕсли; |
|||
6
lex1972
04.04.25
✎
10:39
|
ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего2025("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего);
Вот это заремил и поставить ПроведениеРасчетовПереопределяемый.СформироватьИЗаписатьДанныеРасчетаСреднего("ОсновныеНачисленияРаботниковОрганизаций", Ссылка, НаборРасчетСреднего); |
|||
7
lex1972
04.04.25
✎
10:40
|
Отпускные копейки по новому расчеты получаются. :)
|
|||
8
Гена
гуру
04.04.25
✎
10:43
|
(7) Более точно: ошибочный новый расчёт отпускных случайно не даёт кратное уменьшение СДЗ: в два, три и т.д. раза?
|
|||
9
Гена
гуру
04.04.25
✎
10:55
|
(7) Не тормозите. УПП открыт же? Гляньте на сумму отпуска и сравните с правильной.
Или скиньте мне пустую базу - сам гляну. |
|||
10
Kobol
04.04.25
✎
11:02
|
(8) Надо в документе смотреть таблицу расчета по среднему, что за один месяц не установились отработанные дни на каждое начисление.
Раньше колонки "Начисление" в документе не было и строки группировались, а теперь основной заработок разделяется на несколько строк (почасовая, премия, доплата, РК и т.д.) и в каждую устанавливается 29,3 дней. Может это связано с нашими доработками, в типовой не проверял. |
|||
11
Гена
гуру
04.04.25
✎
11:07
|
(10) Гут. Но тогда отпускные суммы должны быть строго КРАТНО меньше правильной суммы. Но lex1972 молчит как партизан.
|
|||
12
lex1972
04.04.25
✎
11:25
|
(9) CF база пойдет?
|
|||
13
Гена
гуру
04.04.25
✎
11:31
|
(12) Можно попробовать. У меня старый УПП 200 - может прокатит )
|
|||
14
lex1972
04.04.25
✎
11:35
|
Сейчас закачаю и на почту отправлю ссылку на скачивание.
|
|||
15
lex1972
04.04.25
✎
11:40
|
Отправил. Благодарю.
|
|||
16
lex1972
04.04.25
✎
12:11
|
(8) Вот пример одному сотруднику среднедневная по старому алгоритму получалась 1442,33 а по новому считает 337,14. Кратность 4,38
|
|||
17
Гена
гуру
04.04.25
✎
12:20
|
(16) Похоже на дни. Как бы увидеть последнюю закладку "Расчет среднего заработка" - скорее всего повторяются дни 29.3 (или пропорции) не только для основных видов расчёта, но и для дополнительных (вроде надбавки).
|
|||
18
Гена
гуру
04.04.25
✎
12:30
|
т.е. давайте скрин или несколько, чтобы видны были все записи расчёта среднего любого ОДНОГО месяца.
|
|||
19
lex1972
04.04.25
✎
12:39
|
На почту всю табличку отправил.
|
|||
20
Гена
гуру
04.04.25
✎
12:55
|
(19) Да и так видно.
ч.т.д. Знаменатель кратно ошибочно вырос, отсюда кратно же уменьшился средний. Проверьте: прямо вручную обнулите по всем месяцам колонку "Дней расчётного периода", оставив в каждом месяце только ОДНУ сумму 29.3 или её пропорцию, которая правее оплаты по окладу. По принципу один месяц - одни знаменатель. После того, как убедитесь проверкой - идите в код и уберите там повтор ОтработаноПоПятидневке для дополнительных видов расчёта. Сделайте как при бабушке - для каждого месяца один знаменатель (время). |
|||
21
lex1972
04.04.25
✎
13:07
|
Спасибо Геннадий пойду ковырять код. :)
|
|||
22
Гена
гуру
04.04.25
✎
13:11
|
(21) Чего там ковырять? Чай не ЗУП, где кубло ВТ, половина из которых сами себя удаляют после запроса.
Минут 10 работы в 2.5, причём не торопясь и за чашечкой кофе. P.S. Ваш сf не прокатил ) Не судьба мне увидеть новый релиз УПП... |
|||
23
lex1972
04.04.25
✎
13:41
|
(22) Платформа старая.
|
|||
24
vis
04.04.25
✎
13:53
|
(21) Ну как, получилось?
|
|||
25
Kobol
04.04.25
✎
14:07
|
(20) один месяц - один знаменатель
Но не РК или СН - если в них оставить, может некорректно рассчитать средний заработок. |
|||
26
lex1972
04.04.25
✎
14:16
|
(24) Пока некогда было, других дел полно. До понедельника время есть.
|
|||
27
lex1972
04.04.25
✎
14:16
|
(25) У нас РН и СК нет.
|
|||
28
lex1972
04.04.25
✎
14:39
|
В типовой нашел прикольный коммент :)
СледующийВидНачисления = Ложь;//юля |
|||
29
lex1972
04.04.25
✎
14:44
|
Пока сделал так в модуле объекта документа начисления отпуска
ВременнаяТЗ = НаборРасчетСреднего.Выгрузить(); Если ДатаВыплатыДохода < ПроведениеРасчетов.ДатаЗакона176ФЗ() Тогда ВременнаяТЗ.Свернуть("СпособРасчета,БазовыйПериодКонец,БазовыйПериодНачало,ВидРасчета,КоэффициентИндексации,НормаПоПятидневке,ОтработаноДней,ОтработаноПоПятидневке,ОтработаноЧасов,Результат,ЧислоМесяцев"); Иначе ВременнаяТЗ.Свернуть("СпособРасчета,Начисление,БазовыйПериодКонец,БазовыйПериодНачало,ВидРасчета,КоэффициентИндексации,НормаПоПятидневке,ОтработаноДней,ОтработаноПоПятидневке,ОтработаноЧасов,Результат,ЧислоМесяцев"); КонецЕсли; //yae ВРОклад = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням; Для Каждого тСтрока ИЗ ВременнаяТЗ Цикл ВидНачисления = тСтрока.Начисление; Если ТипЗнч(ВидНачисления) = Тип("ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций") И ВидНачисления = ВРОклад Тогда Продолжить; Иначе тСтрока.ОтработаноДней = 0; КонецЕсли; КонецЦикла; |
|||
30
lex1972
04.04.25
✎
14:44
|
Геннадий, сейчас плеваться будет. Меня пока устроит. Буду ждать обновы.
|
|||
31
Гена
гуру
04.04.25
✎
15:06
|
Обед святое дело...
(29) Фактически Вы просто обнулили РАНЕЕ излишне собранные дни для допначислений. Тогда придётся также нулить и в остальных доках среднего: увольнение, командировка и т.п. Согласитесь, что это не айс. Надо изначально нулить, где-то в первоначальной таблице набора расчёта среднего. Не в доках среднего, а в общем модуле тру-ля-ля_2025 |
|||
32
lex1972
04.04.25
✎
15:46
|
(31) Полностью согласен. Я посмотрел туда для меня сложновато это, то есть время у меня много займет. Пока с отпускными только вопрос заострили. Я нашел запрос даже скопировал его в запросник собрался параметры скопировать. И вырубился у нас свет. :) Я решил что видимо это знак что туда не лезть, мне пока пойдет такой способ. Будет время и желание залезу туда.
|
|||
33
Гена
гуру
04.04.25
✎
16:06
|
(32) К знакам надо прислушиваться. Где-то встречал статистику, что на рейсы, потерпевшие катастрофу в среднем процентов на 5 сдают больше билетов на отказ от поездки, нежели на обычные рейсы.
Может и не надо заранее нулить дни в общем модуле, может они ещё где-то задействованы. Оставляйте костыль. |
|||
34
v36i82bp
04.04.25
✎
16:34
|
(32) попробуйте в Общем модуле "ПроведениеРасчетовПереопределяемый" в функции "ПолучитьДанныеДляРасчета2025" в тексте запроса в переменной "ДанныеОСреднемЗаработкеТекст" (83 строка функции) заменить агрегатные функции СУММА() на МАКСИМУМ() для полей ОтработаноДней, ОтработаноДнейПособий, ОтработаноДнейПособий2010, ОтработаноЧасов.
|
|||
35
Гена
гуру
04.04.25
✎
17:31
|
(34) Крайне плохо. Гляньте скрин автора. Там для неполноотработанных месяцев знаменатель для оклада 27.35, а для общемесячного КТУ 29.3
Ваша функция максимума ОШИБОЧНО впендюрит во все месяцы в знаменатель 29.3 вместо пропорции отработанных календарных дней. При наличии разовых начислений. |
|||
36
Гена
гуру
04.04.25
✎
17:38
|
Лучше дайте под спойлером целиком код этой функции ПолучитьДанныеДляРасчета2025
Судя по названию это то, что нужно. Разберёмся. |
|||
37
lex1972
04.04.25
✎
18:17
|
Код в текстовом файле.
https://disk.yandex.ru/d/nVJP1dCndlfRtg |
|||
38
lex1972
04.04.25
✎
18:04
|
Похоже не так вставил. Как сполер вставить правильно?
|
|||
39
v36i82bp
04.04.25
✎
18:18
|
(35) Там в полях группировки есть поле "ДатаНачалаРасчетногоПериода" (каждый месяц) и "СпособРасчета", я у себя не нашел ситуации когда этого недостаточно.
|
|||
40
lex1972
04.04.25
✎
18:25
|
(39) Вообще, я по одному сотруднику посмотрел сумма получается при обоих способах одна и та же. Возможно в других местах может что и вылезет.
|
|||
41
Гена
гуру
04.04.25
✎
18:46
|
Ого... простынь )
|
|||
42
Гена
гуру
04.04.25
✎
18:55
|
Да, коллеги, вот наш кусок, вы правильно его нашли:
| СУММА(ВЫБОР
| КОГДА РасчетСреднегоЗаработка.Начисление.КодДоходаНДФЛ = ЗНАЧЕНИЕ(Справочник.ДоходыНДФЛ.РайонныеСеверныеНадбавки) | ТОГДА 0 | КОГДА РасчетСреднегоЗаработка.ВидРасчета В (&ОсновнойЗаработок) | ИЛИ РасчетСреднегоЗаработка.ВидРасчета В (&ОсновнойЗаработокНеиндексируемый) | ТОГДА ВЫБОР | КОГДА РасчетСреднегоЗаработка.СпособРасчета В (&ПоСреднемуЗаработкуФСС) | ТОГДА ВЫБОР | КОГДА РасчетСреднегоЗаработка.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство) | ТОГДА 0 | ИНАЧЕ РасчетСреднегоЗаработка.ОтработаноДней | КОНЕЦ | ИНАЧЕ РасчетСреднегоЗаработка.ОтработаноДней | КОНЕЦ | ИНАЧЕ 0 | КОНЕЦ) КАК ОтработаноДней, Жёлтым выделил мысль... У кого есть РК - проверьте отпуск, ту вкладку среднего по месяцам. А для РК случайно нет лишних дней, которые прут в знаменатель? Если нет, то сейчас этот кусок доработаем. А вот если и для РК бухнулись 29.3 или его пропорция - то гипотеза не верна. |
|||
43
Гена
гуру
04.04.25
✎
19:25
|
А чего я жду? Пятница вечер )
Ладно, чудес не бывает, скорее всего РК и СН пустодневные в среднем (см. жёлтое). Давайте подумаем. К кренделю, который кодит на фирме 1С зарплату в УПП пришёл босс и сказал: - Надо РКСН теперь выделять в среднем. Ну надо, так надо. Крендель и выделил. Стал проверять - втрое упали отпускные. Тогда он добавил: | КОГДА РасчетСреднегоЗаработка.Начисление.КодДоходаНДФЛ = ЗНАЧЕНИЕ(Справочник.ДоходыНДФЛ.РайонныеСеверныеНадбавки)
| ТОГДА 0 и успокоился. Проверял-то на голом окладе, а в жизни есть надбавки и разовые выплаты. Их надо добавить в "когда/тогда 0" Предложенная замена суммы на максимум плоха тем, что внутри месяца может быть кадровый перевод и для двух строчек начисления по тому же окладу может быть 10.0 в одном куске месяца и 19.3 в другом. Заменив ошибочно сумму на максимум с удивлением обнаружим знаменатель месяца как 19.3 вместо 29.3 = 10.0 + 19.3 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |