Объединение трех таблиц с товарами к документу без дублей

1. Lllypuk 09.04.21 09:16 Сейчас в теме
Всем привет, помогите пожалуйста, уже в который раз натыкаюсь на одну и ту же проблему и не могу решить. Есть документ Заказ поставщику, к нему необходимо присоединить таблицу товары из заказа поставщику, заказа клиента и коммерческого предложения. При добавлении полей из таблиц всё двоиться и получаются не верные данные, если пишу "ВЫБРАТЬ РАЗЛИЧНЫЕ" то табличные части в документах пропадают. Еще пробовал через "ОБЪЕДИНИТЬ ВСЁ", брал отдельно таблицы и объединял, всё объединяет чётко, но пути к табличным частям нету( Подскажите пожалуйста как можно это сделать, объясните где мои ошибки. За ранее благодарен всем за ответы!!!
ВЫБРАТЬ 
    КоммерческоеПредложениеКлиенту.Ссылка КАК КП,
    ЗаказКлиента.Ссылка КАК ЗК,
    ЗаказПоставщику.Ссылка КАК ЗП
ИЗ
    Документ.КоммерческоеПредложениеКлиенту КАК КоммерческоеПредложениеКлиенту
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
            ПО (ЗаказПоставщику.ДокументОснование = ЗаказКлиента.Ссылка)
        ПО (ЗаказКлиента.ДокументОснование = КоммерческоеПредложениеКлиенту.Ссылка)
{ГДЕ
    (ЗаказПоставщику.Дата >= &ДатаНачала),
    (ЗаказПоставщику.Дата <= &ДатаОкончания)}
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. o.nikolaev 213 09.04.21 10:19 Сейчас в теме
Уточните результат который вы хотите получить. Вы пишите что надо "присоединить таблицу Товары", но в результат запроса выводите ссылки на документы. При чем тут таблица Товары?
3. Lllypuk 09.04.21 10:31 Сейчас в теме
(2) Мне нежно получить 3 таблицы товаров из трех разных документов и один документ Заказ поставщику. А как правильно вывести?
4. o.nikolaev 213 09.04.21 10:32 Сейчас в теме
Тогда почему вы обращаетесь к заголовкам документов, а не к их соответствующим табличным частям?
5. UtSpar 134 09.04.21 10:34 Сейчас в теме
1. Получите в запросе три ваших документа(ссылки).
2. Сделайте запросы к табличным частям этих документов.
3. Сгруппируйте.

или я не так Вас понял.
6. Lllypuk 13.04.21 14:45 Сейчас в теме
(5) Да все верно, я запутался совсем уже, делаю вот так
ВЫБРАТЬ
	ЗаказПоставщику.Ссылка КАК ЗаказПоставщику,
	ЗаказПоставщику.Дата КАК Дата,
	ЗаказПоставщикуТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТЗаказПоставщикуДокумент
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
		ПО ЗаказПоставщикуТовары.Ссылка = ЗаказПоставщику.Ссылка
ГДЕ
	ЗаказПоставщику.Дата МЕЖДУ &Д1 И &Д2
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЗаказПоставщикуТовары.Ссылка КАК ТоварыИзЗаказаПоставщику,
	ЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки,
	ЗаказПоставщикуТовары.НоменклатураПартнера КАК НоменклатураПартнера,
	ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
	ЗаказПоставщикуТовары.Характеристика КАК Характеристика,
	ЗаказПоставщикуТовары.Упаковка КАК Упаковка,
	ЗаказПоставщикуТовары.КоличествоУпаковок КАК КоличествоУпаковок,
	ЗаказПоставщикуТовары.Количество КАК Количество,
	ЗаказПоставщикуТовары.ДатаПоступления КАК ДатаПоступления,
	ЗаказПоставщикуТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
	ЗаказПоставщикуТовары.Цена КАК Цена,
	ЗаказПоставщикуТовары.Сумма КАК Сумма,
	ЗаказПоставщикуТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
	ЗаказПоставщикуТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
	ЗаказПоставщикуТовары.СтавкаНДС КАК СтавкаНДС,
	ЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС,
	ЗаказПоставщикуТовары.СуммаСНДС КАК СуммаСНДС,
	ЗаказПоставщикуТовары.КодСтроки КАК КодСтроки,
	ЗаказПоставщикуТовары.Отменено КАК Отменено,
	ЗаказПоставщикуТовары.СтатьяРасходов КАК СтатьяРасходов,
	ЗаказПоставщикуТовары.АналитикаРасходов КАК АналитикаРасходов,
	ЗаказПоставщикуТовары.ПричинаОтмены КАК ПричинаОтмены,
	ЗаказПоставщикуТовары.Склад КАК Склад,
	ЗаказПоставщикуТовары.Назначение КАК Назначение,
	ЗаказПоставщикуТовары.Подразделение КАК Подразделение,
	ЗаказПоставщикуТовары.СписатьНаРасходы КАК СписатьНаРасходы,
	ЗаказПоставщикуТовары.ТоварыВПути КАК ТоварыВПути,
	ЗаказПоставщикуТовары.ПланируемаяДатаПоставки КАК ПланируемаяДатаПоставки
ПОМЕСТИТЬ ВТЗаказПоставщикуТовары
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
		ЛЕВОЕ СОЕДИНЕНИЕ ВТЗаказПоставщикуДокумент КАК ВТЗаказПоставщикуДокумент
		ПО ЗаказПоставщикуТовары.Ссылка = ВТЗаказПоставщикуДокумент.Ссылка
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТЗаказКлиентаТовары.ТоварыИзЗаказаКлиента КАК ТоварыИзЗаказаКлиента,
	ВТЗаказКлиентаТовары.НоменклатураЗК КАК НоменклатураЗК,
	ВТЗаказКлиентаТовары.ЦенаЗК КАК ЦенаЗК,
	ВТЗаказКлиентаТовары.СуммаЗК КАК СуммаЗК,
	ВТЗаказКлиентаТовары.ВалютаЗК КАК ВалютаЗК,
	ВТЗаказПоставщикуДокумент.ЗаказПоставщику КАК ЗаказПоставщику,
	ВТЗаказПоставщикуДокумент.Дата КАК Дата,
	ВТЗаказПоставщикуДокумент.Ссылка КАК Ссылка,
	ВТЗаказПоставщикуТовары.ТоварыИзЗаказаПоставщику КАК ТоварыИзЗаказаПоставщику,
	ВТЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки,
	ВТЗаказПоставщикуТовары.НоменклатураПартнера КАК НоменклатураПартнера,
	ВТЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
	ВТЗаказПоставщикуТовары.Характеристика КАК Характеристика,
	ВТЗаказПоставщикуТовары.Упаковка КАК Упаковка,
	ВТЗаказПоставщикуТовары.КоличествоУпаковок КАК КоличествоУпаковок,
	ВТЗаказПоставщикуТовары.Количество КАК Количество,
	ВТЗаказПоставщикуТовары.ДатаПоступления КАК ДатаПоступления,
	ВТЗаказПоставщикуТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
	ВТЗаказПоставщикуТовары.Цена КАК Цена,
	ВТЗаказПоставщикуТовары.Сумма КАК Сумма,
	ВТЗаказПоставщикуТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
	ВТЗаказПоставщикуТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
	ВТЗаказПоставщикуТовары.СтавкаНДС КАК СтавкаНДС,
	ВТЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС,
	ВТЗаказПоставщикуТовары.СуммаСНДС КАК СуммаСНДС,
	ВТЗаказПоставщикуТовары.КодСтроки КАК КодСтроки,
	ВТЗаказПоставщикуТовары.Отменено КАК Отменено,
	ВТЗаказПоставщикуТовары.СтатьяРасходов КАК СтатьяРасходов,
	ВТЗаказПоставщикуТовары.АналитикаРасходов КАК АналитикаРасходов,
	ВТЗаказПоставщикуТовары.ПричинаОтмены КАК ПричинаОтмены,
	ВТЗаказПоставщикуТовары.Склад КАК Склад,
	ВТЗаказПоставщикуТовары.Назначение КАК Назначение,
	ВТЗаказПоставщикуТовары.Подразделение КАК Подразделение,
	ВТЗаказПоставщикуТовары.СписатьНаРасходы КАК СписатьНаРасходы,
	ВТЗаказПоставщикуТовары.ТоварыВПути КАК ТоварыВПути,
	ВТЗаказПоставщикуТовары.ПланируемаяДатаПоставки КАК ПланируемаяДатаПоставки
ИЗ
	ВТЗаказПоставщикуДокумент КАК ВТЗаказПоставщикуДокумент
		ЛЕВОЕ СОЕДИНЕНИЕ ВТЗаказПоставщикуТовары КАК ВТЗаказПоставщикуТовары
			ЛЕВОЕ СОЕДИНЕНИЕ ВТЗаказКлиентаТовары КАК ВТЗаказКлиентаТовары
			ПО ВТЗаказПоставщикуТовары.ТоварыИзЗаказаПоставщику = ВТЗаказКлиентаТовары.ТоварыИзЗаказаКлиента
		ПО ВТЗаказПоставщикуДокумент.ЗаказПоставщику = ВТЗаказПоставщикуТовары.ТоварыИзЗаказаПоставщику
Показать


но ничего вообще не выводиться, подскажите где ошибки плиз и правильно ли я делаю вообще
7. UtSpar 134 13.04.21 15:10 Сейчас в теме
(6) глаза устали читать))

