Имя: Пароль:
1C
1С v8
Запрос: Выборка всех элементов справочника с пустой таб. частью.
0 greenif
 
23.02.13
20:16
Понимаю, что тема избитая, но все же прошу помощи.
Пытаюсь запросом выбрать все элементы номенклатуры у которых нет штрихкодов. Штрихкоды табличная часть справочника номенклатура.

Вот таким запросом мне удается отобрать все элементы у которых только один штрихкод:
"ВЫБРАТЬ
|    НоменклатураШтрихкоды.Ссылка,
|    КОЛИЧЕСТВО(НоменклатураШтрихкоды.Штрихкод) КАК Кво
|ИЗ
|    Справочник.Номенклатура.Штрихкоды КАК НоменклатураШтрихкоды
|СГРУППИРОВАТЬ ПО
|    НоменклатураШтрихкоды.Ссылка
|ИМЕЮЩИЕ
|    КОЛИЧЕСТВО(НоменклатураШтрихкоды.Штрихкод) = 1"


Но если в место единицы я ставлю 0, тогда запрос не возвращает ничего.
Хотя в справочнике номенклатуры точно есть позиции без шк.
1 ssh2006
 
23.02.13
20:20
Все правильно что не возвращает такой запрос
2 greenif
 
23.02.13
20:21
Конечно спасибо, а можно поподробнее.
3 NcSteel
 
23.02.13
20:22
Выбрать
*
Из
Справочник.Номенклатура
Где
Не Ссылка В (Выбрать Ссылка Из Справочник.Номенклатура.Штрихкоды)
4 greenif
 
23.02.13
20:28
Работает, большое спасибо.

Могли бы вы объяснить почему не работает мой вариант?
5 NcSteel
 
23.02.13
20:30
(4) Пройди базовый курс по 1С, там объяснят.
6 EugeniaK
 
23.02.13
20:36
(4) В Вашем случае для записей без штрихкодов КОЛИЧЕСТВО(НоменклатураШтрихкоды.Штрихкод) возвращает NULL, а не ноль.

А NULL <> 0
7 greenif
 
23.02.13
21:12
Ага, ясно, но тогда должно по идеи работать такое:
|ИМЕЮЩИЕ
 КОЛИЧЕСТВО(НоменклатураШтрихкоды.Штрихкод) ЕСТЬ NULL
Но не работает.
8 greenif
 
23.02.13
21:13
Извините за то что задрачиваю, просто хочу для себя разобраться.
9 Фокусник
 
23.02.13
21:30
(4) Ты делаешь запрос к таблице "Справочник.Номенклатура.Штрихкоды" - это таблица, содержащая все строки всех табличных частей "Штрихкоды" справочника "Номенклатура".
Если в ТЧ элемента номенклатуры нет строк, значит и в таблице "Справочник.Номенклатура.Штрихкоды" нет этих данных, нет ссылки на элемент номенклатуры.
10 greenif
 
23.02.13
21:37
Теперь дошло.
Спасибо за популярное объяснение.