Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

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

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №1
 
21.03.2011 15:23

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

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация