Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Условие в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
robot1
Друзья, имеем нормально работающий запрос. Необходимо добавить условие "если склад = "Определенный склад" тогда отбирать "Определенный товар" иначе если склад = "Любой другой склад" тогда отбирать "Любой товар". Вопрос пустяк, спасибо за поддержку smile.gif

    Запрос.Текст =
    
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Склад КАК Склад,
    |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    СУММА(РеализацияТоваровУслугТовары.Акциз) КАК Акциз,
    |    СУММА(ВЫБОР КОГДА РеализацияТоваровУслугТовары.КвоЛитр > 0 ТОГДА РеализацияТоваровУслугТовары.КвоЛитр ИНАЧЕ РеализацияТоваровУслугТовары.Количество КОНЕЦ) КАК Кво";
    //|    СУММА(РеализацияТоваровУслугТовары.КвоЛитр) КАК Кво";
    
    Если флдок = 1 тогда
        запрос.текст = запрос.текст + ",
        |    РеализацияТоваровУслуг.Ссылка";
    конецесли;
        
    запрос.текст = запрос.текст + "
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
    |ГДЕ
    |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И РеализацияТоваровУслуг.Проведен = ИСТИНА
    |    И РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&ВыбТовар)
    |    И РеализацияТоваровУслуг.Склад В ИЕРАРХИИ(&ВыбСклад)
    |    И (РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ (&группапальне)
    |    ИЛИ РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ (&газ))
    |    И склад.флНеАкциз = 0
    |
    |СГРУППИРОВАТЬ ПО
    |    РеализацияТоваровУслуг.Склад,
    |    РеализацияТоваровУслугТовары.Номенклатура";
    
    Если флдок = 1 тогда
        запрос.текст = запрос.текст + ",
    |    РеализацияТоваровУслуг.Ссылка";
    конецесли;

    запрос.текст = запрос.текст + "
    |УПОРЯДОЧИТЬ ПО
    |    Склад,
    |    Номенклатура
    |ИТОГИ
    |    СУММА(Акциз),
    |    СУММА(Кво)
    |ПО
    |    ОБЩИЕ,
    |    Склад,
    |    Номенклатура";
    
    Если флдок = 1 тогда
        запрос.текст = запрос.текст + ",
    |    РеализацияТоваровУслуг.Ссылка";
    конецесли;
    
    Результат = Запрос.Выполнить();

Vofka
Т.к. вы собираете запрос динамически, то где-то внутри секции ГДЕ вставьте код:

Если Склад = МойСклад Тогда
   запрос.текст = запрос.текст + " И РеализацияТоваровУслугТовары.Номенклатура = &Мояноменклатура";
КонецЕсли;
sava1
Цитата(robot1 @ 03.03.16, 13:16) необходимо зарегистрироваться для просмотра ссылки
| И РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&ВыбТовар) | И РеализацияТоваровУслуг.Склад В ИЕРАРХИИ(&ВыбСклад)

Уже все написано. только подставить параметры
robot1
Vofka @ Сегодня, 14:28 необходимо зарегистрироваться для просмотра ссылки,
не совсем понял как будет выполняться мое условие. в запросе уже есть такая строка: ИЛИ РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ (&газ))

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

|(РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ (&группапальне)
    |    ИЛИ РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ (&газ))
sava1
ну и меняйте параметры - группапальне,газ
robot1
всем спасибо. разобрался)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.