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