gifts2017

Перечисленный НДФЛ и как с этим бороться

Опубликовал Владимир Анашкин (kondrp) в раздел Управление - Практика учета

Описание простой методики избавления от висящих остатков по НДФЛ перечисленному

Для начала небольшой экскурс в методологию (цитата из статьи ИТС "Учет перечисленного в бюджет налога в разрезе физлиц"):

Учет перечисленного в бюджет НДФЛ в разрезе физических лиц в программе необходимо вести с целью автоматического формирования отчета "Регистр налогового учета по НДФЛ" и заполнения документов "Справка 2-НДФЛ" (как для сотрудника, так и для передачи в ИФНС) в части сумм перечисленного налога. Вести такой учет в специальном регистре обязывает статья 230 Налогового Кодекса РФ (далее НК РФ), о необходимости указывать такие суммы в справках 2-НДФЛ сказано в Приказе ФНС от 17 ноября 2010 г. N ММВ-7-3/611@.

Суммы перечисляемого в бюджет налога в общем случае могут не совпадать с суммами налога удержанного. Кроме того п. 1 ст. 230 НК РФ  обязывает указывать в регистрах налогового учета реквизиты платежных документов, которыми была произведена уплата налога в бюджет РФ. Такой информации в подсистеме расчета зарплаты не содержится. Поэтому такие суммы регистрируются в программе отдельным документом "Перечисление НДФЛ в бюджет РФ".

Регистрация в учете сумм перечисленного налога осложняется тем, что НК РФ обязывает вести такой учет в отдельности по каждому физическому лицу, однако в бюджет налог перечисляется общей суммой, без указания по какому лицу какая сумма перечисляется. В настоящий момент не существует разъяснений контролирующих органов о том, как следует распределять перечисляемые в бюджет суммы налога между физическими лицами с целью ведения регистра налогового учета в соответствии с п. 1 ст. 230 НК. Поэтому методистами фирмы "1С" был предложен следующий подход к автоматизированному распределению сумм перечисленного налога.

В момент регистрации в учете удержанного НДФЛ (об этом моменте рассказано выше) в учете также регистрируется необходимость (обязанность) перечислить в бюджет удержанную по каждому физическому лицу сумму налога, при этом необходимость эта регистрируется в точности такой же датой, как и дата удержания налога. Т.к. необходимость перечислить налог напрямую связана с фактом удержания налога, а удержанный налог, как и исчисленный, регистрируется в учете в разрезе ставок налогообложения (13%, 30%, 9% и т.д.), месяцев налогового периода (т.е. месяцев, за который зарегистрирован доход и налог) и территориальной принадлежности (коды ОКАТО и КПП), то и суммы, необходимые к перечислению, регистрируются в разрезе этих признаков с целью обеспечения максимальной точности при распределении налога и отражении сведений о перечисленном налоге в регистре налогового учета.

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

Если общая перечисляемая сумма совпадает с общей суммой удержанного налога (т.е. удержанная сумма налога перечисляется полностью), то в результате такого распределения перечисленная сумма по каждому физическому лицу совпадет с суммой удержанной, зарегистрированной как необходимая к перечислению.

Конец цитаты.

 

В реальной жизни очень часто возникают ситуации, когда сумма перечисленного НДФЛ больше или наоборот меньше суммы НДФЛ удержанного.

В этих случаях программа ведет себя следующим образом:

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

2. Сумма НДФЛ перечисленного больше чем НДФЛ удержанного: сумма излишне перечисленного налога записывается с минусом в регистр накопления "Расчеты налоговых агентов с бюджетом по НДФЛ". Такая задолженность на последующие месяцы налогового периода не переносится и не может быть зачтена в других месяцах. По словам методистов 1С, такой подход основывается на положениях НК РФ и подтверждается письмом ФНС от 19 октября 2011 г. N ЕД-3-3/3432@, в котором сказано: "… ежемесячное перечисление в бюджет суммы, превышающей сумму фактически удержанного из доходов физических лиц налога на доходы физических лиц, не является налогом. В таком случае налоговому агенту следует обратиться в налоговый орган с заявлением о возврате на расчетный счет организации суммы, не являющейся налогом на доходы физических лиц и ошибочно перечисленной в бюджетную систему Российской Федерации."

 

Если учет НДФЛ перечисленного на Вашем предприятии ведется в соответствии с вышеизложенными рекомендациями, Вы не допускаете наличия "положительных" или ,не дай бог, отрицательных остатков, тогда дальнейшее чтение статьи для Вас будет бесполезно !

  

На данный момент существуют 2 известные мне методики избавления от "висящих" остатков по НДФЛ перечисленному:

1. Написание обработки, которая будет анализировать "висящие остатки" и сама создавать документы "Перечисление НДФЛ в бюджет";

2. Изменение документа "Перечисление НДФЛ в бюджет" для закрытия "висящих" остатков одним документом.

 

Я предлагаю для рассмотрения второй вариант, а именно, добавление в модуль документа "Перечисление НДФЛ в бюджет" одной процедуры и одной функции, которые избавят Вас от "висящих" остатков в регистре накопления "Расчеты налоговых агентов с бюджетом по НДФЛ".

Но, для начала, давайте посмотрим как работает типовой механизм закрытия остатков по перечисленному НДФЛ.

 Типовой механизм 

 Записи с "+" образовались при проведении двух документов "Начисление зарплаты" (за апрель и май 2011 года).

Записи с "-" движения стандартных документов "Перечисление НДФЛ в бюджет" (за апрель и май 2011 года).

Рассчитаем отстаток нераспределенной суммы НДФЛ (по месяцам налогового периода):

За апрель образовалась переплата = -446 = 2431 - 2877;

За май образовалась задолженность = 680 = 2431 - 1751.

В итоге имеем долг по перечисленному НДФЛ  = 234 = 680 - 446.

Возникает вопрос, как закрыть задолженность и почему переплата за апрель не учлась в мае. Все просто! согласно письмом ФНС от 19 октября 2011 г. N ЕД-3-3/3432@ переплата за апрель не является налогом и автоматически зачитываться в типовой конфигурации не будет. Далее, чтобы зачесть задолженность за май необходимо ввести еще один документ "Перечисление НДФЛ в бюджет", в котором в качестве месяца, за который платят, будет указан май. Причем, именно май, т.к. например при перечислении налога за июнь неперечисленный НДФЛ за май автоматически зачитываться также не будет. При таком раскладе количество человеко часов работы бухгалтерии при хорошо разветвленной структуре фирмы и численности работников превышающей 2000 человек увеличивается до пугающих величин.

 

Теперь сравним с движениями измененного документа "Перечисление НДФЛ в бюджет".

 Измененный механизм

Записи с "+", образовались при проведении трех документов "Начисление зарплаты" (за апрель, май и июнь 2011 года).

Записи с "-", сформированы изменными документами "Перечисление НДФЛ в бюджет" (за апрель, май и июнь 2011 года).

Рассчитаем отстаток нераспределенной суммы НДФЛ (по месяцам налогового периода):

Апрель: переплата = -446 = 2431 - 2877. Обрабтите внимание, что сумма переплаты, в отличие от типового механизма, записывается отдельно (в май 2011 года).

Май: задолженность = 234 = 2431 - 1751 - 446. Документ "Перечисление НДФЛ в бюджет" за май 2011 года зачел переплату за апрель в размере 446 рублей, после чего сумму оплаты в размере 1751 рубль посадил целиком в май. Т.к. суммы оплаты нехватает, чтобы полностью погасить задолженность, следовательно возникает долг = 234 рубля. 

Июнь: задолженность гасится = 0 = 234  + 120 - 354. Документ "Перечисление НДФЛ в бюджет" за июнь 2011 года гасит долг за май в размере 234 рубля, а также гасит долг за июнь в размере 120 рублей.

Результатом работы измененного документа явилось полное погашение задолженности по НДФЛ без ввода дополнительных документов  "Перечисление НДФЛ в бюджет" и корректировок регистра.

 

Что же необходимо сделать, чтобы этот механизм заработал?

Первое, что необходимо - получить остатки НДФЛ по месяцам налогового периода. За это отвечает функция "ПолучитьТаблицуРаспределенияПоФизлицу":

 

Функция ПолучитьТаблицуРаспределенияПоФизлицу(Физлицо) Экспорт    

Запрос = Новый Запрос;  Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ                

| РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.ФизЛицо КАК ФизЛицо,                

| НАЧАЛОПЕРИОДА(РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.МесяцНалоговогоПериода, МЕСЯЦ) КАК МесяцНалоговогоПериода,                

| СУММА(РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.СуммаОстаток) КАК Долг                

|ИЗ                

| РегистрНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Остатки(                

|   &Период,                

|   ФизЛицо = &Физлицо                

|    И Ставка = &Ставка               

|    И ОКАТО_КПП = &ОКАТО_КПП) КАК РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки                

|ГДЕ                

| РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.СуммаОстаток <> 0                

|                

|СГРУППИРОВАТЬ ПО                

| РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.ФизЛицо,                

| НАЧАЛОПЕРИОДА(РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.МесяцНалоговогоПериода, МЕСЯЦ)                

|                

|УПОРЯДОЧИТЬ ПО                

| ФизЛицо,                

| МесяцНалоговогоПериода                

|АВТОУПОРЯДОЧИВАНИЕ";    

 

Запрос.УстановитьПараметр("Период"  , Новый Граница(КонецДня(Дата), ВидГраницы.Включая));  

Запрос.УстановитьПараметр("ОКАТО_КПП" , ОКАТО_КПП);  

Запрос.УстановитьПараметр("Ставка"  , Ставка);  

Запрос.УстановитьПараметр("Физлицо"  , Физлицо);    

Результат = Запрос.Выполнить();    

ТаблицаРезультат = Результат.Выгрузить();    

Возврат ТаблицаРезультат;  

КонецФункции

 

Теперь процедура формирования движений по регистру накопления "Расчеты налоговых агентов с бюджетом по НДФЛ":

 

Процедура СформироватьДвиженияПоФизлицу(Физлицо, Знач СуммаПеречислено)    

ТаблицаРаспределения = ПолучитьТаблицуРаспределенияПоФизлицу(Физлицо);    

ОтрицательныеСуммы = Новый ТаблицаЗначений;  

ОтрицательныеСуммы.Колонки.Добавить("МесяцНалоговогоПериода", Новый ОписаниеТипов("Дата" , Новый КвалификаторыДаты(ЧастиДаты.Дата)));  

ОтрицательныеСуммы.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));    

ПоложительныеСуммы = Новый ТаблицаЗначений;  

ПоложительныеСуммы.Колонки.Добавить("МесяцНалоговогоПериода", Новый ОписаниеТипов("Дата" , Новый КвалификаторыДаты(ЧастиДаты.Дата)));  

ПоложительныеСуммы.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,2)));    

Для Каждого СтрокаТаблицаРаспределения из ТаблицаРаспределения Цикл      

Если СтрокаТаблицаРаспределения.Долг > 0 Тогда    

СтрокаТаблицы  = ПоложительныеСуммы.Добавить();   

СтрокаТаблицы.МесяцНалоговогоПериода = СтрокаТаблицаРаспределения.МесяцНалоговогоПериода;    

СтрокаТаблицы.Сумма = СтрокаТаблицаРаспределения.Долг;   

Иначе     

СтрокаТаблицы  = ОтрицательныеСуммы.Добавить();    

СтрокаТаблицы.МесяцНалоговогоПериода = СтрокаТаблицаРаспределения.МесяцНалоговогоПериода;   

СтрокаТаблицы.Сумма = -СтрокаТаблицаРаспределения.Долг;   

КонецЕсли;      

КонецЦикла;     

// Закроем отрицательные суммы  

Для Каждого СтрокаОтрицательныеСуммы из ОтрицательныеСуммы Цикл      

ОсталосьРаспределить = СтрокаОтрицательныеСуммы.Сумма;   

Распределено   = 0;      

Для Каждого СтрокаПоложительныеСуммы из ПоложительныеСуммы Цикл        

Если СтрокаПоложительныеСуммы.Сумма > ОсталосьРаспределить Тогда     

Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();     

Движение.Период     = ДатаПлатежа;     

Движение.ФизЛицо    = Физлицо;     

Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;     

Движение.Организация   = Организация;     

Движение.МесяцНалоговогоПериода = СтрокаПоложительныеСуммы.МесяцНалоговогоПериода;     

Движение.ОКАТО_КПП    = ОКАТО_КПП;    

Движение.Ставка     = Ставка;     

Движение.Сумма     = ОсталосьРаспределить;     

СтрокаПоложительныеСуммы.Сумма = СтрокаПоложительныеСуммы.Сумма - Распределено;     

Распределено     = Распределено + ОсталосьРаспределить;     

ОсталосьРаспределить   = 0;    

Иначе     

Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();     

Движение.Период     = ДатаПлатежа;     

Движение.ФизЛицо    = Физлицо;     

Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;     

Движение.Организация   = Организация;     

Движение.МесяцНалоговогоПериода = СтрокаПоложительныеСуммы.МесяцНалоговогоПериода;     

Движение.ОКАТО_КПП    = ОКАТО_КПП;     

Движение.Ставка     = Ставка;     

Движение.Сумма     = СтрокаПоложительныеСуммы.Сумма;     

Распределено     = Распределено + СтрокаПоложительныеСуммы.Сумма;     

ОсталосьРаспределить   = ОсталосьРаспределить - СтрокаПоложительныеСуммы.Сумма;     

СтрокаПоложительныеСуммы.Сумма = 0;    

КонецЕсли;        

Если ОсталосьРаспределить = 0 Тогда     

Прервать;    

КонецЕсли;        

КонецЦикла;       

Если Распределено > 0 Тогда    

Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();    

Движение.Период     = ДатаПлатежа;    

Движение.ФизЛицо    = Физлицо;    

Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;    

Движение.Организация   = Организация;   

Движение.МесяцНалоговогоПериода = СтрокаОтрицательныеСуммы.МесяцНалоговогоПериода;    

Движение.ОКАТО_КПП    = ОКАТО_КПП;   

Движение.Ставка     = Ставка;    

Движение.Сумма     = -Распределено;        

СтрокаОтрицательныеСуммы.Сумма = ОсталосьРаспределить - Распределено;   

КонецЕсли;      

КонецЦикла;   

// Сформируем записи на оставшиеся положительные суммы  

Для Каждого СтрокаПоложительныеСуммы из ПоложительныеСуммы Цикл      

Если СтрокаПоложительныеСуммы.Сумма = 0 Тогда    

Продолжить;   

КонецЕсли;       

Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();   

Движение.Период     = ДатаПлатежа;   

Движение.ФизЛицо    = Физлицо;   

Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;   

Движение.Организация   = Организация;   

Движение.МесяцНалоговогоПериода = СтрокаПоложительныеСуммы.МесяцНалоговогоПериода;   

Движение.ОКАТО_КПП    = ОКАТО_КПП;   

Движение.Ставка     = Ставка;   

Движение.Сумма     = Мин(СтрокаПоложительныеСуммы.Сумма, СуммаПеречислено);      

СуммаПеречислено = СуммаПеречислено - Движение.Сумма;      

Если СуммаПеречислено = 0 Тогда    

Прервать;  

КонецЕсли;      

КонецЦикла;     

// Оставшуюся переплату нужно посадить месяц налого периода из форму документа 

Если СуммаПеречислено > 0 Тогда 

МесяцНалоговогоПериода = НачалоМесяца(МесяцНалоговогоПериода);   

Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();   

Движение.Период     = ДатаПлатежа;   

Движение.ФизЛицо    = Физлицо;   

Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;   

Движение.Организация   = Организация;   

Движение.МесяцНалоговогоПериода = МесяцНалоговогоПериода;   

Движение.ОКАТО_КПП    = ОКАТО_КПП;   

Движение.Ставка     = Ставка;   

Движение.Сумма     = СуммаПеречислено;      

КонецЕсли;   

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

 

И, наконец, комментируем строки типовой процедуры "ОбработкаПроведения()" и добавляем вызов процедуры "СформироватьДвиженияПоФизлицу()":

  

Если Не Отказ Тогда    

//Движение = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.ДобавитьРасход();    

//ЗаполнитьЗначенияСвойств(Движение, ЭтотОбъект, "Организация, МесяцНалоговогоПериода, Ставка, ОКАТО_КПП");    

//Движение.Период = ДатаПлатежа;    

//ЗаполнитьЗначенияСвойств(Движение, СтрокаТЧ, "ФизЛицо, Сумма");

СформироватьДвиженияПоФизлицу(СтрокаТЧ.ФизЛицо, СтрокаТЧ.Сумма);   

КонецЕсли;

 

Надеюсь, что данная статья поможет Вам в дальнейшей работе.

 

 

 

См. также

Подписаться Добавить вознаграждение

Комментарии

0. Владимир Анашкин (kondrp) 21.02.12 09:27
Описание простой методики избавления от висящих остатков по НДФЛ перечисленному


Перейти к публикации

1. Валерий Гайдабура (director04) 21.02.12 09:27
Первая часть статьи мне показалась вполне интересной, за что плюс, а вот вторая часть, с запросами, какая-то мутная.
Нипонятно, куда их лепить, и для каких целей.
Видно, именно в этих запросах автор подразумевал свое ноухау. А вот в чем оно - объяснить забыл.

Стоило бы более подробно показать штатные движения регистра. А так же, движения регистра по вашим исправлениям. При этом вполне можно было бы приложить скрины движений. А так же скрины отчетов по данному регистру.
Тогда бы вот, был плюс вполне заслуженный.
lesmash2000; +1 Ответить 1
2. Владимир Анашкин (kondrp) 21.02.12 11:00
(1) director04,
Не вопрос, скрины регистров накопления при работе типового и измененного механизма сделаю.

По поводу запросов:
Их нужно вставить в модуль объекта документа "Перечисление НДФЛ в бюджет". Причем, процедура и функция добавляются, т.к. их нет в типовой конфигурации, а процедура "ОбработкаПроведения()" изменяется: комментируются типовые строки и вставляется вызов процедуры "СформироватьДвиженияПоФизлицу()".

