Как исключить начисление из расчета зарплаты за первую половину месяца в УПП 1.3

Программист 1С v8.3 (Обычные формы) Налоговый учет Промышленность, строительство и АПК
← На главную

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

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

Анализ механизма начисления за первую половину месяца

Проанализируем сначала, как система определяет, что именно включать в "аванс по расчету". Когда мы выбираем в документе режим формирования за первую половину месяца, программа обращается к плановым начислениям сотрудников, зафиксированным в регистре сведений ПлановыеНачисленияРаботниковОрганизаций. В этот расчет попадают виды расчета из плана видов расчета (ПВР) ОсновныеНачисленияОрганизаций.

Основная проблема заключается в том, что если начисление является плановым и действует в период с 1 по 15 число месяца, система считает его обязательным к расчету. Даже если это фиксированная сумма, программа может подтянуть её целиком или пропорционально дням, в зависимости от настроек. Рассмотрим подробнее программную логику, которая управляет этим процессом в конфигурации.

В общем модуле присутствует функция, которая определяет признак НачисляетсяВЦеломЗаМесяц. Посмотрим на её фрагмент:


Функция УстановитьФлагНачисляетсяВЦеломЗаМесяц(ПроизвольнаяФормулаРасчета, Показатели, СпособРасчета = Неопределено, БазовыйПериодПрошлыйМесяц = Ложь) Экспорт
    
    НачисляетсяВЦеломЗаМесяц = Истина;
    
    Если ПроизвольнаяФормулаРасчета Тогда
        // Проверка показателей, влияющих на расчет от времени
        СписокПоказателей = Новый Массив;
        СписокПоказателей.Добавить(Справочники.ПоказателиСхемМотивации.ВремяВДнях);
        СписокПоказателей.Добавить(Справочники.ПоказателиСхемМотивации.ОтработаноВремениВДнях);
        
        Для Каждого СтрПоказателя Из Показатели Цикл
            Если СписокПоказателей.Найти(СтрПоказателя.Показатель) <> Неопределено Тогда
                НачисляетсяВЦеломЗаМесяц = Ложь;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    Иначе
        // Фиксированная сумма всегда помечается как "В целом за месяц"
        НачисляетсяВЦеломЗаМесяц = СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ФиксированнойСуммой ИЛИ БазовыйПериодПрошлыйМесяц;
    КонецЕсли;
    
    Возврат НачисляетсяВЦеломЗаМесяц;
КонецФункции

Как мы видим, для фиксированных сумм этот флаг всегда Истина. Однако, вопреки ожиданиям, наличие этого флага не всегда исключает начисление из аванса в старых редакциях УПП, так как алгоритм заполнения ТЧ документа все равно видит действующее плановое начисление в указанном периоде.

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

Это самый простой "обходной" путь, не требующий программирования. Если начисление (например, "Аренда") должно выплачиваться только в конце месяца, мы можем пойти на хитрость с датами. Рассмотрим ситуацию: сотрудник получает аренду ежемесячно.

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

Способ 2: Перенос в Дополнительные начисления

Выясним причину, почему начисление вообще попадает в этот документ. В УПП 1.3 расчет аванса работает преимущественно с ПВР ОсновныеНачисленияОрганизаций. Если вид расчета по своей сути не зависит от времени (как аренда, матпомощь или компенсация питания), его методологически правильнее перенести в Дополнительные начисления организаций.

Преимущества этого подхода:

Способ 3: Программная доработка (Добавление флага в ПВР)

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

Разберем по шагам, что нужно сделать:

  1. Добавим в План видов расчета ОсновныеНачисленияОрганизаций новый реквизит РассчитыватьЗаПервуюПоловинуМесяца с типом Булево.
  2. Выведем этот реквизит на форму вида расчета, чтобы пользователь мог сам управлять настройкой.
  3. В модуле документа НачислениеЗарплатыРаботникамОрганизаций найдем процедуру заполнения (обычно это работа с запросом к плановым начислениям).
  4. В текст запроса добавим условие:
    
    |ГДЕ
    |   НЕ (ДокументОбъект.РежимНачисления = ЗарплатаЗаПервуюПоловинуМесяца 
    |       И ОсновныеНачисления.РассчитыватьЗаПервуюПоловинуМесяца = ЛОЖЬ)
    

Таким образом, мы внедрим в УПП 1.3 функционал, аналогичный ЗУП 3.1, и расчетчик сможет гибко настраивать поведение каждого вида расчета.

Способ 4: Использование подписки на событие

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

Проанализируем ситуацию: в момент записи документа с установленным флагом "Зарплата за первую половину месяца" код должен пробегать по табличной части Начисления и удалять строки, где вид расчета — "Аренда" (или любой другой запрещенный).

Важный нюанс: при удалении строк из ТЧ начислений необходимо обязательно инициировать пересчет зависимых строк — НДФЛ и Удержаний. В противном случае возникнет ситуация, когда сумма начисления уменьшилась, а налог остался рассчитанным с полной базы, что приведет к задолженности сотрудника перед бюджетом сразу после выплаты аванса.

Влияние на НДФЛ в современных реалиях

Начиная с 2023 года, вопрос включения начислений в аванс стал критически важным из-за новых правил исчисления НДФЛ на дату каждой выплаты. Рассмотрим подробнее: если вы оставите "Аренду" в авансовом расчете, программа обязана исчислить с неё НДФЛ в момент выплаты этого аванса.

Если ваша задача — выплачивать аренду только один раз в месяц, то исключение её из аванса программными или методическими средствами является единственным верным решением. Помните, что в УПП 1.3 после ручного удаления строк из ТЧ начисления крайне рекомендуется пользоваться кнопками "Рассчитать — НДФЛ" и "Рассчитать — Удержания", чтобы привести документ в консистентное состояние перед проведением.

Подводя итог, наиболее рекомендуемым способом для УПП 1.3 без изменения кода является перенос начисления в категорию "Дополнительных" или использование даты начала с 16-го числа. Для тех, кто готов к модификации системы, добавление собственного признака в ПВР станет самым надежным и долгосрочным решением.

← На главную