Цитата:
Сообщение от
VasVovec
Что-то я не очень уловил, нельзя ли кусок кода для наглядности?
Репорт.
Верхний датаайтем на вирт таблице Дата.
Код:
Дата - OnPreDataItem().
Дата.SETRANGE("Тип периода", "Тип периода"::Год);
Дата.SETRANGE("Начало периода", CALCDATE('<-CY-5Y>', TODAY()), CALCDATE('<-CY>', TODAY()));
Вложенный датаайтем - тот, чьи записи вы обрабатываете. Допустим 32 таблица
Код:
ItemLedgerEntry - OnPreDataItem().
MyWorkDate := DMY2DATE(1, RepMonth + 1, DATE2DMY(Дата."Начало периода", 3)); // 1я дата нужного месяца нужного года
SETRANGE("Posting Date", Дата."Начало периода", NORMALDATE(Дата."Конец периода"));
FILTERGROUP(4);
SETRANGE("Posting Date", CALCDATE('<-CM>', MyWorkDate), CALCDATE('<CM>', MyWorkDate));
FILTERGROUP(0);
Здесь обрабатывается только массив по одному нужному вам месяцу одного года. И так по тому колву годов, которое вы задали сверху.
ПС. Писал не проверяя. Может где лишняя скобка затесалась ...