ДвиженияССубконто отбор

1. user1559729 10.08.23 11:36 Сейчас в теме
Хм... Наткнулся на странность в запросе. Что-то не разберусь:

Условие:

СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						//И СубконтоДт3 В
						//	(ВЫБРАТЬ
						//		ФизЛица.ФизическоеЛицо
						//	ИЗ
						//		ФизЛица)
					ИЛИ 
					СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						И СубконтоКт3 В
							(ВЫБРАТЬ
								ФизЛица.ФизическоеЛицо
							ИЗ
								ФизЛица)
Показать


выбирает нужную мне запись по второму (нижнему) условию ИЛИ.
Но после расскомментирования комментария - запись не попадает в результат. Почему так? Там же ИЛИ !?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1559729 10.08.23 11:55 Сейчас в теме
В необходимом документе движения по Дебету пустые - только Кредит. Это может как-то влиять?
3. user1559729 10.08.23 12:48 Сейчас в теме
Коллеги, есть идеи что можно сделать?
4. user1559729 10.08.23 12:56 Сейчас в теме
Может дело в том, что условие в параметрах ВТ указано?:

ВЫБРАТЬ
	ХозрасчетныйДвиженияССубконто.Регистратор,
	ХозрасчетныйДвиженияССубконто.СубконтоДт3,
	ХозрасчетныйДвиженияССубконто.СубконтоКт3,
	ИСТИНА,
	ХозрасчетныйДвиженияССубконто.Сумма
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
			&ДатаНач,
			&ДатаКон,
			Активность
				И
				 ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.КорректировкаПоступления)
				И ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.РегламентнаяОперация)
				И 
				 (
				СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						И СубконтоДт3 В
							(ВЫБРАТЬ
								ФизЛица.ФизическоеЛицо
							ИЗ
								ФизЛица)
					ИЛИ 
					СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						И СубконтоКт3 В
							(ВЫБРАТЬ
								ФизЛица.ФизическоеЛицо
							ИЗ
								ФизЛица)
								  )
								,
			,
			) КАК ХозрасчетныйДвиженияССубконто
Показать
5. user1559729 10.08.23 13:03 Сейчас в теме
Перенес в условие ГДЕ - заработало как нужно. Но я ожидал, что в условии ГДЕ будет работать медленнее, а оно работает в 3-5 раз быстрее.
Что-то я теперь вдвойне недопонимаю... Почему (0) так работает и почему в ГДЕ быстрее выполняется, чем в параметрах ВТ? Может кто-то разъяснить?

ВЫБРАТЬ
	ХозрасчетныйДвиженияССубконто.Регистратор,
	ВЫБОР КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3.Ссылка ЕСТЬ NULL ТОГДА 1 ИНАЧЕ 0 КОНЕЦ,
	ХозрасчетныйДвиженияССубконто.СубконтоКт3,
	ИСТИНА,
	ХозрасчетныйДвиженияССубконто.Сумма
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
			&ДатаНач,
			&ДатаКон,
			Активность
				И
				 ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.КорректировкаПоступления)
				И ТИПЗНАЧЕНИЯ(Регистратор) <> ТИП(Документ.РегламентнаяОперация)
//				И 
//				 (
//				СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
//						И СубконтоДт3 В
//							(ВЫБРАТЬ
//								ФизЛица.ФизическоеЛицо
//							ИЗ
//								ФизЛица)
//					ИЛИ 
//					СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
//						И СубконтоКт3 В
//							(ВЫБРАТЬ
//								ФизЛица.ФизическоеЛицо
//							ИЗ
//								ФизЛица)
//								  )								,
			,
			) КАК ХозрасчетныйДвиженияССубконто
 ГДЕ 
 				 
				СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						И СубконтоДт3 В
							(ВЫБРАТЬ
								ФизЛица.ФизическоеЛицо
							ИЗ
								ФизЛица)
					ИЛИ 
					СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный)
						И СубконтоКт3 В
							(ВЫБРАТЬ
								ФизЛица.ФизическоеЛицо
							ИЗ
								ФизЛица)
Показать
6. Oldsad 11.08.23 02:55 Сейчас в теме
По поводу почему условие в параметрах не сработало хз.

А вот то что запрос быстрее выполнился, то тут все банально - таблица движений простая в построении, и скуль формируя план запроса ее легко оптимизирует.
вероятно, скуль при повторном запросе подтянул данные из кеша, когда в консоли формируешь запрос несколько раз подряд, он с каждым разом выполняется быстрее.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот