Имя: Пароль:
1C
 
Кострукция {ХАРАКТЕРИСТИКИ} и отбор СКД
,
0 konst1231
 
29.12.14
17:33
Здравсвуйте,
Есть отчет с 2-мя наборами данных СКД: 1-ый объект, 2-ый запрос.
Необходимо сделать возможным отбор в отчете по категориям ном-ры.
Добавил во 2-ой набор конструкцию:

{ХАРАКТЕРИСТИКИ
    ТИП(Справочник.Номенклатура)
    ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
            КатегорииОбъектов.Ссылка,
            КатегорииОбъектов.Наименование
        ИЗ
            Справочник.КатегорииОбъектов КАК КатегорииОбъектов
        ГДЕ
            КатегорииОбъектов.НазначениеКатегории = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
    ПОЛЕКЛЮЧА Ссылка
    ПОЛЕИМЕНИ Наименование
    ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.КатегорииОбъектов
    ПОЛЕОБЪЕКТА Объект
    ПОЛЕВИДА Категория }

Запрос из 2-го набора довольно сложный, со вложенными запросами и временными таблицами, данную конструкцию вставил на  самом верхнем уровне.
Отбор по категориям не работает: посмотрел запрос, кот. генерирует скд, отбор по категориям вставляется только в подзапрос, где выбирается таблица номенклатуры, а в параметры таблицы остатков, отбор не вставляется, как добиться чтобы отбор по категориям наклыдывался на весь запрос.

Вот кусок кода:

ВЫБРАТЬ
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК КоличествоПродаж,
    &КонецПериодаПродаж КАК КонецПериода,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    0 КАК КоличестовПродажПрошлыйГод,
    0 КАК ОстатокПоЗаказу
ИЗ
    РегистрНакопления.Продажи.Обороты(
            &НачалоПериода,
            &КонецПериодаПродаж,
            ,
            Номенклатура.Сезон.ДатаКонца <= &КонецПериода
                И Номенклатура.Бренд = &П2) КАК ПродажиОбороты
ГДЕ
    ВЫБОР
            КОГДА ПродажиОбороты.Номенклатура.Наименование ПОДОБНО "UA %"
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ = &П3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    0,
    &КонецПериодаПродаж,
    Номенклатура.Ссылка,
    0,
    0
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        ПО (КатегорииОбъектов.Объект = Номенклатура.Ссылка)
            И (КатегорииОбъектов.Категория = &П)
ГДЕ
    Номенклатура.Сезон.ДатаКонца <= &КонецПериода
    И Номенклатура.Бренд = &П2
    И ВЫБОР
            КОГДА Номенклатура.Наименование ПОДОБНО "UA %"
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ = &П3
    И ВЫБОР
            КОГДА КатегорииОбъектов.Объект ЕСТЬ НЕ NULL
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ = &П4
1 konst1231
 
29.12.14
17:37
Кусок кода сгенерел СКД, соединение с категориями есть только у таблицы Номенклатура.
2 konst1231
 
29.12.14
17:55
Никто не знает?
3 mikecool
 
29.12.14
17:57
а в параметры таблицы остатков, отбор не вставляется
в параметрах ВТ также есть закладка СКД, емнип ,там и надо указывать
4 konst1231
 
29.12.14
18:05
(3) не совсем понял: вы  про это: {(Номенклатура).*}


Вот тот кусок запроса из макета:

ВЫБРАТЬ
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК КоличествоПродаж,
    &КонецПериодаПродаж КАК КонецПериода,
    ПродажиОбороты.Номенклатура КАК Номенклатура,
    0 КАК КоличестовПродажПрошлыйГод,
    0 КАК ОстатокПоЗаказу
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериодаПродаж, , Номенклатура.Сезон.ДатаКонца <= &КонецПериода {(Номенклатура).*}) КАК ПродажиОбороты
{ГДЕ
    (ВЫБОР
            КОГДА ПродажиОбороты.Номенклатура.Наименование ПОДОБНО "UA %"
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) КАК ВключатьТолькоУкраину}

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    0,
    &КонецПериодаПродаж,
    Номенклатура.Ссылка,
    0,
    0
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Сезон.ДатаКонца <= &КонецПериода
{ГДЕ
    Номенклатура.Ссылка.* КАК Номенклатура,
    (ВЫБОР
            КОГДА Номенклатура.Наименование ПОДОБНО "UA %"
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) КАК ВключатьТолькоУкраину}
5 konst1231
 
29.12.14
18:10
(3) Где в параметрах ВТ закладка СКД? Имеется ввиду на закладке компонока данных, кнопка параметры ВТ?
6 Reaper_1c
 
29.12.14
22:26
Работа с характеристиками в параметрах виртуальных таблиц не поддерживается
7 konst1231
 
30.12.14
10:52
(6) Ок, а какм добиться чтобы было левое соединение категорий с РН, а не только со справочником ном-ры?
В консоли отчетов делал простой запрос, там все соединяет:

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

ОБЪЕДИНИТЬ ВСЕ

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


А с вложенными запросами не хочет, уже на вставлял {характеритиски} на всех уровнях.
2 + 2 = 3.9999999999999999999999999999999...