Имя: Пароль:
1C
1С v8
СКД. Параметр виртуальной таблицы. Возможность не задавать
0 YF
 
13.02.14
17:07
Есть СКД. На основе вирт. таблицы бух. регистра.

Хочу делать возможность отбора по конкретной организации, а если не задана, то по всем.

Можно отбором в СКД, но при этом в запрос выберутся все данные, а потом наложится отбор.

Следовательно, лучше отобрать в параметре вирт. таблицы.

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

ВЫБРАТЬ
    ХозрасчетныйОбороты.Период КАК Период,
    СУММА(ХозрасчетныйОбороты.СуммаОборотКт - ХозрасчетныйОбороты.СуммаОборотДт) КАК ФактИзЗапроса
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            ,
            ,
            Декада,
            Счет В ИЕРАРХИИ (&ПараметрЗапросаСчета),
            &ПараметрЗапросаАналитикаСубконто,
            ВЫБОР
                КОГДА &ПараметрЗапросаОрганизация ЕСТЬ NULL
                    ТОГДА ИСТИНА
                КОГДА Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                    ТОГДА ИСТИНА
                ИНАЧЕ Организация = &ПараметрЗапросаОрганизация
            КОНЕЦ,
            ,
            ) КАК ХозрасчетныйОбороты
    
СГРУППИРОВАТЬ ПО

Если не выбираешь организацию - ругается, что параметр не указан.

Как сделать необязательность параметра?
1 Yea-Yea
 
13.02.14
17:15
в конструкторе запроса - закладка компоновка данных
2 YF
 
13.02.14
17:17
(1) Не понял, что в ней делать
3 Yea-Yea
 
13.02.14
17:19
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Качество КАК Качество,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    Качество.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    КоличествоОстаток}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки({(&Период)}, {(Номенклатура), (Склад)}) КАК ТоварыНаСкладахОстатки
4 Yea-Yea
 
13.02.14
17:19
вставь этот текст в запрос скд и открой конструктор. на закладке компоновка данных найдешь эти поля и установленные параметры по периоду, складу, номенклатуре
5 Yea-Yea
 
13.02.14
17:21
только номенклатура и склад попадут в раздел отборов. но при компоновке скд засунет их не в ГДЕ, а именно в параметры виртуальной таблицы
6 Aprobator
 
13.02.14
17:23
главное не забыть галочку автозаполнение снять. А то с ней СКД себя ведет не как надо, а как ей приспичит.
7 Yea-Yea
 
13.02.14
17:25
кстати да, автозаполнение - зло