gifts2017

Автозаполнение документов "Перечисление НДФЛ в бюджет РФ"

Опубликовал Елена Б (Pin) в раздел Обработки - Обработка документов

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

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

Первоначально обработка  была универсальна в части загрузки данных о платежных поручениях (шапки документов), теперь и в части заполнения табличных частей. Для чего после заполнения шапки обработка вызывает встроенную (штатную) процедуру заполнения табличной части документов для той конфигурации, в которую эти документы загружаем, тем самым решая проблему того, что в разных конфигурациях алгоритмы распределения отличаются из-за отличий в наборе исходных данных, кроме этого многие сами меняют эти алгоритмы - ну и пожалуйста! Для реализации этого функционала необходима 1Сpp.dll (где её взять см. в подсказке в полю "ИнфБаза") в папке с обработкой.

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

Для правильной работы обработки важно, чтобы в разрезе аналитики "Перечисление.ВидыПлатежей.Налог" на 68.1 счете у вас было реальное сальдо, а то случается всякое... 

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

В создаваемых документах ставка налога 13%. 

27/02/12

Исправлена ошибка аналитики 68 счета при загрузке из БухОСНО.

Исправлена ошибка определения кода ОКАТО при загрузке, если Выписка была разнесена не по ПлатПоручениям, а по документам "Операция по расчетному счету" .

********************

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

При расчете НДФЛ перечисленного 1Скины используют коеффициент=СуммаПеречислено / ВсегоУдержано, который определяет какая доля исчисленного (или удержанного) у сотрудника НДФЛ перечислена в бюджет РФ конкретным документом    ПеречислениеНДФЛвБюджет.

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

И теперь самое интересное- ВсегоУдержано . 1Скины берут его из 4-й колонки своей фирменной таблицы         ДоходыВычетыНалогиСотрудников.

                        //  4  колонка содержат суммы НДФЛ исчисленного  нарастающим итогом с начала года, собранного по периоду действия – их же комментарий к этой таблице.

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

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

Начислили человеку отпуск в декабре за январь 10000 руб., НДФЛ  (1300 руб.) с него удержали в декабре, отпускные выплатили в декабре, платежка на всю сумму НДФЛ начисленного в декабре прошла в декабре или январе,  В предлагаемом варианте перечисление НДФЛ в бюджет пройдет с декабрьской или январской датой оплаты за декабрь в размере 1300 руб., т.к. коэффициент в декабре будет  1 – 1300 перечислили, 1300 НДФЛ по регистрации=в Своде за декабрь, все что удержали, то и перечислили, и попадет в регистр НДФЛ прошлого года в декабрь (если это декабрь 2010, то никуда не попадет, т.к. регистра еще не было, а в 1-НДФЛ не было данных по уплате).

А начисленный НДФЛ в размере 1300 руб. пройдет в регистре НДФЛ в январе текущего года. Никаких нарушений это не вызовет. В декабре перечислили НДФЛ – не могли не перечислить, т.к. доход выплачен через кассу, таковы правила, установленные не нами. И по регистру НДФЛ  вроде как возникает переплата. В январе же по регистру проходит исчисленный НДФЛ 1300руб. – по регистру этого года возникает недоплата.

В штатной обработке, если вы оплатили по январскому своду все до копейки, в простейшем случае, когда переходящих начислений кроме указанного больше нет, коеффициент  в январе у вас будет: СуммаПеречислено /(СуммаПеречислено +1300)

Итак, казалось бы ничего сложного: в штатной обработке в процедуре ЗаполнитьТаблицуНалогов находим

НомерКолонки = ?(ЗаполнятьПоНачисленному=1,4,"НУ1");

и меняем 4 на 7 

НомерКолонки = ?(ЗаполнятьПоНачисленному=1,7,"НУ1");

                 //  7  колонка содержат суммы НДФЛ исчисленного нарастающим итогом с начала года, собранного по периоду регистрации. (1С комментарий в Глобальном модуле Функции глСобратьДанныеДляНДФЛ2011)

 Заполнять НДФЛ  при этом будем  «по начисленному».

Вуаля!

Упс… Не работает – тот же результат, что и прежде.

Оказыается, 1Скины уже давно налог по регистрации определяют как:

            Если ((ВР.ВходитВГруппу(ГруппаРасчетов.ВсеУдержанныеНДФЛ)=1) или (ВР.ВходитВГруппу(ГруппаРасчетов.ВсеИсчисленныеНДФЛ)=1))
            и (
ПериодДействия>=НачалоГода) и (ПериодДействия<=ОкончаниеГода) Тогда
               
//налоги
               
НалогиПоРегистрации=1;
            КонецЕсли;

Так было и в глСобратьДанныеДляНДФЛ2005. И они всегда получают налог по регистрации равным налогу по периоду действия. Посмтрела в трассировке НДФЛ для сотрудника с переходящим расчетом - НДФЛ по прериоду регистрации в январе стоит и декабрьский и январский. Это разве правильно?

Я исправила это на:

            Если ((ВР.ВходитВГруппу(ГруппаРасчетов.ВсеУдержанныеНДФЛ)=1) или (ВР.ВходитВГруппу(ГруппаРасчетов.ВсеИсчисленныеНДФЛ)=1))
            и (
ПериодРегистрации>=НачалоГода) и (ПериодРегистрации<=ОкончаниеГода) Тогда
               
//налоги
               
НалогиПоРегистрации=1;
            КонецЕсли;

И получаем ожидаемый, описанный выше результат. Более того, я проверила как теперь считается НДФЛ для сотрудников, имеющих переходящие отпуска с декабря на январь – вроде правильно все считается. Но терзают меня смутные сомнения, а вдруг это у них не ошибка, вдруг в этом есть какой-то очень глубокий тайный смысл?

Можно, конечно, и самим собрать весь НДФЛ в месяце по периоду регистрации, но тогда штатную обработку         ЗаполнитьТаблицуНалогов  придется переделывать гораздо существеннее. А тут все так красиво получается. Кто что думает?

**************

29/02/12

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

Кроме этого, настоятельно рекомендуется отключить в бухгалтерии, из которой происходит загрузка данных, "Запрос подтверждения выхода из программы" (Сервис-Индивидуальная настройка) для того пользователя, под которым происходит авторизация в OLE-базе.

Организациям, у которых в течении года изменился ОКАТО.

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

15/03/12

Признак использования ручного сальдо. Если флажек не установлен, то сальдо будет определено автоматически.
Используется для тех случаев, когда у вас на 68 счете "болтается" сальдо в несколько копеек, которое при распределении учитывать не следует.

05/04/12

Для получения возможности использования способа распределения "по удержанному" в ЗиК рекомендую в функции ЗаполнитьТаблицуНалогов() модуля формы документа ПеречислениеНДФЛвБюджет приведенный ниже фрагмент исправить следующим образом, т.к. сумма НДФЛ удержанного в 10-м столбце полностью соответствует сумме перечисленного налога, если вы перечисляете "по удержанному" (из свода проводок), нежели "причесанная" сумма для форм отчетности в столбце "НУ1":

        Если (Ставка = Ставка13) или (Ставка = Ставка30) Тогда

           
//НомерКолонки = ?(ЗаполнятьПоНачисленному=1,4,"НУ1");
           
НомерКолонки = ?(ЗаполнятьПоНачисленному=1,7,10); //Исправление для корректного распределения

           
СуммаНалогаУдержанная  = Окр(ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,НомерКолонки));
            Если
НомерМесяца>1 Тогда
               
СуммаНалогаУдержанная  = СуммаНалогаУдержанная - Окр(ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,НомерКолонки));
            КонецЕсли;

        КонецЕсли;

 

 

       

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
UplataNDFLOLE.ert
.ert 83,50Kb
16.03.12
68
.ert 83,50Kb 68 Скачать
1CPP.dll
.dll 1,91Mb
29.02.12
19
.dll 1,91Mb 19 Скачать

См. также

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Подписаться Добавить вознаграждение

Комментарии

1. W K (kwg) 29.02.12 09:45
Ваша обработка заявлена для Бух7.7, однако при запуске в Типовой Бух 536 Ваша обработка выдает ошибку "ВидСубкДляЗапроса= ВидыСубконто.ВидыПлатежей;
{E:\2-РЭП\0-БУХ-РЭП-2010\EXTFORMS\UPLATANDFLOLE.ERT(51)}: Поле агрегатного объекта не обнаружено (ВидыПлатежей)". Очевидно, на самом деле она делалась для УСН. Но и в ней вылезает ошибка "Неудачная попытка загрузить 1CPP.dll. Выбор из списка ИБ отключен". И никакая подсказка не работает.
2. Елена Б (Pin) 29.02.12 11:37
(1)Эту ошибку я исправила. Если нет желания качать исправленную обработку, то вот Вам исправленная часть кода (правда, по сравнению с вашим вариантом обработки у выложенной на данный момент много других изменений):
Если ИдКонфOLE="BASUOR" Тогда
Если
СокрП(Каталог)=КаталогИБ() Тогда
ВидСубкДляЗапроса= ВидыСубконто.ВидыПлатежей;
СубкДляЗапроса=Перечисление.ВидыПлатежей.Налог;
Иначе
ВидСубкДляЗапроса= БазаOLE.ВидыСубконто.ВидыПлатежей;
СубкДляЗапроса=БазаOLE.Перечисление.ВидыПлатежей.Налог;
КонецЕсли;
Иначе
Если
СокрП(Каталог)=КаталогИБ() Тогда
ВидСубкДляЗапроса= ВидыСубконто.ВидыПлатежейВБюджет;
СубкДляЗапроса=Перечисление.ВидыПлатежейВБюджет.Налог;
Иначе
ВидСубкДляЗапроса= БазаOLE.ВидыСубконто.ВидыПлатежейВБюджет;
СубкДляЗапроса=БазаOLE.Перечисление.ВидыПлатежейВБюджет.Налог;
КонецЕсли
КонецЕсли;

а у Вас, если мне память не изменяет просто:
Если СокрП(Каталог)=КаталогИБ() Тогда
ВидСубкДляЗапроса= ВидыСубконто.ВидыПлатежей;
СубкДляЗапроса=Перечисление.ВидыПлатежей.Налог;
Иначе
ВидСубкДляЗапроса= БазаOLE.ВидыСубконто.ВидыПлатежей;
СубкДляЗапроса=БазаOLE.Перечисление.ВидыПлатежей.Налог;
КонецЕсли;



