Особого описания не требуется. Нужно лишь сказать, что в тексте программы отчета использован фрагмент процедуры глобального модуля глСобратьДанныеДляНДФЛ2011(), а именно
НалоговыйПериод = Год;
ОкончаниеВыборки = ДобавитьМесяц(ОкончаниеГода,12);
ТекстЗапроса =
"//{{ЗАПРОС(АвансыПоНДФЛ)
|Период с НачалоГода по ОкончаниеГода;
|НалоговыйПериод = Документ.АвансовыйПлатежИностранцаПоНДФЛ.НалоговыйПериод;
|Сотрудник = Документ.АвансовыйПлатежИностранцаПоНДФЛ.Сотрудник;
|СуммаАванса = Документ.АвансовыйПлатежИностранцаПоНДФЛ.Сумма;
|ДатаОперации = Документ.АвансовыйПлатежИностранцаПоНДФЛ.ДатаОперации;
|Функция Сумма = Сумма(СуммаАванса);
|Группировка Сотрудник без групп;
|Группировка ДатаОперации;
|Условие(НалоговыйПериод = НалоговыйПериод);
|Условие(Сотрудник в ФизЛица);
|"//}}ЗАПРОС
;
ТабАвансыПоНДФЛ = СоздатьОбъект("ТаблицаЗначений");
ТабАвансыПоНДФЛ.НоваяКолонка("Сумма");
ТабАвансыПоНДФЛ.НоваяКолонка("Сотрудник");
ТабАвансыПоНДФЛ.НоваяКолонка("ДатаОперации");
ЗапросАвансыПоНДФЛ=СоздатьОбъект("Запрос");
Если ЗапросАвансыПоНДФЛ.Выполнить(ТекстЗапроса)=1 Тогда
ЗапросАвансыПоНДФЛ.Выгрузить(ТабАвансыПоНДФЛ,,0);
КонецЕсли;
ТабАвансыПоНДФЛ.НоваяКолонка("Месяц");
ТабАвансыПоНДФЛ.ВыбратьСтроки();
Пока ТабАвансыПоНДФЛ.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(ТабАвансыПоНДФЛ.ДатаОперации) = 1 Тогда
// не учитываем
Иначе
ТабАвансыПоНДФЛ.Месяц = ДатаМесяц(ТабАвансыПоНДФЛ.ДатаОперации);
КонецЕсли;
КонецЦикла;
ТабАвансыПоНДФЛ.Свернуть("Сотрудник,Месяц","Сумма");
ТабАвансыПоНДФЛ.Сортировать("Сотрудник,Месяц");
Разработчики 1С решили упростить себе задачу, и сделали так, что, если за январь 2016 года сотрудник заплатил в октябре 2015, то документ оплаты должен датироваться 2016 годом (например 01.01.2016). Иначе 2016 год нельзя выбрать в качестве налогового периода документа. При этом условие вышеприведенного запроса:
|Условие(НалоговыйПериод = НалоговыйПериод);
мало того, что бессмысленно (А=А всегда есть истина), но и становится ненужным, так как в выборку с начала года по конец года могут попасть только документы с налоговым периодом, соответствующим этому году. Однако, так как дата операции (оплаты) может стоять реальная, например 22.10.2015, то в сответствии с текстом процедуры сумма оплаты такого документа попадет в 10 месяц 2016 года, т.е. в январе программа его не увидит. Правда выявится эта ошибка только в 2016 году, если не исправят её раньше. В отчете эта ошибка исправлена. Все такие документы попадают в январь следующего года. Кроме того, предусмотрена возможность учета непроведенных документов авансовых платежей для тех, на кого еще не получено уведомление из налоговой инспеции.