8.х Запрос с параметрами

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем tvfox, 18 сен 2006.

  1. TopicStarter Overlay
    tvfox
    Offline

    tvfox

    Регистрация:
    18 сен 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый день !

    Есть запрос


    |ГДЕ (Конкурсы.Дата>=&ДатаСтарт) И
    | (Конкурсы.Дата<=&ДатаКонец) И
    | (Конкурсы.Заказчик=&Фирма)
    |СГРУППИРОВАТЬ ПО
    | Конкурсы.Заказчик.Ссылка,
    | АгентскоеВознаграждение.Вознаграждение,
    | Договоры.Ссылка
    |ИТОГИ ПО
    | ОБЩИЕ";
    В данном случае запрос работает, только если указаны все параметры, что не всегда устраивает.

    Как написать раздел ГДЕ, что-бы отбирались записи если не указан параметр "Фирма". Что-то вроде
    ?(СтрДлина(Фирма)=0,'','И Конкурсы.Заказчик=&Фирма ')


    Может это уже рассматривалось, только начал программировать на 1С - извините если что. :unsure:
  2. 1010011010
    Offline

    1010011010 [1cworld]

    Регистрация:
    1 авг 2006
    Сообщения:
    582
    Симпатии:
    0
    Баллы:
    26
    "ВЫБРАТЬ
    | планируемыеДсОбороты.СуммаОборот,
    | планируемыеДсОбороты.СуммаПриход КАК суммаприход,
    | планируемыеДсОбороты.СуммаРасход КАК суммарасход,
    | планируемыеДсОбороты.Документ,
    | НАЧАЛОПЕРИОДА(планируемыеДсОбороты.Документ.Дата, ДЕНЬ) КАК документДата
    |ИЗ
    | РегистрНакопления.ПланируемыеДС.Обороты(&ДатаНач, &ДатаКон) КАК планируемыеДсОбороты
    |ГДЕ
    | планируемыеДсОбороты.ТипОперации В (&ТипОперации)
    | И планируемыеДсОбороты.Документ.ТипДс В (&ВидДенег)
    |
    |УПОРЯДОЧИТЬ ПО
    | документДата
    |ИТОГИ
    | СУММА(суммаприход),
    | СУММА(суммарасход)
    |ПО
    | документДата");

    используй конструкцию "В"
  3. TopicStarter Overlay
    tvfox
    Offline

    tvfox

    Регистрация:
    18 сен 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    С конструкцией "В" не получается. Это срабатывает когда параметер заполнен. Хотелось - бы, если параметр не заполнен, то он и не должен участвовать в отборе.

    В FoxPro это решается примерно так

    u='.T.'
    u=u+IIF(EMPTY(o.TEXT14.VALUE), '','.AND.date_cus<={'+DTOC(o.TEXT14.VALUE)+'}')
    u=u+'.AND.date_cus=<{'+DTOC(o.TEXT17.VALUE)+'}.AND.( status="Ð".OR.dat>{'+DTOC(o.TEXT17.VALUE)+'}'+')

    select * from *** where &u
  4. 1010011010
    Offline

    1010011010 [1cworld]

    Регистрация:
    1 авг 2006
    Сообщения:
    582
    Симпатии:
    0
    Баллы:
    26
    ну можешь просто строить текст :) текст запроса, это обыкновенная строка
    ""+""
  5. TopicStarter Overlay
    tvfox
    Offline

    tvfox

    Регистрация:
    18 сен 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо все получилось
Похожие темы
  1. Samouchka
    Ответов:
    13
    Просмотров:
    656
Загрузка...

Поделиться этой страницей