Вход | Регистрация

1С:Предприятие ::

Метки: 

v8: Отбор номенклатуры по свойству которое не установлено

Я
   Kozitsyn
 
26.12.12 - 16:05
Подскажите пожалуйста.

Нужно сделать Запрос ном-ры у которой не установлено нужное свойство. Связываю номенклатуру с рег. свед. Значения свойств объектов, что-то типа:

ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ПартииТоваровНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов.Объект И (НЕ ЗначенияСвойствОбъектов.Объект = &ХарактеристикаНаВывод)

Но он мне наоборот выводит ту ном-ру у которой это свойство установлено.
 
 
   Axel2009
 
1 - 26.12.12 - 16:06
левое соединение ...
где ЗначенияСвойствОбъектов.Объект есть null
   Kozitsyn
 
2 - 26.12.12 - 16:11
(1) Но при этом же могут другие свойства быть установлены у ном-ры.
   Kozitsyn
 
3 - 26.12.12 - 16:18
Вот такое тоже не работает:

ПО ВложенныйЗапрос.Объект = ПартииТоваровНаСкладахОстатки.Номенклатура И (ВложенныйЗапрос.Объект ЕСТЬ NULL )
   Axel2009
 
4 - 26.12.12 - 16:19
(2) в соединение надо добавить отбор по ЗначенияСвойствОбъектов.Свойство
   Kozitsyn
 
5 - 26.12.12 - 16:23
(4) Сделал так, не работает :(
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки ПО ПартииТоваровНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов.Объект И (ЗначенияСвойствОбъектов.Свойство = &ХарактеристикаНаВывод)И (ЗначенияСвойствОбъектов.Объект ЕСТЬ NULL )
   Axel2009
 
6 - 26.12.12 - 16:28
(5) проверка на NULL написана в каком месте в (1)?
   Kozitsyn
 
7 - 26.12.12 - 16:33
(6) У меня сейчас вот такой запрос:

ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Номенклатура.Код КАК Код,
    ПартииТоваровНаСкладахОстатки.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК ДополнительноеОписаниеНоменклатуры,
    ВЫБОР
        КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток > 0
            ТОГДА ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток
        ИНАЧЕ ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
    КОНЕЦ КАК Цена,
    ПартииТоваровНаСкладахОстатки.Номенклатура
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки
        ПО (ЗначенияСвойствОбъектов.Свойство = &ХарактеристикаНаВывод)
            И (ЗначенияСвойствОбъектов.Объект ЕСТЬ NULL )
            И ЗначенияСвойствОбъектов.Объект = ПартииТоваровНаСкладахОстатки.Номенклатура
ГДЕ
    ПартииТоваровНаСкладахОстатки.Номенклатура.ПометкаУдаления = ЛОЖЬ
    И ПартииТоваровНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&ОтборПоНоменклатуре)

УПОРЯДОЧИТЬ ПО
    Код
   Kozitsyn
 
8 - 26.12.12 - 16:34
(7) То что полное соединение у меня указано, то это я просто перебираю все возможные значения, т.к. левое тоже не работает...
   Ногаминебить
 
9 - 26.12.12 - 16:36
Отобрать всю, у которой установлено и пользовать НЕ В?
   Axel2009
 
10 - 26.12.12 - 16:37
(8) псц
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Номенклатура.Код КАК Код,
    ПартииТоваровНаСкладахОстатки.Номенклатура.ДополнительноеОписаниеНоменклатуры КАК ДополнительноеОписаниеНоменклатуры,
    ВЫБОР
        КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток > 0
            ТОГДА ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток
        ИНАЧЕ ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
    КОНЕЦ КАК Цена,
    ПартииТоваровНаСкладахОстатки.Номенклатура
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПРАВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(, ) КАК ПартииТоваровНаСкладахОстатки
        ПО (ЗначенияСвойствОбъектов.Свойство = &ХарактеристикаНаВывод)
            И ЗначенияСвойствОбъектов.Объект = ПартииТоваровНаСкладахОстатки.Номенклатура
ГДЕ
    ПартииТоваровНаСкладахОстатки.Номенклатура.ПометкаУдаления = ЛОЖЬ
   И ПартииТоваровНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&ОтборПоНоменклатуре) 
   И (ЗначенияСвойствОбъектов.Объект ЕСТЬ NULL )

УПОРЯДОЧИТЬ ПО 
   Код
 
 Рекламное место пустует
   Kozitsyn
 
11 - 26.12.12 - 16:41
(10) Дай Бог Вам здоровья! ;)


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует