Имя: Пароль:
1C
1С v8
Запрос и пустые значения
,
0 Тролль главный
 
15.02.13
19:26
1. Да 50% (1)
2. Нет 50% (1)
3. Не знаю 0% (0)
Всего мнений: 2

Можно ли в запросе 1С, не используя соединений (в том числе неявных) и объединений получить в одной колонке значения, среди которых встречаются такие: NULL, Неопределено, ПустаяСсылка (неважно какая пустая)

Собственно это тест.
1 vicof
 
15.02.13
19:30
Выбор когда 1 = &Парам Тогда
NULL
когда 2 = &Парам Тогда
Неопределено
Иначе
Значение(Справочник.СуперСправочник.Пустая)
Конец
2 Тролль главный
 
15.02.13
19:33
(1) тут одно только значение выведется, а надо три в одной колонке
3 fisher
 
15.02.13
19:34
(2) Не тупи. Идею-то ты понял. Элементарно на любой реальной таблице через ВЫБОР такое сделать.
4 vicof
 
15.02.13
19:35
(2) Это запрос в цикле, и &Парам постоянно меняется :))
5 Тролль главный
 
15.02.13
19:39
ну хорошо, я глупость написал, признаю, теперь конструкцию ВЫБОР исключаем тоже
6 fisher
 
15.02.13
19:43
Прикольный тест :) Что еще нужно исключить?
Суть, как я понимаю, в том, что поля таблиц 1С (в отличие от таблиц БД вообще) не могут содержать NULL. Т.е. его можно получить или "насильно" или в результате внешнего соединения.
8 Rie
 
15.02.13
19:45
ВЫБРАТЬ
   NULL  КАК Значение
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
   НЕОПРЕДЕЛЕНО
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
   ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
9 fisher
 
15.02.13
19:47
(8) "без объединений"
10 awa15
 
15.02.13
19:51
Все нужные значения засовываем в таблицу значений, таблицу значений засовываем в запросе во временную таблицу, делаем селект из временной таблицы.
11 fisher
 
15.02.13
19:54
Щаз ТС последовательно отметет все непредусмотренные им извраты, ибо только придуманный им лично изврат является правильным решением теста.
12 Fragster
 
гуру
15.02.13
19:55
Прямым запросом к скулю можно - RRef = 0
13 vicof
 
15.02.13
19:59
(11) +1
14 Тролль главный
 
15.02.13
20:22
(11) ну это слишком по-детски, я посчитал это слишком, чтобы включать в правила, достаточно такого

ВЫБРАТЬ ...
ИЗ <ВашаТаблица>

короче, новая формулировка: могут ли в одной таблице справочника в одном реквизите хранится все эти значения?

по-моему я чего-то лишнего написал
15 Rie
 
15.02.13
20:26
(14) Не можешь. Поскольку NULL в таблице храниться не может.
А вот НЕОПРЕДЕЛЕНО и пустая ссылка в реквизит составного типа вполне запихуемы.
16 Тролль главный
 
15.02.13
20:38
(15) ты просто не знаешь, что NULL хранится может
17 mehfk
 
15.02.13
20:38
(0) Без уточненяющего условия в (14)
http://s017.radikal.ru/i406/1302/f9/c52d2b8dbc67.png
18 Тролль главный
 
15.02.13
20:39
(17) итоги это помещечья дешевка, не прокатит
19 Classic
 
15.02.13
20:40
(16)
Понятно что может. Вопрос в чем?
20 Тролль главный
 
15.02.13
20:42
(19) ну некоторые этого не знают
22 Classic
 
15.02.13
20:44
(20)
Т.е. ты завел тему, чтоб рассказать, что в регистрах вполне могут быть нулы?
23 Тролль главный
 
15.02.13
20:46
(21) зачем записывать, движок 1С делает сам все, зачем по дрочи? больная тема?
(22) я про справочник, а ты можешь в регистрах накопления сделать NULL?
24 Rie
 
15.02.13
20:48
(16) Штатно в 1С-овской таблице справочника? И как он туда попадёт?
25 Classic
 
15.02.13
20:48
(23)
В регистрах бухгалтерии точно смогу. Потому как были и я знаю почему. В регистрах накопления хз - надо попробовать
27 mehfk
 
15.02.13
20:51
(24) Поц добрался до sql сервера.
28 Тролль главный
 
15.02.13
20:51
(26) хватит хамить, давай в типовой ут покажу запросом, где хранится NULL в Номенклатуре, только если правда с тебя 500 руб. на телефон
(24) сможет, платформа сама вынуждена будет засунуть
29 Тролль главный
 
15.02.13
20:51
(27) поц давно там, триггеры типа пишет и проч., но тут все штатно
30 mehfk
 
15.02.13
20:54
(28) Версию платформы скажи.
31 Тролль главный
 
15.02.13
20:55
(30) любая мне кажется из 8.1 и выше
32 Тролль главный
 
15.02.13
20:55
+(31) хотя могу ошибаться в 8.3
33 mehfk
 
15.02.13
21:01
"любая" это не ответ
34 Тролль главный
 
15.02.13
21:02
(33) ну хорошо, пробовал на 8.2.14 и 8.2.17
35 Тролль главный
 
16.02.13
09:46
Никто не может?
36 vicof
 
16.02.13
09:55
(35) ну допустим удалили к-л. значение без контроля ссылочной целостности. Плюс в некотором справочнике это составной реквизит.

Выбрать
Спр.РевизитСоставногоТипа
из
справочник.спр1 как Спр
37 mehfk
 
16.02.13
09:57
(35) Был неправ, это штатная возможность.
http://s42.radikal.ru/i095/1302/ed/b9262a3316fd.png
38 GANR
 
16.02.13
15:43
(0) Опираясь на свой опыт, склоняюсь к тому, что скорее

Нет
39 GANR
 
16.02.13
15:43
но могу и ошибаться
40 GANR
 
16.02.13
15:44
а вот Неопределено и ПустаяСсылка м. б. для полей составных типов и характеристик ПВХ, и то, это уже есть неявное соединение
41 GANR
 
16.02.13
15:45
если только ИТОГИ
42 GANR
 
16.02.13
15:49
запросы, имхо, методически построены так, чтобы NULL появлялось тогда и только тогда, когда отсутствует строка, соответствующая условию соединения
43 mehfk
 
17.02.13
17:48
(42) Т.е. в (37) галлюцинация?
44 GANR
 
17.02.13
17:56
(43) это (41)
45 mehfk
 
17.02.13
18:09
(44) Еще раз посмотри (37)
46 MrStomak
 
17.02.13
18:10
В общем нуллы лезут от соединений, разыменований, итогов и получения реквизитов элемента у групп справочников
47 GANR
 
17.02.13
20:38
(45) отсутствующий для группы/элемента реквизит, значит
48 fisher
 
18.02.13
13:43
(14) Вот это - нормальная формулировка. Я бы ответил - нет, ибо про этот ньюанс с реквизитами групп/элементов забыл напрочь. Так что тест не прошел :)
Привык, что 1С явным образом не пишет в таблицы NULL. И правильно делает. Убирает головную боль с интерпретацией NULL в запросах.
49 GANR
 
18.02.13
13:47
(46) Остатки по субконто "Только обороты" ещё вспомнил
50 rutony
 
18.02.13
14:00
База разъедиться не такое увидишь

Да
51 Sammo
 
18.02.13
14:07
В 8.1 поля в документах и справочниках были not null. В 8.2. - не помню
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.