Сотруднику начисляем в одном месяце начисление облагаемое ПФР, и начисление не облагаемое ПФР. Оба начисления не принимаемые к НУ. Если проводим только один документ с облагаемым ПФР видом начисления, то все ок - вся сумма пенсионного налога относится к непринимаемым расходам. А если провести второй документ и перепровести закрытие месяца, то сумма пенсионных отчислений вообще ни в какой части не относится к непринимаемым расходам.
Проблема вот в этом очень странном коде:
ТаблицаДоходовДляПФР.ПолучитьСтрокуПоНомеру(Стр); КоррПФРСотр = ТаблицаДоходовДляПФР.СуммаНеОблагаемая; НеОблПФРСотр = ТаблицаДоходовДляПФР.СуммаНеПринимаемая - КоррПФРСотр; ОбщаяБазаПФРМесяцСотр = ТаблицаДоходовДляПФР.БазаПФР; ОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр-КоррПФРСотр>0,ОбщаяБазаПФРМесяцСотр-КоррПФРСотр,0); НеОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр>0,НеОблПФРСотр*ОблПФРСотр/ОбщаяБазаПФРМесяцСотр,0); КоэффНеПринимаемогоПФРСотр=?(ОблПФРСотр>0,НеОблПФРСотр/ОблПФРСотр,0);
ТаблицаДоходовДляПФР.БазаПФР - это несколькими строками выше рассчитывается как разность между облагаемыми и не облагаемыми начислениями, а в данном куске кода оно уже принимается за общую базу. Короче пришлось долго вникать в это безобразие и переписывать. К томуже переменные тут называются вообще не своими именами.
Добавлено 24.03.2011
Мое решение. Чуть выше уже приведенного мной кода правим так:
ИначеЕсли Опер.Документ.Вид() = "НачислениеЗП" Тогда Если (Опер.Кредит.Счет = СчетПоКоду("70"))или (Опер.Кредит.Счет = СчетПоКоду("ДФЛ.01")) Тогда Сотрудник = Опер.Кредит.Субконто(1); НачисленоВсегоСотр = Опер.Сумма; НачисленоВсегоСотрФСС = Опер.Сумма; НачисленоВсегоСотрФССотНСиПЗ = Опер.Сумма; НачисленоВсегоСотрФОМС = Опер.Сумма; Если Опер.Кредит.Субконто(2).Выбран() = 1 Тогда Если Опер.Кредит.Субконто(2).ОблагаетсяПФР=0 Тогда КоррПФРСотр = Опер.Сумма; // НачисленоВсегоСотр = - НачисленоВсегоСотр; // ХА КонецЕсли; Если Опер.Кредит.Субконто(2).ОблагаетсяФСС=0 Тогда КоррФСССотр = Опер.Сумма; НачисленоВсегоСотрФСС = - НачисленоВсегоСотрФСС; КонецЕсли;
А непосредственно в самом проблемном месте я написал так:
ОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр-КоррПФРСотр>0,ОбщаяБазаПФРМесяцСотр-КоррПФРСотр,0); // ХА Если база не принимаемых облагаемых равна общей базе облагаемых, тогда коэф 1 Если ОблПФРСотр = НеОблПФРСотр Тогда КоэффНеПринимаемогоПФРСотр = 1; Иначе НеОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр>0,НеОблПФРСотр*ОблПФРСотр/ОбщаяБазаПФРМесяцСотр,0); КоэффНеПринимаемогоПФРСотр=?(ОблПФРСотр>0,НеОблПФРСотр/ОблПФРСотр,0); КонецЕсли; //НеОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр>0,НеОблПФРСотр*ОблПФРСотр/ОбщаяБазаПФРМесяцСотр,0); //КоэффНеПринимаемогоПФРСотр=?(ОблПФРСотр>0,НеОблПФРСотр/ОблПФРСотр,0); // ХА ВзносовПФРМесяцСотр = ВсегоПФР_страхСотр + ВсегоПФР_накСотр; КоррПФР = ?(ОбщаяБазаПФРМесяцСотр > 0, ВзносовПФРМесяцСотр*КоэффНеПринимаемогоПФРСотр,0); КоррПФРСтрахСотр = ?(ВзносовПФРМесяцСотр > 0,КоррПФР*ВсегоПФР_страхСотр/ВзносовПФРМесяцСотр,0); КоррПФРНакСотр = ?(ВзносовПФРМесяцСотр > 0,КоррПФР*ВсегоПФР_накСотр/ВзносовПФРМесяцСотр,0); КонецЕсли;
А где решение этой проблемы ?
Не знаю на что грешить ... проблема то приходить то уходит.
например сейчас релиз 179 и опять ни чего нет.
есть ли какие-то рекомендации ?
Написал решение. Давно это было, поэтому даже не знаю как оно щас себя будет вести. Напишите как у вас получится.
Отправить комментарий