Неправильное формирование НДФЛ удержанного (замечено в конфигурации ЗУП8 2.5.61.1) происходит при проведении документа "ЗарплатаКВыплатеОрганизаций" в случае сторнирования начислений произведенных в прошлых периодах. Например: сотруднику в декабре была полностью начислена и выплачена зарплата, а он в январе принес больничный лист за дни декабря. В этом случае при проведении документа "ЗарплатаКВыплатеОрганизаций" дополнительно формируются записи по расходу (удержанию) регистра накопления НДФЛРасчетыСБюджетом и по приходу регистра накопления РасчетыНалоговыхАгентовСБюджетомПоНДФЛ на сумму НДФЛ со сторнируемой суммы. Это "паразитное" удержание формируется за счет ошибки формирования СальдоПоНалогу в запросе, который выполняется в Общем модуле ПроведениеРасчетовПереопределяемый в Процедура СформироватьРасчетыПоНДФЛПриВыплате. СальдоПоНалогу расчитывается не нарастающим итогом, а по каждому месяцу налогового периода (см.текст запроса).
Запрос.Текст =
"ВЫБРАТЬ
| НДФЛРасчетыСБюджетом.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, ГОД) КАК НалоговыйПериод,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента КАК СтавкаНалогообложенияРезидента,
| СУММА(НДФЛРасчетыСБюджетом.СальдоПоНалогу) КАК СальдоПоНалогу,
| СУММА(НДФЛРасчетыСБюджетом.Приходы) КАК Приходы,
| СУММА(НДФЛРасчетыСБюджетом.Расходы) КАК Расходы
|ПОМЕСТИТЬ ВТОстаткиИОбороты
|ИЗ
| (ВЫБРАТЬ
| НДФЛРасчетыСБюджетом.ФизЛицо КАК ФизЛицо,
| НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента КАК СтавкаНалогообложенияРезидента,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛРасчетыСБюджетом.Налог
| ИНАЧЕ -НДФЛРасчетыСБюджетом.Налог
| КОНЕЦ КАК СальдоПоНалогу,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛРасчетыСБюджетом.Налог
| ИНАЧЕ 0
| КОНЕЦ КАК Приходы,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА 0
| ИНАЧЕ НДФЛРасчетыСБюджетом.Налог
| КОНЕЦ КАК Расходы
| ИЗ
| РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
| ГДЕ
| НДФЛРасчетыСБюджетом.Регистратор <> &ДокументСсылка
| И НДФЛРасчетыСБюджетом.Организация = &ГоловнаяОрганизация
| И НДФЛРасчетыСБюджетом.ОбособленноеПодразделение = &ОбособленноеПодразделение
| И НДФЛРасчетыСБюджетом.Период
| И НДФЛРасчетыСБюджетом.ФизЛицо В(ВЫБРАТЬ ФизЛицо ИЗ ВТВыплатыФизлицам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| НДФЛКЗачету.ФизЛицо,
| НАЧАЛОПЕРИОДА(НДФЛКЗачету.Период, МЕСЯЦ),
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13),
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛКЗачету.СуммаНДФЛКЗачету
| ИНАЧЕ -НДФЛКЗачету.СуммаНДФЛКЗачету
| КОНЕЦ,
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛКЗачету.СуммаНДФЛКЗачету
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА 0
| ИНАЧЕ НДФЛКЗачету.СуммаНДФЛКЗачету
| КОНЕЦ
| ИЗ
| РегистрНакопления.НДФЛКЗачету КАК НДФЛКЗачету
| ГДЕ
| НДФЛКЗачету.Регистратор <> &ДокументСсылка
| И НДФЛКЗачету.Организация = &ГоловнаяОрганизация
| И НДФЛКЗачету.Период
| И НДФЛКЗачету.ФизЛицо В(ВЫБРАТЬ ФизЛицо ИЗ ВТВыплатыФизлицам)) КАК НДФЛРасчетыСБюджетом
|
|СГРУППИРОВАТЬ ПО
| НДФЛРасчетыСБюджетом.ФизЛицо,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, МЕСЯЦ),
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, ГОД)
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо,
| СтавкаНалогообложенияРезидента,
| НалоговыйПериод,
| МесяцНалоговогоПериода";
Запрос.Выполнить();
В конфигурации поставщика строки 7153 - 7233. Один из вариантов исправления запроса приведен ниже.
Запрос.Текст =
"ВЫБРАТЬ
| НДФЛРасчетыСБюджетом.ФизЛицо КАК ФизЛицо,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, ГОД) КАК НалоговыйПериод,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента КАК СтавкаНалогообложенияРезидента,
| СУММА(НДФЛРасчетыСБюджетом.СальдоПоНалогу) КАК СальдоПоНалогу,
| СУММА(НДФЛРасчетыСБюджетом.Приходы) КАК Приходы,
| СУММА(НДФЛРасчетыСБюджетом.Расходы) КАК Расходы
|ПОМЕСТИТЬ ВТОстИОб
|ИЗ
| (ВЫБРАТЬ
| НДФЛРасчетыСБюджетом.ФизЛицо КАК ФизЛицо,
| НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода КАК МесяцНалоговогоПериода,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента КАК СтавкаНалогообложенияРезидента,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛРасчетыСБюджетом.Налог
| ИНАЧЕ -НДФЛРасчетыСБюджетом.Налог
| КОНЕЦ КАК СальдоПоНалогу,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛРасчетыСБюджетом.Налог
| ИНАЧЕ 0
| КОНЕЦ КАК Приходы,
| ВЫБОР
| КОГДА НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА 0
| ИНАЧЕ НДФЛРасчетыСБюджетом.Налог
| КОНЕЦ КАК Расходы
| ИЗ
| РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
| ГДЕ
| НДФЛРасчетыСБюджетом.Регистратор <> &ДокументСсылка
| И НДФЛРасчетыСБюджетом.Организация = &ГоловнаяОрганизация
| И НДФЛРасчетыСБюджетом.ОбособленноеПодразделение = &ОбособленноеПодразделение
| И НДФЛРасчетыСБюджетом.Период
| И НДФЛРасчетыСБюджетом.ФизЛицо В (ВЫБРАТЬ ФизЛицо ИЗ ВТВыплатыФизлицам)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| НДФЛКЗачету.ФизЛицо,
| НАЧАЛОПЕРИОДА(НДФЛКЗачету.Период, МЕСЯЦ),
| ЗНАЧЕНИЕ(Перечисление.НДФЛСтавкиНалогообложенияРезидента.Ставка13),
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛКЗачету.СуммаНДФЛКЗачету
| ИНАЧЕ -НДФЛКЗачету.СуммаНДФЛКЗачету
| КОНЕЦ,
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА НДФЛКЗачету.СуммаНДФЛКЗачету
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НДФЛКЗачету.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА 0
| ИНАЧЕ НДФЛКЗачету.СуммаНДФЛКЗачету
| КОНЕЦ
| ИЗ
| РегистрНакопления.НДФЛКЗачету КАК НДФЛКЗачету
| ГДЕ
| НДФЛКЗачету.Регистратор <> &ДокументСсылка
| И НДФЛКЗачету.Организация = &ГоловнаяОрганизация
| И НДФЛКЗачету.Период
| И НДФЛКЗачету.ФизЛицо В (ВЫБРАТЬ ФизЛицо ИЗ ВТВыплатыФизлицам)) КАК НДФЛРасчетыСБюджетом
|
|СГРУППИРОВАТЬ ПО
| НДФЛРасчетыСБюджетом.ФизЛицо,
| НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента,
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, МЕСЯЦ),
| НАЧАЛОПЕРИОДА(НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода, ГОД)
|
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ОстИОб1.ФизЛицо,
| ВТ_ОстИОб1.НалоговыйПериод,
| ВТ_ОстИОб1.МесяцНалоговогоПериода,
| ВТ_ОстИОб1.СтавкаНалогообложенияРезидента,
| СУММА(ВТ_ОстИОб2.СальдоПоНалогу) КАК СальдоПоНалогу,
| СУММА(ВЫБОР
| КОГДА ВТ_ОстИОб1.МесяцНалоговогоПериода = ВТ_ОстИОб2.МесяцНалоговогоПериода
| ТОГДА ВТ_ОстИОб2.Приходы
| ИНАЧЕ 0
| КОНЕЦ) КАК Приходы,
| СУММА(ВЫБОР
| КОГДА ВТ_ОстИОб1.МесяцНалоговогоПериода = ВТ_ОстИОб2.МесяцНалоговогоПериода
| ТОГДА ВТ_ОстИОб2.Расходы
| ИНАЧЕ 0
| КОНЕЦ) КАК Расходы
|ПОМЕСТИТЬ ВТОстаткиИОбороты
|ИЗ
| ВТОстИОб КАК ВТ_ОстИОб1
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОстИОб КАК ВТ_ОстИОб2
| ПО (ВТ_ОстИОб1.ФизЛицо = ВТ_ОстИОб2.ФизЛицо
| И ВТ_ОстИОб1.СтавкаНалогообложенияРезидента = ВТ_ОстИОб2.СтавкаНалогообложенияРезидента
| И ВТ_ОстИОб1.МесяцНалоговогоПериода >= ВТ_ОстИОб2.МесяцНалоговогоПериода)
|
|СГРУППИРОВАТЬ ПО
| ВТ_ОстИОб1.ФизЛицо,
| ВТ_ОстИОб1.СтавкаНалогообложенияРезидента,
| ВТ_ОстИОб1.МесяцНалоговогоПериода,
| ВТ_ОстИОб1.НалоговыйПериод
|
|ИНДЕКСИРОВАТЬ ПО
| ВТ_ОстИОб1.ФизЛицо,
| ВТ_ОстИОб1.СтавкаНалогообложенияРезидента,
| ВТ_ОстИОб1.НалоговыйПериод,
| ВТ_ОстИОб1.МесяцНалоговогоПериода";
Запрос.Выполнить();