Имя: Пароль:
1C
1C 7.7
v7: Отчет "Свод проводок". Проблемы из-за регрессивного налога.
0 BPT85
 
25.12.12
10:22
С введением регрессивного налога.
Полетели данные по этому отчету по части ПФР страх.
Проблема с регистром учета начисления налогов, включаемых в расходы.
Т.к. сумма свыше 512т.р. облагается другим налогом.
Рыл долго в отладчике. На много раз прогнал.
В итоге, как мне показалось, затык в этой процедуре:ЗаполнитьДанныеДляПроводок2010.
Если я не прав и кто-то сталкивался, то ткните носом.
Знаний предметной области и языка у меня пока маловато, но оч. хочется разобраться. Возможна платная консультация.
Ее текст:
Процедура ЗаполнитьДанныеДляПроводок2010(ДоходыВычетыНалогиСотрудников, Сотрудник, Месяц, КоэффициентСотрудника, СкидкаМатпомощь, ДатаАктуальности,
                                           ИсчисленоПФРНак,ИсчисленоПФРСтрах,ИсчисленоПФРНакЕНВД,ИсчисленоПФРСтрахЕНВД,ИсчисленоФСС,ИсчисленоТФОМС,ИсчисленоФФОМС,ИсчисленоДопТариф,
                                           БазаДопТариф,ОблагаемаяБазаПФР,ОблагаемаяБазаФСС,ОблагаемаяБазаФОМС,ОблагаемаяБазаПФРЕНВД,КоэфПФР_ПоПределу,КоэфФОМС_ПоПределу,КоэфФСС_ПоПределу)

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

       
       
       //Русаков
       глНапечататьТЗ(ДоходыВычетыНалогиСотрудников,"ОблагаемаяБазаПФР");    
       
       //Русаков    
       глНапечататьТЗ(ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ОграниченнаяБаза"),"ячейка");        
       
       // используем базы, не ограниченные пределом доходов ОграниченнаяБаза  
       //заремарил. русаков
       ОблагаемаяБазаПФР    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ОграниченнаяБаза").Итог("БазаПФР");
       
       ОблагаемаяБазаФСС    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ОграниченнаяБаза").Итог("БазаФСС");
       
       ОблагаемаяБазаФОМС   = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ОграниченнаяБаза").Итог("БазаФОМС");
       
       ОблагаемаяБазаПФРЕНВД = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ОграниченнаяБазаПФРЕНВД");
       
       
       // ПФР
       БазаПФР    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаПФР"); // по основному тарифу

       БазаПФРЕНВД = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаПФРЕНВД");
       
       // ФОМС
       БазаФОМС    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФОМС"); // по основному тарифу

       БазаФОМСЕНВД = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФОМСЕНВД");
       
       // ФСС
       БазаФСС    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФСС"); // по основному тарифу

       БазаФССЕНВД = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаФССЕНВД");
       
       // ДопТариф
       БазаДопТариф = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"БазаДопТариф");
       
       // исчисленные взносы
       ИсчисленоПФРНак        = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоПФРНак");

       ИсчисленоПФРНакЕНВД    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоПФРНакЕНВД");
       
       ИсчисленоПФРСтрах       = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоПФРСтрах");

       ИсчисленоПФРСтрахЕНВД    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоПФРСтрахЕНВД");
       
       ИсчисленоФСС        = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФСС");

       ИсчисленоФССЕНВД    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФССЕНВД");
       
       ИсчисленоТФОМС        = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоТФОМС");

       ИсчисленоТФОМСЕНВД    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоТФОМСЕНВД");
       
       ИсчисленоФФОМС        = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФФОМС");

       ИсчисленоФФОМСЕНВД    = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоФФОМСЕНВД");
       
       ИсчисленоДопТариф = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,"ИсчисленоДопТариф");
       
       СкидкаМатпомощь   = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,11)

       + ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,11+26);
       
       Если Месяц > 1 Тогда  
           
           ОблагаемаяБазаПФР    = ОблагаемаяБазаПФР - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ОграниченнаяБаза").Итог("БазаПФР");
           ОблагаемаяБазаФСС    = ОблагаемаяБазаФСС - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ОграниченнаяБаза").Итог("БазаФСС");
           ОблагаемаяБазаФОМС   = ОблагаемаяБазаФОМС - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ОграниченнаяБаза").Итог("БазаФОМС");
           ОблагаемаяБазаПФРЕНВД = ОблагаемаяБазаПФРЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ОграниченнаяБазаПФРЕНВД");
           
     
       
           БазаПФР           = БазаПФР -  ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаПФР");

           БазаПФРЕНВД    = БазаПФРЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаПФРЕНВД");
           
           БазаФОМС        = БазаФОМС -  ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФОМС");

           БазаФОМСЕНВД    = БазаФОМСЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФОМСЕНВД");
           
           БазаФСС           = БазаФСС -  ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФСС");

           БазаФССЕНВД    = БазаФССЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаФССЕНВД");
           
           БазаДопТариф   = БазаДопТариф - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"БазаДопТариф");  
           
           ИсчисленоПФРНак        = ИсчисленоПФРНак - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоПФРНак");

           ИсчисленоПФРНакЕНВД    = ИсчисленоПФРНакЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоПФРНакЕНВД");
           
           ИсчисленоПФРСтрах       = ИсчисленоПФРСтрах - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоПФРСтрах");

           ИсчисленоПФРСтрахЕНВД    = ИсчисленоПФРСтрахЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоПФРСтрахЕНВД");
           
           ИсчисленоФСС        = ИсчисленоФСС - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоФСС");

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

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

           ИсчисленоФФОМСЕНВД    = ИсчисленоФФОМСЕНВД - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоФФОМСЕНВД");
           
           ИсчисленоДопТариф = ИсчисленоДопТариф - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,"ИсчисленоДопТариф");
           
           
           СкидкаМатпомощь   = СкидкаМатпомощь - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,11)

           - ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы-1,11+26);
           
       КонецЕсли;
                                                         
       
       ///Русаков. добавил из 2012г(аналогичная процедура)
       //Если глРассчитыватьВзносыСБазыПревышения(ВидТарифа) = 1 Тогда
       //    ОблагаемаяБазаПФРСтрах = БазаПФР;    
       //Иначе
       //    ОблагаемаяБазаПФРСтрах = ОблагаемаяБазаПФР;
       //КонецЕсли;
       
       // проверим сотрудника на наличие нулевой базы
       КоэфПФРСтрах_ПоПределу  = ?(БазаПФР=0,0,1);
       КоэфПФР_ПоПределу  = ?(БазаПФР=0,0,ОблагаемаяБазаПФР/БазаПФР);
       КоэфФОМС_ПоПределу = ?(БазаФОМС=0,0,ОблагаемаяБазаФОМС/БазаФОМС);
       КоэфФСС_ПоПределу  = ?(БазаФСС=0,0,ОблагаемаяБазаФСС/БазаФСС);
       
       
       
       // проверим сотрудника на наличие нулевой базы
       
       КоэфПФР_ПоПределу  = ?((БазаПФР+БазаПФРЕНВД)=0,0,(ОблагаемаяБазаПФР+ОблагаемаяБазаПФРЕНВД)/(БазаПФР+БазаПФРЕНВД));
       КоэфФОМС_ПоПределу = ?(БазаФОМС=0,0,ОблагаемаяБазаФОМС/БазаФОМС);
       КоэфФСС_ПоПределу  = ?(БазаФСС=0,0,ОблагаемаяБазаФСС/БазаФСС);
       
       Если ОблагаемаяБазаПФР = 0 Тогда
           КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРНак");
           КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРСтрах");
       Иначе
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоПФРНак / ОблагаемаяБазаПФР,"ПФРНак");
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоПФРСтрах / ОблагаемаяБазаПФР,"ПФРСтрах");
       КонецЕсли;
       
       Если ОблагаемаяБазаПФРЕНВД = 0 Тогда
           КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРНакЕНВД");
           КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРСтрахЕНВД");
       Иначе
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоПФРНакЕНВД / ОблагаемаяБазаПФРЕНВД,"ПФРНакЕНВД");
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоПФРСтрахЕНВД / ОблагаемаяБазаПФРЕНВД,"ПФРСтрахЕНВД");    
       КонецЕсли;
       
       Если ОблагаемаяБазаФОМС = 0 Тогда
           КоэффициентСотрудника.ДобавитьЗначение(0,"ФФОМС");
           КоэффициентСотрудника.ДобавитьЗначение(0,"ТФОМС");
       Иначе
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоФФОМС / ОблагаемаяБазаФОМС,"ФФОМС");
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоТФОМС / ОблагаемаяБазаФОМС,"ТФОМС");    
       КонецЕсли;
       
       Если ОблагаемаяБазаФСС = 0 Тогда
           КоэффициентСотрудника.ДобавитьЗначение(0,"ФСС");
       Иначе
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоФСС / ОблагаемаяБазаФСС,"ФСС");
       КонецЕсли;
       
       Если БазаДопТариф = 0 Тогда
           КоэффициентСотрудника.ДобавитьЗначение(0,"ДопТариф");                          
       Иначе
           КоэффициентСотрудника.ДобавитьЗначение(ИсчисленоДопТариф / БазаДопТариф,"ДопТариф");
       КонецЕсли;  
       
   Иначе  
       
       КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРНак");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРСтрах");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРНакЕНВД");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ПФРСтрахЕНВД");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ФФОМС");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ТФОМС");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ФСС");
       КоэффициентСотрудника.ДобавитьЗначение(0,"ДопТариф");
       
   КонецЕсли;    
   
КонецПроцедуры
1 ТакВотЖе
 
25.12.12
10:32
куда это интересно они (данные) у тебя полетели?
ты определись для начала: "свод проводок" это один отчет, "регистром учета начисления налогов" это другой отчет, пользоваться которым никому не советую.
2 BPT85
 
25.12.12
10:46
извиняюсь.
"Свод проводок и данных налогового учета".
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший