Имя: Пароль:
1C
1С v8
запрос на 2 списка номенклатуры
0 LivingStar
 
13.08.13
14:07
Ребят прокомментируйте кому не сложно запрос. Задача в выборке по торговой точке итогов по одной номенклатуре и рядом по другой, делал через пакетный запрос. В первом задаю один список во втором другой, и вывожу в итоговом запросе, вот верно ли соединение???


ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.ТорговаяТочка,
    ВложенныйЗапрос.КоличествоОборот КАК КоличествоОборот,
    ВложенныйЗапрос.ПериодМесяц,
    ВложенныйЗапрос.АдресТорговойТочки
ПОМЕСТИТЬ ВТ_НОМ1
{ВЫБРАТЬ
    Номенклатура.*,
    Контрагент.*,
    ТорговаяТочка.*,
    КоличествоОборот,
    ПериодМесяц}
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.Номенклатура КАК Номенклатура,
        ПродажиОбороты.Контрагент КАК Контрагент,
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка КАК ТорговаяТочка,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборот,
        ПродажиОбороты.ПериодМесяц КАК ПериодМесяц,
        ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) КАК АдресТорговойТочки
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокНОМ1)) КАК ПродажиОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            ПО ПродажиОбороты.Регистратор.ТорговаяТочка = КонтактнаяИнформация.Объект
                И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
                И (КонтактнаяИнформация.Вид.Код = "000000027")) КАК ВложенныйЗапрос
{ГДЕ
    ВложенныйЗапрос.Номенклатура.*,
    ВложенныйЗапрос.ТорговаяТочка.*,
    ВложенныйЗапрос.Контрагент.*,
    ВложенныйЗапрос.КоличествоОборот,
    ВложенныйЗапрос.ПериодМесяц}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Контрагент,
    ВложенныйЗапрос.ТорговаяТочка,
    ВложенныйЗапрос.КоличествоОборот КАК КоличествоОборот,
    ВложенныйЗапрос.ПериодМесяц,
    ВложенныйЗапрос.АдресТорговойТочки
ПОМЕСТИТЬ ВТ_НОМ2
{ВЫБРАТЬ
    Номенклатура.*,
    Контрагент.*,
    ТорговаяТочка.*,
    КоличествоОборот,
    ПериодМесяц}
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.Номенклатура КАК Номенклатура,
        ПродажиОбороты.Контрагент КАК Контрагент,
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка КАК ТорговаяТочка,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборот,
        ПродажиОбороты.ПериодМесяц КАК ПериодМесяц,
        ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) КАК АдресТорговойТочки
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокНОМ2)) КАК ПродажиОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
            ПО ПродажиОбороты.Регистратор.ТорговаяТочка = КонтактнаяИнформация.Объект
                И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
                И (КонтактнаяИнформация.Вид.Код = "000000027")) КАК ВложенныйЗапрос
{ГДЕ
    ВложенныйЗапрос.Номенклатура.*,
    ВложенныйЗапрос.ТорговаяТочка.*,
    ВложенныйЗапрос.Контрагент.*,
    ВложенныйЗапрос.КоличествоОборот,
    ВложенныйЗапрос.ПериодМесяц}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_НОМ1.ТорговаяТочка,
    ВТ_НОМ1.АдресТорговойТочки,
    ВТ_НОМ1.КоличествоОборот,
    ВТ_НОМ2.КоличествоОборот КАК КоличествоОборот1
ИЗ
    ВТ_НОМ1 КАК ВТ_НОМ1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_НОМ2 КАК ВТ_НОМ2
        ПО ВТ_НОМ1.ТорговаяТочка = ВТ_НОМ2.ТорговаяТочка
1 butterbean
 
13.08.13
14:10
нафига столько запросов и соединений??
2 LivingStar
 
14.08.13
05:23
(1) запрос взял из типового отчета им пользуюсь
3 LivingStar
 
14.08.13
05:24
как избавиться от повторяющихся записей в запросе (0)?
4 LivingStar
 
14.08.13
05:25
Три соединения!!!! два пакетных запроса с соединениями и их соединение!!! Сколько столько то???
5 Godofsin
 
14.08.13
06:26
РАЗЛИЧНЫЕ
6 LivingStar
 
14.08.13
06:29
Подскажите кому не трудно, почему не могу выбрать:

ТорговаяТочка, КоличествоНОМ1, КоличествоНОМ2 ?

ВЫБРАТЬ
    ВложенныйЗапрос.ТорговаяТочка,
    СУММА(ВложенныйЗапрос.КоличествоОборотНОМ1) КАК КоличествоОборотНОМ1,
    СУММА(ВложенныйЗапрос.КоличествоОборотНОМ2) КАК КоличествоОборотНОМ2
ПОМЕСТИТЬ ВТ_НОМ1
{ВЫБРАТЬ
    ТорговаяТочка.*}
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка КАК ТорговаяТочка,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборотНОМ1,
        0 КАК КоличествоОборотНОМ2
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокНОМ1)) КАК ПродажиОбороты
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка,
        0,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокНОМ2)) КАК ПродажиОбороты) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО ВложенныйЗапрос.ТорговаяТочка = КонтактнаяИнформация.Объект
{ГДЕ
    ВложенныйЗапрос.ТорговаяТочка.*}

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.ТорговаяТочка
7 LivingStar
 
14.08.13
06:29
(5) Мне кажется в (0) запрос вообще не корректный !!!
8 LivingStar
 
14.08.13
06:32
вот так выбрал, если не ошибаюсь правильно!!!

ВЫБРАТЬ
    ВложенныйЗапрос.ТорговаяТочка,
    СУММА(ВложенныйЗапрос.КоличествоОборотБАФ) КАК КоличествоОборотБАФ,
    СУММА(ВложенныйЗапрос.КоличествоОборотБОЛЬШАЯ_СОСИСКА) КАК КоличествоОборотБОЛЬШАЯ_СОСИСКА
{ВЫБРАТЬ
    ТорговаяТочка.*}
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка КАК ТорговаяТочка,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоОборотБАФ,
        0 КАК КоличествоОборотБОЛЬШАЯ_СОСИСКА
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокБАФ)) КАК ПродажиОбороты
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ПродажиОбороты.ДокументПродажи.ТорговаяТочка,
        0,
        ПродажиОбороты.КоличествоОборот / ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент
    ИЗ
        РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Авто, Номенклатура В ИЕРАРХИИ (&СписокБОЛЬШАЯ_СОСИСКА)) КАК ПродажиОбороты) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО ВложенныйЗапрос.ТорговаяТочка = КонтактнаяИнформация.Объект
{ГДЕ
    ВложенныйЗапрос.ТорговаяТочка.*}

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.ТорговаяТочка
9 LivingStar
 
14.08.13
06:39
связал с контактной информацией, выразил как строка(100), пишет "Недопустимое поле для группироски адрес", я же делаю ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100))
почему не выражает?
10 LivingStar
 
14.08.13
06:42
ВЫБРАЛ!!! Только не переносил поле, а создал, добавил, в нем уже выразил....