Имя: Пароль:
1C
 
Почему не отрабатывает левое соединение?
0 andreanochilentano
 
naïve
18.07.24
09:57
Есть запрос:
ВЫБРАТЬ
	ДанныеПроизводственногоКалендаря.Дата КАК Дата,
	ДанныеПроизводственногоКалендаря.ВидДня КАК ВидДня
ИЗ
	РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, День, , Склад.Родитель.Наименование ПОДОБНО "%оптовы%") КАК ТоварыНаСкладахОстаткиИОбороты
		ПО (ДанныеПроизводственногоКалендаря.Дата = ТоварыНаСкладахОстаткиИОбороты.Период)
ГДЕ
	ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &НачалоПрошлогоПериода И &КонецПрошлогоПериода
	И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = &Н


В левой колонке я ожидаю увидеть список дат с первой даты до второй. а они отображаются не все, выборочно.

Но у меня же левое соединение. Почему? Куда делись нуллы?
1 andreanochilentano
 
naïve
18.07.24
09:56
2 Волшебник
 
18.07.24
09:57
в регистре период с временем
3 Волшебник
 
18.07.24
09:58
почему в списке ВЫБРАТЬ нет полей из правой таблицы?
4 maxab72
 
18.07.24
09:59
(0) Надо Дату и Период оба привести привести к началу дня для сравнимости.
5 andreanochilentano
 
naïve
18.07.24
09:59
(2) В регистре Календаря все даты по порядку. Они же должны выводиться все, а если нет соответствия справа - то нуллы.
6 Волшебник
 
18.07.24
10:01
(5) Это Вы меня учите что ли?
7 andreanochilentano
 
naïve
18.07.24
10:03
(4) они в регистрах все со временем 00:00:00
если бы я делал внутреннее соединение, то да. но у меня же левое.

Кстати, если я меняю левое соединение на внутреннее - то ничего не происходит. Результат запроса аналогичный.
8 Мультук
 
18.07.24
10:03
(0)

Потому что не нужно тащить из присоединяемой таблицы условие в ГДЕ
Притащил -- превратил левое соединение во внутреннее

Ну логично же, нет ?

ВЫБРАТЬ
	ДанныеПроизводственногоКалендаря.Дата КАК Дата,
	ДанныеПроизводственногоКалендаря.ВидДня КАК ВидДня
ИЗ
	РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, День, , Склад.Родитель.Наименование ПОДОБНО "%оптовы%"
И  Номенклатура = &Н
) КАК ТоварыНаСкладахОстаткиИОбороты
		ПО (ДанныеПроизводственногоКалендаря.Дата = ТоварыНаСкладахОстаткиИОбороты.Период)
ГДЕ
	ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &НачалоПрошлогоПериода И &КонецПрошлогоПериода
9 andreanochilentano
 
naïve
18.07.24
10:04
(8) блин, елки-палки! Спасибо огромное.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn