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