Спасибо за конструктивную критику.
3. Модератор раздела Артур Аюханов (artbear) 21.02.12 11:27
(0) Хорошая публикация.
ИМХО задачи, решаемые 2-й частью (кодом), лучше описать отдельно, перед кодом, в тексте основной статьи.
Например, что код делает с переплатой или недоплатой.
Из кода эту инфу получать неудобно.
4. Владимир Анашкин (kondrp) 21.02.12 13:21
(3) artbear,
Спасибо за комментарий. Это моя первая публикация, а когда сам делаешь - думаешь и остальным все понятно.
Сегодня вечером пересмотрю текст второй части статьи
5. Михаил Максименков (mvmaxim) 22.02.12 07:58
Нужная штука, возможно, в типовых рализах появится что-то подобное. Сделал немного раньше подобную вещь, только перенес в документе "Перечисление НДФЛ в бюджет РФ" реквизит "МесяцНлоговогоПериода" из шапки в табличную часть. Ну и соответственно, обработку распределения сумм переделал. Тогда можно одним документом при распределении сумм перечисленного НДФЛ закрыть "хвосты" предыдущего месяца/ев и распределить за текущий. В Вашем запросе, по-моему, нет необходимости использовать конструкцию НАЧАЛОПЕРИОДА(МесяцНалоговогоПериода, МЕСЯЦ), т.к. там всё равно только первые числа месяца стоят. Как считаете, оправдано ли метедологически указание реквизита МесяцНалоговогоПериода в табличной части, или это я переборщил?
6. Владимир Анашкин (kondrp) 22.02.12 08:40
(5) mvmaxim,
В первом варианте документа у меня тоже был реквизит в табличной части. Но бухи начали говорить, что им непонятно почему по одному работнику несколько строк, да и типовой механизм распределения в форме нужно было менять + добалять реквизиты. Поэтому пришлось изменить подход: в форме все заполняется по типовому механизму, а весь функционал по распределению вынесен в модуль объекта - подальше от глаз бухгалтерии.

Насчет "НАЧАЛОПЕРИОДА" - согласен, можно не использовать (написано по привычке, чтобы наверняка).

По поводу методологии: насколько я понимаю рекомендации методистов 1С, в случае если была недоплата, то применение вашего механизма, равно как и моего, оправдано, т.к. сокращает количество документов. Но если была переплата, то согласно письму ФНС от 19 октября 2011 г. N ЕД-3-3/3432 сумма переплаты не является налогом и ее нужно возвращать из налоговой. Честно говоря, я себе слабо представляю бухгалтера, который из-за каждых 5 или 10 рублей переплаты будет писать письма в налоговую, да и налоговой от этих писем легче не станет, эти факты ведь нужно еще как то проверить. Очень надеюсь, что это письмо о переплатах будет отменено, либо будет установлен какой то предел, в рамках которого можно будет письма не писать, а просто зачесть эту переплату в следующих месяцах.
7. Игорь (espero2000) 22.02.12 15:09
После такого изменения типовую конфигурацию штатно не обновить...
8. Владимир Анашкин (kondrp) 22.02.12 16:40
(7) espero2000,
С поддержки конфигурацию полностью можно не снимать, нужно только включить возможность вносить изменения. При этом конфигурация продолжит обновляться штатными средствами, а описанный мною функционал можно будет добавить в конфигурацию после обновления.
9. Евгений (evgalex) 24.02.12 21:13
Статья хорошая, главное своевременная. Не подскажете, работает ли такая система при перечислении НДФЛ 4-6 платежками в течение месяц.
10. Владимир Анашкин (kondrp) 25.02.12 00:48
В функциии "ПолучитьТаблицуРаспределенияПоФизлицу" есть параметр запроса "Период". При установке этого параметра остатки по НДФЛ перечисленному проверяются на конец дня в который входит дата документа. Получается, что при данной схеме можно вводить не более одной платежки в день. Причем, по дням их необходимо вводить последовательно, т.е. избегать ввода "задним числом".
Например: от 02.02.2012 введена платежка №1. Если после ввода платежки №1 ввести платежку №2 от 01.02.2012, то платежка №2 испортит распределение остатков платежки №1 и суммы по платежке №1 нужно будет перераспределять заново.
11. Александр Крынецкий (echo77) 28.02.12 20:38
ИМХО, внешняя обработка лучше - т.к. не заставляет вносить изменения в конфигурацию. Думаю, прийдется писать свою "закрытие регистра перечисления НДФЛ в бюджет". Я думаю, это не сложно: получить остатки за указанный месяц, в разрезе ОКАТО/КПП, организации, ставки
12. Владимир Анашкин (kondrp) 28.02.12 23:25
(11) echo77,
Возможно Вы и правы, но нам удобнее работать с распределением в документе. Ну не любят у нас бухгалтера, когда внешние обработки сами создают и проводят документы, что ж теперь поделаешь.

