Деление на 0

Вопрос задал Сергей А.

Ответственный за ответ: Клишева Мила (★9.82/10)

Здравствуйте, сотруднику начисляется надбавка за вредность, в сентябре он был пол месяца в отпуске, в табеле рабочее время учтено с 23 .09 . Но в документе Начисление за месяц при заполнении все падает по ошибке деление на 0. Подскажите, что проверить? Ранее если человек полный месяц например болел, то отменяли ему надбавку, но сейчас данные для расчета присутствуют.

Обсуждение (24)

  1. Сделал срочное изменение для этого начисления, по 21.09. В итоге ЗП начислялась, но может быть есть вариант, не делать прекращение на время?

  2. Здравствуйте, Сергей!
    Приложите пожалуйста настройки начисления: вкладки Приоритеты, Учет времени.
    К сожалению, на скриншоте табель не видно последнюю строчку по нужному сотруднику. Предполагаю, что надбавка настроена на определенный вид времени(например Явка), а у сотрудника в этом месяце нет такого времени в Табели.

  3. Мила, здравствуйте, два начисления за вредность, приоритет в скрин не поместился, поэтому отдельным ПДФ.

    1. Спасибо за предоставленную информацию. Сейчас буду анализировать:)

  4. Приложение

    Прошу показать Начисление зарплаты и взносов — подробны расчет, чтобы посмотреть показатели. Скриншот прикладываю о чем иедт речь.

  5. Мила, доброе утро. Что то пошло не так, сотруднику отменил начисление вредных на срок см. скриншот, но в начислении в итоге оно не появилось. Скриншот по который вам нужен тоже прикладываю, но там вредные не рассчитались.

  6. Доброе утро, Сергей.
    Предлагаю еще раз по порядку. А то кажется я запуталась:)
    Сотрудник отрабатывает в сентябре 6 дней(48 часов). Я ожидала, что за вредные условия будет сумма. Но документ Изменение плановых начислений с 1.09 по 21.10 (!) отменяет эту надбавку. Подскажите пожалуйста, почему выбраны эти даты?

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

  8. В начале переписки, Вы указали что срочное изменение по 21 сентября. На скриншоте по 21 октября. Поэтому в сентябре не начислялась вредность совсем. Предлагаю исправить срочное начисление до 21 сентября. Пересчитать сентябрь, если такое возможно. Или сделать перерасчет октябрем. Важно увидеть расчет и параметры начисления.
    То есть я хочу разделить проблему: начисление не видит отработанное время или проблема в отсутствие сотрудника до 21 сентября.
    К сожалению не могу воспроизвести ситуация у себя. Поэтому решение немного затягивается. Но очень хочется добраться до истины:)

  9. Дык вот в этом и проблема, как только я убираю изменение, то не могу выполнить начисление

  10. Если изменение регистрирую, то см. скрин

  11. Покажите пожалуйста настройки начисления Оплата по часовому тарифу (по норме).
    Проблема с надбавкой за вредность такая постоянно была? Проблема у Всех или только по данному сотруднику?
    Если сейчас начислить за ноябрь, когда сотрудник целый месяц на работе, надбавка не отменена — все будет в порядке? Можно скриншот.

  12. Проблема возникает если сотрудник полный месяц отсутствовал, тогда просто отменяли начисление, но так что бы при частичном отсутствии не начислялось такого небыло. Похоже, что это проблема одного сотрудника, за октябрь, начисление с учетом вредных сформировалось по нему т.к. он весь месяц работал. Другой сотрудник с такими же отклонениями есть в сентябре, я прекратил ему начисление на период отпуска 08.08-06.09, в итоговом начислении вредные посчитались в сентябре.

  13. Приложение

    Из последнего скриншота видно, что в октябре оплата по часовому тарифу рассчитана на 160 часов. А вот надбавка за вредность из 48. То есть нужно проверять, что с учетом времени.
    В надбавки за вредность, ничего особого нет, чтобы ее приходилось отменять и назначать. Или она должна накручиваться на какие-то определенные часы? Исходя из присланных настроек там явка, ночные, праздники.
    Напишите пожалуйста, как эту надбавку за вредность Вы бы рассчитывали вручную: на какое время нужно умножить и что это за время.
    Ежемесячная премия от тарифа рассчитана на 160 часов. А что указана в настройках этого начисления?
    У нас тут уже совместная работа по поиску истины.

  14. Здравствуйте. Извиняюсь, нашел причину в прекращении начисления, был задан период не 21.09, 21.10, поэтому в начислении за октябрь было 48 ч, сейчас норм, за полный месяц. Вредные считаются процент за отработанное время в том числе ночные, праздничные. Скриншоты настройки начислений во вложении. С момента выхода из отпуска в сентябре был только документ изменение графика работы, что еще может влиять на необходимость прекращения начисления, не понятно.

  15. Приложение

    Предлагаю по экспериментировать в октябре.
    Оплата по часовому тарифу учитывается в настройках Учета времени — Рабочие время. Предлагаю изменить надбавку за вредность в этой настройки и пересчитать октябрь.
    Правильно, же я понимаю, что в октябре ждете расчет
    61 часовой тариф*160 часов рабочего времени*10%= 976 рублей?

  16. Мила, здравствуйте. За октябрь по этому же сотруднику в начисление за вредность вид времени явка заменил на рабочее время, расчет верный 976, но если создать отпуск, то опять деление на 0. В общем программист на следующей неделе посмотрит.

  17. Да, скорее всего тут нужно взглянуть на базу глазами. Воспроизвести ситуацию не получается, значит что-то не в настройках дело.

  18. Добрый день.

    Понятно почему так происходит, но, что с этим делать, только наверное отменять на период отсутствия. Выяснил, зачем-то показатель Процент надбавки за вредность — типовой оказался в статусе не используется, это могло произойти только при обновлении, т.к. для предопределенных объектов установить признак можно только обработкой. Снял этот признак, не решилась проблема. Дальше проверил, что если в месяце есть отсутствие, то т.к. в формуле есть деление на ВремяВЧасах — (ПроцентНадбавкиЗаВредность / 100 * ТарифнаяСтавкаЧасовая * (Мин(1, НормаЧасов / ВремяВЧасах) * ВремяВЧасах), а ВремяВЧасах = 0, то возникает ошибка деления на 0. Думаю может быть включить проверку на 0 ВремяВЧасах? Например так, ? ВремяВЧасах > 0, (ПроцентНадбавкиЗаВредность / 100 * ТарифнаяСтавкаЧасовая * (Мин(1, НормаЧасов / ВремяВЧасах) * ВремяВЧасах)), но тогда не понимаю, что должно возвращаться если значение ЛОЖь. Последний раз уже утоню у вас по этой задаче, можно ли в формуле предусмотреть проверку на 0?

  19. Можно и не в последний раз уточнить:) Вам всегда рады!
    А давайте вообще определим,что мы хотим сделать, найдя Коэффициент: НормаЧасов/ВремяВчасах?
    Допустим норма 168 в октябре. В формуле идет сравнение с 1 и выбираем меньшее
    Отработал 0 часов. 168/0 =ошибка.
    Отработал 140 часов 168/140=1,2 Выбираем 1: 10/100*61*1*140=854р
    Отработал 168 часов 168/168=1 Выбираем 1:10/100*61*1*168=1024,8 р
    Отработал 170 часов 168/170=0,988 Выбираем 0,98 (хотя отработал больше чем нормы!): 10/100*61*0988*170=1024,55р
    Если рассматривать Ваш вопрос: когда время равно 0, то возвращать нужно 0. Надбавка будет равна 0 рублей.
    Пока я не понимаю про коэффициент, если, позволите порассуждаю:
    Если мы хотим как-то проверять время может использовать ВремяВчасах/НормаЧасов. НормаЧасов есть всегда, ошибка деления на 0 нам не грозит. Но если только график не заполнен.
    Если мы хотим платить только за норму часов, а за большее отработанное количество часов не платить,
    то можно реализовать:
    ?(ВремяВчасах>НормаЧасов, ПроцентНадбавкиЗаВредность / 100 * ТарифнаяСтавкаЧасовая*НормаЧасов,
    ПроцентНадбавкиЗаВредность / 100 * ТарифнаяСтавкаЧасовая*ВремяВчасах)
    Если время в часах больше нормы часов, то плати Процент вредности *Тариф* Норма часов, иначе плати Процент вредности *Тариф*Отработанное время.

  20. Мила, спасибо Вам большое, за предложенные варианты решения 😉 подходит вариант плата не больше нормы.

    1

Комментарии закрыты