8.х как выполнить запрос если условие пустое

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

  1. TopicStarter Overlay
    Snegur
    Offline

    Snegur Опытный в 1С

    Регистрация:
    20 июн 2016
    Сообщения:
    255
    Симпатии:
    0
    Баллы:
    26
    Добрый день
    Подскажите . Делаю запрос если например Ответственный оставляю поле пустым как сделать условие ,чтобы запрос все равно искал без этого условия. а то получается он тогда вообще не ищет
    Код:
    ВЫБОР
        КОГДА &Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
            ТОГДА ИСТИНА
        ИНАЧЕ ПоступлениеТоваровУслуг.Ответственный = &Ответственный
    КОНЕЦ
    Последнее редактирование модератором: 11 дек 2017
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    8.123
    Симпатии:
    550
    Баллы:
    204
    А теперь сформулируйте свою мысль на нормальном русском языке.
    nsk1C нравится это.
  3. TopicStarter Overlay
    Snegur
    Offline

    Snegur Опытный в 1С

    Регистрация:
    20 июн 2016
    Сообщения:
    255
    Симпатии:
    0
    Баллы:
    26
    В запросе условие искать по ответственному я могу его выбрать могу не выбрать на форме, если не выберу то запрос же не будет искать, как мне сделать условие , что бы если ответственного не указал то искал по всем
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.890
    Симпатии:
    1.030
    Баллы:
    204
    В первом приближении текст условия - верный.
  5. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.271
    Симпатии:
    106
    Баллы:
    104
    Тип значения ответственного в документе и тип значения пользователя на форме, где вы запрос выполняете одинаковые?
  6. MrShvets
    Offline

    MrShvets Опытный в 1С

    Регистрация:
    3 апр 2012
    Сообщения:
    72
    Симпатии:
    2
    Баллы:
    29
    Вы отбор хотите поставить? Вам может конструкция "ГДЕ" нужна? Или все таки хотите узнать совпадает ответственный документа с выбранным?
  7. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    539
    Симпатии:
    83
    Баллы:
    54
    Здравствуйте.
    Я делаю это так (возможно и неправильно с точки зрения идеального программирования):
    Пишу запрос без отбора по условию. Потом к этому тексту добавляю строку с нужным отбором.
    Например,
    Код:
    "ВЫБРАТЬ
            |    ПутевойЛист.Номер КАК НомерПутевогоЛиста,
            |    ПутевойЛист.Водитель.Фамилия + "" "" + ПутевойЛист.Водитель.Имя + "" "" + ПутевойЛист.Водитель.Отчество КАК ФамилияИмяОтчество,
            |    ПутевойЛист.Водитель.ТабельныйНомер КАК ТабельныйНомер,
            |    ПутевойЛист.Транспорт.ГосНомер КАК ГосНомер,
            |    ПутевойЛист.Дата КАК ДатаПутевогоЛиста,
            |    ПутевойЛист.Транспорт,
            |    ПутевойЛист.Водитель,
            |    ПутевойЛист.Ссылка
            |ИЗ
            |    Документ.ПутевойЛист КАК ПутевойЛист
            |ГДЕ
            |    ПутевойЛист.Проведен = ИСТИНА
            |    И ПутевойЛист.Дата МЕЖДУ &ДатаНачала И &ДатаОкончание"+?(Водитель=Справочники.ФизическиеЛица.ПустаяСсылка(),""," И ПутевойЛист.Водитель.ТабельныйНомер=&Водитель");
           
     
  8. bajiepka
    Offline

    bajiepka Профессионал в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54
    Имхо, резать запрос не красиво :), особенно, если результат запроса просто "сужается". В типовом коде одинэсники часто используют СтрЗаменить() целой строкой, например:

    Код:
    СтрокаУсловия = "|   И ПутевойЛист.Дата МЕЖДУ &ДатаНачала И &ДатаОкончание";
    ЗаменитьНа = СтрокаУсловия + " И ПутевойЛист.Водитель.ТабельныйНомер=&Водитель";
    СтрЗаменить(Запрос.Текст, СтрокаУсловия, ЗаменитьНа);
    Так и запрос остаётся живым и Ваши параметры всегда "налицо". Писал от руки, поэтому может где какой символ пропал, но попробуйте, может понравится...
    Катюфка нравится это.