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