8.х Параметр запроса

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

  1. TopicStarter Overlay
    Alexit
    Offline

    Alexit

    Регистрация:
    27 янв 2010
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. У меня такой вопрос можно ли в запросе передать параметр ЕСТЬ NULL. То есть например в запросе есть условие ГДЕ СудебныеДела.Контрагент ЕСТЬ NULL Так все работает. Но нужно выбирать значения ЕСТЬ NULL и ЕСТЬ НЕ NULL Как сделать такой параметр? Я пробовал указывать строковой параметр но не получается. Подскажите если кто сталкивался. Заранее спасибо
  2. shurikvz
    Online

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Не совсем понял. Возможно вам нужна пустая ссылка, т.е. например:
    Код:
    Запрос.УстановитьПараметр("ПустойКонтрагент",   Справочники.Контрагенты.ПустаяСсылка());
    
    
  3. TopicStarter Overlay
    Alexit
    Offline

    Alexit

    Регистрация:
    27 янв 2010
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1

    Это запрос в СКД. там нет УстановитьПараметр. Просто идет левое соединение и нужно сделать чтобы он выводил только тех кого нашел или наоборот только тех кого не нашел
  4. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    С теми, кого нашёл, всё просто - это задаётся типом соединения. С тими, кого не нашёл, сложнее: как можно вывести тех, кого не нашли? Их ведь не нашли, а, значит, их в запросе нет.
  5. TopicStarter Overlay
    Alexit
    Offline

    Alexit

    Регистрация:
    27 янв 2010
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    вот весь код запроса. интересует самая последняя строка как с помощью параметра поменять ЕСТЬ NULL на ЕСТЬ НЕ NULL

    Код:
    "ВЫБРАТЬ
    ГрафикПлатежейСрезПоследних.Контрагент КАК КонтрагентНаименование,
    ГрафикПлатежейСрезПоследних.Регистратор КАК Заказ,
    ГрафикПлатежейСрезПоследних.Регистратор.СуммаДокумента КАК ОбщаяСуммаЗаказа,
    ГрафикПлатежейСрезПоследних.Регистратор.Дата КАК РегистраторДата,
    ГрафикПлатежейСрезПоследних.СуммаПлатежа КАК СуммаЕжемесячногоПлатежа,
    ГрафикПлатежейСрезПоследних.СуммаОстаток КАК ОбщаяЗадолженностьНаДату,
    ГрафикПлатежейСрезПоследних.Период,
    ЕСТЬNULL(ГрафикПлатежейСрезПоследних.Регистратор.СуммаДокумента,0) - ЕСТЬNULL(РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,0) КАК ОплаченоНаДату, 
    ЕСТЬNULL(ГрафикПлатежейСрезПоследних.СуммаОстаток,0) - (ЕСТЬNULL(ГрафикПлатежейСрезПоследних.Регистратор.СуммаДокумента,0) - ЕСТЬNULL(РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,0)) КАК ТекущаяЗадолженность,
    РасчетыСКонтрагентамиОстатки.Контрагент КАК Контрагент,
    РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
    РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК ОбшаяЗадолженность,
    РасчетыСКонтрагентамиОстатки.Сделка,
    ВЫБОР
    КОГДА СудебныеДела.Контрагент ЕСТЬ NULL ИЛИ СудебныеДела.ДатаЗакрытияДела <> &ПустаяДата 
    ТОГДА "Нет судебных дел"
    ИНАЧЕ "Есть судебное дело"
    КОНЕЦ КАК СудебноеДело
    ИЗ
    РегистрСведений.ГрафикПлатежей.СрезПоследних(&ДатаОтчета) КАК ГрафикПлатежейСрезПоследних
    ЛЕВОЕ СОЕДИНЕНИЕ 
    РегистрНакопления.РасчетыСКонтрагентами.Остатки(&ДатаОтчета, СтатьяДвижения2 <> &СтатьяДвижения) КАК РасчетыСКонтрагентамиОстатки
    ПО
    (ГрафикПлатежейСрезПоследних.Контрагент = РасчетыСКонтрагентамиОстатки.Контрагент)
    И   (ГрафикПлатежейСрезПоследних.Договор = РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента)
    И	(ГрафикПлатежейСрезПоследних.Регистратор = РасчетыСКонтрагентамиОстатки.Сделка)
    ЛЕВОЕ СОЕДИНЕНИЕ
    Справочник.СудебныеДела КАК СудебныеДела
    ПО
    (ГрафикПлатежейСрезПоследних.Контрагент = СудебныеДела.Контрагент)
    ГДЕ 
    (ЕСТЬNULL(ГрафикПлатежейСрезПоследних.СуммаОстаток,0) - (ЕСТЬNULL(ГрафикПлатежейСрезПоследних.Регистратор.СуммаДокумента,0) - ЕСТЬNULL(РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,0))) > 0 
    И ГрафикПлатежейСрезПоследних.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания 	
    И СудебныеДела.Контрагент ЕСТЬ NULL"
    
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    На форме размещаете реквизит надо выбирать пустых или наоборот выбирать не пустых и в зависимости от значения этой кнопки Этого условия строите запрос

    ТекстУсловия=?(ОтбиратьПустых,"СудебныеДела.Контрагент ЕСТЬ NULL ","СудебныеДела.Контрагент ЕСТЬ НЕ NULL ");

    а потом

    Запрос.Текст="Выбрать
    |....
    |....
    |ГДЕ
    |"+ТекстУсловия+"
    |Упорядочить по .....
  7. TopicStarter Overlay
    Alexit
    Offline

    Alexit

    Регистрация:
    27 янв 2010
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    а в СКД разве так можно делать? в обычном отчете то я знаю что там можно менять запрос.
  8. TopicStarter Overlay
    Alexit
    Offline

    Alexit

    Регистрация:
    27 янв 2010
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1

    А все разобрался. Вставил условия прямо в запрос и проверял параметр булево ) Всем спасибо

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