Как правильно использовать количество дней отпуска в формуле начисления в 1С:ЗУП 3

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

При настройке нестандартных начислений в программе 1С:Зарплата и управление персоналом 3 (например, для расчета управленческого отпуска, доплаты до оклада или корректировки премии) пользователи часто сталкиваются с ситуацией: в формулу добавляется предопределенный показатель КоличествоДнейОтпуска, однако в документе Начисление зарплаты и взносов расчет выполняется не по фактическим дням отпуска, а по общему количеству дней в месяце (например, 30 или 31 день).

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

Почему показатель «Количество дней отпуска» возвращает дни месяца

Выясним причину такого поведения. Предопределенный показатель КоличествоДнейОтпуска предназначен строго для специализированных документов (таких как документ Отпуск или расчет компенсаций в документе Увольнение). Механизм его расчета привязан к границам периода действия конкретной рассчитываемой записи.

Когда начисление настраивается с ежемесячным выполнением в документе Начисление зарплаты и взносов, период действия строки начисления по умолчанию охватывает весь месяц (с первого по последнее число). В результате показатель КоличествоДнейОтпуска рассчитывает разницу между датой начала и датой окончания расчетного периода и возвращает полное число календарных дней месяца (31 день в январе, 30 в апреле и т. д.), игнорируя реальные периоды отсутствия.

Рассмотрим несколько проверенных способов решения этой задачи в зависимости от ваших требований к расчету.

Способ 1. Использование показателя «Время в днях» с отбором по виду учета времени

Если начисление должно выполняться автоматически в документе Начисление зарплаты и взносов при наличии зарегистрированного отпуска, заменим показатель времени и привяжем начисление к учету времени.

Разберем по шагам настройку начисления:

  1. Перейдем в раздел Настройка – Начисления и откроем нужное начисление.
  2. На вкладке Основное установим переключатель Начисление выполняется в значение Только если введен вид учета времени и выберем вид времени Основной отпуск (или соответствующий вид отпуска).
  3. В поле Формула заменим показатель КоличествоДнейОтпуска на показатель ВремяВДнях (или ВремяВКалендарныхДнях, если требуется учет календарных дней). Пример формулы:

    Оклад * ВремяВДнях / 29.4

  4. На вкладке Учет времени проверим, что в качестве вида времени указан отпуск.
  5. На вкладке Приоритет убедимся, что типовой вид начисления Отпуск основной не находится в списке вытесняющих начислений (таблица «Начисления, приоритет которых выше»), иначе при проведении отпуска рассчитываемая строка будет вытеснена.

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

Способ 2. Ввод дней отпуска через отдельный показатель данных расчета

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

Выполним настройку по шагам:

  1. Перейдем в раздел Настройка – Показатели расчета зарплаты и создадим новый показатель (например, ДниОтпускаУправленческие).
  2. Укажем параметры показателя:
    • Назначение показателя: Для сотрудника;
    • Тип показателя: Числовой;
    • Показатель используется: Только в месяце, в котором вводится значение (разовый показатель);
    • Установим флаг Вводится единовременно документом ввода данных для расчета зарплаты.
  3. В разделе Настройка – Шаблоны ввода исходных данных создадим шаблон для ввода нашего показателя.
  4. В формуле начисления используем созданный показатель:

    Оклад * ДниОтпускаУправленческие / 29.4

  5. При импорте данных или ручном вводе создадим документ Данные для расчета зарплаты (раздел Зарплата), где укажем точное количество дней отпуска для каждого сотрудника.

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

Способ 3. Расчет через расчетную базу (доплата до оклада или разница сумм)

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

  1. В настройках начисления на вкладке Основное укажем назначение начисления: Прочие начисления и выплаты или Повременная оплата труда и надбавки.
  2. На вкладке Расчет базы в состав базовых начислений включим начисление Отпуск основной. Период расчета базы выберем: Текущий месяц.
  3. В формуле начисления используем показатель РасчетнаяБаза:

    Макс(РасчетныйОкладЗаПериод - РасчетнаяБаза, 0)

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

← На главную