Внешне красиво, но формируется что-то долго. Код пока мельком просмотрел (вроде ничего сверх тяжелого не нашел). И почему нельзя было написать этот фрагмент
| И СтраховыеВзносыСведенияОДоходах.Период >= &Дата1
| И СтраховыеВзносыСведенияОДоходах.Период <= &Дата2
как
| И СтраховыеВзносыСведенияОДоходах.Период МЕЖДУ НачалоПериода(&Дата1, День) И КонецПериода(&Дата2, День)
И вот это тоже забавно выглядит:
Запрос.УстановитьПараметр("Дата1",НачалоДня(Дата1));
Запрос.УстановитьПараметр("Дата2",КонецДня(Дата2));
Запрос.УстановитьПараметр("Дата11",НачалоГода(Дата2));
Запрос.УстановитьПараметр("Дата22",НачалоМесяца(Дата1)-1);
Код бы малость причесать :)
Отказаться от Дата11 и Дата12 - включить их в запрос как:
ДОБАВИТЬКДАТЕ(НачалоПериода(&Дата1, Месяц), Месяц, -1)
- это вместо Дата22 (как я понял, мы учитываем период месяцем ранее, для уплаченных взносов)
НачалоПериода(&Дата1,Год)
- А это мы берем данные с начало отчетного года (некая Дата11)
Результатом станет такая строка:
СтраховыеВзносыСведенияОДоходах.Период МЕЖДУ НачалоПериода(&Дата1,Год) И КонецПериода(ДОБАВИТЬКДАТЕ(НачалоПериода(&Дата1, Месяц), Месяц, -1), Месяц)
А также добавил бы в цикл строчку:
Код |
---|
ОбработкаПрерыванияПользователя(); Показать полностью |
П.С.
Пока все это писал, обработка не вывела ничего :) По прежнему идет "Сбор данных..."
"Ушел пить чай" :)