Версия для печати темы (https://pro1c.org.ua/index.php?s=a5f7a6972c9ada9c75f36ab6a64fbb6a&showtopic=31430)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ 1С Зарплата и Управление Персоналом 8 _ Начисление отпуска организаций - в расчете календарных дней по среднему попадают дни отпуска за свой счет

Автор: Vladal 18.08.16, 16:11

Разбираю блок ЗУП из УПП 1.3.47.2.

В документе "Начисление отпуска организаций" на вкладке "Расчет среднего заработка" у некоторых работников неверно расчитывается количество календарных дней - не исключаются дни отпуска за свой счет.

Начал разбираться - расчет календарных дней идет по регистрам расчета НачислениеЗарплатыРаботникамОрганизаций и РасчетСреднегоЗаработка, с отбором вид расчета = .ПВР.СреднийЗаработок.ПоЗаработку и ПВР.СреднийЗаработок.ПоЗаработкуДляОтпуска, с дополнительными фильтрами, чтобы ВидРасчета.ЗачетНормыВремени = ИСТИНА и ВидРасчета.ЗачетКалендарныхДней = ИСТИНА.

Это типовой механизм, сверял с последним обновлением.

Наткнулся на то, что иногда в табеле был указан отпуск за свой счет и в РС.СостояниеСотрудниковОрганизаций у этого сотрудника была запись (регистратор - документ ОтпускаОрганизаций).
Создал документы Невыходы на основании этих Отпусков, и частично ситуация исправилась - по конкретными сотрудникам в конкретных месяцах теперь расчет календарных дней происходит правильно - дни отпуска за свой счет стали вычитаться из календарных дней того месяца.

Но остались несколько сотрудников, у которых в регистре расчета НачислениеЗарплатыРаботникамОрганизаций я не нахожу различий и зацепок, сравнивая записи за периоды с правильным расчетом и ошибочным.

Разобрал этот запрос "на части", вывел поля, по которым есть какие-либо соединения или фильтры, сравнения, расчеты - ничего подозрительного не нахожу.

У разных документов по сотруднику еще и разные графики работы - где "пятидневка", а где с фамилией сотрудника - это тоже почему может быть?
Что делать? Как победить?

Я так понимаю, что есть кадровые документы (табель, отпуска организаций), которые изменяют состояние сотрудников.
А есть и расчетные документы (невыходы в организацию, начисление отпска работникам организаций и т.д.).
И в моем случае сломалась цепочка.

Как её починить?

Автор: Vladal 19.08.16, 13:32

Что нашел: у регистра расчета есть виртуальная таблица ДанныеГрафика, которая участвует в этом запросе. В раегистре указан график - РС.ГрафикиРаботыПоПериодамВремени.

В правильно начисленных периодах количество дней из реквизита этого графика не попадают, равны null (и прочие реквизиты из соединения с этой таблицей), а в неверно рассчитываемых периодах - по количеству дней, взятых без содержания. От того и плюсуются.

Пример выборки по этой виртуальной таблице с отбором по сотруднику:

март 2016 (правильно)
- рабочих дней 28 Начисление зарплаты - 28
- без содержания 2 Табель учета рабочего времени - NULL
- выходной 1
итого 31

Апрель 2016 (неправильно)
- Рабочих дней 28 нчисление зарплаты - 28
- без содержания табель учета рабочего времени - 2
итого 30. А должно быть 28.

Автор: Vladal 19.08.16, 16:41

Как вариант - оформлять невыходы отдельными документами, а не табелем только.

После обновления релиза на 1.3.45.2 в документе "Табель учета рабочего времени" появились записи в реквизит ГрафикРаботыСотрудник (в процедуре ДвиженияПоРегиструРасчета, строка движение.ГрафикРаботыСотрудника = ВыборкаПериодыПропуска.Сотрудник).

Прежде в виртуальной таблице НачисленияРаботникамОрганизаций.ДанныеГрафика такие дни невыхода отображались как NULL, потому что реквизит ГрафикРаботыСотрудник был пустой ссылкой, и не было соединения с регистром сведений ГрафикРаботыПоВидамВремени, который является графиком для РР.НачисленияРаботникамОрганизаций.
В итоге в поле ПроизводственныйКалендарьблаблабла этой виртуальной таблицы было NULL и при сумме с другими строками за этот период получалось необходимое количество календарных дней для расчета средней.

Теперь поле ГрафикРаботыСотрудник всегда заполнено (вспомним обновление 1.3.45.2) и происходит соединение с указанным регистром сведений для графика расчета.
И сумма дней по периоду теперь составляет календарное количество - 28 дней начислено, плюс 2 дня отпуск, которые раньше были NULL, итого 30 дней.
Что неправильно, если не оформлять документ "Невыходы...".

------------------------------------

Два варианта решения: заставить оформлять эти документы или исключать из выборки строки с видом расчета "Дни неоплачиваемые согласно табелю".

Автор: andr_andrey 22.08.16, 10:16

Vladal @ 19.08.16, 17:41 *,
Идеально - исправление поставщиком конфигурации.

Автор: Vladal 29.08.16, 15:29

Цитата(andr_andrey @ 22.08.16, 11:16) http://pro1c.org.ua/index.php?act=findpost&pid=115763,
Идеально - исправление поставщиком конфигурации.
Поставкой обновления и обновлялись.
Написали в 1С, получили ответ, что в некоторых случаях табель может отражать некоторые невыходы, и при расчетах они будут отражаться верно.
но лучше использовать документ НевыходыВОрганизации.

Решили изменением запроса.

Автор: tanny 11.02.17, 18:55

Vladal @ 29.08.16, 17:29 * ,
так там все проще
нужно убрать в Основных начислениях организации, выбрав Отпуск за свой счет, в закладке время убрать галочку "Засчитывать в календарные дни", и тогда в расчет отпуска подтягивает календарные дни за минусом дней за свой счет

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua