Как настроить округление до целого числа в разовом начислении в программе «1С:ЗУП 3.1»?

Пользователь 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При расчете разовых или плановых начислений в программе «1С:Зарплата и управление персоналом 3.1» расчетчики часто сталкиваются с ситуацией, когда итоговая сумма получается с копейками. Например, при делении оклада на дни и умножении на фактически отработанное время может получиться сумма 22994,99 руб. С точки зрения ведения учета и выплаты сотрудникам, гораздо удобнее округлить этот результат до целого рубля — 22995 руб.

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

Способ №1. Использование встроенной функции ОКР в формулах

Для настройки округления непосредственно в самом начислении нам понадобится встроенный редактор формул. Перейдем в настройки начисления (раздел «Настройки» — «Начисления»), откроем нужное разовое начисление и найдем поле редактирования формулы.

Самый правильный и математически верный способ округлить результат — использовать функцию Окр. Давайте разберем ее синтаксис:

Окр(Выражение, Разрядность)

Где параметры означают следующее:

  1. Выражение — это наша математическая формула расчета. В рассматриваемом примере формула выглядит так: (РасчетнаяБаза/ОтработаноДней)*НормаДней.
  2. Разрядность — число, указывающее, до какого знака после запятой нужно произвести округление:
    • 0 — округление до целого рубля (то, что нам нужно);
    • 2 — округление до копеек (двух знаков после запятой);
    • Отрицательные числа (-1, -2, -3) позволяют округлять результат до десятков, сотен или тысяч рублей соответственно. Например, Окр(Сумма, -1) округлит 1234 рубля до 1230 рублей.

Давайте посмотрим на готовый пример формулы для нашего разового начисления с округлением до целого рубля:

Окр((РасчетнаяБаза / ОтработаноДней) * НормаДней, 0)

При использовании такой конструкции сумма 22994,99 автоматически округлится до 22995 по стандартным правилам математики (так как дробная часть 0,5 и выше округляется в большую сторону).

Способ №2. Математический метод с функцией ЦЕЛ

Иногда пользователи пытаются использовать функцию Цел, которая просто отбрасывает дробную часть числа. Давайте проанализируем, почему конструкция Цел((РасчетнаяБаза/ОтработаноДней)*НормаДней) работает некорректно для нашей задачи.

Функция Цел возвращает только целую часть. Для числа 22994,99 результатом работы функции будет 22994,00. Программа просто «отрежет» 99 копеек, проигнорировав правила математического округления. В итоге сотрудник недополучит деньги.

Чтобы обойти это ограничение и заставить функцию Цел округлять по правилам математики, можно применить проверенный математический прием — прибавить к результату расчета константу 0.5 перед отбрасыванием дробной части. Наша формула примет следующий вид:

Цел(((РасчетнаяБаза / ОтработаноДней) * НормаДней) + 0.5)

Давайте выясним причину, почему это работает:

Этот способ полностью рабочий, однако мы рекомендуем использовать штатную функцию Окр, так как она более понятна при чтении формулы другими расчетчиками и минимизирует вероятность ошибок.

Способ №3. Округление всегда в большую сторону (вверх)

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

Рассмотрим, как реализовать округление «вверх» в 1С:ЗУП 3.1 двумя путями:

  1. С помощью математической дельты:

    Мы можем прибавить к результату расчетов 0.49 (или 0.499) перед округлением до целого:

    Окр(((РасчетнаяБаза / ОтработаноДней) * НормаДней) + 0.49, 0)

    В этом случае даже минимальные 0.01 копейки превратятся в 0.50 копеек и округлятся до целого рубля в большую сторону.

  2. С помощью условия (тернарного оператора):

    Мы можем использовать функцию ветвления ? для проверки наличия дробной части у числа. Формула выглядит следующим образом:

    ?(Результат = Цел(Результат), Результат, Цел(Результат) + 1)

    Проанализируем работу этой конструкции: если наше число уже целое (например, 22000), программа оставляет его без изменений. Если у числа есть любая дробная часть (например, 22000.01), программа отбрасывает копейки с помощью Цел и прибавляет ровно 1 рубль, гарантируя округление в большую сторону.

Способ №4. Округление только при полной отработке месяца

На практике часто требуется настроить округление оклада до целого рубля, но только если месяц отработан сотрудником полностью. Если же сотрудник находился на больничном или в отпуске, расчет должен происходить с точностью до копеек, чтобы не искажать расчет среднего заработка в будущем.

Для реализации такой логики мы можем использовать в формуле начисления проверку отработанного времени:

?(ВремяВДнях = НормаДней, Окр(ФормулаРасчета, 0), ФормулаРасчета)

Если фактическое время работы в днях (ВремяВДнях) равно норме дней за месяц (НормаДней), программа применит к формуле округление до целого. Если же имели место отклонения, то расчет будет произведен по стандартной формуле с сохранением копеек.

Альтернатива: округление на этапе выплаты зарплаты

Важно помнить, что округление непосредственно в формуле начисления влияет на расчет НДФЛ и страховых взносов, так как налоги рассчитываются от начисленной базы. Если ваша цель — просто выдавать сотрудникам «красивые» суммы без копеек в ведомостях, правильнее использовать встроенный механизм округления выплат в ЗУП 3.1.

Выполним настройку округления выплаты по шагам:

  1. Перейдем в меню «Настройки» и откроем справочник «Способы выплаты зарплаты» (если пункт скрыт, его можно найти через сервис «Функции для технического специалиста»).
  2. Для каждого типа выплаты (например, «Аванс», «Зарплата» или «Межрасчетные выплаты») мы можем настроить индивидуальный «Способ округления».
  3. В поле округления выберем нужную точность (до 1 рубля, до 10 рублей или до 100 рублей) и укажем характер округления (например, всегда в большую сторону).

При использовании этого механизма копейки не теряются и не списываются, а автоматически переносятся как долг за предприятием или сотрудником на следующий календарный месяц, что позволяет вести абсолютно точный бухгалтерский и налоговый учет.

← На главную