Правильно подтянуть номенклатуру из табличных частей в запросе

1. Lllypuk 26.08.21 09:33 Сейчас в теме
Всем привет. Подскажите пожалуйста, есть две табличных части из Коммерческого предложения и заказа клиента, мне необходимо из них правильно вытащить "номенклатуру". В КП бывает что номенклатуры больше чем в заказе клиента, к примеру в КП 5 позиций а в заказ ушло только 3 позиции. Как сделать так чтобы в отчете отображалось из КП все позиции а в заказе 3 которые ушли в заказ и 2 чтобы пустые показывало ну или вообще пустые не отображало а только 3 которые ушли в заказ. За ранее спасибо!

ВЫБРАТЬ
	ЗаказКлиентаТовары.Ссылка.Валюта КАК ВалютаЗаказКлиента,
	ЗаказКлиентаТовары.Номенклатура КАК НоменклатураЗаказКлиента,
	ЗаказКлиентаТовары.Цена КАК ЦенаЗаказКлиента,
	ЗаказКлиентаТовары.Сумма КАК СуммаЗаказКлиента,
	ЗаказКлиентаТовары.Ссылка КАК ДокументЗаказКлиента,
	ЗаказКлиентаТовары.Ссылка.ДокументОснование КАК ДокументОснование,
	ЗаказКлиентаТовары.Количество КАК Количество,
	ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС,
	ЗаказКлиентаТовары.Цена КАК Цена,
	ЗаказКлиентаТовары.Ссылка.Статус КАК Статус,
	ЗаказКлиентаТовары.Ссылка.Дата КАК ДатаИзЗК,
	ЗаказКлиентаТовары.НомерСтроки КАК НомерСтрокиИзЗК
ПОМЕСТИТЬ ВТ2
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КоммерческоеПредложениеКлиентуТовары.Ссылка КАК ДокументКоммерческоеПредложениеКлиенту,
	КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК НоменклатураИзКП,
	КоммерческоеПредложениеКлиентуТовары.Ссылка.Дата КАК ДатаИзКП,
	КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
	КоммерческоеПредложениеКлиентуТовары.СуммаСНДС КАК СуммаСНДС,
	КоммерческоеПредложениеКлиентуТовары.Цена КАК Цена,
	КоммерческоеПредложениеКлиентуТовары.СуммаНДС КАК СуммаНДС,
	КоммерческоеПредложениеКлиентуТовары.Ссылка.Статус КАК Статус,
	КоммерческоеПредложениеКлиентуТовары.НомерСтроки КАК НомерСтрокиИзКП
ПОМЕСТИТЬ ВТ3
ИЗ
	Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ3.ДокументКоммерческоеПредложениеКлиенту КАК ДокументКоммерческоеПредложениеКлиенту,
	ВТ3.НоменклатураИзКП КАК НоменклатураИзКП,
	ВТ3.Количество КАК КоличествоИзКП,
	ВТ3.Цена КАК ЦенаИзКП,
	ВТ3.СуммаСНДС КАК СуммаСНДСИзКП,
	ВТ3.Статус КАК СтатусИзКП,
	ВТ2.ДокументЗаказКлиента КАК ДокументЗаказКлиента,
	ВТ2.НоменклатураЗаказКлиента КАК НоменклатураЗаказКлиента,
	ВТ2.Количество КАК КоличествоИзЗК,
	ВТ2.Цена КАК ЦенаИзЗК,
	ВТ2.СуммаСНДС КАК СуммаСНДСИзЗК,
	ВТ2.Статус КАК СтатусИзЗК,
	ВТ2.ДатаИзЗК КАК ДатаИзЗК,
	ВТ2.ДокументОснование КАК ДокументОснование,
	ВТ2.НомерСтрокиИзЗК КАК НомерСтрокиИзЗК,
	ВТ3.НомерСтрокиИзКП КАК НомерСтрокиИзКП
ИЗ
	ВТ3 КАК ВТ3
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
		ПО ВТ3.ДокументКоммерческоеПредложениеКлиенту.Ссылка = ВТ2.ДокументОснование
			И ВТ3.НоменклатураИзКП.Ссылка = ВТ2.НоменклатураЗаказКлиента.Ссылка
