В запросе не отбирается по статусам выполнения заказа

1. user1008893 16.05.19 10:15 Сейчас в теме +1 $m
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
	СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
ИЗ
	РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
ГДЕ
	ЗаказыПокупателейОстатки.КолОстаток > 0
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
	И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ В
				(ВЫБРАТЬ
					ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
				ИЗ
					Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
						ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
							ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
							ПО
								ПС_ЗаказыДляОтгрузки.Заказы.Заказ = СтатусыВыполненияЗаказов.Заказ
						ПО
							ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
				ГДЕ
					НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
					И СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен")

СГРУППИРОВАТЬ ПО
	ЗаказыПокупателейОстатки.ДокЗаказ,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения
АВТОУПОРЯДОЧИВАНИЕ
Показать

В запросе надо получить заказы,которые не попадают в ПС_ЗаказыДляОтгрузки,но и СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен" должен попасть в запрос
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Jen1978 19 16.05.19 10:24 Сейчас в теме
И СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен" уберите из запроса
3. user1008893 16.05.19 10:29 Сейчас в теме
(2)так,не попадают заказы,которые со статусом Частично отгружен
4. VmvLer 16.05.19 10:29 Сейчас в теме
вложенный запрос в условии в вт
условия с наименованиями заменить на НЕ В &(мСататусыОтобрать)

да и вообще этот запрос завалит реальную систему или прибегут пользователи и начнут бить
Ганс; +1 Ответить
5. user1008893 16.05.19 10:31 Сейчас в теме
(4)пока еще только начинаю,сложно с запросами работать
6. user1008893 16.05.19 10:41 Сейчас в теме
7. x_x 2 16.05.19 10:42 Сейчас в теме
если работаете со строками то лучше через подобно "%Частично отгружен%"
8. catena 110 16.05.19 10:46 Сейчас в теме
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Частично отгружен"
9. user1008893 16.05.19 10:46 Сейчас в теме
(8)вообще ничего не выводит
10. catena 110 16.05.19 10:48 Сейчас в теме
(9)Лень разбираться в структуре ваших регистров, но я думаю дело в том, что условие на левую таблицу превращает левое соединение во внутреннее.
11. user1008893 16.05.19 10:53 Сейчас в теме
(10)и как это можно исправить?
12. catena 110 16.05.19 10:54 Сейчас в теме
(11)Наверное, не делать условий на левые таблицы?)))
Перенесите из ГДЕ все условия в условия соединений.
user1008893; +1 Ответить
13. user1008893 16.05.19 11:06 Сейчас в теме
(12)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
	СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
ИЗ
	РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
		ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
		ПО (ПС_ЗаказыДляОтгрузкиЗаказы.Заказ = СтатусыВыполненияЗаказов.Заказ)
ГДЕ
	ЗаказыПокупателейОстатки.КолОстаток > 0
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления

СГРУППИРОВАТЬ ПО
	ЗаказыПокупателейОстатки.ДокЗаказ,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
	ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
АВТОУПОРЯДОЧИВАНИЕ
Показать

так?
14. catena 110 16.05.19 11:13 Сейчас в теме
(13)
"ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов"

"ГДЕ
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен""


Как? Где перенесение из условия в условия связи?
user1008893; +1 Ответить
15. user1008893 16.05.19 11:14 Сейчас в теме
(14)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
	СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения
ИЗ
	РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ,
	(ВЫБРАТЬ
		ПС_ЗаказыДляОтгрузкиЗаказы.Заказ КАК Заказ
	ИЗ
		Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
			ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
				ПО ПС_ЗаказыДляОтгрузки.Заказы.Заказ = СтатусыВыполненияЗаказов.Заказ
			ПО ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
	ГДЕ
		НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления
		И СтатусыВыполненияЗаказов.Статус.Наименование = "Частично отгружен") КАК ВложенныйЗапрос
ГДЕ
	ЗаказыПокупателейОстатки.КолОстаток > 0
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
	И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
	
СГРУППИРОВАТЬ ПО
	ЗаказыПокупателейОстатки.ДокЗаказ,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения
АВТОУПОРЯДОЧИВАНИЕ
Показать
16. user1008893 16.05.19 11:21 Сейчас в теме
(14)странно так,я выбираю частично отгруженные,а в консоль запросов выходят и оформленные тоже
17. Jen1978 19 16.05.19 13:24 Сейчас в теме
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"

вот эти условия лучше в массив и одной строкой проверять. Это во первых.
Во-вторых у Вас условием отсекаются статусы "Выполнен", "Не оформлен", "Не обеспечен". Остальные подбираются. а потом Запускается 2 левых соединения, которые участвуют во втором запросе "вложенный запрос" поля которого не читаете

ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
СУММА(ВЫБОР
КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения

это ваши поля, я не вижу в них ниодного обращения к вложенному запросу
18. Jen1978 19 16.05.19 13:31 Сейчас в теме
вот так попробуйте
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
    СУММА(ВЫБОР
            КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
                ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
            ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
        КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
    СУММА(ВЫБОР
            КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
                ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
            ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
        КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
    СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
    ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
    ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
    СтатусыВыполненияЗаказов.Статус
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
        ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
ГДЕ
    ЗаказыПокупателейОстатки.КолОстаток > 0
    И СтатусыВыполненияЗаказов.Статус В (&МассивНеобходимыхСтатусов)
    И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
    И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
    И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
    
СГРУППИРОВАТЬ ПО
    ЗаказыПокупателейОстатки.ДокЗаказ,
    ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
    ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
   СтатусыВыполненияЗаказов.Статус
АВТОУПОРЯДОЧИВАНИЕ
Показать
19. user1008893 16.05.19 16:05 Сейчас в теме
(18)Уже все сделала сама,спасибо всем) Получилось вот так
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ЗаказыПокупателейОстатки.ДокЗаказ КАК ЗаказПокупателя,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Вес = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Вес
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Вес
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Вес,
	СУММА(ВЫБОР
			КОГДА ЗаказыПокупателейОстатки.ВариантИсполнения.Объем = 0
				ТОГДА ЗаказыПокупателейОстатки.Номенклатура.Объем
			ИНАЧЕ ЗаказыПокупателейОстатки.ВариантИсполнения.Объем
		КОНЕЦ * ЗаказыПокупателейОстатки.КолОстаток) КАК Объем,
	СУММА(ЗаказыПокупателейОстатки.СуммаОстаток) КАК Сумма,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент КАК Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения КАК ДатаИсполнения,
	СтатусыВыполненияЗаказов.Статус
ИЗ
	РегистрНакопления.ЗаказыПокупателей.Остатки(, ) КАК ЗаказыПокупателейОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыВыполненияЗаказов.Заказ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
		ПО ЗаказыПокупателейОстатки.ДокЗаказ = СтатусыОбеспеченияЗаказов.Заказ
ГДЕ
	ЗаказыПокупателейОстатки.КолОстаток > 0
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Выполнен"
	И СтатусыВыполненияЗаказов.Статус.Наименование <> "Не оформлен"
	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> "Не обеспечен"
	И ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения <= &СчетчикМесяца
	И ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент = &Контрагент
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ.ПометкаУдаления
	И НЕ ЗаказыПокупателейОстатки.ДокЗаказ В
				(ВЫБРАТЬ
					ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
				ИЗ
					Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
						ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
						ПО
							ПС_ЗаказыДляОтгрузкиЗаказы.Заказ = СтатусыВыполненияЗаказов.Заказ
				ГДЕ
					СтатусыВыполненияЗаказов.Статус.Наименование <> "Частично отгружен")

СГРУППИРОВАТЬ ПО
	ЗаказыПокупателейОстатки.ДокЗаказ,
	ЗаказыПокупателейОстатки.ДокЗаказ.Контрагент,
	ЗаказыПокупателейОстатки.ДокЗаказ.ДатаИсполнения,
	СтатусыВыполненияЗаказов.Статус
АВТОУПОРЯДОЧИВАНИЕ
Показать
Оставьте свое сообщение

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