Имя: Пароль:
1C
1С v8
проверить на наличие реквизита в запросе
0 arhiordinator
 
26.07.15
23:08
Подскажите как  в запросе можно проверить на наличие реквизита, количество.
Дело в том, что в некоторых документах он есть, в некоторых отсутствует, если количество отсутствует выводить нуль.
1 Naumov
 
26.07.15
23:10
ЕстьNULL
2 FIXXXL
 
26.07.15
23:14
(1) не прокатит, запрос не выполнится, если в объекте нет реквизита
3 arhiordinator
 
26.07.15
23:15
|ВЫБРАТЬ
         |ТИПЗНАЧЕНИЯ(Ссылка) КАК Тип,
         | Док.Номер ,
         | Док.Дата ,
         | ВЫБОР
         |КОГДА ЕСТЬNULL(Док.Ссылка.Сумма, ИСТИНА) = ИСТИНА
         |   ТОГДА 0
         |ИНАЧЕ  Док.Сумма
         |   КОНЕЦ КАК Сумма
         |ИЗ Документ.Распродажа КАК Док";
не работает
4 FIXXXL
 
26.07.15
23:16
(0) у тебя имя объекта через переменную в запрос попадает?
Тогда формируй текст запроса динамически, в зависимости от наличия реквизита
5 arhiordinator
 
26.07.15
23:18
(4) Находил посты где люди ЕСТЬNULL проверяли и всё было ок
6 arhiordinator
 
26.07.15
23:18
ток у меня чет не получается.
7 GROOVY
 
26.07.15
23:19
У тебя в собеседовании куча дебильных задач на работу с метаданными.
8 FIXXXL
 
26.07.15
23:19
(3) в этом случае можно через параметр в запрос сунуть проверку

Выбор когда &НетКоличества тогда 0
Иначе документ.количество

НетКоличества узнай перед запросом
9 arhiordinator
 
26.07.15
23:22
(7) Точняк, такая скука, щас сдохну, всякая херь, ниче интересного в целом.
10 arhiordinator
 
26.07.15
23:46
(8) Спасибо сделал как сказал, а то бы мучился с ЕСТЬNULL
11 Serg_1960
 
27.07.15
00:03
(3) "Док.Ссылка.Сумма" лишнее, достаточно Док.Сумма и вместо выбора можно короче - "ЕСТЬNULL(Док.Сумма, 0) КАК Сумма"
12 Serg_1960
 
27.07.15
00:17
+(11) Но если в документе нет реквизита "Сумма" - вам запрос не помощник - нет в языке запросов функционала, позволяющего обработать ситуацию обращения к "отсутствующему".
13 Zamestas
 
27.07.15
00:20
(12) Метаданные в топку?
14 Serg_1960
 
27.07.15
00:26
(13) В запросе? О_О
15 Zamestas
 
27.07.15
01:17
(14) До.
16 ИС-2
 
naïve
27.07.15
07:08
(14) если и только в запросе выбрать все поля (выбрать *), поместить в временную таблицу и работать уже дальше с ней
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.