Два левых соединения

1. tblok 28.07.17 15:52 Сейчас в теме
Пытаюсь по справочнику Номенклатуры с отбором собрать все остатки и остатки по выбранному складу:

ВЫБРАТЬ
		Номенклатура.Код,
		Номенклатура.Артикул,
		Номенклатура.Ссылка,
		Номенклатура.Наименование,
		ТоварыНаСкладахБО.КоличествоОстаток КАК Остаток,
		ТоварыНаСкладахОтбор.Склад,
		ТоварыНаСкладахОтбор.КоличествоОстаток КАК ОстатокПоСкладу
	ИЗ
		Справочник.Номенклатура КАК СпрНоменклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахБО
	ПО
		Номенклатура.Ссылка = ТоварыНаСкладахБО.Номенклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахОтбор
	ПО
		Номенклатура.Ссылка = ТоварыНаСкладахОтбор.Номенклатура
		
	ГДЕ
		Номенклатура.Наименование Подобно &ВыбНаименование И
	    ТоварыНаСкладахОтбор.Склад Подобно &ВыбСклад
Показать



Выдает ошибку Неоднозначное поле "Номенклатура.Наименование"
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. KazanKokos 10 28.07.17 15:54 Сейчас в теме
"ПО СпрНоменклатура" а не Номенклатура
+
3. tblok 28.07.17 15:59 Сейчас в теме
Исправил так

ВЫБРАТЬ
		Номенклатура.Код,
		Номенклатура.Артикул,
		Номенклатура.Ссылка,
		Номенклатура.Наименование,
		ТоварыНаСкладахБО.КоличествоОстаток КАК Остаток,
		ТоварыНаСкладахОтбор.Склад,
		ТоварыНаСкладахОтбор.КоличествоОстаток КАК ОстатокПоСкладу
	ИЗ
		Справочник.Номенклатура КАК СпрНоменклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахБО
	ПО
		СпрНоменклатура.Ссылка = ТоварыНаСкладахБО.Номенклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахОтбор
	ПО
		СпрНоменклатура.Ссылка = ТоварыНаСкладахОтбор.Номенклатура
		
	ГДЕ
		СпрНоменклатура.Наименование Подобно &ВыбНаименование И
	    ТоварыНаСкладахОтбор.Склад.Наименование Подобно &ВыбСклад
Показать

Ругается на Номенклатура.Код
+
4. Рустам 1 28.07.17 16:04 Сейчас в теме
(3)
СпрНоменклатура
СпрНоменклатура.Код
+
5. SPID 28.07.17 16:07 Сейчас в теме
Номенклатура.Код, 
Номенклатура.Артикул, 
Номенклатура.Ссылка,
Номенклатура.Наименование, 


Заменить на

СпрНоменклатура.Код, 
СпрНоменклатура.Артикул, 
СпрНоменклатура.Ссылка, 
СпрНоменклатура.Наименование,
+
6. tblok 28.07.17 16:12 Сейчас в теме
Ура! Получилось, но не совсем... Проверяю в консоли. При выборе склада без остатков список номенклатуры становится пустым, а хотелось видеть общий остаток и остаток по складу. Видимо я неправильно использую левое соединение?
+
7. DimDiemon 79 28.07.17 16:18 Сейчас в теме
Вы не правильно используете условия.
не совсем понятно, зачем условие делать по наименованию, ну и условие всё таки надо перенести в параметры виртуальной таблицы.

А ещё, для таких простых запросов лучше пользоваться конструктором.
+
10. SPID 28.07.17 16:31 Сейчас в теме
Сейчас у вас если условие ТоварыНаСкладахОтбор.Склад.Наименование Подобно &ВыбСклад не выполнилось, то в выборку результат не попадет.
Возможно условие необходимо перенести в условия соединения
ЛЕВОЕ СОЕДИНЕНИЕ 
РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахОтбор 
ПО 
СпрНоменклатура.Ссылка = ТоварыНаСкладахОтбор.Номенклатура 
И ТоварыНаСкладахОтбор.Склад.Наименование Подобно &ВыбСклад 


Лучше перенести условие в параметры виртуальной таблицы, как рекомендовал . (7)
+
8. tblok 28.07.17 16:21 Сейчас в теме
Это аналог кнопки "Подбор" только много критериев. Построителем сделаю подбор.
+
9. Nigmatul 28.07.17 16:28 Сейчас в теме
Добрый день, а зачем придумывать велосипед. Если тебе нужны остатки, допили подбор типовой.
Когда мне такое понадобилось именно так и сделал, на форму подбора добавил реквизит "Склад" и допилил типовой функционал.
Прикрепленные файлы:
+
11. tblok 28.07.17 16:40 Сейчас в теме
Спасибо! Так заработало!

ВЫБРАТЬ
		СпрНоменклатура.Код,
		СпрНоменклатура.Артикул,
		СпрНоменклатура.Ссылка,
		СпрНоменклатура.Наименование,
		ТоварыНаСкладахБО.КоличествоОстаток КАК Остаток,
		ТоварыНаСкладахОтбор.Склад,
		ТоварыНаСкладахОтбор.КоличествоОстаток КАК ОстатокПоСкладу
	ИЗ
		Справочник.Номенклатура КАК СпрНоменклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахБО
	ПО
		СпрНоменклатура.Ссылка = ТоварыНаСкладахБО.Номенклатура
		
		ЛЕВОЕ СОЕДИНЕНИЕ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) КАК ТоварыНаСкладахОтбор
	ПО
		СпрНоменклатура.Ссылка = ТоварыНаСкладахОтбор.Номенклатура И
	    ТоварыНаСкладахОтбор.Склад.Наименование Подобно &ВыбСклад
		
	ГДЕ
		СпрНоменклатура.Наименование Подобно &ВыбНаименование
Показать


Про параметры виртуальной таблицы пока не знаю, если это сложно, посмотрю что это такое на форумах. Спасибо всем, Подготовлю в построителе выложу!
+
12. tblok 28.07.17 17:24 Сейчас в теме
К сожалению со складом не получилось, прошу помочь
Прикрепленные файлы:
ПодборНоменклатуры1.epf
+
13. tblok 28.07.17 18:10 Сейчас в теме
Готов финансово поддержать, сколько, куда, кому...
+
14. Xershi 1484 28.07.17 20:57 Сейчас в теме
(13) в штрихкоды тут причем?
+
16. Xershi 1484 28.07.17 21:12 Сейчас в теме
(13) ну не разбирался зачем ШК впихнули думаю то что вам надо сделал
Прикрепленные файлы:
ПодборНоменклатуры2.epf
+
17. tblok 28.07.17 21:19 Сейчас в теме
(16) при выборе склада без остатков пропадает общее количество
+
18. Xershi 1484 28.07.17 21:26 Сейчас в теме
(17) ну это уже сами доделывайте.
+
15. tblok 28.07.17 21:11 Сейчас в теме
а по штрихкоду видно отечественные товары или импортные, отечественные у нас начинаются 4600
+
19. Xershi 1484 28.07.17 21:32 Сейчас в теме
А вообще зачем вам построитель отчетов? используйте СКД!
+
20. tblok 29.07.17 11:06 Сейчас в теме
СКД пока не умею. Всех благодарю, особенно Xershi, узнал много нового, особенно применение виртуальных таблиц, очень надеюсь что выложенные обработки помогут другим в освоении построителя, мне бы очень помогли пару недель назад!
+
Внимание! Тема сдана в архив

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