Почему расчетный лист в 1С:УПП заполняется некорректно: проблемы с НДФЛ с аванса и расчетом отпускных?

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

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

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

Решение 1: Проблемы с НДФЛ с аванса и его отражением в расчетном листе

С 1 января 2023 года законодательство изменило порядок определения даты фактического получения дохода в целях уплаты НДФЛ. Теперь датой получения дохода считается день выплаты, включая аванс. Это значит, что НДФЛ должен исчисляться и удерживаться при каждой выплате дохода сотруднику. Ранее НДФЛ с зарплаты удерживался один раз в месяц. Эти изменения повлекли за собой ряд сложностей в 1С:УПП, особенно в ранних релизах.

Симптомы проблемы:

  1. НДФЛ с аванса не отражается в расчетном листе или отражается некорректно.
  2. В регистрах, например, в регистре накопления НДФЛРасчетыСБюджетом, могут возникать расхождения или "краснота".
  3. Некорректное заполнение отчетов, таких как 6-НДФЛ.

Выясняем причину: флаг "ЗарегистрированоПриНачисленииАванса"

Одной из ключевых причин некорректного поведения является логика, связанная с флагом ЗарегистрированоПриНачисленииАванса. В некоторых релизах, в процедуре ДобавитьСтрокуНДФЛ модуля документа НачислениеЗарплатыРаботникамОрганизаций, могла появиться или измениться строка, которая устанавливает этот признак для сумм НДФЛ с аванса. Это приводило к тому, что движения по регистру НДФЛРасчетыСБюджетом формировались некорректно, что затем сказывалось на расчетном листе.

Важное уточнение: "Зачтено авансовых платежей"

Обратите внимание, что поле "Зачтено авансовых платежей" в расчетном листе не предназначено для НДФЛ с аванса обычных сотрудников. Это поле используется для учета НДФЛ, уплаченного иностранными гражданами, работающими по патенту. Суммы, уплаченные за патент, могут быть зачтены в счет их текущего НДФЛ. Схожесть терминов часто вводит в заблуждение, поэтому мы настоятельно рекомендуем не пытаться "вписать" туда НДФЛ с аванса.

Разберем по шагам возможные решения и обходы:

  1. Анализ процедуры ДобавитьСтрокуНДФЛ:

    Мы можем проанализировать процедуру ДобавитьСтрокуНДФЛ в модуле документа НачислениеЗарплатыРаботникамОрганизаций. Нас интересует, как там формируются движения по регистру НДФЛРасчетыСБюджетом и как устанавливается значение реквизита ЗарегистрированоПриНачисленииАванса. В некоторых случаях, при совпадении месяца выплаты аванса и зарплаты, этот реквизит мог устанавливаться неверно.

    Нам следует найти формирование движений по регистру НДФЛРасчетыСБюджетом и проверить логику установки реквизита ЗарегистрированоПриНачисленииАванса. Если выплата аванса и зарплаты происходит в одном месяце, значение может быть Ложь, а если в разных — Истина. Однако, в связи с изменениями законодательства 2023 года, логика могла меняться, и старые подходы могут быть неактуальны.

  2. Проверка даты выплаты:

    Иногда проблема может быть связана с датами. Например, если дата выплаты аванса приходится на выходной день (например, 31 мая, если это суббота), а фактическая выплата переносится на следующий рабочий день (2 июня, понедельник), это может сбить логику программы в старых релизах. Попробуйте установить дату выплаты аванса на рабочий день, чтобы исключить этот фактор.

  3. Временный обходной путь с документом "Перерасчет НДФЛ":

    Если вы не хотите ждать нового обновления или в вашей версии программы присутствует известный баг, можно попробовать временный обход. Введите документ ПерерасчетНДФЛ последним днем месяца, в котором аванс и зарплата были выплачены "вместе". Заполните его автоматически по кнопке "Заполнить" и "Рассчитать". Этот документ может создать дополнительные записи в регистрах, которые исправят ранее некорректно сформированные движения.

    Внимание: Этот метод является "костылем" и может потребовать отмены своих изменений и возврата к типовому коду после обновления до исправленного релиза.

  4. Обновление конфигурации:

    Как показывает практика, многие проблемы, связанные с НДФЛ с аванса, были исправлены в последующих релизах. Например, релиз 1.3.248.1 содержал множество исправлений по зарплате, включая 13 изменений, касающихся ошибок релиза 1.3.247.1. Мы настоятельно рекомендуем обновиться до самой актуальной версии конфигурации, чтобы получить все необходимые исправления.

    Важно: Перед обновлением всегда делайте полную резервную копию вашей информационной базы!

Решение 2: Ошибки при расчете отпускных и среднего заработка

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

Симптомы проблемы:

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

Выясняем причину: "Категория учета в среднем заработке" и ошибки в запросах

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

Кроме того, в некоторых релизах могли присутствовать ошибки в запросах, формирующих средний заработок, особенно при работе с временными таблицами и проверками на пустые ссылки или NULL.

