дивиденды в справках НДФЛ, УСН 7.70.179

Новая тема
"Обнаружилась такая вот "беда", возможно кому то поможет сделать справки как надо.
Ситуация: у сотрудника предприятия имеются начисленные дивиденды и НДФЛ с них. Открываем налоговую карточку, заполняем, сохраняемся, делаем отчет "Справки по НДФЛ", имеем потерю всех сведений о дивидендах.
Причина в том, что по отношению к доходам с НДФЛ 13% в алгоритме система делает сбор сведений помесячно с накоплением, а по отношению к дивидендам без накопления. А потом корректирует сведения так, как будто они собраны по единому принципу. Вот ключевые места:
Это описание места, куда собираются доходы.
// 2-ая колонка содержит таблицу доходов  // имеет 7 колонок: код дохода, размер дохода, код вычета, размер вычета,размер дохода из справочника, размер вычета из справочника и// в седьмой колонке - таблица сумм "СписокСуммПоВР", из которых собрана сумма текущего дохода (первая колонка - сумма, вторая колонка - ВР)ДоходыВычетыНалогиСотрудников.НоваяКолонка(,"ТаблицаЗначений"); 


Это место, где регистрируется 13%-ный доход в глСобратьДанныеДляНДФЛВыбор:
ДобавитьДоходВТаблицу(Доходы, ПоляКарточки, НомерМесяца, "П003",  3, "П068",  68);... 


смотрим в ДобавитьДоходВТаблицу и видим, что там организовано вычисление с накоплением:
СуммаДохода = 0;Для ТекНомерМесяца = 1 по НомерМесяца Цикл...СуммаДохода = СуммаДохода + ПоляКарточки.Получить(ИмяСуммыДохода);КонецЦикла;...Доходы.УстановитьЗначение(НомерДохода, 1, Прав(ПоляКарточки.Получить(ИмяКодаДохода), 4)); 


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


А ключевое место, из за которого все теряется находится в СобратьДанныеОДоходахСотрудника:
ТаблицаДоходовПрошлогоМесяцаСИндексом.ВыбратьСтроки();
Пока ТаблицаДоходовПрошлогоМесяцаСИндексом.ПолучитьСтроку()=1 Цикл
ТаблицаДоходовПрошлогоМесяцаСИндексом._2=(-1)*ТаблицаДоходовПрошлогоМесяцаСИндексом._2;
ТаблицаДоходовПрошлогоМесяцаСИндексом._4=(-1)*ТаблицаДоходовПрошлогоМесяцаСИндексом._4;
КонецЦикла;


Зачем оно надо? Чтобы снова вычислить не валовые значения доходов. Принцип простой. "Валовая сумма" + (-1)*"Валовая сумма по предыдущий месяц", получим доход текущего месяца. Так вот для дивидендов по валовому принципу в таблицу данные не помещали, поэтому они зануляются если не отражены в декабре, конечно.
Решений 2:
Вариант 1:
Организовать регистрацию дивидендов по валовому принципу. В глСобратьДанныеДляНДФЛВыбор переделываем строки на такие:
СуммаДивидендовСНакоплением=0;СуммаВычетовСНакоплением=0;Для НомерМесяца = 1 по 12 Цикл...	СуммаДивидендов = ПоляКарточки.Получить("П" + глДополнитьСтроку(Строка(163+НомерМесяца), 3));   	СуммаВычетов = СуммаДивидендов - ПоляКарточки.Получить("ОбДив" + глДополнитьСтроку(НомерМесяца, 2));	СуммаДивидендовСНакоплением=СуммаДивидендовСНакоплением+Сумм­аДивидендов;	СуммаВычетовСНакоплением=СуммаВычетовСНакоплением+СуммаВычет­ов;	Если СуммаДивидендовСНакоплением <> 0 Тогда		ВидыРасчетов = СоздатьОбъект("ТаблицаЗначений");		ВидыРасчетов.НоваяКолонка("Число");		ВидыРасчетов.НоваяКолонка();		Доходы.НоваяСтрока();		НомерДохода = Доходы.НомерСтроки;		Доходы.УстановитьЗначение(НомерДохода, 1, "1010");		Доходы.УстановитьЗначение(НомерДохода, 2, СуммаДивидендовСНакоплением);		Доходы.УстановитьЗначение(НомерДохода, 4, СуммаВычетов);		Доходы.УстановитьЗначение(НомерДохода, 7, ВидыРасчетов);	КонецЕсли; 
...


Вариант 2:
Убираем пересчет из валовых сумм в текущие для дивидендов (я сделал именно так). Для этого в СобратьДанныеОДоходахСотрудника меняем строки на такие:
ТаблицаДоходовПрошлогоМесяцаСИндексом.ВыбратьСтроки();Пока ТаблицаДоходовПрошлогоМесяцаСИндексом.ПолучитьСтроку()=1 Цикл	Ключ = ТаблицаДоходовПрошлогоМесяцаСИндексом.Ключ;	КодДохода = Лев(Ключ,4);	Если ((КодДохода = "1010") или (КодДохода = "1110") или (КодДохода = "1120")) Тогда		ТаблицаДоходовПрошлогоМесяцаСИндексом._2=0;		ТаблицаДоходовПрошлогоМесяцаСИндексом._4=0;	Иначе		ТаблицаДоходовПрошлогоМесяцаСИндексом._2=(-1)*ТаблицаДоходовПрошлогоМесяцаСИндексом._2;		ТаблицаДоходовПрошлогоМесяцаСИндексом._4=(-1)*ТаблицаДоходовПрошлогоМесяцаСИндексом._4;	КонецЕсли;КонецЦикла; 
"
Читают тему
(гостей: 1)

Быстрый переход