Левое соединение в запросе к РНОстаткиИОбороты
Запрос к виртуальной таблице ОстаткиИобороты выдает только строки с движениями. А нужно вывести и строки с нулевыми движениями, в том числе за дни, где не было движений. В тех датах где нет движений нужно взять конечный остаток из предыдущей даты и записать его и в начальный остаток и конечный остаток этой строки с приходом и расходом ноль.
Вот запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Календарь.Период КАК День
ПОМЕСТИТЬ ВТ_Дни
ИЗ
РегистрСведений.Календарь КАК Календарь
ГДЕ
Календарь.Период МЕЖДУ &НачалоПериода И &КонецПериода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ВТ_Дни.День КАК День,
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
ВТ_Дни КАК ВТ_Дни
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), День, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ПО ВТ_Дни.День = ТоварыНаСкладахОстаткиИОбороты.Период
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ОсновнойПоставщик В(&СпПоставщиков)
И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
УПОРЯДОЧИТЬ ПО
День,
Номенклатура
Результат в скрине.
Как это реализовать, подскажите пожалуйста.
Вот запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Календарь.Период КАК День
ПОМЕСТИТЬ ВТ_Дни
ИЗ
РегистрСведений.Календарь КАК Календарь
ГДЕ
Календарь.Период МЕЖДУ &НачалоПериода И &КонецПериода
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
ВТ_Дни.День КАК День,
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
ВТ_Дни КАК ВТ_Дни
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), День, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ПО ВТ_Дни.День = ТоварыНаСкладахОстаткиИОбороты.Период
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура.ОсновнойПоставщик В(&СпПоставщиков)
И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = &Номенклатура
УПОРЯДОЧИТЬ ПО
День,
Номенклатура
Результат в скрине.
Как это реализовать, подскажите пожалуйста.
Прикрепленные файлы:
Найденные решения
(1)Я вот так получал
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт2
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт1.ПериодДень,
МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1,
Вт2.Склад,
Вт2.Номенклатура
ПОМЕСТИТЬ Вт3
ИЗ
Вт1 КАК Вт1
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт1.ПериодДень >= Вт2.ПериодДень
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт3.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура,
Вт2.КоличествоКонечныйОстаток
ПОМЕСТИТЬ Вт4
ИЗ
Вт3 КАК Вт3
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт3.ПериодДень1 = Вт2.ПериодДень
И Вт3.Склад = Вт2.Склад
И Вт3.Номенклатура = Вт2.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Наименование
ПОМЕСТИТЬ Вт5
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ПометкаУдаления = ЛОЖЬ
И Номенклатура.ЭтоГруппа = ЛОЖЬ
И НЕ Номенклатура.ВидНоменклатуры.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт4.ПериодДень,
Вт4.Склад,
Вт4.КоличествоКонечныйОстаток,
Вт5.Наименование
ИЗ
Вт5 КАК Вт5
ЛЕВОЕ СОЕДИНЕНИЕ Вт4 КАК Вт4
ПО Вт5.Наименование = Вт4.Номенклатура.Наименование
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Включить вывод движений и границ периода параметром виртуальной таблицы не предлагать?
.......
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), День, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
.......
(1)Я вот так получал
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт1
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ПериодДень
ПОМЕСТИТЬ Вт2
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт1.ПериодДень,
МАКСИМУМ(Вт2.ПериодДень) КАК ПериодДень1,
Вт2.Склад,
Вт2.Номенклатура
ПОМЕСТИТЬ Вт3
ИЗ
Вт1 КАК Вт1
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт1.ПериодДень >= Вт2.ПериодДень
СГРУППИРОВАТЬ ПО
Вт1.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт3.ПериодДень,
Вт2.Склад,
Вт2.Номенклатура,
Вт2.КоличествоКонечныйОстаток
ПОМЕСТИТЬ Вт4
ИЗ
Вт3 КАК Вт3
ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
ПО Вт3.ПериодДень1 = Вт2.ПериодДень
И Вт3.Склад = Вт2.Склад
И Вт3.Номенклатура = Вт2.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Номенклатура.Наименование
ПОМЕСТИТЬ Вт5
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ПометкаУдаления = ЛОЖЬ
И Номенклатура.ЭтоГруппа = ЛОЖЬ
И НЕ Номенклатура.ВидНоменклатуры.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт4.ПериодДень,
Вт4.Склад,
Вт4.КоличествоКонечныйОстаток,
Вт5.Наименование
ИЗ
Вт5 КАК Вт5
ЛЕВОЕ СОЕДИНЕНИЕ Вт4 КАК Вт4
ПО Вт5.Наименование = Вт4.Номенклатура.Наименование
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот