Имя: Пароль:
1C
1С v8
Как в запросе исключить <Объект не найден>
,
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) в значительной степени прав В ДАННОМ КОНКРЕТНОМ СЛУЧАЕ (капс для неумеющих читать с первого раза).
".Ссылка" в разы читабельней чем куча неужных соединений. В данной, блин, конректной, задаче.