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

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

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

Учет перечисленного в бюджет НДФЛ в разрезе физических лиц в программе необходимо вести с целью автоматического формирования отчета «Регистр налогового учета по НДФЛ» и заполнения документов «Справка 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 Тогда 

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

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

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

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

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

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

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

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

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

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

КонецЕсли;   

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

 

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

  

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

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

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

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

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

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

КонецЕсли;

 

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

 

 

 

50 Comments

  1. kondrp

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

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

    Reply
  2. director04

    Первая часть статьи мне показалась вполне интересной, за что плюс, а вот вторая часть, с запросами, какая-то мутная.

    Нипонятно, куда их лепить, и для каких целей.

    Видно, именно в этих запросах автор подразумевал свое ноухау. А вот в чем оно — объяснить забыл.

    Стоило бы более подробно показать штатные движения регистра. А так же, движения регистра по вашим исправлениям. При этом вполне можно было бы приложить скрины движений. А так же скрины отчетов по данному регистру.

    Тогда бы вот, был плюс вполне заслуженный.

    Reply
  3. kondrp

    (1) director04,

    Не вопрос, скрины регистров накопления при работе типового и измененного механизма сделаю.

    По поводу запросов:

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

    Спасибо за конструктивную критику.

    Reply
  4. kondrp

    (3) artbear,

    Спасибо за комментарий. Это моя первая публикация, а когда сам делаешь — думаешь и остальным все понятно.

    Сегодня вечером пересмотрю текст второй части статьи

    Reply
  5. mvmaxim

    Нужная штука, возможно, в типовых рализах появится что-то подобное. Сделал немного раньше подобную вещь, только перенес в документе «Перечисление НДФЛ в бюджет РФ» реквизит «МесяцНлоговогоПериода» из шапки в табличную часть. Ну и соответственно, обработку распределения сумм переделал. Тогда можно одним документом при распределении сумм перечисленного НДФЛ закрыть «хвосты» предыдущего месяца/ев и распределить за текущий. В Вашем запросе, по-моему, нет необходимости использовать конструкцию НАЧАЛОПЕРИОДА(МесяцНалоговогоПериода, МЕСЯЦ), т.к. там всё равно только первые числа месяца стоят. Как считаете, оправдано ли метедологически указание реквизита МесяцНалоговогоПериода в табличной части, или это я переборщил?

    Reply
  6. kondrp

    (5) mvmaxim,

    В первом варианте документа у меня тоже был реквизит в табличной части. Но бухи начали говорить, что им непонятно почему по одному работнику несколько строк, да и типовой механизм распределения в форме нужно было менять + добалять реквизиты. Поэтому пришлось изменить подход: в форме все заполняется по типовому механизму, а весь функционал по распределению вынесен в модуль объекта — подальше от глаз бухгалтерии.

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

    По поводу методологии: насколько я понимаю рекомендации методистов 1С, в случае если была недоплата, то применение вашего механизма, равно как и моего, оправдано, т.к. сокращает количество документов. Но если была переплата, то согласно письму ФНС от 19 октября 2011 г. N ЕД-3-3/3432 сумма переплаты не является налогом и ее нужно возвращать из налоговой. Честно говоря, я себе слабо представляю бухгалтера, который из-за каждых 5 или 10 рублей переплаты будет писать письма в налоговую, да и налоговой от этих писем легче не станет, эти факты ведь нужно еще как то проверить. Очень надеюсь, что это письмо о переплатах будет отменено, либо будет установлен какой то предел, в рамках которого можно будет письма не писать, а просто зачесть эту переплату в следующих месяцах.

    Reply
  7. espero2000

    После такого изменения типовую конфигурацию штатно не обновить…

    Reply
  8. kondrp

    (7) espero2000,

    С поддержки конфигурацию полностью можно не снимать, нужно только включить возможность вносить изменения. При этом конфигурация продолжит обновляться штатными средствами, а описанный мною функционал можно будет добавить в конфигурацию после обновления.

    Reply
  9. evgalex

    Статья хорошая, главное своевременная. Не подскажете, работает ли такая система при перечислении НДФЛ 4-6 платежками в течение месяц.

    Reply
  10. kondrp

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

    Например: от 02.02.2012 введена платежка №1. Если после ввода платежки №1 ввести платежку №2 от 01.02.2012, то платежка №2 испортит распределение остатков платежки №1 и суммы по платежке №1 нужно будет перераспределять заново.

    Reply
  11. echo77

    ИМХО, внешняя обработка лучше — т.к. не заставляет вносить изменения в конфигурацию. Думаю, прийдется писать свою «закрытие регистра перечисления НДФЛ в бюджет». Я думаю, это не сложно: получить остатки за указанный месяц, в разрезе ОКАТО/КПП, организации, ставки

    Reply
  12. kondrp

    (11) echo77,

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

    По поводу написания собственной обработки, ИМХО, если есть желание изобрести еще один велосипед — конечно можно. А можно воспользоваться готовыми обработками, которых тут пруд пруди.

    Вот например:

    Автозаполнение таблицы НДФЛ перечисленного;

    Пакетное формирование документов «Перечисление НДФЛ в бюджет»;

    Reply
  13. iotkin

    Написано доступно и понятно. А главное актуально для нашего предприятия. Огромное спасибо!!!

    Reply
  14. Cobranet123

    kondrp,

    Что-то не совсем верно отрабатывает алгоритм приведенный вами, либо я не совсем понимаю его.

    У меня получается:

    за январь у сотрудника начислен НДФЛ на 318 руб. платежка была в феврале (в платежке переплатили), когда документом «Перечисление НДФЛ в бюджет» делаю распределение сумм по сотрудникам, то на этого сотрудника программа ставит 598 руб. По идее, по вашему алгоритму (судя из описания) должно было произойти следующее:

    Движения в регистре:

    январь сумма 318

    февраль сумма 280

    по этому сотруднику, Верно понимаю? но когда доходит вот до этого куска кода,

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

    Показать

    то происходит

    МесяцНалоговогоПериода = НачалоМесяца(МесяцНалоговогоПериода),ведь у нас в документе то стоит месяц налогового периода — январь!и в регистре создаются следующие строки:

    январь сумма 318

    январь сумма 280

    Reply
  15. kondrp

    (14) Cobranet123,

    Здесь вы пытаетесь скрестить типовой и измененный механизм. В статье я это не упомянул, но реквизит «МесяцНалоговогоПериода» из формы документа я убрал и всегда устанавливаю его равным текущему месяцу (в котором платят). В этом случае алгоритм отрабатывает верно.

    В вашем случае месяц налогового периода должен быть «февраль», либо можете изменить в модуле строку: «Движение.МесяцНалоговогоПериода = МесяцНалоговогоПериода» на «Движение.МесяцНалоговогоПериода = НачалоМесяца(Дата)».

    Reply
  16. kng67

    Статья актуальная. Спасибо автору!

    А нашим «писакам» законов видно нечего делать, что добавили еще одну головную боль для бухгалтеров-расчетчиков. Зачем «перечислено» по сотрудикам?! Да, еще хотя бы «законотворцы» методологию распределения перечисленных сумм описали бы подробно. А то: дай то — не знаю что.

    Спасибо за функционал, но не хотелось бы типовую «портить». Попробую сегодня пару обработок с Infostart. Посмотрим, что получится.

    А 1С могла бы поднапрячься и написать более гибкий механизм распределения!

    Reply
  17. ad-lib

    Если я меняю конфигурацию, то после каждого обновления мне придется это повторять?

    Reply
  18. kondrp

    (17) ad-lib,

    Это является недостатком изменных конфигураций. Все изменения нужно тянуть за собой при обновлениях.

    В данный момент я работаю над тем как развить представленный мною функционал, а заодно и вынести его из модуля объекта во внешнюю обработку.

    Reply
  19. kvp

    Пыталась внедрить в конфигурацию ЗУП, но что-то неверно работает распределение: если перечисляем больше, чем удержано за месяц, получаем по всем сотрудникам по две-три строки, например:

    февраль Панюков 2200 (действительно, за февраль)

    февраль Панюков 150 (это уже должно падать на март).

    Reply
  20. kondrp

    (19) kvp,

    Остатки которые превышают задолженность садятся в тот месяц, в который входит дата платежа. Если у вас там стоит дата из февраля, то конечно остаток переплаты сядет на февраль.

    Если же я Вас неправильно понял и ошибка не в этом, распишите поподробнее.

    Reply
  21. kvp

    (20) Документ от 07 марта 2012г., дата платежа тоже 07 марта, платеж за февраль

    Reply
  22. kondrp

    (21) kvp,

    Хорошо. Я еще раз перепроверю модуль

    Reply
  23. cerg110

    Спасибо за развернутую статью. очень хорошо и понятно все расписано.

    Reply
  24. kondrp

    (23) cerg110,

    Если понравилась, можете отметить +. Буду Вам благодарен.

    Reply
  25. NPMar

    Очень хорошая публикации. Спасибо большое. Тем более очень все понятно, как внести изменения. И самое главное — не нужно ничего скачивать! Думаю, что такое распределение более правильное. Да и при обновлении не сложно будет добавить в конфигурацию.

    Reply
  26. alexsiswx

    У меня такое чувство,что правила по НДФЛ меняются каждый месяц или это мои бухи что-то мудрят,что не месяц, то проблемы с НДФЛ

    Reply
  27. alexsiswx

    Эксперимент проведу

    Reply
  28. kondrp

    (27) alexsiswx,

    Сообщите о результатах. Думаю будет полезно, тем более, что публикация будет развиваться

    Reply
  29. aplymaz

    Спасибо большое, помогло на бюджетной конфигурации ( ЗБУ )

    Reply
  30. ZVN

    Проработал статью. По регистру накоплений НДФЛ в бюджет в нескольких месяцах получилась переплата и недоплата по сотрудникам имеющих переходящий отпуск. После применения Вашего метода все стало на место. Но необходимо обязательно перепроводить все взаимосвязанные документы.Объяснил все Главбуху (она у нас ведет зарплату)она согласна с этим, но как всегда спустила Полкана на 1С «…не в состоянии сделать нормальный расчет…».

    Статья хорошая и полезная.

    Единственно не нашел обещанную вами обработку по этой статье.

    Если ее нет попробую другие или на основе ваших модулей сделаю свою.

    Reply
  31. kondrp

    (30) ZVN,

    Обработку и правда хочу сделать. Вот только времени пока не хватает на все. Думаю после закрытия квартала вернусь к этому вопросу.

    Reply
  32. ZVN

    (31) В принципе пробовал обработку по ссылке http://infostart.ru/public/118120/

    Все довольно просто и красиво, но как всегда хочется лучшего.

    Reply
  33. kondrp

    (32) ZVN,

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

    Reply
  34. ZVN

    (33)Я из текста фрагмента модуля так и понял. Надо чтобы в момент формирования документа все нюансы расчета НДФЛ учитывались. А то нет защиты от дурака (Бухгалтера говорят «..Программа должна сама все считать и разносить нам и без этого работы хватает..». Я тоже попробую что нибудь на Вашей основе сварганить.

    Reply
  35. kondrp

    (34) ZVN,

    Если будут идеи и предложения — пишите.

    Reply
  36. maxim305

    «..Программа должна сама все считать и разносить нам и без этого работы хватает..»

    (34) ZVN, Я так часто слышу эти слова, так смешно бывает аж горько!

    Reply
  37. Baibolaika

    Добрый день! Подскажите, пожалуйста, откуда берется запись СуммаПеречислено?

    Reply
  38. kondrp

    (37) Baibolaika,

    Не совсем понял вопрос.

    Если Вы хотите узнать откуда попадает значение в параметр «СуммаПеречислено» функции «формироватьДвиженияПоФизлицу», то это значение из колонки «Сумма» табличной части «СотрудникиОрганизации».

    Если что то другое — распишите поподробнее.

    Reply
  39. Baibolaika

    извиняюсь за не корректный вопрос

    Дело в том, что у меня совсем другая конфигурация (Управление Торговлей). Но Вы написали очень хороший алгоритм..и хотела бы попробовать приделать его себе. Есть два документа, в табличной части первого документа находится график по месяцам и количество которое нужно отгрузить, а второй документ списывает его. Мне нужно распределить остатки товара в разрезе месяцев…помогите понять как будет выражаться СуммаПеречислено в таком варианте?

    Reply
  40. VladimirKHV

    Все конечно хорошо, и по месяцам раскидывать должно отлично, но никак не учтен момент заполнения табличных частей.

    Типовым заполнением, как вы сами верно подметили, переплаты с прошлых периодов не учитываются, в итоге сумма платежки распределяется по людям не верно.

    И дальнейшее распределение этих неверных сумм по месяцам приведет к еще большей путаннице по уволенным и декретникам (замучаешься выравнивать их налоги под конец года)

    Я у себя автозаполнение подправил следующим образом, в Автозаполнение() изменил условие в строчке

    И МесяцНалоговогоПериода >= &МесяцНалоговогоПериода

    а в параметрах МесяцНалоговогоПериода сделал началом года

    минус в том, что перед перезаполнением документ надо обязательно делать непроведенным

    ЗЫ. Посмотрел внимательно обработку.

    1) Установка КонцаДня в параметре период запроса, как тут выше верно подметили, явно лишняя

    2) Остатки собираются за все периоды, то есть если где-то в 20хх лохматом году было неверное распределение НДФЛ, то оно непременно его захочет сейчас перераспределить

    3) И все же непонятно, как закрываются лжепереплаты (пример: 29.10 выплачиваются отпускные за переходящий ноябрь-декабрь отпуск, в регистре расчетов по НДФЛ записей нет, так как еще не расчитана ЗП, бух удерживает с отпускных налог и перечисляет в бюджет, период ставит октябрь. В дальнейшем, после расчета ЗП, налоги исчисленный и удержанный с отпускных пойдут соответственно в ноябрь-декабрь). Следуя логике процедуры она сочтет эти суммы переплатой, и так и поставит их на указанный месяц (октябрь), как и типовая обработка.

    Reply
  41. fnv

    За изложение теории спасибо большое.

    Все же я за сохранение максимально типового механизма, т.е., за первый вариант (внешнюю обработку).

    Reply
  42. kravius12

    Спасибо за статью, то что надо. 1С ники как всегда «лицом» к народу: все для удобства как говориться. Неужели кто нибудь пишет эти письма о возврате НДФЛ, бред по — моему.

    Reply
  43. kondrp

    (42) kravius12,

    Всегда рад помочь.

    Возможно кто то и пишет, а кто то не парится, а кто то вообще не знает, что надо делать.

    А еще возможно уже что то изменилось в законодательстве, статье то уже более года.

    Будет время — займусь актуализацией вопроса

    Reply
  44. fktrc171

    Может актуализировать вопрос, ведь уже опять надо сдавать 2-НДФЛ за 2013г.

    Reply
  45. kondrp

    (44) fktrc171,

    Добрый день.

    А есть какие то изменения или ошибки в функционале ?

    Пишите, буду разбираться

    Reply
  46. VladimirKHV

    (45)

    В процедуре СформироватьДвиженияПоФизлицу() необходимо все строки с «ОКАТО_КПП» продублировать «ОКТМО_КПП».

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

    Хотя… У меня они давно переделанные, поэтому у вас может еще чего где подправить.

    Но общий посыл надеюсь понятен, с этого года весь НДФЛ переведен с ОКАТО на ОКТМО

    Reply
  47. kondrp

    (46) VladimirKHV,

    Извиняюсь 🙂

    Конечно Вы правы насчет ОКТМО. Обязательно посмотрю и обновлю статью

    Reply
  48. Gen-buk

    За Статью Спасибо!!! Возможно Сохранение стандартного функционала и добавление существующей «доработки» ?

    Reply
  49. ABVera

    Мда… «Обрадую» расчетчика, спасибо за объяснение как это всё прописано в 1С простым языком!

    Reply
  50. rassss

    Добрый день.У нас сотруднику за январь начислено 2600 НДФЛ. 12.02.2015 делаем платежку на этого сотрудника на 3000 руб. в регистре появляются сл записи

    31.01.2015 январь + 2600

    12.02.2015 январь -2600

    12.02.2015 январь -400

    Почему?

    Reply

Leave a Comment

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