Ситуация:
Сотрудница в январе-2013 в отпуске.
Отпускные получила в 2012-м (на самом деле ей продлен отпуск в связи с очень длительным б/л, но это для НДФЛ наверно неважно).
НДФЛ удержан и перечислен в бюджет в 2012-м.
1с при очередном исправлении дока Начисление отпуска убрала эту сумму из доходов 2012-го года и добавила в 2013-й.
Теперь по сотруднице в 2-НДФЛ значится излишне удержанный и уплаченный налог.
Я считаю, это совершенно неправильно.
Вопрос: как это корректно исправить, чтобы потом косяки не вылезли?
В ЗиКе при исправлении больничного листа или отпуска (при изменении алгоритма), которые являются доходами по периоду регистрации, неправильно формируются налоговые регистры и 2-НДФЛ. ЗиКа упорно убирает напрочь ранее проведённые суммы из старого месяца, который правится, и полностью ставит новую сумму дохода в текущий месяц регистрации корректирующего дока И-ххх, сформированного по кнопке <Исправить>.
В Функция глСобратьДанныеДляНДФЛ2011 так работает данный кусок:
Если ЖрнЗарплата.Сторно=1 Тогда
Если (ВызовДляРаспределенияНДФЛ=0) или ((ВызовДляРаспределенияНДФЛ=1) и (ЖрнЗарплата.НачалоПериодаПоДате(ПериодРегистрации )<>ЖрнЗарплата.НачалоПериодаПоДате(ДатаАктуальност и))) Тогда
ДоходыПоРегистрацииСторно = 1;
КонецЕсли;
Вариант исправления:
Просто убрать слово «Сторно», оставив в этом куске
ДоходыПоРегистрации = 1;
Тогда программа не будет трогать в налоговых регистрах и 2-НДФЛ ранее проведённую сумму в своём месяце, а в текущем месяце регистрации исправления зафиксирует дельту-разницу между новой и старой суммой дохода…
Это правильно для случая исправления отпуска или б/л в увеличение, но неправильно для исправления отпуска или б/л в уменьшение, т.к. в 2-НДФЛ в текущем месяце появятся красные отрицательные суммы по кодам 2012 или 2300, что не пройдёт в будущем проверки при сдаче отчётности в ИФНС…
Вариант более тонкий исправления.
вместо:
…………….
ИначеЕсли (ВР.ВходитВГруппу(ГруппаРасчетов.ОсобоеИсчислениеН ДФЛ)=0) и (СписокВРПоПериодуРегистрации.Принадлежит(ВР)=1) Тогда
Если ЖрнЗарплата.Сторно=1 Тогда
//это сторно запись
//если вызов функции осуществлен для распределения НДФЛ по ИФ, не регистрируем в таблице доходов
//сторно дохода по периоду регитсрации, зарегистрированные в периоде формирования отчета
Если (ВызовДляРаспределенияНДФЛ=0) или ((ВызовДляРаспределенияНДФЛ=1) и (ЖрнЗарплата.НачалоПериодаПоДате(ПериодРегистрации )<>ЖрнЗарплата.НачалоПериодаПоДате(ДатаАктуальност и))) Тогда
ДоходыПоРегистрацииСторно = 1;
КонецЕсли;
Иначе
//не сторно запись
//Выбираем только те записи, которые зарегистрированы в текущем налоговом периода
Если (ПериодРегистрации>=НачалоГода) и (ПериодРегистрации<=ОкончаниеГода) Тогда
Если (Год=2005) и (ПериодДействия < НачалоГода) Тогда
Продолжить;
КонецЕсли;
ДоходыПоРегистрации = 1;
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
КонецЕсли;
…………..
Надо сделать:
…………….
ИначеЕсли (ВР.ВходитВГруппу(ГруппаРасчетов.ОсобоеИсчислениеН ДФЛ)=0) и (СписокВРПоПериодуРегистрации.Принадлежит(ВР)=1) Тогда
Если ЖрнЗарплата.Сторно=1 Тогда
//это сторно запись
//если вызов функции осуществлен для распределения НДФЛ по ИФ, не регистрируем в таблице доходов
//сторно дохода по периоду регитсрации, зарегистрированные в периоде формирования отчета
Если (ВызовДляРаспределенияНДФЛ=0) или ((ВызовДляРаспределенияНДФЛ=1) и (ЖрнЗарплата.НачалоПериодаПоДате(ПериодРегистрации )<>ЖрнЗарплата.НачалоПериодаПоДате(ДатаАктуальност и))) Тогда
Попытка
Если ЖрнЗарплата.РодительскийДокумент.ПериодНДФЛ = 1 Тогда // Гена
ПростоДоходы = 1;
Иначе
ДоходыПоРегистрации = 1;
КонецЕсли;
Исключение
ДоходыПоРегистрацииСторно = 1;
КонецПопытки;
КонецЕсли;
Иначе
//не сторно запись
//Выбираем только те записи, которые зарегистрированы в текущем налоговом периода
Если (ПериодРегистрации>=НачалоГода) и (ПериодРегистрации<=ОкончаниеГода) Тогда
Если (Год=2005) и (ПериодДействия < НачалоГода) Тогда
Продолжить;
КонецЕсли;
Попытка
Если ЖрнЗарплата.РодительскийДокумент.ПериодНДФЛ = 1 Тогда
ПростоДоходы = 1;
Иначе
ДоходыПоРегистрации = 1;
КонецЕсли;
Исключение
ДоходыПоРегистрации = 1;
КонецПопытки;
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
КонецЕсли;
……………..
Если больше ничего не делать, то типовой расчёт не изменится…
А если пользователь когда-никогда захочет видеть правильные налоговые регистры и 2-НДФЛ, то достаточно будет добавить в док БЛ и(или) Отпуска новый реквизит шапки ПериодНДФЛ (число, длина 1, точность 0)
По умолчанию этот реквизит равен нулю и любое исправление пройдёт по периоду регистрации… если же пользователь в корректирующем доке выберет «1» в данном реквизите, то НДФЛ грамотно ляжет по периоду действия…
Гена, спасибо.
Поковыряюсь на досуге (сегодня как раз удобный повод, приболевши дома сижу).
Но у меня такой вопрос.
Я пока (в качестве паллиатива) залез в Корректировку НДФЛ по сотруднице и:
руками вписал сумму отпускных в соответствующий месяц 2012
руками убрал эту сумму из 2013.
Сейчас НДФЛ считается корректно. Справка 2-НДФЛ за 2012 сформировалась тоже нормально (вроде как).
Может, оставить как есть? Где потом можно засаду ждать?