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