в консоли запросов есть кнопка отображать временные таблицы - запустите его но так чтобы в выборку если что попало 1-2 документа.

и смотрите какая из таблиц пустая - в ней проблема.



Ну или в последнем запросе соединение в соединении излишне - путает вытащите его как два соединения подряд.
8. Lllypuk 14.04.21 08:47 Сейчас в теме
(7) Сделал вот так, до второй таблицы виртуальной все работало прекрасно, сделал третью таблицу и ничего больше не выводиться, связь сделал такую же как и во второй таблице , в чем может быть дело?

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЗаказПоставщикуТовары.Ссылка КАК ДокументЗаказПоставщику,
	ЗаказПоставщикуТовары.НомерСтроки КАК НомерСтроки,
	ЗаказПоставщикуТовары.НоменклатураПартнера КАК НоменклатураПартнера,
	ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура,
	ЗаказПоставщикуТовары.Характеристика КАК Характеристика,
	ЗаказПоставщикуТовары.Упаковка КАК Упаковка,
	ЗаказПоставщикуТовары.КоличествоУпаковок КАК КоличествоУпаковок,
	ЗаказПоставщикуТовары.Количество КАК Количество,
	ЗаказПоставщикуТовары.ДатаПоступления КАК ДатаПоступления,
	ЗаказПоставщикуТовары.ВидЦеныПоставщика КАК ВидЦеныПоставщика,
	ЗаказПоставщикуТовары.Цена КАК Цена,
	ЗаказПоставщикуТовары.Сумма КАК Сумма,
	ЗаказПоставщикуТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
	ЗаказПоставщикуТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
	ЗаказПоставщикуТовары.СтавкаНДС КАК СтавкаНДС,
	ЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС,
	ЗаказПоставщикуТовары.СуммаСНДС КАК СуммаСНДС,
	ЗаказПоставщикуТовары.КодСтроки КАК КодСтроки,
	ЗаказПоставщикуТовары.Отменено КАК Отменено,
	ЗаказПоставщикуТовары.СтатьяРасходов КАК СтатьяРасходов,
	ЗаказПоставщикуТовары.АналитикаРасходов КАК АналитикаРасходов,
	ЗаказПоставщикуТовары.ПричинаОтмены КАК ПричинаОтмены,
	ЗаказПоставщикуТовары.Склад КАК Склад,
	ЗаказПоставщикуТовары.Назначение КАК Назначение,
	ЗаказПоставщикуТовары.Подразделение КАК Подразделение,
	ЗаказПоставщикуТовары.СписатьНаРасходы КАК СписатьНаРасходы,
	ЗаказПоставщикуТовары.ТоварыВПути КАК ТоварыВПути,
	ЗаказПоставщикуТовары.ПланируемаяДатаПоставки КАК ПланируемаяДатаПоставки
ПОМЕСТИТЬ ДокументЗП
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	КоммерческоеПредложениеКлиентуТовары.кнлНаценка КАК НаценкаИзКоммерческогоПредложения,
	КоммерческоеПредложениеКлиентуТовары.Номенклатура КАК НоменклатураИзКоммерческогоПредложения,
	КоммерческоеПредложениеКлиентуТовары.Ссылка КАК ДокументКоммерческоеПредложениеКлиенту,
	ДокументЗК.ДокументЗаказКлиента КАК ДокументЗаказКлиента,
	ДокументЗК.ЦенаЗаказКлиента КАК ЦенаЗаказКлиента,
	ДокументЗК.СуммаЗаказКлиента КАК СуммаЗаказКлиента,
	ДокументЗК.НоменклатураЗаказКлиента КАК НоменклатураЗаказКлиента,
	ДокументЗК.ДокументЗаказПоставщику КАК ДокументЗаказПоставщику,
	ДокументЗК.НоменклатураЗаказПоставщику КАК НоменклатураЗаказПоставщику,
	ДокументЗК.КоличествоТовараЗаказПоставщику КАК КоличествоТовараЗаказПоставщику,
	ДокументЗК.ЦенаТовараЗаказПоставщику КАК ЦенаТовараЗаказПоставщику,
	ДокументЗК.СуммаТовараЗаказПоставщику КАК СуммаТовараЗаказПоставщику,
	ДокументЗК.ТоварыВПутиЗаказПоставщику КАК ТоварыВПутиЗаказПоставщику,
	ДокументЗК.ПланируемаяДатаПоставкиЗаказПоставщику КАК ПланируемаяДатаПоставкиЗаказПоставщику
