Для специалиста 1С : Работаем с АшиПками, релиз 281 и 282 1С 7.7 "БухУчет" , Украина, 2011 г. Дополнение.

03.03.11

Задачи пользователя - Адаптация типовых решений

Выявлена ошибка в расчете НДФЛ.
Она проявляется, когда есть две ставки налогов - 15 и 17 %.

В продолжение темы от kompas-dm (//infostart.ru/public/81660/) столкнулся с такой бедой:

Заказчик утверждает, что при расчете НДФЛ в случае, если начисленная зарплата превышает макимальную сумму, которая может облагаться ЕСВ (на 01.01.2011 это 14115.00 грн), то в таком случае суммой, которая облагается НДФЛ по ставке 17% должна быть сумма превышения за вычетом разницы между максимальной суммой обложения ЕСВ и пределом НДФЛ, умноженной на ставку налога ЕСВ.

По-моему, как-то сумбурно объяснил, лучше поясню на примере (пример выдан заказчиком).

Максимальная сумма для обложения ЕСВ = 14115.00 грн

Предел НДФЛ = 9410.00 грн

Начислено сотруднику = 28950.00 грн

Считаем:

1. 9410.00 - (9410.00 * 3,6%) = 9071.24

2. 28950.00 - 9410.00 = 19540.00

3. 19540.00 - [(14115.00 - 9410.00) * 3,6%] = 19370.62

4. (9071.24 * 15%) + (19370.62 * 17%) = 4653.70 - это сумма подоходного налога.

Для реализации вышесказанного пришлось маленько дописать код, который предложил kompas-dm

    // определим максимальную базу, с которой удерживается ЕСВ
   
НалогЕСВ = СоздатьОбъект("Справочник.НалогиОтчисления");
   
НалогЕСВ.НайтиПоКоду("ЕдиныйВзнос");
    Если ПустоеЗначение(
НалогЕСВ) = 1 Тогда
       
ПараметрБазы = НалогЕСВ.Дополнительно.Получить(КонецПериода);
        Если Найти(
ПараметрБазы,"Макс. база") > 0 Тогда
           
СимволРавно = Найти(ПараметрБазы,"=");
           
МаксимальнаяБазаЕСВ = Число(Сред(ПараметрБазы,СимволРавно + 1));
        Иначе
           
МаксимальнаяБазаЕСВ = 999999999999.99;
        КонецЕсли;
    Иначе
       
МаксимальнаяБазаЕСВ = 999999999999.99;
    КонецЕсли;

   
// если начисленная ЗП превышает максимум обложения ЕСВ, то считать надо не так (по утверждению заказчика)
    // в этом случае ЕСВ должно удерживаться только с разницы между максимальной суммой,
    // которая облагается ЕСВ и пределом НДФЛ
   
НачисленоВсего = ОблагаемаяБаза + Вычеты;

    Если (
НачисленоВсего <= МаксимальнаяБазаЕСВ) Тогда

       
// при расчете аванса НачисленоВсего может равняться нулю, следовательно, выскочит
        // ошибка "Деление на 0". Предупредим этот нюанс :)
       
Если НачисленоВсего <> 0 Тогда
           
ПределНДФЛ = ноНДФЛ.Предел.Получить(КонецПериода);
           
СуммаВпределе= Мин(НачисленоВсего,ПределНДФЛ);

           
КоэфЕснВпределе=СуммаВпределе/(НачисленоВсего); // здесь "опасный" участок
           
КоЭфЕСнЗаПределом =1-КоэфЕснВпределе;

           
ЕСНвПределе=окр(вычеты* КоэфЕснВпределе,2);
           
ЕСНзаПределом=вычеты-ЕСНвПределе;

           
Подоходный15= окр((Мин(НачисленоВсего,ПределНДФЛ)-ЕСНвПределе)*ноНДФЛ.Ставка.Получить(КонецПериода),2);
           
Подоходный17=окр((Макс(НачисленоВсего-ПределНДФЛ,0)-ЕСНзаПределом)*ноНДФЛ2.Ставка.Получить(КонецПериода),2);

           
Подоходный=Подоходный15+Подоходный17;
        КонецЕсли;

    Иначе

       
// получим пределы и ставки
       
ПределНДФЛ  = ноНДФЛ.Предел.Получить(КонецПериода);
       
Ставка15    = ноНДФЛ.Ставка.Получить(КонецПериода);
       
Ставка17    = ноНДФЛ2.Ставка.Получить(КонецПериода);
       
СтавкаЕСВ   = ноЕСВСотр.Ставка.Получить(КонецПериода);

       
// начинаем считать
       
База15 = ПределНДФЛ - (ПределНДФЛ * СтавкаЕСВ);
       
База15 = Окр(База15,2);

       
СуммаПревышения = НачисленоВсего - ПределНДФЛ;

       
База17 = СуммаПревышения - СтавкаЕСВ * (МаксимальнаяБазаЕСВ - ПределНДФЛ);
       
База17 = Окр(База17,2);

       
Подоходный15 = Ставка15 * База15;
       
Подоходный17 = Ставка17 * База17;

       
Подоходный15 = Окр(Подоходный15,2);
       
Подоходный17 = Окр(Подоходный17,2);

       
Подоходный = Подоходный15 + Подоходный17;

    КонецЕсли;


Этот код вставляется в документе "Начисление ЗП" в модуле формы документа в процедуре РассчитатьСтроку() вместо вот этого куска:

    // с 2011 года по схеме
   
ПределНДФЛ ноНДФЛ.Предел.Получить(КонецПериода);
   
Подоходный = Мин(ОблагаемаяБаза,ПределНДФЛ)*ноНДФЛ.Ставка.Получить(КонецПериода) +
                 Макс(
ОблагаемаяБаза-ПределНДФЛ, 0)*ноНДФЛ2.Ставка.Получить(КонецПериода);

PS. Не спрашивайте меня, где это люди такую официальную зарплату получают, самому завидно, блин :)

 