ГДЕ
	ВТ3.ДатаИзКП МЕЖДУ &Д1 И &Д2

СГРУППИРОВАТЬ ПО
	ВТ3.СуммаСНДС,
	ВТ3.Статус,
	ВТ2.НоменклатураЗаказКлиента,
	ВТ2.ДокументЗаказКлиента,
	ВТ2.ДатаИзЗК,
	ВТ2.ДокументОснование,
	ВТ3.Цена,
	ВТ2.СуммаСНДС,
	ВТ3.НоменклатураИзКП,
	ВТ2.Цена,
	ВТ2.Статус,
	ВТ3.ДокументКоммерческоеПредложениеКлиенту,
	ВТ3.Количество,
	ВТ2.Количество,
	ВТ2.НомерСтрокиИзЗК,
	ВТ3.НомерСтрокиИзКП
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. spacecraft 26.08.21 10:59 Сейчас в теме
(1) по описанию мало что понятно. Приведите скрин как сейчас и нарисуйте как нужно.
9. Lllypuk 26.08.21 11:08 Сейчас в теме
(8)
Прикрепленные файлы:
10. spacecraft 26.08.21 11:20 Сейчас в теме
(9) судя по всему это отчет на СКД.
Тогда в запросе достаточно этого:
ВЫБРАТЬ
    КП.Ссылка КАК ДокументКоммерческоеПредложениеКлиенту,
    КП.Номенклатура КАК НоменклатураИзКП,
    КП.Количество КАК КоличествоИзКП,
    КП.Цена КАК ЦенаИзКП,
    КП.СуммаСНДС КАК СуммаСНДСИзКП,
    КП.Ссылка.Статус КАК СтатусИзКП,
    Заказ.Ссылка КАК ДокументЗаказКлиента,
    Заказ.Номенклатура КАК НоменклатураЗаказКлиента,
    Заказ.Количество КАК КоличествоИзЗК,
    Заказ.Цена КАК ЦенаИзЗК,
    Заказ.СуммаСНДС КАК СуммаСНДСИзЗК,
    Заказ.Ссылка.Статус КАК СтатусИзЗК,
    Заказ.Ссылка.Дата КАК ДатаИзЗК,
    Заказ.Ссылка.ДокументОснование КАК ДокументОснование,
    Заказ.НомерСтроки КАК НомерСтрокиИзЗК,
    КП.НомерСтроки КАК НомерСтрокиИзКП
ИЗ
    Документ.КоммерческоеПредложениеКлиенту.Товары КАК КП
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК Заказ
        ПО КП.Ссылка = Заказ.Ссылка.ДокументОснование
            И КП.Номенклатура = Заказ.Номенклатура
ГДЕ
    КП.Дата МЕЖДУ &Д1 И &Д2
Показать

Остальное в настройках СКД делается.
2. FatPanzer 26.08.21 09:37 Сейчас в теме
И зачем тут временные таблицы?
3. homer_ 79 26.08.21 10:14 Сейчас в теме
есть несколько вариантов.
Скажу для тебя самый простой (по мне)
делаем еще ВТ4 в нем используем конструкцию ГДЕ (ВТ3.ДокументКоммерческоеПредложениеКлиенту,ВТ3.ДокументКоммерческоеПредложениеКлиенту) В (Выбрать Таб.ДокументОснование,Таб.НоменклатураЗаказКлиента как ВТ2 как ТАб)
Далее
Итоговой запрос собирает данные из ВТ4 и делаешь Объединить все с ВТ2 добавив условие по аналогии из ВТ4 только с НЕ
6. Lllypuk 26.08.21 10:52 Сейчас в теме
(3) Сделал ВТ4
ВЫБРАТЬ
	ВТ3.ДокументКоммерческоеПредложениеКлиенту КАК ДокументКоммерческоеПредложениеКлиенту,
	ВТ2.ДокументОснование КАК ДокументОснование,
	ВТ2.НоменклатураЗаказКлиента КАК НоменклатураЗаказКлиента
ПОМЕСТИТЬ ВТ4
ИЗ
	ВТ2 КАК ВТ2,
	ВТ3 КАК ВТ3
ГДЕ
	(ВТ3.ДокументКоммерческоеПредложениеКлиенту, ВТ3.ДокументКоммерческоеПредложениеКлиенту) В
			(ВЫБРАТЬ
				ВТ2.ДокументОснование,
				ВТ2.НоменклатураЗаказКлиента
			ИЗ
				ВТ2 КАК ВТ2)

Показать


Теперь необходимо ВТ4 добавить в итоговый запрос? Связь с ней нужно делать или из итоговой связи все удалить и делать условие?
7. homer_ 79 26.08.21 10:58 Сейчас в теме
(6) я когда копировал. забыл поправить

ГДЕ
(ВТ3.ДокументКоммерческоеПредложениеКлиенту, ВТ3.НоменклатураИзКП) В
(ВЫБРАТЬ
ВТ2.ДокументОснование,
ВТ2.НоменклатураЗаказКлиента КАК ВТ2
ИЗ
ВТ2)

Далее
ИЗ
ВТ2 КАК ВТ2,
ВТ3 КАК ВТ3
Зачем!!!???, ТАб ВТ4 у тебя в ней должны быть позиции которые выполнены заказам. Условие выше эти данные и отбирает.
11. Lllypuk 26.08.21 11:32 Сейчас в теме
Пишет что не может найти ВТ2
 
ВЫБРАТЬ
	КоммерческоеПредложениеКлиентуТовары.Ссылка КАК ДокументКоммерческоеПредложениеКлиенту,
	КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК НоменклатураИзКП,
	КоммерческоеПредложениеКлиентуТовары.Ссылка.Дата КАК ДатаИзКП,
	КоммерческоеПредложениеКлиентуТовары.Количество КАК Количество,
	КоммерческоеПредложениеКлиентуТовары.СуммаСНДС КАК СуммаСНДС,
	КоммерческоеПредложениеКлиентуТовары.Цена КАК Цена,
	КоммерческоеПредложениеКлиентуТовары.СуммаНДС КАК СуммаНДС,
	КоммерческоеПредложениеКлиентуТовары.Ссылка.Статус КАК Статус,
	КоммерческоеПредложениеКлиентуТовары.НомерСтроки КАК НомерСтрокиИзКП
ПОМЕСТИТЬ ВТ3
ИЗ
	Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	NULL КАК КП,
	ЗаказКлиентаТовары.Номенклатура КАК НоменклатураЗаказКлиента,
	ЗаказКлиентаТовары.Цена КАК Цена,
	ЗаказКлиентаТовары.Количество КАК Количество,
	ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС,
	ЗаказКлиентаТовары.Ссылка.ДокументОснование КАК ДокументОснование,
	ЗаказКлиентаТовары.Ссылка КАК ДокументЗаказКлиента,
	ЗаказКлиентаТовары.Ссылка.Валюта КАК ВалютаЗаказКлиента,
	ЗаказКлиентаТовары.Цена КАК ЦенаЗаказКлиента,
	ЗаказКлиентаТовары.Сумма КАК СуммаЗаказКлиента,
	ЗаказКлиентаТовары.Ссылка.Статус КАК Статус,
	ЗаказКлиентаТовары.Ссылка.Дата КАК ДатаИзЗК,
	ЗаказКлиентаТовары.НомерСтроки КАК НомерСтрокиИзЗК,
	NULL КАК Поле2,
	NULL КАК Поле3,
	NULL КАК Поле4
ПОМЕСТИТЬ ВТ2
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВТ3.ДокументКоммерческоеПредложениеКлиенту,
	ВТ2.НоменклатураЗаказКлиента,
	ВТ3.Цена,
	ВТ3.Количество,
	ВТ3.СуммаСНДС,
	ВТ2.ДокументОснование,
	ВТ2.ДокументЗаказКлиента,
	ВТ3.НоменклатураИзКП,
	ВТ2.Количество,
	ВТ2.Цена,
	ВТ2.СуммаСНДС,
	ВТ2.Статус,
	ВТ2.ДатаИзЗК,
	ВТ3.Статус,
	ВТ2.НомерСтрокиИзЗК,
	ВТ3.НомерСтрокиИзКП
ИЗ
	ВТ2 КАК ВТ2
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
		ПО ВТ2.ДокументОснование = ВТ3.ДокументКоммерческоеПредложениеКлиенту.Ссылка
			И ВТ2.НоменклатураЗаказКлиента.Ссылка = ВТ3.НоменклатураИзКП.Ссылка
ГДЕ
	ВТ3.ДатаИзКП МЕЖДУ &Д1 И &Д2
	И НЕ (ВТ3.ДокументКоммерческоеПредложениеКлиенту, ВТ3.НоменклатураИзКП) В
				(ВЫБРАТЬ
					ВТ2.ДокументОснование,
					ВТ2.НоменклатураЗаказКлиента КАК ВТ2
				ИЗ
					ВТ2)

СГРУППИРОВАТЬ ПО
	ВТ3.СуммаСНДС,
	ВТ3.Статус,
	ВТ2.НоменклатураЗаказКлиента,
	ВТ2.ДокументЗаказКлиента,
	ВТ2.ДатаИзЗК,
	ВТ2.ДокументОснование,
	ВТ3.Цена,
	ВТ2.СуммаСНДС,
	ВТ3.НоменклатураИзКП,
	ВТ2.Цена,
	ВТ2.Статус,
	ВТ3.ДокументКоммерческоеПредложениеКлиенту,
	ВТ3.Количество,
	ВТ2.Количество,
	ВТ2.НомерСтрокиИзЗК,
	ВТ3.НомерСтрокиИзКП
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ3.ДокументКоммерческоеПредложениеКлиенту КАК ДокументКоммерческоеПредложениеКлиенту,
	ВТ2.ДокументОснование КАК ДокументОснование,
	ВТ2.НоменклатураЗаказКлиента КАК НоменклатураЗаказКлиента
ПОМЕСТИТЬ ВТ4
ИЗ
	ВТ2 КАК ВТ2,
	ВТ3 КАК ВТ3
ГДЕ
	(ВТ3.ДокументКоммерческоеПредложениеКлиенту, ВТ3.НоменклатураИзКП) В
			(ВЫБРАТЬ
				ВТ2.ДокументОснование,
				ВТ2.НоменклатураЗаказКлиента КАК ВТ2
			ИЗ
				ВТ2)
Показать
4. Ivanov_OM 38 26.08.21 10:15 Сейчас в теме
Тут по моему проще пареной репы.
Просто к таблице ЗаказКлиентаТовары левым соединением по документу и номенклатуре лепишь КоммерческоеПредложениеКлиентуТовары
5. Lllypuk 26.08.21 10:29 Сейчас в теме
(4) Сделал вот так. То же самое, только теперь он и приравнял если из КП пошел Заказ . Мне нужно еще КП из которых заказ не пошел
ВТ2 КАК ВТ2
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
		ПО ВТ2.ДокументОснование = ВТ3.ДокументКоммерческоеПредложениеКлиенту.Ссылка
			И ВТ2.НоменклатураЗаказКлиента.Ссылка = ВТ3.НоменклатураИзКП.Ссылка
12. TosikS 26.08.21 11:33 Сейчас в теме
А в вашем первоначальном запросе что не так? Может еще у Вас отбор какой-то действует на Заказы в отчете?
13. Lllypuk 26.08.21 11:34 Сейчас в теме
(12) мой первоначальный приравнивает позиции из заказа к КП в итоге номенклатура из ЗК = номенклатуре из КП. А нужно чтобы из КП были все а в заказе только то что в заказе
14. TosikS 26.08.21 11:46 Сейчас в теме
(13) у Вас там ЛЕВОЕ СОЕДИНЕНИЕ, должно работать. Попробуйте этот запрос отдельно в консоли
Оставьте свое сообщение

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