Последнюю версию 1cpp.dll берем: вот здесь
3. Анна Денисова (aimerlive) 29.02.12 15:22
Спасибо, помогает разобраться в происходящем, особенно если приходиться работать с несколькими типами конфигураций.
4. W K (kwg) 29.02.12 15:36
(2) Pin,
Спасибо за оперативное реагирование. Если это возможно, я бы лучше скачал окончательный вариант, на редактирование нет времени.
5. Елена Б (Pin) 29.02.12 17:14
(4)Как понимать "если это возможно"?
6. Android Android (Rodriguezz) 01.03.12 09:08
Что то я не совсем понял. В документ перечисление НДФЛ будут попадать все сотрудники, которые были в выплате зарплаты? Автоматически или же нет?
7. W K (kwg) 01.03.12 09:46
(5) Pin, это понимать так:
где взять окончательный (исправленный) вариант? Снова скачать тот же файл с Вашей публикации?
8. W K (kwg) 01.03.12 09:48
(2) Pin,
"Кроме этого, настоятельно рекомендуется отключить в бухгалтерии, из которой происходит загрузка данных, "Запрос подтверждения выхода из программы" (Сервис-Индивидуальная настройка) для того пользователя, под которым происходит авторизация в OLE-базе." - это нужно сделать только на период загрузки данных или насовсем?
9. W K (kwg) 01.03.12 10:04
Обработка создает документы автоматически по одной ставке - 13% вне зависимости от фактичекой ставки, по к-ой перечислялся НДФЛ. Есть сотрудники, получающие как зарплату (13% НДФЛ), так и дивиденды (9% НДФЛ) от деятельсти организации. Как с этим быть?
10. Елена Б (Pin) 01.03.12 12:27
(6)Попадание сотрудников в документ определено штатными средствами Вашей конфигурации - применение обработки тут ничего не меняет, лишь дает исходные данные для штатного алгоритма распределения и осуществляет это распределение штатными средствами или с предлагаемыми изменениями, если вы их сами внесете в штатные процедуры и функции Вашей конфигурации. По сути, обработка пытается сделать за Вас ту работу, которую Вы должны были бы проделать вручную.
(7)Ну конечно. В публикации выложен файл со всеми изменениями и есть даже история этих изменений в описании публикации!
(8)На период загрузки, чтобы OLE-база у Вас освобождалась сразу, а не через 60сек. после выполнения загрузки из нее. Т.е. это только для OLE-варианта загрузок, когда вы грузите данные из одной ИБ в другую, напр. из Бух в ЗиК.
(9)Пока нет идей. В бухгалтерии как определить какие проводки по 13%, а какие по 9%?
11. JER MARK (JER_MARK) 13.03.12 06:31
Вы разобрали случай когда заполняется по начисленному, а когда по удержанному?
12. Елена Б (Pin) 15.03.12 17:27
(11)Из моей практики следует, что НДФЛ начисленный и НДФЛ удержанный отличаются только у тех сотрудников у кого НДФЛ начисленный <0, т.к. в этой моей практике не встречались пока организации с задержкой выплаты з/платы. С точки же зрения штатных алгоритмов распределения этой разницы нет - при любом способе распределения что по начисленному, что по удержанному сотрудник с НДФЛ<=0 в распределение не включается. Таким образом у меня всегда эти два распределения были идентичны. Отсюда вывод - при предложенном мною изменении алгоритма распределение по удержанному остается штатным распределением по периоду действия.
И на сладкое вот вам случай из реальной жизни. В феврале 2012 расчетчик делает перерасчет б/листа за декабрь 2011 (начислила по 100%, а надо было 60%). В феврале 2012 НДФЛ за февраль 900 руб., НДФЛ за декабрь -700 (минус 700)руб., НДФЛуд за февраль 900 руб, НДФЛуд за декабрь 0 руб. Фактически в платежку по НДФЛ за февраль 2012 по этому сотруднику попало 200 руб.
Попробуйте сами определить как распределится НДФЛ по этому сотруднику при штатном алгоритме распределения и разнообразных нештатных.
13. Елена Б (Pin) 18.03.12 21:06
Вот в этой публикации приводится обоснование причины распределения НДФЛ по периоду регистрации. Приведу текст письма Минфина, на который там дается ссылка:
МИНИСТЕРСТВО ФИНАНСОВ РОССИЙСКОЙ ФЕДЕРАЦИИ

ПИСЬМО
от 6 марта 2008 г. N 03-04-06-01/49

Департамент налоговой и таможенно-тарифной политики рассмотрел письмо банка по вопросу определения даты получения физическим лицом дохода в виде оплаты отпуска и в соответствии со ст. 34.2 Налогового кодекса Российской Федерации (далее - Кодекс) разъясняет следующее.
Подпунктом 1 п. 1 ст. 223 Кодекса определено, что при получении доходов в денежной форме дата фактического получения дохода определяется как день выплаты дохода, в том числе перечисления дохода на счета налогоплательщика в банках.
В соответствии с п. 2 ст. 223 Кодекса при получении дохода в виде оплаты труда датой фактического получения налогоплательщиком такого дохода признается последний день месяца, за который ему был начислен доход за выполненные трудовые обязанности в соответствии с трудовым договором.
Что касается оплаты отпуска, то данная выплата не является выплатой дохода за выполнение трудовых обязанностей, поскольку в соответствии со ст. ст. 106 и 107 Трудового кодекса Российской Федерации отпуск - это время, в течение которого работник свободен от исполнения трудовых обязанностей.
Дата фактического получения доходов в виде оплаты отпуска определяется в соответствии с пп. 1 п. 1 ст. 223 Кодекса как день выплаты этих доходов, в том числе перечисления дохода на счета налогоплательщика в банках, независимо от того, за какой месяц она была начислена.
С учетом изложенного указанные доходы отражаются при заполнении налоговой карточки по учету доходов и налога на доходы физических лиц (форма N 1-НДФЛ) и справки о доходах физического лица (форма N 2-НДФЛ) в тех месяцах налогового периода, в которых эти доходы были выплачены.
Указанная позиция Минфина России доведена до ФНС России для учета в работе.


От себя замечу, что и оплата больничного тоже "не является выплатой дохода за выполнение трудовых обязанностей", и, как следствие, и к ней применимо положение пп. 1 п. 1 ст. 223 Кодекса.

Справка 2-НДФЛ с доходами по регистрации вот в этой публикации.
14. oxygen-so (oxygen-so) 26.03.12 16:42
Добавлю еще до кучи.
В релизе ЗиК 322 в глобальном модуле в функции глСобратьДанныеДляНДФЛ2011() нужно закомментировать стр.35888:

Налог13у = Макс(Налог13и,Налог13у); // учтем ситуацию, когда в месяце удержали больше чем начислили

иначе в случае, если отсутствуют выплаты в данном месяце (Налог13у=0), то удержанный налог неправильно становится равным исчисленному.
15. Елена Б (Pin) 26.03.12 21:30
(14)Это применимо для тех, кто распределяет "по удержанному".
16. oxygen-so (oxygen-so) 27.03.12 08:32
(15) Pin, верно.
Забыл это уточнить.
17. Елена Б (Pin) 27.03.12 19:39
(14) Этот механизм, из которого Вы привели строку, вообще говоря, был задуман для того, чтобы "причесать" формы отчетности, т.е. сделать так, чтобы ни в одном из месяцев удержанный налог не превышал исчисленный.
Но то, как это реализовано у 1С говорит о том, что писали этот кусок явно на пьяную голову.
Правда, и приведенного Вами изменения мало, чтобы заставить его работать хорошо: например, при изменении налоговой базы задним числом в сторону уменьшения (добавили вычет и т.п.) приведенного Вами изменения недостаточно. Но это уже совсем другая история.
18. oxygen-so (oxygen-so) 28.03.12 09:12
(17) Pin, "Чтобы заставить его работать хорошо", надо его, наверное, полностью переписать :-) Но такая задача не стояла. Стояла задача разобраться, почему при заполнении документа "Перечисление НДФЛ в бюджет" по удержанному налогу у некоторых людей по году сумма перечисленного налога оказывается меньше удержанного, хотя перечисляли с запасом всегда. Вот и оказалось, что если начисления были в январе, а выплаты только в феврале за январь, то удержанный налог из-за того "Макса()" становится вместо нуля таким же, как исчисленный.
На полноту исправлений в том механизме я не претендую, :-) поэтому и привожу найденное здесь, в комментарии.
Может, кому-то это поможет сэкономить какое-то время.
19. Елена Б (Pin) 01.04.12 12:58
(11)(14) При распределении "по удержанному" настоятельно рекомендую внести такие изменения.
20. Дониэла Иванова (Доня) 23.11.12 10:19
Огромное спасибо.
Запустила обработку, проверила, все работает как должно.
21. Елена Б (Pin) 23.11.12 18:54
(20) Доня, мне кажется или Вы не то скачали, что хотели? Это старая обработка однако.Новая тут находится.