Как настроить начисление в 1С:ЗУП 3.1, чтобы оно включало время командировок и рабочие дни?

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

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

Причина проблемы: как работает показатель ВремяВДнях

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

Выясним причину: в системе 1С:ЗУП 3.1 существует жесткая иерархия приоритетов. Командировка по своей технической сути является «неявкой» (отсутствием), хотя и оплачиваемым. Стандартно в настройках большинства начислений Командировка стоит в списке вытесняющих видов расчета. Это означает, что если за один и тот же период введены и основная работа, и командировка, программа отдаст приоритет командировке, «вытеснив» основное начисление из этого периода. Вместе с начислением «вытесняется» и время, которое оно могло бы собрать.

Способ 1. Настройка приоритетов (изменение списка вытеснения)

Рассмотрим по шагам, как изменить настройки приоритетов, чтобы начисление «видело» дни командировок. Это самый быстрый способ, но он имеет свои особенности.

  1. Перейдем в настройки вашего начисления (раздел «Настройка» — «Начисления»).
  2. Откроем вкладку Приоритет.
  3. Посмотрим на левую колонку под заголовком «Начисление НЕ выполняется, если в этом периоде выполняются...».
  4. Найдем в списке Командировка и удалим ее оттуда.
  5. Запишем и закроем начисление.

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

Способ 2. Создание «дублирующего» начисления (метод двух строк)

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

Рассмотрим алгоритм реализации:

  1. Создадим копию вашего основного начисления. Назовем его, например, «Надбавка (командировка)».
  2. В настройках этого нового начисления на вкладке Учет времени в качестве основного вида времени укажем Командировка.
  3. На вкладке Основное в поле «Начисление выполняется» выберем значение Только если введен вид учета времени и укажем Командировка.
  4. Формула остается прежней, так как показатель ВремяВДнях теперь будет собирать именно дни командировки.

В результате в документе «Начисление зарплаты и взносов» у сотрудника появятся две строки: одна за фактически отработанные дни в офисе (основная надбавка), вторая — за дни в разъездах (надбавка за командировку). Суммарно они дадут нужный результат.

Способ 3. Программный метод через расширение (для продвинутых пользователей)

Рассмотрим ситуацию, когда «костыли» с двумя строчками не устраивают бизнес-процесс, и требуется расчет строго в одной строке без изменения типовых приоритетов. В этом случае программисты 1С используют механизм расширений для создания кастомного показателя времени.

Суть идеи заключается в следующем: создать новый показатель ВремяВДняхПоНастройке, который будет игнорировать стандартные таблицы приоритетов и собирать данные напрямую из регистра ДанныеОперативногоУчетаРабочегоВремениСотрудников. Примерный алгоритм работы кода в расширении:


// В модуле расчета зарплаты перехватываем сбор показателей
Процедура ПередРасчетомНачисления(ПараметрыРасчета)
    // Добавляем логику сбора времени по массиву видов времени
    // включая "Явку" и "Командировку" игнорируя вытеснение
КонецПроцедуры

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

Важность «Освежения» данных (Освежанс)

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

Посмотрим, что нужно сделать для «освежения»:

  1. Найдите документ, которым сотруднику было назначено это начисление (например, Изменение плановых начислений).
  2. Зайдите в него, выделите строку с начислением, удалите ее и добавьте заново (или перевыберите вид расчета).
  3. Проведите документ.
  4. Только после этого в документе Начисление зарплаты и взносов нажмите кнопку Пересчитать сотрудника.

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

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

Подводя итог, можно сказать: если ваша задача — быстро решить вопрос с минимальными рисками для других расчетов, используйте Способ №2 (два начисления). Он наиболее безопасен с точки зрения методологии учета среднего заработка и налоговой отчетности. Если же вы стремитесь к идеальному интерфейсу и готовы к технической поддержке решения, выбирайте Способ №3 (программная доработка). Помните, что манипуляции с приоритетами (Способ №1) — это палка о двух концах, которая может «сломать» корректное вытеснение отпусков и больничных.

← На главную