Разберем по шагам возможные решения:

  1. Проверка и заполнение реквизита "Категория учета в среднем заработке":

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

  2. Исправление запроса для учета NULL значений (актуальное решение):

    В некоторых релизах могла возникать ошибка, когда в запросе при выборе данных для расчета среднего заработка условие на пустую ссылку не учитывало значения NULL, что приводило к некорректному отбору данных. Мы можем дополнить условие проверки на NULL.

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

    
    КОГДА РасчетСреднегоЗаработка.Начисление.КатегорияУчетаВСреднемЗаработке = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПустаяСсылка)
    

    Его необходимо дополнить проверкой на NULL:

    
    КОГДА РасчетСреднегоЗаработка.Начисление.КатегорияУчетаВСреднемЗаработке = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПустаяСсылка) ИЛИ РасчетСреднегоЗаработка.Начисление.КатегорияУчетаВСреднемЗаработке ЕСТЬ NULL
    

    Это позволит корректно обрабатывать записи, где категория учета не установлена.

  3. Отключение РК и СН в отпускных (модификация расчета, если требуется):

    Иногда возникает необходимость "отключить" РК и СН от расчета отпускных, если они уже учтены в среднем заработке или по какой-то причине должны быть обработаны отдельно. Это может быть связано с особенностями учета на вашем предприятии. Мы можем внести изменения в процедуру, которая собирает данные для расчета.

    Найдите процедуру, например, ПолучитьДанныеДляРасчета2025 в общем модуле ПроведениеРасчетовПереопределяемый. Перед строкой Запрос.УстановитьПараметр("СкорректированныеВТДанныеОСреднемЗаработке", ТаблицаРасчетаСреднегоЗаработка); мы можем добавить следующий код:

    
    //Убираем РК и СН из отдельных строк и добавляем их к основному среднему заработку
    СреднийРК = 0;
    СреднийСН = 0;
    НайденнаяСтрока = ТаблицаРасчетаСреднегоЗаработка.Найти(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДнямРК, "СпособРасчета");
    Если НайденнаяСтрока <> Неопределено Тогда 
        СреднийРК = НайденнаяСтрока.СреднийЗаработок;
        НайденнаяСтрока.СреднийЗаработок = 0;
    КонецЕсли;
    НайденнаяСтрока = ТаблицаРасчетаСреднегоЗаработка.Найти(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДнямСН, "СпособРасчета");
    Если НайденнаяСтрока <> Неопределено Тогда 
        СреднийСН = НайденнаяСтрока.СреднийЗаработок;
        НайденнаяСтрока.СреднийЗаработок = 0;
    КонецЕсли;
    НайденнаяСтрока = ТаблицаРасчетаСреднегоЗаработка.Найти(Перечисления.СпособыРасчетаОплатыТруда.ПоСреднемуЗаработкуДляОтпускаПоКалендарнымДням, "СпособРасчета");
    Если НайденнаяСтрока <> Неопределено Тогда 
        НайденнаяСтрока.СреднийЗаработок = НайденнаяСтрока.СреднийЗаработок + СреднийРК + СреднийСН;
    КонецЕсли;
    

    Этот код сначала обнуляет суммы РК и СН в их отдельных строках, а затем прибавляет их к основному среднему заработку по календарным дням, тем самым "интегрируя" их в основную сумму отпускных, а не выделяя отдельно.

  4. Устаревшее исправление СреднийЗаработокОсновной:

    Ранее в некоторых релизах предлагалось изменить строку в ОбщийМодуль.ПроведениеРасчетовПереопределяемый:

    
    СУММА(ВТДанныеОСреднемЗаработкеПредварительно.СреднийЗаработокОсновной) КАК СреднийЗаработок,
    

    на

    
    СУММА(ВТДанныеОСреднемЗаработкеПредварительно.СреднийЗаработок) КАК СреднийЗаработок,
    

    Однако, как показала практика и последующие обсуждения, это исправление оказалось некорректным и в более поздних релизах уже не работает. Мы рекомендуем ориентироваться на более актуальные методы, такие как проверка на NULL.

Общие рекомендации и важные моменты

Для поддержания корректной работы системы и минимизации возникновения подобных ошибок, мы рекомендуем придерживаться следующих правил:

  1. Следите за актуальностью релизов:

    Компания "1С" регулярно выпускает обновления, которые содержат исправления обнаруженных ошибок и соответствуют изменениям законодательства. Мы настоятельно рекомендуем своевременно обновлять вашу конфигурацию. Помните, что поддержка 1С:УПП 1.3 постепенно прекращается, и без регулярных обновлений система может перестать соответствовать требованиям.

  2. Всегда делайте резервные копии:

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

  3. Проверяйте настройки видов начислений:

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

  4. Внимательно относитесь к датам:

    Тщательно проверяйте даты документов, даты выплат и периоды начислений. Несоответствие дат может приводить к ошибкам в расчетах и отчетности.

  5. Возвращайтесь к типовому коду:

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

Надеемся, что этот подробный разбор поможет вам решить проблемы с неправильным заполнением расчетного листа в 1С:УПП. Совместными усилиями мы обеспечим точность и корректность ваших расчетов!

← К списку