Косяк или нюанс в документе "Справка 2-НДФЛ для передачи в ИФНС" (ЗУП 2.5.46.1)

В Документе "Справка 2-НДФЛ для передачи в ИФНС" при отгуленном отпуске больше, чем нужно и
последующем увольнении проставляется доход 2012 со знаком минус.
Контур такой отчёт не принимает. Необходимо, чтобы этот минус учитывался в последнем месяце
начислений по коду 2012.

В Документе «Справка 2-НДФЛ для передачи в ИФНС» при отгуленном отпуске больше, чем нужно и
последующем увольнении проставляется доход 2012 со знаком минус.
Контур такой отчёт не принимает. Необходимо, чтобы этот минус учитывался в последнем месяце
начислений по коду 2012.

Также я учёл нюанс, когда в последнем положительном месяце не хватает денег, чтобы учесть минус.

Ещё момент: Справка 2-НДФЛ для сотрудника должна печататься так, как было.

Решение:


1.
Документ «СправкаПоНДФЛВНалоговыйОрган«, ФормаДокумента

Процедура КнопкаОбновитьДанныеОДоходахНажатие(Элемент)

……….

СправкиПоНДФЛ.УдалитьДанныеСправки(ТекущийНомерСправки, СведенияОДоходах);
СправкиПоНДФЛ.УдалитьДанныеСправки(ТекущийНомерСправки, СведенияОВычетах);
СправкиПоНДФЛ.УдалитьДанныеСправки(ТекущийНомерСправки, СуммыНалогов);
///
СправкиПоНДФЛ.ПрочитатьДанныеСправки(ТекущаяСтрока, СведенияОДоходах, СведенияОВычетах, СуммыНалогов, НалоговыйПериод, Организация, мГоловнаяОрганизация, ОКАТО_КПП, НачалоМесяца(Дата), Истина); //(Добавил для отсечки данной процедуры от другого документа)
// TVA/>
КонецЕсли;
КонецПроцедуры

2. Документ «СправкаПоНДФЛВНалоговыйОрган«, Модуль объекта

Процедура Автозаполнение() Экспорт

……….

(там формируется большой запрос в «Если … Иначе», после этого я добавил строку)

……….

СотрудникиОрганизации.Загрузить(СправкиПоНДФЛ.ДанныеСотрудников(Запрос.Выполнить().Выгрузить(), Дата, НалоговыйПериод));
Для каждого СтрокаТЧ Из СотрудникиОрганизации Цикл
СтрокаТЧ.НомерСправки = НомерПервойСправки + СотрудникиОрганизации.Индекс(СтрокаТЧ)
КонецЦикла;
СтруктураДанных = СправкиПоНДФЛ.ДанныеОДоходах(СотрудникиОрганизации.Выгрузить(), НалоговыйПериод, Организация, ОбщегоНазначения.ГоловнаяОрганизация(Организация), ОКАТО_КПП, НачалоМесяца(Дата));
///
СправкиПоНДФЛ.ПереносОтрицательногоОстаткаНДФЛПоКоду2012(СтруктураДанных.Доходы);
// TVA/>
СведенияОДоходах.Загрузить(СтруктураДанных.Доходы);
СведенияОВычетах.Загрузить(СтруктураДанных.Вычеты);

……….

КонецПроцедуры // Автозаполнение()

 

3. Общий модуль «СправкиПоНДФЛ».

 

///
Процедура ПрочитатьДанныеСправки(ОписаниеСправки, СведенияОДоходах, СведенияОВычетах, СуммыНалогов, НалоговыйПериод, Организация, ГоловнаяОрганизация, ОКАТО_КПП, Дата, ЭтоИсправление = Ложь) Экспорт //(Добавил для отсечки данной процедуры от другого документа)
// TVA/>

 

ФизЛицо = ОписаниеСправки.Сотрудник;
Ставка = ОписаниеСправки.Ставка;

Если Не ЗначениеЗаполнено(Организация) Или Не ЗначениеЗаполнено(ФизЛицо) Или (НалоговыйПериод < 2011 и Не ЗначениеЗаполнено(Ставка)) Тогда
Возврат
КонецЕсли;

ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить(«Сотрудник», Новый ОписаниеТипов(«СправочникСсылка.ФизическиеЛица»));
ТаблицаСотрудников.Колонки.Добавить(«Ставка», Новый ОписаниеТипов(«ПеречислениеСсылка.НДФЛСтавки»));
ТаблицаСотрудников.Колонки.Добавить(«НомерСправки», Новый ОписаниеТипов(«Число», Новый КвалификаторыЧисла(8, 0)));
ЗаполнитьЗначенияСвойств(ТаблицаСотрудников.Добавить(), ОписаниеСправки);
СтруктураДанных = ДанныеОДоходах(ТаблицаСотрудников, НалоговыйПериод, Организация, ГоловнаяОрганизация, ОКАТО_КПП, Дата);
///
Если ЭтоИсправление Тогда
ПереносОтрицательногоОстаткаНДФЛПоКоду2012(СтруктураДанных.Доходы);
КонецЕсли;
// TVA/>
Для каждого СтрокаТЗ Из СтруктураДанных.Доходы Цикл

……….

КонецПроцедуры

……….

(И в этом же общем модуле полностью новая процедура)

……….

 

///
//В Документе СправкаПоНДФЛВНалоговыйОрган при отгуленном отпуске больше, чем нужно и
//последующем увольнении проставляется доход 2012 со знаком минус.
//Контур такой отчёт не принимает. Необходимо, чтобы этот минус учитывался в последнем месяце
//начислений по коду 2012.
Процедура ПереносОтрицательногоОстаткаНДФЛПоКоду2012(ТЗ) Экспорт

ДоходНДФЛ2012 = Справочники.ДоходыНДФЛ.Код2012;
ДоходыСКодом2012 = Новый ТаблицаЗначений;
ДоходыСКодом2012.Колонки.Добавить(«НомерСтроки»);
ДоходыСКодом2012.Колонки.Добавить(«НомерСправки»);
ДоходыСКодом2012.Колонки.Добавить(«СуммаДохода»);
ДоходыСКодом2012.Колонки.Добавить(«СуммаВычета»);
Для Каждого СтрокаТЗ Из ТЗ Цикл
Если СтрокаТЗ.КодДохода = ДоходНДФЛ2012 Тогда
НоваяСтрока = ДоходыСКодом2012.Добавить();
НоваяСтрока.НомерСтроки = ТЗ.Индекс(СтрокаТЗ);
НоваяСтрока.НомерСправки = СтрокаТЗ.НомерСправки;
НоваяСтрока.СуммаДохода = СтрокаТЗ.СуммаДохода;
НоваяСтрока.СуммаВычета = СтрокаТЗ.СуммаВычета;
КонецЕсли;
КонецЦикла;
ъ = ДоходыСКодом2012.Количество() — 1;
СуммаДоходаДляПравки = 0;
СуммаВычетаДляПравки = 0;
НомерСправки = -1;
Пока ъ >= 0 Цикл
Если (НомерСправки <> ДоходыСКодом2012[ъ].НомерСправки) И (НомерСправки <> -1) Тогда
СуммаДоходаДляПравки = 0;
СуммаВычетаДляПравки = 0;
КонецЕсли;
НомерСправки = ДоходыСКодом2012[ъ].НомерСправки;
Если ДоходыСКодом2012[ъ].СуммаДохода < 0 Тогда
СуммаДоходаДляПравки = СуммаДоходаДляПравки + ДоходыСКодом2012[ъ].СуммаДохода;
СуммаВычетаДляПравки = СуммаВычетаДляПравки + ДоходыСКодом2012[ъ].СуммаВычета;
ТЗ.Удалить(ДоходыСКодом2012[ъ].НомерСтроки);
Иначе
Если (СуммаДоходаДляПравки <> 0) Или (СуммаВычетаДляПравки <> 0) Тогда
Если (ДоходыСКодом2012[ъ].СуммаДохода + СуммаДоходаДляПравки) > 0 Тогда
ТЗ[ДоходыСКодом2012[ъ].НомерСтроки].СуммаДохода = ТЗ[ДоходыСКодом2012[ъ].НомерСтроки].СуммаДохода + СуммаДоходаДляПравки;
СуммаДоходаДляПравки = 0;
ТЗ[ДоходыСКодом2012[ъ].НомерСтроки].СуммаВычета = ТЗ[ДоходыСКодом2012[ъ].НомерСтроки].СуммаВычета + СуммаВычетаДляПравки;
СуммаВычетаДляПравки = 0;
Иначе
СуммаДоходаДляПравки = СуммаДоходаДляПравки + ТЗ[ДоходыСКодом2012[ъ].НомерСтроки].СуммаДохода;
ТЗ.Удалить(ДоходыСКодом2012[ъ].НомерСтроки);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ъ = ъ — 1;
КонецЦикла;

КонецПроцедуры
// TVA/>

3 Comments

  1. Slavez

    И никогда не принимали.

    Таких справок бывает совсем немного.

    Смысл исправлять модуль?

    Проще в руки объединить с доходами любого месяца.

    Reply
  2. VitaliyTokarev

    Смысл в том, что у нас в компании таких справок больше сотни…

    Менялось Юр.лицо.

    А политика такая, что должно всё автоматом считаться.

    Возможно кому-то пригодится.

    Reply
  3. klel

    Спасибо за информацию думаю пригодится фирма то у нас немаленькая =)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *