Как в 1С:ЗУП и ERP настроить автоматический расчет показателя «Всего отработано часов за месяц» в формулах начислений?

Бухгалтер 1С v8.3 (Управляемые формы) Бухгалтерский учет
← На главную

При настройке произвольных начислений в программах «1С:Зарплата и управление персоналом 3.1» и «1С:ERP Управление предприятием» пользователи часто сталкиваются с необходимостью вычислить фактическую стоимость часа работы сотрудника. Типичный пример — доплата за работу в праздничные дни, когда формула требует деления расчетной базы на общее количество отработанных часов за месяц. Рассмотрим подробно, как заставить систему автоматически и корректно вычислять показатель ОтработаноЧасов, и выясним, можно ли обойтись без ежемесячного ввода документа Табель.

Проблема использования стандартных показателей времени

Разберем ситуацию: мы создаем новое начисление и пытаемся прописать формулу вида:

РасчетнаяБаза / ОтработаноЧасов * КоличествоЧасовВПраздник

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

Способ 1: Использование предопределенного показателя ОтработаноЧасов

Показатель ОтработаноЧасов является предопределенным и системным. Проанализируем, как программа вычисляет его значение. В 1С существует два метода учета времени: метод отклонений (когда фиксируются только отпуска, больничные и т.д., а явка берется из графика) и метод сплошной регистрации (ввод документа Табель).

Многие специалисты утверждают, что в ЗУП 3.1 Табель не обязателен. Это действительно так, но только при условии идеальной настройки приоритетов. Если вы хотите, чтобы формула работала без табеля, выполните следующие шаги:

  1. Перейдите в настройки вашего начисления на вкладку Приоритет.
  2. Проанализируйте правую колонку «Начисления, приоритет которых выше». Здесь должны быть перечислены все возможные отклонения: «Отпуск основной», «Больничный», «Прогул», «Отпуск без сохранения оплаты» и т.д.
  3. Если в этом списке нет какого-либо вида неявки, система не «вычтет» это время из графика сотрудника, и показатель ОтработаноЧасов будет завышен.
  4. На вкладке Учет времени убедитесь, что вид времени для вашего начисления установлен как Дополнительная оплата в пределах нормы времени или аналогичный, который не должен сам увеличивать отработанное время (чтобы избежать зацикливания).

Важный нюанс: Практика показывает, что документ Табель является «силовым» инструментом. Если он введен, показатель ОтработаноЧасов гарантированно подтянет данные из него. Если табеля нет, программа вычисляет время как: Время по графику минус Время по документам-отклонениям.

Способ 2: Настройка совокупной тарифной ставки (Рекомендуемый)

В современных версиях ЗУП 3.1 и ERP предусмотрен более элегантный механизм — использование показателя СтоимостьЧаса. Это позволяет избежать громоздких формул с делением расчетной базы. Рассмотрим, как это настроить:

  1. Зайдите в меню Настройка — Расчет зарплаты.
  2. Найдите ссылку Показатели, определяющие состав совокупной тарифной ставки.
  3. В левое окно выберите все начисления, которые должны формировать вашу «базу» для расчета часа (например: Оклад, Надбавка за вредность, Ежемесячная премия).
  4. Теперь в формуле начисления вместо РасчетнаяБаза / ОтработаноЧасов вы можете использовать просто СтоимостьЧаса.

Формула примет вид:

СтоимостьЧаса * ВремяВЧасах * Коэффициент

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

Способ 3: Создание собственного показателя через «Данные для расчета зарплаты»

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

  1. Создайте новый показатель (Настройка — Показатели расчета зарплаты), назовите его ФактическиОтработаноЗаМесяц.
  2. Установите назначение: Для сотрудника, тип: Числовой, используется: Только в месяце, в котором вводится значение.
  3. Создайте Шаблон ввода исходных данных (Настройка — Шаблоны ввода исходных данных), где выберите этот показатель.
  4. Ежемесячно вводите общее количество часов через документ Данные для расчета зарплаты.

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

Сравнение показателей ВремяВЧасах и ОтработаноЧасов

Выясним причину, почему нельзя просто использовать ВремяВЧасах в формуле доплаты. Проанализируем контекст: в 1С расчет каждого начисления происходит в своем «контейнере». Когда программа рассчитывает «Доплату за праздничные», для нее ВремяВЧасах — это количество часов, отработанных именно в праздник. Она «не видит» в этот момент часы, отработанные по основному окладу. Именно поэтому для получения общей суммы времени за месяц необходимо обращаться к глобальному показателю ОтработаноЧасов или настраивать расчетную базу.

Резюме и рекомендации

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

← На главную