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

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

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

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

Способ 1. Использование расчетной базы за год

Если нам необходимо получить сумму всех окладов, начисленных сотруднику за предыдущие 12 месяцев или за текущий календарный год, наиболее правильным методом будет использование механизма Расчетной базы. Рассмотрим, как это настроить в новом виде начисления.

Создадим новое начисление и перейдем к настройке формулы. Вместо поиска несуществующего показателя «Оклад за год», мы будем использовать РасчетнаяБаза. Для этого выполним следующие действия:

  1. Откроем список начислений (Настройка — Начисления) и создадим новое.
  2. На вкладке Основное укажите назначение начисления (например, «Премия») и выберите способ расчета «Результат рассчитывается по формуле».
  3. В редакторе формул введем: РасчетнаяБаза / НормаДнейПоГрафикуПолногоРабочегоВремени (или иной делитель, требуемый вашей задачей).
  4. Перейдем на вкладку Расчет базы. Здесь кроется главный секрет: в поле Период расчета базы выберем «Предыдущий год» или «Предыдущие 12 месяцев».
  5. В список Базовые начисления подберем «Оклад» (или все виды окладов, используемых в организации).

Теперь система при расчете этого начисления сама просуммирует оклады сотрудника за указанный период и подставит результат в переменную РасчетнаяБаза.

Способ 2. Автоматический пересчет стоимости часа через настройки программы

Часто бухгалтеры просят использовать годовые показатели для того, чтобы «выровнять» оплату праздничных дней или переработок. В ЗУП 3.1 существует системная настройка, которая позволяет автоматически использовать годовую норму при расчете часовой тарифной ставки (ЧТС).

Проанализируем настройки расчета зарплаты:

  1. Перейдем в раздел Настройка — Расчет зарплаты.
  2. Найдем гиперссылку Порядок пересчета месячного оклада в часовую ставку.
  3. Выберем вариант «Среднемесячное количество часов (дней) в году».

При такой настройке программа автоматически рассчитает ЧТС как Оклад * 12 / Годовая норма часов по производственному календарю. Это избавляет от необходимости вручную прописывать сложные формулы в каждом начислении, так как стандартный показатель СтоимостьЧаса во всех формулах (праздничные, ночные, сверхурочные) начнет вычисляться на основе годовых данных.

Способ 3. Создание пользовательских показателей для годовой нормы

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

Рассмотрим процесс создания такого показателя:

  1. Перейдем в Настройка — Показатели расчета зарплаты и создадим новый показатель «ГодоваяНормаВремени».
  2. Укажем назначение показателя: «Для организации» (если норма едина для всех) или «Для сотрудника» (если у каждого свой график).
  3. Тип показателя — «Числовой», а точность — 0 или 2 знака.
  4. Укажем способ использования: «Вводится единовременно документом ввода данных для расчета зарплаты».

После создания показателя нам нужно один раз в год ввести его значение в систему. Для этого используется документ Данные для расчета зарплаты (находится в разделе Зарплата). Создадим шаблон документа для ввода этого показателя, заполним значение годовой нормы согласно производственному календарю, и теперь в любом начислении мы сможем использовать переменную ГодоваяНормаВремени в формуле.

Способ 4. Получение данных через техническое начисление

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

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

  1. Создаем начисление, которое не имеет результата (например, фиксируется только в учете для последующих расчетов).
  2. В его формуле используем нужные нам показатели.
  3. В основном начислении в качестве Расчетной базы указываем это техническое начисление.

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

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

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

Посмотрим на пример итоговой формулы для расчета специального бонуса, зависящего от годовой нормы:

(Оклад * ПроцентБонуса) / ГодоваяНормаВремени * ВремяВЧасах

Где ГодоваяНормаВремени — ваш созданный показатель, а Оклад — текущий оклад сотрудника. Помните, что при использовании РасчетнаяБаза важно следить, чтобы все необходимые виды начислений были включены в список базовых, иначе результат будет нулевым или неполным.

← На главную