Имя: Пароль:
1C
1С v8
Пользователь, выбирает 2 раза одну и туже номенклатуру в ТЧ и запрос удваивает результат
0 SkillUp
 
12.11.18
23:56
Понимаю что из-за левого соединения, но как убрать данный недочет в этом запросе, ... его  знает. Сгруппировать не могу пишет -"группировка по таблицам верхнего уровня и таблицам". Выбрать - "Без повторяющихся"  ,пишет - в запросе с предложениями различные и объединить нельзя использовать". Может кто и подскажет выход из ситуации...

Вот, запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |    СУММА(ВЫБОР
                  |            КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
                  |                ТОГДА 1
                  |            ИНАЧЕ -1
                  |        КОНЕЦ) КАК КоличествоСерийныхНоменров,
                  |    ДокументЧекККМ.Склад КАК Склад,
                  |    ЧекККМТовары.Номенклатура КАК Номенклатура,
                  |    ЧекККМСерийныеНомера.СерийныйНомер КАК СерийныйНомер,
                  |    ЧекККМТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                  |    ЧекККМТовары.СерияНоменклатуры КАК СерияНоменклатуры,
                  |    ЧекККМТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                  |    ЧекККМТовары.Коэффициент КАК Коэффициент,
                  |    ЧекККМТовары.Цена КАК Цена,
                  |    ЧекККМТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
                  |    ЧекККМТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
                  |    ЧекККМТовары.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
                  |    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
                  |    ЧекККМТовары.НомерСтроки
                  |ИЗ
                  |    Документ.ЧекККМ КАК ДокументЧекККМ
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары
                  |        ПО (ЧекККМТовары.Ссылка = ДокументЧекККМ.Ссылка)
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
                  |        ПО (СправочникНоменклатура.Ссылка = ЧекККМТовары.Номенклатура)
                  |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СерийныеНомера КАК ЧекККМСерийныеНомера
                  |        ПО (ЧекККМСерийныеНомера.Ссылка = ДокументЧекККМ.Ссылка)
                  |            И (ЧекККМСерийныеНомера.КлючСвязи = ЧекККМТовары.КлючСвязи)
                  |ГДЕ
                  |    ДокументЧекККМ.Дата МЕЖДУ &НачДата И &КонДата
                  |    И ДокументЧекККМ.Проведен
                  |    И ДокументЧекККМ.КассаККМ = &КассаККМ
                  |    И НЕ СправочникНоменклатура.Комплект
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ДокументЧекККМ.Склад,
                  |    ЧекККМТовары.Номенклатура,
                  |    ЧекККМСерийныеНомера.СерийныйНомер,
                  |    ЧекККМТовары.ХарактеристикаНоменклатуры,
                  |    ЧекККМТовары.СерияНоменклатуры,
                  |    ЧекККМТовары.ЕдиницаИзмерения,
                  |    ЧекККМТовары.Коэффициент,
                  |    ЧекККМТовары.Цена,
                  |    ЧекККМТовары.ПроцентСкидкиНаценки,
                  |    ЧекККМТовары.ПроцентАвтоматическихСкидок,
                  |    ЧекККМТовары.УсловиеАвтоматическойСкидки,
                  |    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки,
                  |    ЧекККМТовары.НомерСтроки
                  |
                  |ИМЕЮЩИЕ
                  |    СУММА(ВЫБОР
                  |            КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
                  |                ТОГДА 1
                  |            ИНАЧЕ -1
                  |        КОНЕЦ) > 0
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ЗНАЧЕНИЕ(Документ.ЧекККМ.ПустаяСсылка) КАК Документ,
                  |    ТоварыБезКомплектов.Комплект КАК Комплект,
                  |    ТоварыБезКомплектов.Склад КАК Склад,
                  |    ТоварыБезКомплектов.Номенклатура КАК Номенклатура,
                  |    ТоварыБезКомплектов.Количество КАК Количество,
                  |    ТоварыБезКомплектов.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                  |    ТоварыБезКомплектов.СерияНоменклатуры КАК СерияНоменклатуры,
                  |    ТоварыБезКомплектов.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                  |    ТоварыБезКомплектов.Коэффициент КАК Коэффициент,
                  |    ТоварыБезКомплектов.Цена КАК Цена,
                  |    ТоварыБезКомплектов.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
                  |    ТоварыБезКомплектов.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
                  |    ТоварыБезКомплектов.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
                  |    ТоварыБезКомплектов.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
                  |    ТоварыБезКомплектов.Сумма КАК Сумма,
                  |    ПУСТАЯТАБЛИЦА.( КАК КлючСтроки,  КАК КлючСвязи,  КАК Номенклатура,  КАК ХарактеристикаНоменклатуры,  КАК СерияНоменклатуры,  КАК ЕдиницаИзмерения,  КАК Количество,  КАК Цена) КАК СоставНабора,
                  |    ПУСТАЯТАБЛИЦА.( КАК КлючСвязи,  КАК СерийныйНомер) КАК СерийныеНомераСоставНабора,
                  |    0 КАК КлючСтроки,
                  |    ЧекККМТовары.Ссылка КАК СсылкаЧекККМ,
                  |    ЧекККМТовары.ЗП
                  |ИЗ
                  |    (ВЫБРАТЬ
                  |        Док.Номенклатура.Комплект КАК Комплект,
                  |        Док.Ссылка.Склад КАК Склад,
                  |        Док.Номенклатура КАК Номенклатура,
                  |        СУММА(ВЫБОР
                  |                КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
                  |                    ТОГДА Док.Количество
                  |                ИНАЧЕ -Док.Количество
                  |            КОНЕЦ) КАК Количество,
                  |        Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                  |        Док.СерияНоменклатуры КАК СерияНоменклатуры,
                  |        Док.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                  |        Док.Коэффициент КАК Коэффициент,
                  |        Док.Цена КАК Цена,
                  |        Док.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
                  |        Док.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
                  |        Док.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
                  |        Док.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
                  |        СУММА(ВЫБОР
                  |                КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
                  |                    ТОГДА Док.Сумма
                  |                ИНАЧЕ -Док.Сумма
                  |            КОНЕЦ) КАК Сумма,
                  |        Док.Ссылка КАК Ссылка
                  |    ИЗ
                  |        Документ.ЧекККМ.Товары КАК Док
                  |    ГДЕ
                  |        Док.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
                  |        И Док.Ссылка.КассаККМ = &КассаККМ
                  |        И Док.Ссылка.Проведен
                  |        И НЕ Док.Номенклатура.Комплект
                  |    
                  |    СГРУППИРОВАТЬ ПО
                  |        Док.Ссылка.Склад,
                  |        Док.Номенклатура,
                  |        Док.ХарактеристикаНоменклатуры,
                  |        Док.СерияНоменклатуры,
                  |        Док.ЕдиницаИзмерения,
                  |        Док.Коэффициент,
                  |        Док.Цена,
                  |        Док.ПроцентСкидкиНаценки,
                  |        Док.ПроцентАвтоматическихСкидок,
                  |        Док.УсловиеАвтоматическойСкидки,
                  |        Док.ЗначениеУсловияАвтоматическойСкидки,
                  |        Док.Номенклатура.Комплект,
                  |        Док.Ссылка
                  |    
                  |    ИМЕЮЩИЕ
                  |        СУММА(ВЫБОР
                  |                КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
                  |                    ТОГДА Док.Количество
                  |                ИНАЧЕ -Док.Количество
                  |            КОНЕЦ) <> 0) КАК ТоварыБезКомплектов
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары
                  |        ПО ТоварыБезКомплектов.Ссылка = ЧекККМТовары.Ссылка
                  |            И ТоварыБезКомплектов.Номенклатура = ЧекККМТовары.Номенклатура
                  |            И ТоварыБезКомплектов.ХарактеристикаНоменклатуры = ЧекККМТовары.ХарактеристикаНоменклатуры
                  |            И ТоварыБезКомплектов.СерияНоменклатуры = ЧекККМТовары.СерияНоменклатуры
                  |            И ТоварыБезКомплектов.СерияНоменклатуры = ЧекККМТовары.НомерСтроки
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |    Док.Ссылка,
                  |    Док.Номенклатура.Комплект,
                  |    Док.Ссылка.Склад,
                  |    Док.Номенклатура,
                  |    ВЫБОР
                  |        КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
                  |            ТОГДА Док.Количество
                  |        ИНАЧЕ -Док.Количество
                  |    КОНЕЦ,
                  |    Док.ХарактеристикаНоменклатуры,
                  |    Док.СерияНоменклатуры,
                  |    Док.ЕдиницаИзмерения,
                  |    Док.Коэффициент,
                  |    Док.Цена,
                  |    Док.ПроцентСкидкиНаценки,
                  |    Док.ПроцентАвтоматическихСкидок,
                  |    Док.УсловиеАвтоматическойСкидки,
                  |    Док.ЗначениеУсловияАвтоматическойСкидки,
                  |    ВЫБОР
                  |        КОГДА Док.Ссылка.ВидОперации = &ВидОперацииПродажа
                  |            ТОГДА Док.Сумма
                  |        ИНАЧЕ -Док.Сумма
                  |    КОНЕЦ,
                  |    Док.Ссылка.СоставНабора.(
                  |        КлючСтроки,
                  |        КлючСвязи,
                  |        Номенклатура,
                  |        ХарактеристикаНоменклатуры,
                  |        СерияНоменклатуры,
                  |        ЕдиницаИзмерения,
                  |        Количество,
                  |        Цена
                  |    ),
                  |    Док.Ссылка.СерийныеНомераСоставНабора.(
                  |        КлючСвязи,
                  |        СерийныйНомер
                  |    ),
                  |    Док.КлючСтроки,
                  |    Док.Ссылка,
                  |    NULL
                  |ИЗ
                  |    Документ.ЧекККМ.Товары КАК Док
                  |ГДЕ
                  |    Док.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
                  |    И Док.Ссылка.КассаККМ = &КассаККМ
                  |    И Док.Ссылка.Проведен
                  |    И Док.Номенклатура.Комплект
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Склад";
1 SkillUp
 
13.11.18
00:01
Стоит пользователю выбрать 2 раза одну и ту же номенклатуру в ТЧ, и и результат "удваивается"...
2 SkillUp
 
13.11.18
00:02
Удваивается по только по выбранной 2 раза номенклатуре...
3 H A D G E H O G s
 
13.11.18
00:07
Ужас
4 AlvlSpb
 
13.11.18
00:34
(0) Первый пакет. Делай запрос к таблице Документ.ЧекККМ.Товары а не к ней же с вн соединением с самим доком.
ЧекККМТовары.Ссылка.ВидОперации
ЧекККМТовары.Ссылка.Склад
И группируй
5 МихаилМ
 
13.11.18
01:08
что за бред

ИМЕЮЩИЕ
                  |    СУММА(ВЫБОР
                  |            КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
                  |                ТОГДА 1
                  |            ИНАЧЕ -1
                  |        КОНЕЦ) > 0
6 H A D G E H O G s
 
13.11.18
01:31
(5) Продаж должно быть больше, чем непродаж.
7 H A D G E H O G s
 
13.11.18
01:32
В целом, нормальный такой бредовый запрос времен ~~палеолита~~ УТ10.2, когда не было ВТ.
8 SkillUp
 
13.11.18
09:21
Спасибо за помощь! Тема закрыта...