Имя: Пароль:
1C
1С v8
Проверка результата запроса
,
0 Mad88
 
07.12.15
10:33
Добрый день, можно ли как то проверить результат запроса в самом запросе. Скажем есть некий запрос с параметрами, допустим по данным параметрам запрос ничего не нашел в этом случае он должен вернуть какую нибудь строку, например "Пустой".
1 Godofsin
 
07.12.15
10:34
(0) Ты удивишься...
2 Godofsin
 
07.12.15
10:34
Результат = Запрос.Выполнить();
Если Результат.Пустой тогда
.......
3 Godofsin
 
07.12.15
10:34
Пустой()
4 Mad88
 
07.12.15
10:36
(2) В САМОМ запросе господа, запрос должен возвращать либо какой то результат если по данным параметрам ничего не найдено, либо текст.
5 Godofsin
 
07.12.15
10:37
(4) В самом запросе нет. Это текст запроса, не более.
6 Mad88
 
07.12.15
10:37
(4) ибо какой то результат если по данным параметрам ЧТО ТО НАЙДЕНО
7 Godofsin
 
07.12.15
10:37
(6) Собссно, а накуя?
8 Mad88
 
07.12.15
10:38
(5) я так понимаю, если мы к примеру делаем в запросе КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Событие.Ссылка) КАК Количество, то если запрос ничего не найдет то результат будет не 0 а пустой?
9 Mad88
 
07.12.15
10:39
(7) мне нужно что бы в СКД выводились строки с нулевыми результатми
10 Godofsin
 
07.12.15
10:39
(8) Результат будет как раз пустой
11 Metman
 
07.12.15
10:39
(8) Если ты выбираешь только одно поле, то да, пустой
12 Mad88
 
07.12.15
10:40
(10) Тогда так, можно ли как то написать запрос так что бы он мне КОЛИЧЕСТВО выдал 0 а не пустой результат?
13 Мыш
 
07.12.15
10:40
(8) В случае с КОЛИЧЕСТВО вернет 0
14 Мыш
 
07.12.15
10:41
(12) ВЫБОР КОГДА ТОГДА ИНАЧЕ
15 Mad88
 
07.12.15
10:42
ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Событие.Ссылка),
    "Первичные вх. звонки",
    
ИЗ
    Документ.Событие КАК Событие
ГДЕ
    Событие.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок)
    И Событие.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И Событие.ГруппаСобытия = &ГруппаСобытия
    И Событие.ТипСобытия = ЗНАЧЕНИЕ(Перечисление.ВходящееИсходящееСобытие.Входящее)
    И Событие.СостояниеСобытия = ЗНАЧЕНИЕ(Перечисление.СостоянияСобытий.Завершено)
    И Событие.ПометкаУдаления = ЛОЖЬ


Скажем такой запрос в консоли не показывает ничего, так как таких документов в базе нет вообще, хотелось бы что бы выдавал "Первичные вх. звонки 0"
16 Mad88
 
07.12.15
10:43
(14) ВЫБОР КОГДА ЧТО?
Что поставит в условие если условием должно быть наличие или отсутсвие какого то результата
17 Мыш
 
07.12.15
10:45
(15) 1. Зачем там РАЗЛИЧНЫЕ?
2. Консоль не показывает цифру 0. Если это стандартная консоль. Щёлкни в строке результата, увидишь расшифровку. Там будет цифра.
18 Dmitrii
 
гуру
07.12.15
10:45
(15) как-то так:

ВЫБРАТЬ
   0 КАК КоличествоРазличных,
   "Первичные вх. звонки"
ОБЪЕДИНИТЬ
ВЫБРАТЬ
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Событие.Ссылка),
   "Первичные вх. звонки"
ИЗ
   Документ.Событие КАК Событие...
19 Мыш
 
07.12.15
10:49
(16)
ВЫБРАТЬ ВЫБОР КОГДА КОЛИЧЕСТВО(Ссылка)=0 ТОГДА "Пусто" ИНАЧЕ КОЛИЧЕСТВО(Ссылка) КОНЕЦ КАК Результат
ИЗ Документ.МойДокумент
20 Mad88
 
07.12.15
10:56
(19) Не, такое не сработает
21 Мыш
 
07.12.15
10:58
(20) Оно работает. В (10) тебя ввели в заблуждение. Просто проверь. Продолжу тебя уговаривать.
22 НЕА123
 
07.12.15
11:02
ВЫБРАТЬ
    ЕСТЬNULL(Т.Ссылка, ВложенныйЗапрос.Поле1) КАК Поле1
ИЗ
    (ВЫБРАТЬ
        "Звонков 0" КАК Поле1) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ Табл КАК Т
        ПО (ИСТИНА)
23 Мыш
 
07.12.15
11:06
Зачем вы всё это пишете? Функция КОЛИЧЕСТВО всегда возвращает цифру. Не будет там пустого результата запроса.
24 Mad88
 
07.12.15
11:09
(21) Ну вроде бы
25 Dmitrii
 
гуру
07.12.15
11:17
(23) >> Зачем вы всё это пишете?

А зачем автор просит этот бред?...
Задача поста - гарантировать наличие строки в результате запроса даже в том случае, если результат = 0. Это решается либо объединением (18), либо соединением (22).
Далее представить нулевой результат в виде текста "не было звонков". Это решается в СКД либо условным оформлением, либо посредством настройки макета (вывести нужную строку в нужную группировку с нужным оформлением).
ИМХО, автор не ищет легкий путей и ищет какие-то обходные.
26 Mad88
 
07.12.15
16:44
(25)Мнимое чувство превосходности над другими не дает покоя да?)
Если прошу "бред", значит мне так надо. Если ты считаешь это "бредом" зачем ты в этом участвуешь? Я насильно не кого не заставлял
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс