В практике кадрового учета и расчета заработной платы часто возникает задача автоматизации компенсационных выплат, которые зависят от фактического времени работы в особых условиях. Одной из таких задач является начисление компенсации за молоко (или его выдача). Согласно законодательству РФ (Приказ Минтруда № 291н), молоко полагается работнику только в те дни, когда он был занят на работах с вредными условиями труда не менее половины продолжительности рабочей смены. Разберем подробно, как реализовать этот алгоритм в программе 1С:Зарплата и управление персоналом 3.1, чтобы уйти от ручного подсчета и минимизировать ошибки.
Стандартный механизм начислений в 1С:ЗУП позволяет настроить доплату за вредность, которая рассчитывается процентом или фиксированной суммой за часы, отмеченные в табеле специальным кодом. Однако типовая формула начисления оперирует общими итогами за месяц (например, суммой часов). Она «не видит» каждый конкретный день в отдельности, чтобы проверить условие: «Составляют ли часы вредности в этот конкретный день более 50% от общей длительности смены?». Нам необходимо создать механизм, который будет анализировать подневные данные табеля.
Этот вариант является наиболее гибким и позволяет автоматизировать расчет в документе Начисление зарплаты и взносов. Идея заключается в том, чтобы создать отдельный показатель, в который будет записываться количество «правильных» смен (тех, где вредность > 50%).
Шаг 1. Создание показателей
Перейдем в меню «Настройка» — «Показатели расчета зарплаты» и создадим два показателя:
ЦенаПорцииМолока — тип «Денежный», назначается для организации (вводится один раз при изменении цены).КоличествоСменМолоко — тип «Числовой», назначается для сотрудника и вводится ежемесячно.Шаг 2. Настройка начисления
В меню «Настройка» — «Начисления» создадим новое начисление «Компенсация за молоко». Настроим его следующим образом:
КоличествоСменМолоко * ЦенаПорцииМолока.КоличествоСменМолоко.Шаг 3. Создание шаблона ввода данных
Чтобы иметь возможность вводить количество смен, необходимо создать шаблон в меню «Настройка» — «Шаблоны ввода исходных данных». В шаблоне выберем наш показатель КоличествоСменМолоко. Теперь у нас есть документ Данные для расчета зарплаты, куда можно вносить готовое количество дней.
Чтобы табельщик или расчетчик не считал смены вручную, глядя в табель, мы можем автоматизировать заполнение документа Данные для расчета зарплаты. Для этого используется программная доработка в виде внешней обработки.
Проанализируем алгоритм, который должна выполнять такая обработка:
Данные о времени по дням (или Графики работы по видам времени).Явка (общее время) и ВУ (время во вредных условиях).Если ВУ >= (Явка / 2) Тогда СменаСчитается = 1.Данные для расчета зарплаты.Рассмотрим пример логики на языке 1С, который можно использовать в такой обработке для анализа данных:
// Пример фрагмента кода для анализа времени из ТЗ (Таблицы Значений) табеля
Для Каждого СтрокаДанных Из ТаблицаВремениПоДням Цикл
// Предположим, у нас есть колонки ЧасыЯвки и ЧасыВредности
Если СтрокаДанных.ЧасыВредности > 0 Тогда
Если СтрокаДанных.ЧасыВредности >= (СтрокаДанных.ЧасыЯвки * 0.5) Тогда
ИтогоСменМолоко = ИтогоСменМолоко + 1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
После того как обработка заполнит документ Данные для расчета зарплаты, документ Начисление зарплаты и взносов автоматически подтянет эти цифры и умножит их на стоимость молока.
Если вы хотите видеть детализацию непосредственно в Табеле, рассмотрим настройку видов времени. Разберем по шагам:
ВМ.Табеля вручную или с помощью загрузки указывает часы по коду ВМ только в те дни, когда условие 50% соблюдено.ВремяВДнях, но с уточнением по виду времени.Проанализируем ситуацию: этот метод проще в реализации без программирования, но он перекладывает ответственность на табельщика. Если табельщик ошибется и поставит 3 часа вредности при 8-часовом рабочем дне кодом ВМ, программа все равно засчитает этот день для молока. Поэтому Вариант 2 с программным контролем является наиболее надежным.
При настройке начисления «Компенсация за молоко» важно правильно указать настройки налогов и взносов, так как это напрямую влияет на отчетность:
Для эффективной работы мы рекомендуем совместить подходы:
Табель для фиксации фактических часов вредности (вид времени ВУ).КоличествоСменМолоко.Данные для расчета зарплаты, которая будет автоматически подсчитывать количество дней из Табеля по алгоритму «Время ВУ >= 50% от смены».Такой подход обеспечит прозрачность учета: вы всегда сможете сверить данные в Начислении зарплаты с фактическим Табелем, а автоматика исключит человеческий фактор при подсчете дней.