Помогите разобраться с запросом

1. Trotter_NN 26.01.17 09:26 Сейчас в теме
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Ном.*,
	СпрКассы.Ссылка КАК Касса
ИЗ
	(

ВЫБРАТЬ
	РегШтрихКоды.Владелец КАК Номенклатура,
	РегШтрихКоды.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	РегШтрихКоды.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	РегШтрихКоды.СерияНоменклатуры КАК СерияНоменклатуры
ИЗ
	РегистрСведений.Штрихкоды КАК РегШтрихКоды
ГДЕ
	РегШтрихКоды.Владелец Ссылка Справочник.Номенклатура
{ГДЕ РегШтрихКоды.Владелец.* КАК Номенклатура}

ОБЪЕДИНИТЬ
ВЫБРАТЬ
	РегВесовыеКоды.Номенклатура КАК Номенклатура,
	РегВесовыеКоды.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
	РегВесовыеКоды.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	РегВесовыеКоды.СерияНоменклатуры КАК СерияНоменклатуры
ИЗ
	РегистрСведений.КодыВесовогоТовара КАК РегВесовыеКоды
{ГДЕ РегВесовыеКоды.Номенклатура.* КАК Номенклатура}

ОБЪЕДИНИТЬ
ВЫБРАТЬ
	СпрНоменклатура.Ссылка КАК Номенклатура,

	СпрНоменклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,

	СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,

	СпрНоменклатура.СерияНоменклатуры КАК СерияНоменклатуры

ИЗ
	(ВЫБРАТЬ
		СпрНоменклатура.Ссылка КАК Ссылка,
		СпрНоменклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХраненияОстатков,
		ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры,
		&ПустаяСерия КАК СерияНоменклатуры
	ИЗ
		Справочник.Номенклатура КАК СпрНоменклатура
	ГДЕ
		НЕ СпрНоменклатура.ЭтоГруппа 
		{ГДЕ СпрНоменклатура.Ссылка.* КАК Номенклатура}
	) КАК СпрНоменклатура

) КАК Ном

ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	Справочник.КассыККМ КАК СпрКассы
ПО
	СпрКассы.Ссылка В (&КассыККМ)
ЛЕВОЕ СОЕДИНЕНИЕ
	РегистрСведений.ТоварыНаККМ КАК ТоварыНаККМ
ПО
	ТоварыНаККМ.Номенклатура = Ном.Номенклатура
	И ТоварыНаККМ.ХарактеристикаНоменклатуры = Ном.ХарактеристикаНоменклатуры
	И ТоварыНаККМ.СерияНоменклатуры = Ном.СерияНоменклатуры
	И ТоварыНаККМ.ЕдиницаИзмерения = Ном.ЕдиницаИзмерения
	И ТоварыНаККМ.КассаККМ = СпрКассы.Ссылка

ГДЕ
	ТоварыНаККМ.Номенклатура ЕСТЬ NULL
	И Не Ном.Номенклатура.Набор
Показать


Запрос.Выполнить.Выгрузить();

Создаёт две позиции одинаковой номенклатуры. как поправить ?

Допустим есть 5 000 номенклатурных позиций.
Запрос выдаёт 5 001. В карточке номенклатуры может быть несколько едениц измерений. но я так предпологаю это не из за этого.
Пробовал добавлять код номенклатуры как уникальное значение и объединять - тут вобще получилась ерунда и запрос выдал 4 870 позиций.
Решил больше не экспериментировать и идти на форум )
Грешу на ЛЕВОЕ СОЕДИНЕНИЕ....
хотя могу быть и не прав.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SPID 26.01.17 10:01 Сейчас в теме
Я бы предложил начать с отладки за запроса в консуле и переписать запрос на пакет, без вложенных запросах (хотя бы только для отладки). В отладке будет видно какой подзапрос возвращает лишние "строки". Так же посмотреть левое соединение - по всем измерениям регистра ТоварыНаККМ идет соединение? Если нет искать причину в этом.
3. Sokar 26.01.17 10:10 Сейчас в теме
а вы проверяли уникальность штрих-кодов? вполне возможно, что двум номенклатурам присвоен один и тот же штрих-код... вот и выводит лишнюю позицию
4. Onwardv 64 26.01.17 10:50 Сейчас в теме
Правильно грешишь, дубли всегда добавляет левое соединение.
5. Trotter_NN 26.01.17 13:46 Сейчас в теме
12. Onwardv 64 27.01.17 15:24 Сейчас в теме
(5) Смотри дублированные строки, какие-то поля должны различаться, вот в них и причина.
Если нет, то, значит, ты их не показываешь, в этом случае добавляй список полей.
Добавь в условиях соединения:
...
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрСведений.ТоварыНаККМ КАК ТоварыНаККМ
ПО
    ЛОЖЬ И
    ТоварыНаККМ.Номенклатура = Ном.Номенклатура
...


Если дубли исчезнут, тогда дубли добавляет РегистрСведений.ТоварыНаККМ. смотри там
6. SPID 26.01.17 13:51 Сейчас в теме
Так а в чем суть проблемы? Не по всем измерениям соединение идет? Может соединять со вложенным запросом, в котором группировка выборки из регистра...
7. Trotter_NN 26.01.17 15:35 Сейчас в теме
(6) Это и есть весь запрос. Не пойму. почему иногда выбирается две позиции одно номенклатуры
(3) Нет. дело не в штрих кодах
8. SPID 26.01.17 16:39 Сейчас в теме
Понятно что весь.
В регистре ТоварыНаККМ какие измерения?
9. Trotter_NN 26.01.17 20:19 Сейчас в теме
(8) Измерения КассаККМ, Код.
Ресурсы Номенклатура,ХарактеристикаНоменклатуры, СерияНоменклатуры, ЕдиницаИзмерения
10. SPID 27.01.17 10:33 Сейчас в теме
Что за "Код"? По этому измерению нет соединения в запросе.
11. Trotter_NN 27.01.17 11:13 Сейчас в теме
(10) Код заполняется потом перебором результата запроса и присваивается код коменклатуры
Оставьте свое сообщение

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