См. также

Улучшенная обработка "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7

Печатные формы Адаптация типовых решений Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Приятное улучшение обработки "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7 для более комфортной работы с "любимой семерочкой".

1 стартмани

04.02.2022    3200    1    igor7777    0    

3

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

Адаптация типовых решений Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    19669    Юджин58    39    

5

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Адаптация типовых решений Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Управленческий учет Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    6009    ksnik    14    

3

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Операции по ВЭД Адаптация типовых решений Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Бухгалтерский учет НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    11816    AndKovalchuk    0    

1

Предельные базы взносов в ПФР, ФСС, ФФОМС 2015 в 1С: Бухгалтерия 7.7

Зарплата Адаптация типовых решений Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Реализация Постановления Правительства РФ 1316 от 04.12.14 для типовой конфигурации "Бухгалтерский учет 7.7" рел. 7.70.590

1 стартмани

31.12.2014    23928    9    Sergey1CSpb    2    

0
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. buhkiller@mail.ru 24.02.11 23:35 Сейчас в теме
:D Таких больших белых зп две сотни на всю страну.
2. script 128 25.02.11 01:18 Сейчас в теме
Такие ЗП получают гос. служащие на гос. предприятиях.
Я не шучу - отвечаю за свои слова. Имею клииентов - гос. предприятия. ЗП в 26 000 для глав. буха нормальное дело.
Правда человек на одном месте должен отсидеть более 10 лет.

По-поводу расчета все верно. Это правильный алгоритм, который 1С почему то упорно игнорирует.
Правда для этого есть основания, но это тема отдельного разговора.
И это еще не все ошибки.... в новых релизах в ЗП. Добавьте в поле Мат помощь ВР суммы, проведите документ, посмотрите проводки по 651 ЕСВ ФОТ и посмотрите Свод отчислений в фонды - будете удивлены.
3. kompas-dm 780 25.02.11 09:52 Сейчас в теме
(0)И что ВЫ дополнили .... Эта ошибка выялена ранее здесь
4. sipoju 25.02.11 12:01 Сейчас в теме
Хоть разница между рассчетом в 1С и этим не большая, но переписал под Ваш вариант
Он кстати был описан в одном из выпусков журнала ДТ-КТ с ссылкой на письмо ГНАУ
5. Damian 909 25.02.11 18:22 Сейчас в теме
kompas-dm пишет:
(0)И что ВЫ дополнили .... Эта ошибка выялена ранее здесь

Уважаемый kompas-dm! Я нисколько не претендую на Ваше первенство в этом вопросе. Просто Ваш алгоритм в примере, который был предоставлен заказчиком, терял где-то 3 гривны с копейками. Для бухгалтера это было неприемлимо. Поэтому пришлось доработать.
6. Analitik 02.03.11 13:04 Сейчас в теме
Такой способ расчета явно и однозначно (что подтверждается всеми специалистами, кроме ДПА) противоречит Налоговому кодексу Украины.
Но в любом случае проблема решается установкой Предела = не 9410.00, а 9410.00 - (9410.00 * 3,6%) и все!!!
Тем более, что это полностью соответствует параноидальным рекомендациям ДПА для параноидальных бухгалтеров (т.е. берем по максимуму, если же конечно у Вас в штате нет специальных категорий работников)
7. Damian 909 03.03.11 23:00 Сейчас в теме
Вскрылась незначительная, но неприятная ошибка в алгоритме, когда сумма начислений не превышает максимальную базу, облагаемую ЕСВ при начислении аванса:
- если человеку не начисляется аванс (нет суммы), то при попытке вычислить КоэфЕснВпределе=СуммаВпределе/(ОблагаемаяБаза+вычеты) возникает ошибка "Деление на 0". Решается установкой дополнительной проверки равенства нулю на весь блок кода.
Общий код, приведенный в публикации, поправил.
8. Боромир 05.03.11 23:43 Сейчас в теме
И это еще не все...
Не учтено, если в сумму начислений входят Больничные с предприятия и Больничный Соцстраха...
там отнимать 2% ЕСВ. :)
P.S. - Еще учесть Договора ГПХ
9. Analitik 06.03.11 11:20 Сейчас в теме
Боромир! Да тут и учитывать ничего из предложенного Вами не нужно и алгоритмы строить тоже.
Если рассчитывать не в соответствии с Налоговым кодексом, а в соответствии с ДПА, то еще небольшое увеличение налога и то в очень и без того редих случаях (по сравнению с предложенным мною вариантом), не будет являться нарушением.
Договора ГПХ в Бухгалтерии вообще не предусмотрены (кстати единый с договоров не приводит к уменьшению базы НДФЛ и этот алгоритм именно поэтому будет их рассчитывать неправильно).
В любом случае сотрудник имеет право в конце года пересчитать налоги (если ему очень нужны будут эти пару гривень :))
Оставьте свое сообщение