В практике ведения учета в программе 1С:Зарплата и управление персоналом (ЗУП 3.1) часто возникает задача расчета компенсации за молоко сотрудникам, занятым на работах с вредными условиями труда. Казалось бы, простая формула "количество смен умножить на стоимость" на деле сталкивается с рядом технических сложностей. Основная проблема — как ограничить расчет смен, если сотрудник переведен на "вредную" должность или начисление назначено ему не с начала календарного месяца.
В данной статье мы разберем, почему стандартные механизмы могут давать погрешность, проанализируем опыт коллег с форумов и предложим несколько вариантов решения: от настройки формул до использования внешних обработок.
Прежде чем переходить к настройкам в 1С, вспомним нормативную базу. Согласно приказу Минтруда России № 291н, бесплатная выдача молока или заменяющая ее компенсационная выплата производится в дни фактической занятости. Норма — 0,5 литра за смену, независимо от ее продолжительности. Важно понимать, что если смена переходящая (начинается в 20:00 одного дня и заканчивается в 08:00 следующего), она считается как одна единица (одна выдача молока).
Рассмотрим ситуацию, описанную пользователем. На предприятии используется показатель КоличествоСмен, который вводится документом Данные для расчета зарплаты. Также используется показатель СтоимостьЛитраМолока. При этом графики сменности в программе не ведутся, используется общая "Пятидневка", а фактическое время фиксируется в Табеле.
Пользователь попытался применить формулу:
(СтоимостьЛитраМолока / 2) * ЦЕЛ(КоличествоСмен / НормаДней * ВремяВДнях)
В чем здесь ошибка? Разберем по шагам:
КоличествоСмен вводится за весь месяц целиком (например, 15 смен).ВремяВДнях (только рабочие дни после 15-го), но она "не знает", сколько именно из введенных 15 смен приходятся на этот период.КоличествоСмен / НормаДней * ВремяВДнях — это лишь попытка усреднить данные, которая дает сбои при наличии отпусков, больничных или неравномерного графика. Функция ЦЕЛ (округление до целого вниз) в данном случае лишь маскирует математическую неточность, но не решает проблему распределения смен по периоду.Как показал опыт обсуждения, наиболее точным решением для средних и крупных предприятий (штат от 50 человек) является автоматизация заполнения показателя КоличествоСмен с помощью внешней обработки. Проанализируем алгоритм, который помог автору темы:
Шаг 1. Разработка запроса к данным. Обработка должна собирать данные не просто по календарному месяцу, а с учетом регистра сведений ПлановыеНачисления. Запрос должен проверять, в какие дни у сотрудника действовало начисление "Компенсация за молоко".
Шаг 2. Анализ Табеля или Индивидуального графика. Если в компании есть переходящие смены (ночные), обработка должна анализировать явки. Например, если в табеле за 1-е число стоит "Явка 4 / Ночные 4", а за 2-е число "Ночные 4 / Явка 4", алгоритм должен объединять эти записи в одну фактическую смену.
Шаг 3. Заполнение документа. Результат расчета (количество смен, попавших строго в период действия начисления) записывается в документ Данные для расчета зарплаты. В этом случае формула в самой 1С упрощается до предела:
(СтоимостьЛитраМолока / 2) * КоличествоСмен
Здесь КоличествоСмен уже является очищенным и проверенным значением.
Если мы не хотим использовать внешние обработки, проанализируем штатный функционал. Проблема "общего количества за месяц" исчезает, если изменить настройку показателя.
Рассмотрим вариант настройки шаблона исходных данных, где КоличествоСмен вводится не общей цифрой, а подневно (флаг "Вводится за каждый день отдельно" в настройках показателя). В этом случае:
Это самый надежный способ без программирования, однако он увеличивает трудозатраты бухгалтера на ввод данных вручную.
Часто возникает вопрос: "Что делать, если цена на молоко изменилась в середине месяца?". Для этого выясним, как правильно настроить показатель СтоимостьЛитраМолока.
Рассмотрим алгоритм действий:
Не забудем проанализировать ситуацию с точки зрения налогового учета. Компенсация за молоко в пределах норм (0,5 л за смену) не облагается НДФЛ и страховыми взносами. При настройке вида начисления убедитесь в следующем:
На вкладке "Налоги, взносы, бухучет":
Подводя итог, можно сказать: наиболее эффективный способ расчета компенсации за молоко в 1С:ЗУП — это связка упрощенной формулы и корректно подготовленных данных о сменах. Если штат сотрудников велик, оптимальным решением станет создание внешней обработки заполнения, которая будет "умно" считать смены, отсекая периоды, когда начисление не действовало, и корректно учитывая переходящие ночные часы.