0
an7man
11.03.16
✎
16:09
|
Есть
регистр накопления Товары,
с измерениями Товар,Склад
и ресурсом Количество.
Движения по нему регистрируются документами Приход,Списание,Перемещение.
Нужен отчет по остаткам, расшифровка у которого по Регистратору должна выводить список документов за период от последнего момента "ноль" (нет товара на остатках) до даты отчета. Важный ньюанс: расшифровка не должна учитывать измерение Склад родительского отчета, т.е. если тыкаемся в остаток Товар1 на Склад15 то должны увидеть все документы от прихода на СкладN до перемещения на Склад15.
Набор1:
ВЫБРАТЬ
ТоварыОстатки.Склад,
ТоварыОстатки.Товар,
ТоварыОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.Товары.Остатки({&Период}, ) КАК ТоварыОстатки
Набор2:
ВЫБРАТЬ
МАКСИМУМ(ВЫРАЗИТЬ(ТоварыОстаткиИОбороты.Регистратор КАК Документ.Списание).Дата) КАК НулеваяДата,
ТоварыОстаткиИОбороты.Товар КАК Товар
ПОМЕСТИТЬ НулевыеДаты
ИЗ
РегистрНакопления.Товары.ОстаткиИОбороты(, {(&Период)}, Авто, , ) КАК ТоварыОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ТоварыОстаткиИОбороты.Товар
ИМЕЮЩИЕ
СУММА(ТоварыОстаткиИОбороты.КоличествоКонечныйОстаток) = 0
ИНДЕКСИРОВАТЬ ПО
Товар
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыОстатки.Товар,
ТоварыОстаткиИОбороты.Регистратор
ИЗ
РегистрНакопления.Товары.Остатки({(&Период)}, ) КАК ТоварыОстатки
ЛЕВОЕ СОЕДИНЕНИЕ НулевыеДаты КАК НулевыеДаты
ПО ТоварыОстатки.Товар = НулевыеДаты.Товар
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Товары.ОстаткиИОбороты(, {(&Период)}, Регистратор, Движения, ) КАК ТоварыОстаткиИОбороты
ПО ТоварыОстатки.Товар = ТоварыОстаткиИОбороты.Товар
И (НулевыеДаты.НулеваяДата ЕСТЬ NULL
ИЛИ НулевыеДаты.НулеваяДата < ТоварыОстаткиИОбороты.Регистратор.Дата)
Наборы связаны только по товару. Не получается добиться независимости в расшифровке от Склада родительского отчета. Т.е. если в структуре родительского отчета фигурирует измерение Склад, то расшифровка выдает только последнее перемещение на этот склад.
|
|