Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Разбираю блок ЗУП из УПП 1.3.47.2.
В документе "Начисление отпуска организаций" на вкладке "Расчет среднего заработка" у некоторых работников неверно расчитывается количество календарных дней - не исключаются дни отпуска за свой счет.
Начал разбираться - расчет календарных дней идет по регистрам расчета НачислениеЗарплатыРаботникамОрганизаций и РасчетСреднегоЗаработка, с отбором вид расчета = .ПВР.СреднийЗаработок.ПоЗаработку и ПВР.СреднийЗаработок.ПоЗаработкуДляОтпуска, с дополнительными фильтрами, чтобы ВидРасчета.ЗачетНормыВремени = ИСТИНА и ВидРасчета.ЗачетКалендарныхДней = ИСТИНА.
Это типовой механизм, сверял с последним обновлением.
Наткнулся на то, что иногда в табеле был указан отпуск за свой счет и в РС.СостояниеСотрудниковОрганизаций у этого сотрудника была запись (регистратор - документ ОтпускаОрганизаций). Создал документы Невыходы на основании этих Отпусков, и частично ситуация исправилась - по конкретными сотрудникам в конкретных месяцах теперь расчет календарных дней происходит правильно - дни отпуска за свой счет стали вычитаться из календарных дней того месяца.
Но остались несколько сотрудников, у которых в регистре расчета НачислениеЗарплатыРаботникамОрганизаций я не нахожу различий и зацепок, сравнивая записи за периоды с правильным расчетом и ошибочным.
Разобрал этот запрос "на части", вывел поля, по которым есть какие-либо соединения или фильтры, сравнения, расчеты - ничего подозрительного не нахожу.
У разных документов по сотруднику еще и разные графики работы - где "пятидневка", а где с фамилией сотрудника - это тоже почему может быть? Что делать? Как победить?
Я так понимаю, что есть кадровые документы (табель, отпуска организаций), которые изменяют состояние сотрудников. А есть и расчетные документы (невыходы в организацию, начисление отпска работникам организаций и т.д.). И в моем случае сломалась цепочка.
Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Что нашел: у регистра расчета есть виртуальная таблица ДанныеГрафика, которая участвует в этом запросе. В раегистре указан график - РС.ГрафикиРаботыПоПериодамВремени.
В правильно начисленных периодах количество дней из реквизита этого графика не попадают, равны null (и прочие реквизиты из соединения с этой таблицей), а в неверно рассчитываемых периодах - по количеству дней, взятых без содержания. От того и плюсуются.
Пример выборки по этой виртуальной таблице с отбором по сотруднику:
март 2016 (правильно) - рабочих дней 28 Начисление зарплаты - 28 - без содержания 2 Табель учета рабочего времени - NULL - выходной 1 итого 31
Апрель 2016 (неправильно) - Рабочих дней 28 нчисление зарплаты - 28 - без содержания табель учета рабочего времени - 2 итого 30. А должно быть 28.
Группа: Местный
Сообщений: 372
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 66.3
Как вариант - оформлять невыходы отдельными документами, а не табелем только.
После обновления релиза на 1.3.45.2 в документе "Табель учета рабочего времени" появились записи в реквизит ГрафикРаботыСотрудник (в процедуре ДвиженияПоРегиструРасчета, строка движение.ГрафикРаботыСотрудника = ВыборкаПериодыПропуска.Сотрудник).
Прежде в виртуальной таблице НачисленияРаботникамОрганизаций.ДанныеГрафика такие дни невыхода отображались как NULL, потому что реквизит ГрафикРаботыСотрудник был пустой ссылкой, и не было соединения с регистром сведений ГрафикРаботыПоВидамВремени, который является графиком для РР.НачисленияРаботникамОрганизаций. В итоге в поле ПроизводственныйКалендарьблаблабла этой виртуальной таблицы было NULL и при сумме с другими строками за этот период получалось необходимое количество календарных дней для расчета средней.
Теперь поле ГрафикРаботыСотрудник всегда заполнено (вспомним обновление 1.3.45.2) и происходит соединение с указанным регистром сведений для графика расчета. И сумма дней по периоду теперь составляет календарное количество - 28 дней начислено, плюс 2 дня отпуск, которые раньше были NULL, итого 30 дней. Что неправильно, если не оформлять документ "Невыходы...".
------------------------------------
Два варианта решения: заставить оформлять эти документы или исключать из выборки строки с видом расчета "Дни неоплачиваемые согласно табелю".
Поставкой обновления и обновлялись. Написали в 1С, получили ответ, что в некоторых случаях табель может отражать некоторые невыходы, и при расчетах они будут отражаться верно. но лучше использовать документ НевыходыВОрганизации.
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 1 раз
Рейтинг: 0
Vladal @ 29.08.16, 17:29
, так там все проще нужно убрать в Основных начислениях организации, выбрав Отпуск за свой счет, в закладке время убрать галочку "Засчитывать в календарные дни", и тогда в расчет отпуска подтягивает календарные дни за минусом дней за свой счет
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!