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

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

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

Анализируем техническое ограничение программы

При попытке создать новое удержание и прописать в нем формулу вида Результат = СтоимостьОбеда * ВремяВДнях, многие пользователи сталкиваются с ошибкой: «Использование показателя ВремяВДнях в этой формуле расчета недопустимо». Проанализируем причину этого явления. Методология разработчиков 1С предполагает, что удержания — это операции, совершаемые над уже рассчитанными суммами начислений. Показатели времени (ВремяВДнях, ВремяВЧасах) жестко привязаны к алгоритмам начислений и не передаются в механизм удержаний автоматически.

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

Шаг 1: Создание пользовательского показателя

Поскольку системный показатель времени недоступен, нам нужно создать свой собственный, который будет хранить количество дней, за которые нужно произвести удержание. Выполним следующие действия:

  1. Перейдем в раздел Настройка — Показатели расчета зарплаты.
  2. Создадим новый показатель, назовем его, например, ДниОбедов.
  3. В поле Назначение показателя выберем значение Для сотрудника.
  4. В поле Тип показателя укажем Числовой.
  5. Важный момент: в настройке использования выберем вариант Только в месяце, в котором вводится значение. Это позволит нам ежемесячно вводить разное количество дней для каждого сотрудника.

Шаг 2: Настройка формулы удержания

Теперь создадим само удержание, которое будет использовать наш новый показатель. Перейдем в справочник Удержания и настроим новый вид расчета:

  1. На вкладке Основное установим переключатель в положение Результат рассчитывается.
  2. Нажмем Редактировать формулу и составим следующее выражение:

Результат = ДниОбедов * СтоимостьОбеда

Где СтоимостьОбеда — это еще один показатель (постоянный, например, 50 рублей), либо просто числовое значение в формуле. Если стоимость обеда одинакова для всех, можно использовать фиксированное число 50.

Если на вашем предприятии используется сменный график (например, 11-часовые смены), формула может быть более сложной. Как отмечают эксперты, для сменных графиков иногда требуется дополнительная проверка времени:


(Цел(ВремяВЧасах / 11) + ?(ВремяВЧасах - 11 * Цел(ВремяВЧасах / 11) > 4, 1, 0)) * ЦенаОбеда

Однако помните, что такая формула будет работать только в Начислениях. В Удержаниях мы продолжаем использовать наш созданный показатель ДниОбедов.

Шаг 3: Настройка шаблона ввода данных

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

  1. Перейдем в раздел Настройка — Шаблоны ввода исходных данных.
  2. Создадим новый шаблон, назовем его «Данные для удержания за питание».
  3. На вкладке Показатели зарплаты отметим галочкой наш показатель ДниОбедов.
  4. На вкладке Дополнительно можно настроить возможность заполнения документа списком сотрудников.

После сохранения шаблона в разделе Зарплата появится возможность создавать документы Данные для расчета зарплаты. Именно в этот документ бухгалтер или ответственный за столовую будет ежемесячно вносить количество фактически «отъеденных» дней или отработанных смен.

Шаг 4: Юридические и налоговые тонкости

Просто настроить программу недостаточно, важно обеспечить легитимность удержаний. Разберем правовые аспекты, которые часто вызывают споры с налоговой инспекцией и трудовой инспекцией:

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

2. Применение ККТ. В современных реалиях налоговые органы настаивают на том, что удержание за питание является расчетом за реализованные товары/услуги. Это требует пробития чека на кассовом аппарате в момент признания долга сотрудника (обычно с признаком способа расчета «в кредит» или «передача в кредит») и в момент удержания из ЗП («оплата кредита»).

3. Натуральный доход или удержание? Посмотрим на ситуацию с другой стороны. Если компания частично компенсирует питание, то возникает доход в натуральной форме. В этом случае в 1С:ЗУП правильнее использовать документ Доход в натуральной форме. Он позволит корректно исчислить НДФЛ и страховые взносы, но не уменьшит сумму «на руки» так, как это делает прямое удержание. Если же сотрудник полностью оплачивает обед из своего кармана через удержание, то это прочее удержание, которое отражается по дебету счета 70 и кредиту счета 73.03.

Подводим итоги

Для реализации удержания за обеды пропорционально дням в 1С:ЗУП 3.1 мы рекомендуем использовать метод пользовательского показателя. Это самый «чистый» способ с точки зрения программной логики. Мы создаем показатель, вводим его значение через специальный документ и позволяем программе автоматически рассчитать итоговую сумму в документе Начисление зарплаты и взносов на вкладке Удержания.

Посмотрим еще раз на ключевые преимущества такого подхода:

Проанализировав все способы, мы пришли к выводу, что попытки использовать системное время в формулах удержаний — это путь к ошибкам и программным сбоям. Используйте механизм Данных для расчета зарплаты, и ваш учет будет стабильным и понятным.

← На главную