Каталог решений - Исправление ошибки вычисления суммы удержанного НДФЛ в ЗиК 320-322

Исправление ошибки вычисления суммы удержанного НДФЛ в ЗиК 320-322

Исправление ошибки вычисления суммы удержанного НДФЛ в ЗиК 320-322

В наличии

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

Категория:

Описание

Иллюстрация ошибки:

Допустим, сотрудник принят на работу в январе 2012 года. Согласно иллюстрации (Журнал) за январь НДФЛ исчисленный = 283 руб, НДФЛ удержанный = 0 руб. В феврале произошла выплата з/п за январь, и была начислена з/п за февраль. Мы видим, что за февраль  НДФЛ исчисленный = 494 руб, НДФЛ удержанный = 777 руб.

А что же нам возвращает глСобратьДанныеДляНДФЛ2011()? Результат мы видим в иллюстрации (ТаблицаНалогов), и в строке за февраль чудесным образом оказывается сумма 1060 руб., вместо правильных 777 руб.

Чем это нам грозит?

Во-первых, эта ошибка будет являтся причиной неправльного распределения сумм перечисленного НДФЛ в документе «Перечисление НДФЛ в бюджет РФ» по методу «по удержанному».

Во-вторых, это явится причиной неправльного формирования справок 2-НДФЛ, если сотрудник, например, в марте 2012 года будет переведён в подразделение с другим ОКАТО/КПП (в итоге по одной справке будет НДФЛ излишне удержанный, по другой — недоудержанный).

Как исправить?

Идём в функцию глСобратьДанныеДляНДФЛ2011(), почти в конец, и наблюдаем такой кусок кода:

        Налог13уВсего = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(НомерСтрокиСотрудника+12,10);

        Для Сч = 1 По 12 Цикл

            СтрокаМесяца=НомерСтрокиСотрудника+Сч;

            Налог13и = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца,4);
           
Налог13у = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца,10);
            Если
Сч>1 Тогда
               
Налог13и = Макс(0,Налог13и — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца—1,4));
               
Налог13у = Макс(0,Налог13у — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца—1,10));
            КонецЕсли;

            Налог13у = Макс(Налог13и,Налог13у); // учтем ситуацию, когда в месяце удержали больше чем начислили
           
Налог13у = Мин(Налог13у,Налог13уВсего);
           
Налог13уВсего = Налог13уВсего — Налог13у;

            Если Сч>1 Тогда
               
Налог13у = Налог13у + ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца—1,«НУ1»);
            КонецЕсли;

            ДоходыВычетыНалогиСотрудников.УстановитьЗначение(СтрокаМесяца,«НУ1»,Налог13у);

        КонецЦикла;

 

Смешивать при суммировании нарастающим итогом суммы НДФЛ удержанного и исчисленного плохая идея, не правда ли? Но и превышение суммы исчисленного НДФЛ над суммой удержанного НДФЛ тоже надо учесть. Как же сделать правильно? Ну, например, я предлагаю так:

        Налог13уВсего = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(НомерСтрокиСотрудника+12,10);

        Налог13у_пред=0;

        Для Сч = 1 По 12 Цикл

            СтрокаМесяца=НомерСтрокиСотрудника+Сч;

            Налог13и_нараст = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца,4);
           
Налог13у_нараст = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца,10);

            Если Сч>1 Тогда
               
Налог13у_тек = Макс(0,Налог13у_нараст — ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаМесяца—1,10));
            Иначе
               
Налог13у_тек=Налог13у_нараст;
            КонецЕсли;

            Налог13у_тек = Мин(Налог13у_тек,Налог13уВсего);
           
Налог13уВсего = Налог13уВсего — Налог13у_тек;

            Если Сч>1 Тогда
               
Налог13у_тек = Налог13у_тек + Налог13у_пред;
            КонецЕсли;
           
Налог13у_пред=Налог13у_тек;
           
Налог13у_тек = Макс(Налог13и_нараст,Налог13у_тек); // учтем ситуацию, когда в месяце удержали больше чем начислили

            ДоходыВычетыНалогиСотрудников.УстановитьЗначение(СтрокаМесяца,«НУ1»,Налог13у_тек);

        КонецЦикла;

 P.S.  Для тех, кто боится «промахнуться», прилагаю текстовый файл с полным содержимым исправленной функции глобального модуля глСобратьДанныеДляНДФЛ2011().  Для установки идём на начало функции глСобратьДанныеДляНДФЛ2011(), переименовываем её в глСобратьДанныеДляНДФЛ2011_старая(), а всё содержимое прилагаемого текстового файла копируем перед строчкой глСобратьДанныеДляНДФЛ2011_старая(), и всё, сохраняем конфигурацию

Внимание! Перед внесением изменений в конфигурацию крайне настоятельно рекомендую делать бэкап.

has been added to your cart:
Оформление заказа