УПП и новые вычеты 2012 года. Интересные наблюдения
Рекомендации при расчете вычетов НДФЛ. Когда программа "не считает".
- Описание
- Подробнее
Описание
Немного предыстории. Совсем недавно мне поручили разобраться с новой системой вычетов по НДФЛ, которая начинает действовать с 2012 года. В процессе изучения выявилась одна интересная особенность. В документе «Начисление зарплаты сотрудникам организаций» есть вкладка НДФЛ. Так вот если она не заполнена. То при нажатии меню «Рассчитать» и выбора пункта «Рассчитать НДФЛ» ничего не произойдет.
Методом научного поиска (читать «методом тыка»)
выяснилось следующее.
В модуле документа НачислениеЗарплатыРаботникамОрганизаций есть процедура
Процедура РассчитатьНДФЛ(Физлицо = Неопределено, КомментироватьРасчет = Ложь, ВыборкаПоШапкеДокумента = Неопределено, ВыборкаПоНачислениям = Неопределено) Экспорт
В процедуре есть Параметр ФизЛицо , который в конечном итоге принмает параметр неопределено. Чуть ниже встречается вот такой код:
Если НЕ (Физлицо = Неопределено) Тогда
СписокФизлицТекст =
«ВЫБРАТЬ
| ФизическиеЛица.Ссылка КАК Физлицо
|ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
| ФизическиеЛица.Ссылка = &парамФизлицо»;
ДополнительныеПараметрыЗапросаНДФЛ = Новый Структура;
ДополнительныеПараметрыЗапросаНДФЛ.Вставить(«парамФизлицо», Физлицо);
Иначе
СписокФизлицТекст =
«ВЫБРАТЬ РАЗЛИЧНЫЕ
| Работники.Физлицо КАК Физлицо
|ИЗ
| Документ.НачислениеЗарплатыРаботникамОрганизаций.НДФЛ КАК Работники
|
|ГДЕ
| Работники.Ссылка = &парамРегистратор»;
ДополнительныеПараметрыЗапросаНДФЛ = Неопределено;
КонецЕсли;
В конечном итоге поскольку Физлицо=Неопределено Запрос по списку физлиц формируется по табличной части НДФЛ.
Я нашел временное решение в следующем. В Общем модуле ПроведениеРасчетов ищем процедуру:
ПолучитьДанныеНДФЛПоРегистратору.
Запрос.Текст =
«ВЫБРАТЬ Физлицо
|ПОМЕСТИТЬ ВТСписокФизЛиц
|ИЗ (» + СписокФизЛицТекст + «) СписокФизЛиц
|ИНДЕКСИРОВАТЬ ПО Физлицо»;
Запрос.УстановитьПараметр(«парамРегистратор», Регистратор);
Запрос.Выполнить();
Перед Запрос.Выполнить() добавляем вот такую строчку:
Запрос.Текст= СтрЗаменить(Запрос.Текст,»НДФЛ»,»Начисления»);
В этом случае список будет браться со вкладки начисления и НДФЛ будет рассчитываться.