По поводу написания собственной обработки, ИМХО, если есть желание изобрести еще один велосипед - конечно можно. А можно воспользоваться готовыми обработками, которых тут пруд пруди.
Вот например:
Автозаполнение таблицы НДФЛ перечисленного;
Пакетное формирование документов "Перечисление НДФЛ в бюджет";
13. amorhis (iotkin) 01.03.12 11:44
Написано доступно и понятно. А главное актуально для нашего предприятия. Огромное спасибо!!!
14. Александр Градский (Cobranet123) 06.03.12 08:11
kondrp,
Что-то не совсем верно отрабатывает алгоритм приведенный вами, либо я не совсем понимаю его.
У меня получается:
за январь у сотрудника начислен НДФЛ на 318 руб. платежка была в феврале (в платежке переплатили), когда документом "Перечисление НДФЛ в бюджет" делаю распределение сумм по сотрудникам, то на этого сотрудника программа ставит 598 руб. По идее, по вашему алгоритму (судя из описания) должно было произойти следующее:
Движения в регистре:
январь сумма 318
февраль сумма 280
по этому сотруднику, Верно понимаю? но когда доходит вот до этого куска кода,

Если СуммаПеречислено > 0 Тогда 
   МесяцНалоговогоПериода = НачалоМесяца(МесяцНалоговогоПериода);   
   Движение      = Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Добавить();   
   Движение.Период     = ДатаПлатежа;   
   Движение.ФизЛицо    = Физлицо;   
   Движение.ВидДвижения   = ВидДвиженияНакопления.Расход;   
   Движение.Организация   = Организация;   
   Движение.МесяцНалоговогоПериода = МесяцНалоговогоПериода;   
   Движение.ОКАТО_КПП    = ОКАТО_КПП;   
   Движение.Ставка     = Ставка;   
   Движение.Сумма     = СуммаПеречислено;      
КонецЕсли; 
...Показать Скрыть