ИЗ
	ДокументЗП КАК ДокументЗП,
	ДокументЗК КАК ДокументЗК
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
		ПО ДокументЗК.НоменклатураЗаказКлиента = КоммерческоеПредложениеКлиентуТовары.Номенклатура
ГДЕ
	ДокументЗК.ДокументЗаказПоставщику.Дата МЕЖДУ &Д1 И &Д2
Показать
9. UtSpar 134 14.04.21 08:59 Сейчас в теме
(8)

ИЗ
    ДокументЗП КАК ДокументЗП,
    ДокументЗК КАК ДокументЗК


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

ну и + не знаю совет или не совет - не обязательно временной таблицы выбирать все реквизиты которые вам потом понадобятся в 3 таблице, выбирайте только ссылки например и реквизиты по которым потом соединяете .группируете.

а в последнем запросе уже через ссылку достанете нужные поля(через точку или соединением без разницы)

так просто запрос читабельней будет.
10. Lllypuk 14.04.21 09:51 Сейчас в теме
(9) Сделал связь в 3 таблице вот так:
ДокументЗП КАК ДокументЗП
		ЛЕВОЕ СОЕДИНЕНИЕ ДокументЗК КАК ДокументЗК
			ЛЕВОЕ СОЕДИНЕНИЕ Документ.КоммерческоеПредложениеКлиенту.Товары КАК КоммерческоеПредложениеКлиентуТовары
			ПО ДокументЗК.НоменклатураСсылка = КоммерческоеПредложениеКлиентуТовары.Ссылка
		ПО ДокументЗП.Номенклатура.Ссылка = ДокументЗК.НоменклатураСсылка


Все заработало, но наценку из Коммерческого предложения не подтягивает. Правильно я делаю что соединяю по номенклатуре ? И я так понимаю нужно делать 3 таблицу временной, затем делать 4 таблицу и туда добавлять все временные таблицы и делать связь ?
11. UtSpar 134 14.04.21 10:06 Сейчас в теме
(10) да наверное не по номенклатуре нужно а по цепочке документов.

Документы же создаются на основании другу друга и вам нужен заказ и КП по одному заказу.


(10)
затем делать 4 таблицу и туда добавлять все временные таблицы и делать связь


да без разницы.
12. Lllypuk 14.04.21 16:49 Сейчас в теме
(11) все сделал, соединилось отлично, но каким-то боком двоит позиции из заказа поставщику когда добавляю третью таблицу. Со второй ничего не двоит. Уже и сделал связь ВНУТРЕННЮЮ, все равно двоит((( я одного не пойму, как он может двоить если стоит "выбирать различные"
13. UtSpar 134 14.04.21 16:56 Сейчас в теме
(12) да надо разбираться. Возьмите запрос и ещё один свежий вопрос на форме напишите. Там прикрепите запрос. И там укажут на ошибки.
Оставьте свое сообщение

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