1С бухгалтерия

Сотруднику начисляем в одном месяце начисление облагаемое ПФР, и начисление не облагаемое ПФР. Оба начисления не принимаемые к НУ. Если проводим только один документ с облагаемым ПФР видом начисления, то все ок - вся сумма пенсионного налога относится к непринимаемым расходам. А если провести второй документ и перепровести закрытие месяца, то сумма пенсионных отчислений вообще ни в какой части не относится к непринимаемым расходам.

Проблема вот в этом очень странном коде:

  ТаблицаДоходовДляПФР.ПолучитьСтрокуПоНомеру(Стр); 
  КоррПФРСотр = ТаблицаДоходовДляПФР.СуммаНеОблагаемая;
  НеОблПФРСотр = ТаблицаДоходовДляПФР.СуммаНеПринимаемая - КоррПФРСотр;
  ОбщаяБазаПФРМесяцСотр = ТаблицаДоходовДляПФР.БазаПФР;
  ОблПФРСотр = ?(ОбщаяБазаПФРМесяцСотр-КоррПФРСотр>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 и опять ни чего нет.
есть ли какие-то рекомендации ?

admin аватар

Написал решение. Давно это было, поэтому даже не знаю как оно щас себя будет вести. Напишите как у вас получится.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".