Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Начисление отпуска организаций - в расчете календарных дней по среднему попадают дни отпуска за свой счет
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Пользователю 1С 8.3, 8.2, 8.1, 8.0 > 1С Зарплата и Управление Персоналом 8
Vladal
Разбираю блок ЗУП из УПП 1.3.47.2.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Два варианта решения: заставить оформлять эти документы или исключать из выборки строки с видом расчета "Дни неоплачиваемые согласно табелю".
andr_andrey
Vladal @ 19.08.16, 17:41 необходимо зарегистрироваться для просмотра ссылки,
Идеально - исправление поставщиком конфигурации.
Vladal
Цитата(andr_andrey @ 22.08.16, 11:16) необходимо зарегистрироваться для просмотра ссылки
Vladal @ 19.08.16, 17:41 необходимо зарегистрироваться для просмотра ссылки,
Идеально - исправление поставщиком конфигурации.
Поставкой обновления и обновлялись.
Написали в 1С, получили ответ, что в некоторых случаях табель может отражать некоторые невыходы, и при расчетах они будут отражаться верно.
но лучше использовать документ НевыходыВОрганизации.

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