Имя: Пароль:
1C
1С v8
Как составить такой запрос?
0 rework2013
 
14.08.12
23:46
Есть регистр сведений с такими параметрами : номенклатура, измерение1, ресурс1.

Нужно выбрать все элементы из справочника номенклатура, у которых нет записей в регистре, с определенным значением измерения1.

Другими словами, ищу те элементы номенклатуры у которых не заполнена определенная характеристика в регистре сведений.
1 mikecool
 
14.08.12
23:47
полное соединение по есть null?
2 ЧашкаЧая
 
14.08.12
23:49
левое соединение по есть null или пустаяссылка
3 Один С
 
14.08.12
23:50
выбрать все из регистра сведений где измерение1 не равно определенной характеристике
4 Один С
 
14.08.12
23:53
блин, не правильно понял задачу. зачеркните (3).
победил ответ в (2)
5 rework2013
 
15.08.12
00:36
Начало правильное?

ВЫБРАТЬ
                  |    СпрНоменклатура.Ссылка
                  |ИЗ
                  |    Справочник.Номенклатура КАК СпрНоменклатура
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеСвойствНоменклатуры КАК ЗначениеСвойствНоменклатуры
                  |        ПО (СпрНоменклатура.Ссылка = ЗначениеСвойствНоменклатуры.Номенклатура.Ссылка)
                  |ГДЕ
                  |    ЗначениеСвойствНоменклатуры.Свойство = &Свойство

Если да, куда здесь ЕстьNull вставить?
6 ЧашкаЧая
 
15.08.12
01:21
ГДЕ
ЗначениеСвойствНоменклатуры.Свойство = &Свойство И (ЗначениеСвойствНоменклатуры.Значение ЕСТЬ NULL ИЛИ ЗначениеСвойствНоменклатуры.Значение = &ПустоеЗначение)

В параметр пустое значение нужно передать пустое значение в зависимости от типа значения характеристики: пустая ссылка определенного вида, пустая строка или 0.
7 rework2013
 
15.08.12
02:01
К сожалению не оно.
Если в регистре вообще нет записи с данной номенклатурой и данным свойством то тогда пустая выборка.
8 КонецЦикла
 
15.08.12
02:04
Указать в левом соединении свой NULL, а не в условии
9 ЧашкаЧая
 
15.08.12
02:10
(7) Не досмотрел, в (5) неправильное соединение запрос такой

ВЫБРАТЬ
   СпрНоменклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК СпрНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеСвойствНоменклатуры КАК ЗначениеСвойствНоменклатуры
       ПО (СпрНоменклатура.Ссылка = ЗначениеСвойствНоменклатуры.Номенклатура) И ЗначениеСвойствНоменклатуры.Свойство = &Свойство
ГДЕ
     (ЗначениеСвойствНоменклатуры.Значение ЕСТЬ NULL ИЛИ ЗначениеСвойствНоменклатуры.Значение = &ПустоеЗначение)
10 rework2013
 
15.08.12
02:20
Спасибо !