|
Как в запросе исключить <Объект не найден> | ☑ | ||
---|---|---|---|---|
0
Max1986
11.05.12
✎
17:17
|
Прошу совета в таком вопросе.
Есть распределенная база. Есть регистр сведений и там есть параметры из другой базы вида <Объект не найден>. ак нам в запросе исключить эти элементы? Типа использовать подобие или еще что? Я пока нашел только один выход - ВНУТРЕННЕЕ СОЕДИНЕНИЕ с со значениями этого реквизита Регистра. Соответственно объекты <Объект не найден> не попадут. Есть ли другой вариант? |
|||
1
Deniskind
11.05.12
✎
17:25
|
Попробуйте в ГДЕ указать ПолеРегистраСведений ЕСТЬ NULL
или ПолеРегистраСведений.Представление ЕСТЬ NULL |
|||
2
Deniskind
11.05.12
✎
17:25
|
Точнее наоборот :)
НЕ ЕСТЬ NULL |
|||
3
Max1986
11.05.12
✎
17:26
|
(1)он не NULL а <Объект не найден>
|
|||
4
Max1986
11.05.12
✎
17:26
|
(2)не пройдет
|
|||
5
Кокос
11.05.12
✎
17:27
|
РАЗРЕШЕННЫЕ
правда помоему только в корневых объектах выборки помоему. на реквизитах не сработает :) |
|||
6
mikecool
11.05.12
✎
17:27
|
(0) исправить ситуацию не предлагать?
|
|||
7
Кокос
11.05.12
✎
17:29
|
(6) согласен. такой ситуации в корне быть не должно. значит у него и в журналах и в списках все это торчит.
|
|||
8
sapphire
11.05.12
✎
17:29
|
(0) Ну и правильно. В чем вопрос-то?
|
|||
9
Deniskind
11.05.12
✎
17:30
|
(3) Рискну предположить, что представление <Объект не найден> будет, все таки, NULL
|
|||
10
mikecool
11.05.12
✎
17:31
|
(9) нет, неправильно
|
|||
11
mikecool
11.05.12
✎
17:31
|
+10 есть ссылка, но нет объекта, значение - строка(36)
|
|||
12
Fragster
гуру
11.05.12
✎
17:32
|
Где Реквизит.Ссылка Есть не NULL
|
|||
13
Fragster
гуру
11.05.12
✎
17:32
|
Где Таблица.Реквизит.Ссылка Есть не NULL
|
|||
14
ДемонМаксвелла
11.05.12
✎
17:33
|
все реквизиты у <Объект не найден> будут NULL
|
|||
15
ДемонМаксвелла
11.05.12
✎
17:34
|
(12) +1
|
|||
16
Max1986
11.05.12
✎
17:37
|
Короче, быстрее и правильнее оказалось вариант сделанный мной - со ВНУТРЕННИМ СОЕДИНЕНИЕМ
|
|||
17
Deniskind
11.05.12
✎
17:39
|
Проверил:
ВЫБРАТЬ РегистрСведений1.Справочник1, РегистрСведений1.Ресурс1 ИЗ РегистрСведений.РегистрСведений1 КАК РегистрСведений1 ГДЕ НЕ (Справочник1.Представление ЕСТЬ NULL) Вот эта штука выбирает все строки регистра, у которых в измерении нет <Объект не найден> |
|||
18
sapphire
11.05.12
✎
17:40
|
(16) И?
Это же очевидно. Если ссылка на реквизит битая, т.е. поле заполнено неким значением и не есть NULL, но отсутствует в целевой таблице. |
|||
19
sapphire
11.05.12
✎
17:40
|
(17) Неявное внутреннее соединение.
|
|||
20
Deniskind
11.05.12
✎
17:41
|
(19) Согласен
|
|||
21
ИС-2
naïve
11.05.12
✎
17:41
|
я делаю по наименованию или коду.
Пр Не оБъек.Код = "" |
|||
22
ДемонМаксвелла
11.05.12
✎
17:52
|
(21) иногда лучше молчать
|
|||
23
sapphire
11.05.12
✎
17:54
|
(21) Тоже самое что и в (17) см (19).
|
|||
24
sapphire
11.05.12
✎
17:55
|
(22) Да ладно, пусть высказывается. Только зачем? Ради флуда?
В (0) ТС всё правильно делает. ТОлько сама тема неясно за каким организована. |
|||
25
Wern
11.05.12
✎
17:59
|
Неявное соединение лучше явного, улучшается читаемость кода.
|
|||
26
sapphire
11.05.12
✎
18:08
|
(25) Автор, убей себя об стену.
|
|||
27
Reset
11.05.12
✎
18:14
|
(26) Сам убейся, он прав [в данном конкретном случае].
(23) то же самое, да да, кроме того что (21) грубо нерабочее. |
|||
28
Necessitudo
11.05.12
✎
18:33
|
(26) +1
Я не пойму - у автора именно битые ссылки или просто рлс работает? |
|||
29
sapphire
11.05.12
✎
18:35
|
(28) Да из обмена к нему хлам приехал.
|
|||
30
sapphire
11.05.12
✎
18:37
|
(27) Никоим образом он не прав. Неявные соединения это ... чаще всего дикая беда.
Например, есть регистр накопления с кучей регистраторов. Как думаешь к чему приведет код Регистратор.{чего-то там}? |
|||
31
Immortal
11.05.12
✎
21:11
|
вопрос больше в постановке задачи, чем в решении.
правила формирования и миграции записей известны, фильтры в РИБ тоже. таким образом, определение записей с пустым регистратором особого труда не составляет. |
|||
32
sapphire
11.05.12
✎
23:31
|
(31) Ничего нового. Ответ очевиден
|
|||
33
Immortal
12.05.12
✎
00:00
|
(32)не понимаю, к чему это относится, объясни
|
|||
34
qwerty09
12.05.12
✎
00:24
|
(17) как вариант, но в выборку будут попадать незаполненные значения полей составного типа...самым правильным вариантом будет:
ГДЕ Объект.РеквизитОбъекта ЕСТЬ NULL И Объект <> &ПустаяСсылкаНаОбъект или ГДЕ Объект.РеквизитОбъекта ЕСТЬ NULL И Объект <> Неопределено |
|||
35
sapphire
12.05.12
✎
00:40
|
(34) В обмене и запросах поля составного типа = зло, ИМХо.
|
|||
36
Wern
12.05.12
✎
02:29
|
(35) Конечно зло, если не умеешь их готовить. По-мне лучше научится один раз и потом пользоваться, чем избегать постоянно.
|
|||
37
sapphire
12.05.12
✎
02:32
|
(36) А тут далеко вообще не все умеют что-либо готовить.
|
|||
38
Мимохожий Однако
12.05.12
✎
07:34
|
(0)Код показывай
|
|||
39
Reset
12.05.12
✎
09:48
|
(30) Говорить любишь, думать нет.
Если поле не составное - нафиг не нужно явное соединение, достаточно обращения через точку [для данного конкретного, обозначенного в сабже случая]. Если поле составное и содержит пустую ссылку (неизвестного типа) - куда ты будешь соединять явно? Куда-нибудь? Таки придется делать все соединения вручную. Опять же нафиг не нужный лишний текст. Повторюсь, (25) в значительной степени прав В ДАННОМ КОНКРЕТНОМ СЛУЧАЕ (капс для неумеющих читать с первого раза). ".Ссылка" в разы читабельней чем куча неужных соединений. В данной, блин, конректной, задаче. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |