Имя: Пароль:
1C
1С v8
Как узнать, если запрос не нашел в Регистре нужных данных, условие не робит ((
0 Анастасия Изотова
 
16.05.16
18:31
Подскажите, КАК сделать так, что бы:  ЕСЛИ запрос ничего не нашел, по критериям выборки, ТО ...

Есть такой запрос:

Запрос5 = Новый Запрос;
Запрос5.Текст =
                
"ВЫБРАТЬ
|    РегистрУчета.Имя КАК Имя,
|    РегистрУчета.Должность КАК Должность
|ИЗ
|    РегистрСведений.РегистрУчета КАК РегистрУчета
|ГДЕ
|    РегистрУчета.Должность = &Какая";

Запрос5.УстановитьПараметр("Какая",ПолеВвода1);

Результат = Запрос5.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
Если Результат.Должность = ПолеВвода1 Тогда  //  должность = Повар
Сообщить("Ни одного повара у нас не трудоустроено");
КонецЕсли;
КонецЦикла;

В цикле запроса должно быть условие: Если запрос не нашел в регистре ни одной строки, где значился бы "Повар", то как-то бы на это среагировал. не важно как.

я не могу составить условие (или сам запрос) ТАК, что бы узнать явно, если запрос НИЧЕГО НЕ НАШЕЛ!

Сравнивая некую величину с данными в регистре, я могу узнать, если величина НАЙДЕНА, там, в регистре ...      А как точно проверить, что запрос ИСкал, но Не нашел, то есть в Регистре, в указанном его Ресурсе, нет ни одного совпадения...
1 Волшебник
 
модератор
16.05.16
18:32
левое внешнее соединение и условие ЕСТЬ NULL
2 mistеr
 
16.05.16
18:33
Найдено = Ложь;
Пока Результат.Следующий() Цикл
    Найдено = Истина;
    ....
КонецЦикла;
3 Джинн
 
16.05.16
18:35
Результат.Пустой()
4 singlych
 
16.05.16
18:35
Если Запрос.Выполнить().Пустой()
5 Джинн
 
16.05.16
18:36
(3) ___plus___ Только к результату, а не к выборке
6 Йохохо
 
16.05.16
18:43
(4) + Тогда Результат = Запрос.Выполнить() Иначе Результат = Запрос.Развыполнить()