Имя: Пароль:
1C
1С v8
условие в запросе
0 gorilla
 
15.01.16
15:41
добрый день.есть простенький запрос
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
       |    И ЗаказПокупателя.Ответственный = &Продавец
при таком раскладе выведет только если назначу продавца,а как вывести или всех или только кого выберу на форме?спасибо
1 butterbean
 
15.01.16
15:43
а подумать?
2 laeg
 
15.01.16
15:44
Составной текст запроса по условию или проверка на Продавца в запросе.
Можно проще,типа:
Если Не ЗначениеЗаполнено(Продавец) Тогда
3 18_plus
 
15.01.16
15:44
ГДЕ
ВЫБОР
КОГДА &Продавец = ЗНАЧЕНИЕ(СправочникСсылка.Пользователи.ПустаяСсылка) ТОГДА ИСТИНА
ИНАЧЕ ЗаказПокупателя.Ответственный = &Продавец
КОНЕЦ
4 gorilla
 
15.01.16
15:44
(1)мозгов нехватает
5 laeg
 
15.01.16
15:44
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И ЗаказПокупателя.Ответственный = &Продавец","")
6 НЕА123
 
15.01.16
15:44
|ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |{ГДЕ
       |    И ЗаказПокупателя.Ответственный = &Продавец}
7 Ахмадинежад
 
15.01.16
15:45
Выбор когда &Продавец = Значение(Справочник.какой-тотам.ПустаяСсылка) или &Продавец = НЕопределено ТОгда
ИСТИНА
Иначе ЗаказПокупателя.Ответственный = &Продавец
Конец
8 18_plus
 
15.01.16
15:46
корректировка к (3)
ЗНАЧЕНИЕ(Справочник.<тут название справочника>.ПустаяСсылка)
9 gorilla
 
15.01.16
15:46
спасибо всем
10 Suhoi
 
15.01.16
15:48
Можно и так, по-деревенски:


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

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

    Запрос = Новый Запрос(ТекстЗапроса);
11 gorilla
 
15.01.16
15:50
спасибо огромное