то происходит
МесяцНалоговогоПериода = НачалоМесяца(МесяцНалоговогоПериода),ведь у нас в документе то стоит месяц налогового периода - январь!и в регистре создаются следующие строки:
январь сумма 318
январь сумма 280
15. Владимир Анашкин (kondrp) 06.03.12 09:02
(14) Cobranet123,
Здесь вы пытаетесь скрестить типовой и измененный механизм. В статье я это не упомянул, но реквизит "МесяцНалоговогоПериода" из формы документа я убрал и всегда устанавливаю его равным текущему месяцу (в котором платят). В этом случае алгоритм отрабатывает верно.
В вашем случае месяц налогового периода должен быть "февраль", либо можете изменить в модуле строку: "Движение.МесяцНалоговогоПериода = МесяцНалоговогоПериода" на "Движение.МесяцНалоговогоПериода = НачалоМесяца(Дата)".
16. Наталия Киселева (kng67) 11.03.12 11:40
Статья актуальная. Спасибо автору!
А нашим "писакам" законов видно нечего делать, что добавили еще одну головную боль для бухгалтеров-расчетчиков. Зачем "перечислено" по сотрудикам?! Да, еще хотя бы "законотворцы" методологию распределения перечисленных сумм описали бы подробно. А то: дай то - не знаю что.
Спасибо за функционал, но не хотелось бы типовую "портить". Попробую сегодня пару обработок с Infostart. Посмотрим, что получится.
А 1С могла бы поднапрячься и написать более гибкий механизм распределения!
17. Ксеня Аксенова (ad-lib) 13.03.12 09:45
Если я меняю конфигурацию, то после каждого обновления мне придется это повторять?
18. Владимир Анашкин (kondrp) 13.03.12 11:50
(17) ad-lib,
Это является недостатком изменных конфигураций. Все изменения нужно тянуть за собой при обновлениях.
В данный момент я работаю над тем как развить представленный мною функционал, а заодно и вынести его из модуля объекта во внешнюю обработку.
19. Klavdiya (kvp) 21.03.12 14:05
Пыталась внедрить в конфигурацию ЗУП, но что-то неверно работает распределение: если перечисляем больше, чем удержано за месяц, получаем по всем сотрудникам по две-три строки, например:
февраль Панюков 2200 (действительно, за февраль)
февраль Панюков 150 (это уже должно падать на март).
20. Владимир Анашкин (kondrp) 21.03.12 14:09
(19) kvp,
Остатки которые превышают задолженность садятся в тот месяц, в который входит дата платежа. Если у вас там стоит дата из февраля, то конечно остаток переплаты сядет на февраль.
Если же я Вас неправильно понял и ошибка не в этом, распишите поподробнее.
21. Klavdiya (kvp) 22.03.12 08:47
(20) Документ от 07 марта 2012г., дата платежа тоже 07 марта, платеж за февраль
22. Владимир Анашкин (kondrp) 22.03.12 09:01
(21) kvp,
Хорошо. Я еще раз перепроверю модуль
23. Сергей Семенов (cerg110) 22.03.12 09:29
Спасибо за развернутую статью. очень хорошо и понятно все расписано.
24. Владимир Анашкин (kondrp) 22.03.12 10:27
(23) cerg110,
Если понравилась, можете отметить +. Буду Вам благодарен.
25. NPMar (NPMar) 29.03.12 14:06
Очень хорошая публикации. Спасибо большое. Тем более очень все понятно, как внести изменения. И самое главное - не нужно ничего скачивать! Думаю, что такое распределение более правильное. Да и при обновлении не сложно будет добавить в конфигурацию.
26. ddd ddd (alexsiswx) 02.04.12 14:34
У меня такое чувство,что правила по НДФЛ меняются каждый месяц или это мои бухи что-то мудрят,что не месяц, то проблемы с НДФЛ
27. ddd ddd (alexsiswx) 02.04.12 14:36
28. Владимир Анашкин (kondrp) 02.04.12 16:16
(27) alexsiswx,
Сообщите о результатах. Думаю будет полезно, тем более, что публикация будет развиваться
29. alexandra Матвеева (aplymaz) 06.08.12 12:47
Спасибо большое, помогло на бюджетной конфигурации ( ЗБУ )
30. Виктор Захаров (ZVN) 28.09.12 10:16
Проработал статью. По регистру накоплений НДФЛ в бюджет в нескольких месяцах получилась переплата и недоплата по сотрудникам имеющих переходящий отпуск. После применения Вашего метода все стало на место. Но необходимо обязательно перепроводить все взаимосвязанные документы.Объяснил все Главбуху (она у нас ведет зарплату)она согласна с этим, но как всегда спустила Полкана на 1С "...не в состоянии сделать нормальный расчет...".
Статья хорошая и полезная.
Единственно не нашел обещанную вами обработку по этой статье.
Если ее нет попробую другие или на основе ваших модулей сделаю свою.
31. Владимир Анашкин (kondrp) 28.09.12 11:07
(30) ZVN,
Обработку и правда хочу сделать. Вот только времени пока не хватает на все. Думаю после закрытия квартала вернусь к этому вопросу.
32. Виктор Захаров (ZVN) 28.09.12 13:08
(31) В принципе пробовал обработку по ссылке http://infostart.ru/public/118120/
Все довольно просто и красиво, но как всегда хочется лучшего.
33. Владимир Анашкин (kondrp) 28.09.12 13:47
(32) ZVN,
Указаная Вами обработка тоже по своему хороша. Но у меня изначально стояла задача избежать формирования дополнительных документов "Перечисление НДФЛ". Поэтому решил пойти по такому пути. Сейчас решаю задачу как оставить этот механизм, но не вносить изменения в типовую конфигурацию.
34. Виктор Захаров (ZVN) 28.09.12 16:32
(33)Я из текста фрагмента модуля так и понял. Надо чтобы в момент формирования документа все нюансы расчета НДФЛ учитывались. А то нет защиты от дурака (Бухгалтера говорят "..Программа должна сама все считать и разносить нам и без этого работы хватает..". Я тоже попробую что нибудь на Вашей основе сварганить.
35. Владимир Анашкин (kondrp) 28.09.12 17:00
(34) ZVN,
Если будут идеи и предложения - пишите.
36. Максим (maxim305) 14.11.12 10:52
"..Программа должна сама все считать и разносить нам и без этого работы хватает.."
(34) ZVN, Я так часто слышу эти слова, так смешно бывает аж горько!
37. (Baibolaika) 10.12.12 15:41
Добрый день! Подскажите, пожалуйста, откуда берется запись СуммаПеречислено?
38. Владимир Анашкин (kondrp) 10.12.12 16:30
(37) Baibolaika,
Не совсем понял вопрос.
Если Вы хотите узнать откуда попадает значение в параметр "СуммаПеречислено" функции "формироватьДвиженияПоФизлицу", то это значение из колонки "Сумма" табличной части "СотрудникиОрганизации".
Если что то другое - распишите поподробнее.
39. (Baibolaika) 10.12.12 17:02
извиняюсь за не корректный вопрос
Дело в том, что у меня совсем другая конфигурация (Управление Торговлей). Но Вы написали очень хороший алгоритм..и хотела бы попробовать приделать его себе. Есть два документа, в табличной части первого документа находится график по месяцам и количество которое нужно отгрузить, а второй документ списывает его. Мне нужно распределить остатки товара в разрезе месяцев...помогите понять как будет выражаться СуммаПеречислено в таком варианте?
40. Владимир Васильев (VladimirKHV) 19.12.12 04:08
Все конечно хорошо, и по месяцам раскидывать должно отлично, но никак не учтен момент заполнения табличных частей.
Типовым заполнением, как вы сами верно подметили, переплаты с прошлых периодов не учитываются, в итоге сумма платежки распределяется по людям не верно.
И дальнейшее распределение этих неверных сумм по месяцам приведет к еще большей путаннице по уволенным и декретникам (замучаешься выравнивать их налоги под конец года)

Я у себя автозаполнение подправил следующим образом, в Автозаполнение() изменил условие в строчке
И МесяцНалоговогоПериода >= &МесяцНалоговогоПериода

а в параметрах МесяцНалоговогоПериода сделал началом года
минус в том, что перед перезаполнением документ надо обязательно делать непроведенным

ЗЫ. Посмотрел внимательно обработку.
1) Установка КонцаДня в параметре период запроса, как тут выше верно подметили, явно лишняя
2) Остатки собираются за все периоды, то есть если где-то в 20хх лохматом году было неверное распределение НДФЛ, то оно непременно его захочет сейчас перераспределить
3) И все же непонятно, как закрываются лжепереплаты (пример: 29.10 выплачиваются отпускные за переходящий ноябрь-декабрь отпуск, в регистре расчетов по НДФЛ записей нет, так как еще не расчитана ЗП, бух удерживает с отпускных налог и перечисляет в бюджет, период ставит октябрь. В дальнейшем, после расчета ЗП, налоги исчисленный и удержанный с отпускных пойдут соответственно в ноябрь-декабрь). Следуя логике процедуры она сочтет эти суммы переплатой, и так и поставит их на указанный месяц (октябрь), как и типовая обработка.
41. f f (fnv) 08.02.13 12:11
За изложение теории спасибо большое.
Все же я за сохранение максимально типового механизма, т.е., за первый вариант (внешнюю обработку).
42. Екатерина Кетова (kravius12) 17.06.13 11:47
Спасибо за статью, то что надо. 1С ники как всегда "лицом" к народу: все для удобства как говориться. Неужели кто нибудь пишет эти письма о возврате НДФЛ, бред по - моему.
43. Владимир Анашкин (kondrp) 17.06.13 13:08
(42) kravius12,
Всегда рад помочь.
Возможно кто то и пишет, а кто то не парится, а кто то вообще не знает, что надо делать.
А еще возможно уже что то изменилось в законодательстве, статье то уже более года.
Будет время - займусь актуализацией вопроса
fktrc171; +1 Ответить
44. Natalia73 Задор (fktrc171) 30.01.14 15:13
Может актуализировать вопрос, ведь уже опять надо сдавать 2-НДФЛ за 2013г.
45. Владимир Анашкин (kondrp) 06.02.14 10:25
(44) fktrc171,
Добрый день.
А есть какие то изменения или ошибки в функционале ?
Пишите, буду разбираться
46. Владимир Васильев (VladimirKHV) 06.02.14 13:51
(45) kondrp,
В процедуре СформироватьДвиженияПоФизлицу() необходимо все строки с "ОКАТО_КПП" продублировать "ОКТМО_КПП".
То же самое сделать в запросе в Функции ПолучитьТаблицуРаспределенияПоФизлицу()

Хотя... У меня они давно переделанные, поэтому у вас может еще чего где подправить.
Но общий посыл надеюсь понятен, с этого года весь НДФЛ переведен с ОКАТО на ОКТМО
47. Владимир Анашкин (kondrp) 06.02.14 14:14
(46) VladimirKHV,
Извиняюсь :)
Конечно Вы правы насчет ОКТМО. Обязательно посмотрю и обновлю статью
48. Гена Букин (Gen-buk) 19.03.14 15:39
За Статью Спасибо!!! Возможно Сохранение стандартного функционала и добавление существующей "доработки" ?
49. ABVera (ABVera) 28.11.14 08:57
Мда... "Обрадую" расчетчика, спасибо за объяснение как это всё прописано в 1С простым языком!
50. d d (rassss) 26.02.15 08:58
Добрый день.У нас сотруднику за январь начислено 2600 НДФЛ. 12.02.2015 делаем платежку на этого сотрудника на 3000 руб. в регистре появляются сл записи
31.01.2015 январь + 2600
12.02.2015 январь -2600
12.02.2015 январь -400

Почему?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа