В практике кадрового учета и расчета заработной платы часто возникают задачи, когда необходимо создать начисление (например, надбавку или доплату), которое должно выплачиваться не только за фактически отработанные дни (явку), но и за время, когда сотрудник находился в командировке. Стандартные начисления, такие как «Оклад по дням», по умолчанию перестают рассчитываться в периоды командировок, так как командировка оплачивается по среднему заработку и вытесняет основную оплату.
Разберем подробно, как реализовать такую задачу без доработки программного кода, используя только типовые механизмы настройки видов расчета в 1С:Зарплата и Управление Персоналом 3.1. Проанализируем настройки формул, вкладок учета времени и механизмов приоритетов.
Основная сложность заключается в том, что в системе 1С:ЗУП 3.1 понятия «Отработано» и «Командировка» разнесены. Отработанное время фиксируется видом времени Явка, а командировка — видом времени Командировка. Если мы просто укажем в формуле показатель ОтработаноДней, система подтянет только те дни, когда сотрудник фактически был на рабочем месте.
Для решения задачи нам необходимо использовать показатель ВремяВДнях. Этот показатель является универсальным: он собирает данные о времени на основании настроек самого вида расчета. Рассмотрим, как правильно составить формулу. Типовой шаблон для такого начисления будет выглядеть следующим образом:
Результат = ТарифнаяСтавка * ВремяВДнях / НормаДней
Где ТарифнаяСтавка — это размер ежемесячной надбавки или оклад, ВремяВДнях — фактически отработанное время плюс командировки (при условии верной настройки), а НормаДней — норма по графику сотрудника за месяц.
Чтобы показатель ВремяВДнях начал «видеть» командировки, нам нужно изменить стандартные настройки заполнения этого показателя. Выполним следующие действия по шагам:
Явка (как основное рабочее время).Командировка.Проанализируем ситуацию: после того как мы добавили командировку в список видов времени начисления, программа при расчете показателя ВремяВДнях будет суммировать все дни, отмеченные в табеле как Я (Явка) и как К (Командировка). Это позволит формуле автоматически рассчитать сумму за весь объединенный период.
Следующий критически важный момент — вкладка Приоритет. В 1С:ЗУП 3.1 действует механизм вытеснения. Если одно начисление имеет более высокий приоритет, чем другое, оно исключает время своего действия из расчета менее приоритетного начисления.
Посмотрим на пример: стандартный «Оклад» вытесняется «Командировкой». Это логично, так как за дни командировки сотрудник получает средний заработок, а не оклад. Однако в нашей задаче начисление должно считаться вместе с командировкой.
Следовательно, мы должны убедиться, что в списке «Начисления, приоритет которых выше» (в правой колонке) отсутствует вид расчета «Командировка». Если она там есть, ее нужно удалить. Если мы этого не сделаем, то система «вырежет» дни командировки из нашего расчета, даже если на вкладке учета времени мы ее указали. Наше новое начисление должно действовать «поверх» командировки.
Рассмотрим ситуацию, предложенную в обсуждении на форуме: использование промежуточного вида расчета. Этот метод полезен, если логика суммирования времени очень сложная и не укладывается в стандартные настройки вкладки «Учет времени».
Суть метода заключается в создании технического начисления (которое не имеет денежного результата, а только собирает данные о днях) и последующем использовании его результата в основном начислении. Однако для задачи «Явка + Командировка» этот метод является избыточным, так как типовой функционал вкладки «Учет времени» полностью покрывает потребность.
Тем не менее, выясним причину, по которой коллеги советуют разделять начисления. Иногда бывает нужно, чтобы за время явки платилась одна сумма, а за время командировки — другая (например, с другим коэффициентом). В этом случае мы создаем два отдельных начисления:
Явку.Командировку.В нашем же случае, когда оплата идет по единой ставке пропорционально общему времени, объединение через вкладку «Учет времени» — самый элегантный и поддерживаемый способ.
В системе существует предопределенный показатель РабочееВремя. Посмотрим, подходит ли он нам. Этот показатель собирает все виды времени, которые в справочнике «Виды использования рабочего времени» помечены как рабочее время.
Важно помнить: в типовой поставке Командировка часто не классифицируется как «рабочее время» в чистом виде (поскольку это время выполнения государственного поручения с сохранением среднего заработка). Поэтому использование ВремяВДнях с явным указанием видов времени является более надежным и прозрачным инструментом настройки, чем надежда на системный показатель РабочееВремя.
Чтобы все вышеперечисленные настройки работали корректно, необходимо правильно указать «Назначение начисления» на самой первой вкладке «Основное»:
Проанализировав все шаги, мы видим, что гибкость 1С:ЗУП 3.1 позволяет решать подобные задачи без привлечения программистов. Главное — понимать взаимосвязь между формулой, составом видов времени и таблицей вытеснения (приоритетов).