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

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 67 26.01.17 10:50 Сейчас в теме
Правильно грешишь, дубли всегда добавляет левое соединение.
5. Trotter_NN 26.01.17 13:46 Сейчас в теме
12. Onwardv 67 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) Код заполняется потом перебором результата запроса и присваивается код коменклатуры
Оставьте свое сообщение

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