8.х Проверка на пустое значение

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

  1. TopicStarter Overlay
    lsd
    Offline

    lsd

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

    DmitryS Опытный в 1С

    Регистрация:
    20 июл 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Судя по представленному коду поле "Мешина" в выборке будет только тогда пустое (пустая ссылка) когда Вы передадите в параметры запроса "Запрос.УстановитьПараметр("Машина",Машина );" пустую ссылку на машину.

    Если для переданой в параметры "машини" не определена бригада, тогда результат запроса будет пустой, поэтому проверять нужно не поле "Машина", а "результат запроса":

    Код:
    .........
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Сообщить(" На машину " +Машина+ "не определена бригада"); 
    Иначе
    Водитель = Выборка.Водитель;
    Грузчик = Выборка.Грузчик;
    Грузчик2 = Выборка.Грузчик2;
    Сообщить(""+Выборка.Машина+"");    
    КонецЕсли;
    .........
    
    
  3. TopicStarter Overlay
    lsd
    Offline

    lsd

    Регистрация:
    30 июл 2009
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Я приблизительно догадывался что так . Но не пойму как мне значения Выборки тогда получать .
    Код:
    	 
    Запрос.УстановитьПараметр("Дата",Дата );
    Запрос.УстановитьПараметр("Машина",Машина );
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Сообщить(" На машину " +Машина+ "не определена бригада");
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Водитель = Выборка.Водитель;
    Грузчик = Выборка.Грузчик;
    Грузчик2 = Выборка.Грузчик2;
    Сообщить(""+Выборка.Машина+""); 
    
    КонецЦикла;
    КонецЕсли;
    
  4. TopicStarter Overlay
    lsd
    Offline

    lsd

    Регистрация:
    30 июл 2009
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    о дошло
    Код:
     Запрос.УстановитьПараметр("Дата",Дата );
    Запрос.УстановитьПараметр("Машина",Машина );
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Сообщить(" На машину " +Машина+ "не определена бригада");
    Иначе
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Водитель = Выборка.Водитель;
    Грузчик = Выборка.Грузчик;
    Грузчик2 = Выборка.Грузчик2;
    Сообщить(""+Выборка.Машина+""); 
    
    КонецЦикла;
    КонецЕсли;
    
    Заработало .Всем спасибо :unsure:

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