Давайте попробуем
МТ=Новый МенеджерВременныхТаблиц;
Условие="";
Если не ВыбЗавод.Пустая() Тогда
Условие="
| И Товары.Завод = &Завод";
КонецЕсли;
МВТЗапрос=Новый Запрос("ВЫБРАТЬ
| ТЗ.Период
|ПОМЕСТИТЬ Дни
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДНИ.Период КАК Период,
| СУММА(ВЫБОР
| КОГДА Движения.Период = &ДатаС
| ТОГДА Движения.КолКонечныйОстаток - ВЫБОР
| КОГДА РезервыТоваровОстаткиИОбороты.КолКонечныйОстаток ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ РезервыТоваровОстаткиИОбороты.КолКонечныйОстаток
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА Движения.Период <= ДНИ.Период
| ТОГДА Движения.КолОборот
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ) КАК Кол,
| Товары.Ссылка КАК Товар,
| Товары.Код,
| ВложенныйЗапрос.ДатаСозд КАК ДатаСозд,
| МАКСИМУМ(Серии.Ссылка) КАК Ссылка1
|ИЗ
| Дни КАК ДНИ,
| Справочник.Серии КАК Серии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| Серии.Владелец КАК Владелец,
| МАКСИМУМ(Серии.ДатаСозд) КАК ДатаСозд
| ИЗ
| Справочник.Серии КАК Серии
| ГДЕ
| Серии.Опт1 > 0
| И Серии.РознЦена > 0
|
| СГРУППИРОВАТЬ ПО
| Серии.Владелец) КАК ВложенныйЗапрос
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&ДатаС, &ДатаПо, День, , ) КАК Движения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервыТоваров.ОстаткиИОбороты(&ДатаС, &ДатаПо, День, , ) КАК РезервыТоваровОстаткиИОбороты
| ПО Движения.Товар = РезервыТоваровОстаткиИОбороты.Товар
| И Движения.Период = РезервыТоваровОстаткиИОбороты.Период
| ПО (Движения.Товар = Товары.Ссылка)
| ПО (Товары.Ссылка = ВложенныйЗапрос.Владелец)
| ПО (ВложенныйЗапрос.ДатаСозд = Серии.ДатаСозд)
| И (ВложенныйЗапрос.Владелец = Серии.Владелец)
|ГДЕ
| Серии.Опт1 > 0
| И Серии.РознЦена > 0
| И Товары.ПометкаУдаления <> ИСТИНА "+Условие+"
|
|СГРУППИРОВАТЬ ПО
| ДНИ.Период,
| Товары.Ссылка,
| Товары.Код,
| ВложенныйЗапрос.ДатаСозд
|
|УПОРЯДОЧИТЬ ПО
| Товары.Наименование
|ИТОГИ
| СУММА(ВЫБОР
| КОГДА Кол > 0
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ) КАК Кол,
| МАКСИМУМ(ДатаСозд),
| МАКСИМУМ(Ссылка1)
|ПО
| Товар");
МВТЗапрос.УстановитьПараметр("ТЗ", ТЗ);
МВТЗапрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС));
МВТЗапрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
МВТЗапрос.УстановитьПараметр("Завод", ВыбЗавод);
МВТЗапрос.МенеджерВременныхТаблиц=МТ;
Коротко о задаче: Отчет должен вернуть количество дней, когда чистый остаток на складе был =0. Также в отчет выводятся Закупочная цена и оптовая цена
Сообщение отредактировал pablo - 14.08.14, 12:15