8.х Запрос

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

  1. TopicStarter Overlay
    lsd
    Offline

    lsd

    Регистрация:
    30 июл 2009
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Товарищи возник вопросик . Надеюсь на помощь . Как в запросе сделать условие , чтобы При выборе одного реквизита в документе проверка в результате запроса была по 2 полям . То есть ( У нас есть в документе реквизит Грузчик выбирая его мы попадаем в справочник Грузчики . Выбрав грузчика допустим Сидорова - в запросе проверка была по полю (Грузчик 1 и Грузчик2 ). Ну и соответственно и отбор по ниму
  2. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Ну так в чем проблема??? Использовать конструкцию ГДЕ. Если нужн6ы подробности: текст запроса в студию.
  3. TopicStarter Overlay
    lsd
    Offline

    lsd

    Регистрация:
    30 июл 2009
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура ГрузчикПриИзменении(Элемент)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ЕСТЬNULL(ФормированиеБригадыСрезПоследних.Водитель, &ПустойВодитель) КАК Водитель,
    |    ФормированиеБригадыСрезПоследних.Грузчик,
    |    ФормированиеБригадыСрезПоследних.Грузчик2,
    |    ФормированиеБригадыСрезПоследних.Машина,
    |    ФормированиеБригадыСрезПоследних.Километраж
    |ИЗ
    |    РегистрСведений.ФормированиеБригады.СрезПоследних(, ) КАК ФормированиеБригадыСрезПоследних
    |ГДЕ
    |    ФормированиеБригадыСрезПоследних.Период = &Дата
    |    И ФормированиеБригадыСрезПоследних.Грузчик = &Грузчик"; // Вот тут он делает отбор по 1му реквизиту . А как мне еще проверить Грузчик2 на тоже значение
    
    Запрос.УстановитьПараметр("Дата",Дата );    
    Запрос.УстановитьПараметр("ПустойВодитель",Справочники.Водители.ПустаяСсылка());
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Если ЗначениеЗаполнено(Выборка.Грузчик) Тогда
    Сообщить(" Грузчик " +Выборка.Грузчик+  " уже определен в бригаду "); 
    Грузчик = NULL; 
    КонецЕсли;
    КонецЦикла;            
    
    КонецПроцедуры
    
    
    
    
    
    
    
    
    | И ФормированиеБригадыСрезПоследних.Грузчик = &Грузчик"; \\ Вот тут он делает отбор по 1му реквизиту . А как мне еще проверить Грузчик2 . Но на тоже значение что и Грузчик1 и при этом чтобы отбор остался если какое то значение совпадет !.
  4. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Не много не понятно сформулировано. Но по подозреваю что вот так:
    Код:
    "|ГДЕ
    |    ФормированиеБригадыСрезПоследних.Период = &Дата
    |    И (ФормированиеБригадыСрезПоследних.Грузчик1 = &Грузчик ИЛИ ФормированиеБригадыСрезПоследних.Грузчик2 = &Грузчик)"
    
  5. TopicStarter Overlay
    lsd
    Offline

    lsd

    Регистрация:
    30 июл 2009
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Отлично действительно все так :unsure: Спасибо

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