8.х Запрос на несуществующие свойства номенклатуры

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем АндрейС, 16 июл 2013.

  1. TopicStarter Overlay
    АндрейС
    Offline

    АндрейС

    Регистрация:
    16 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый день всем. Возник такой вопрос:
    Есть Управление торговлей 10. У номенклатуры описаны несколько свойств. Предположим модель и цвет. Не обязательно у каждой номенклатуры указаны оба свойства.
    Создаем обработку на которой указываем одно или несколько возможных свойств. Необходимо найти именно полностью соответствующее.
    Вопрос - как передать что нам нужно именно несуществующее значение. Пробовал передавать NULL - не помогает.
  2. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Выбрать
    Номенклатура.Ссылка
    из
    справочник.номенклатура как номенклатура
    где номенклатура.ссылка есть null
  3. TopicStarter Overlay
    АндрейС
    Offline

    АндрейС

    Регистрация:
    16 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Может непонятно объяснил...

    есть три номенклатурных позиции:
    например:

    ЖИГУЛИ ВАЗ 2107 КРАСНАЯ СВОЙСТВО Модель: ВАЗ 2107 СВОЙСТВО Цвет: Красный
    ЖИГУЛИ ВАЗ 2107 СИНЯЯ СВОЙСТВО Модель: ВАЗ 2107 СВОЙСТВО Цвет: Синий
    ЖИГУЛИ ВАЗ 2107 СВОЙСТВО Модель: ВАЗ 2107 -

    У третей номенклатуры в регистре "Свойства объектов" нет записи со свойством "Цвет".
    Вот теперь ее нужно выбрать. Пытаюсь следующим запросом. Если данные указаны - все ОК. Но как выбрать третью..?


    т = "ВЫБРАТЬ
    | СпрНоменклатура.Ссылка КАК Номенклатура
    |ИЗ
    | Справочник.Номенклатура КАК СпрНоменклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ЗначенияСвойствОбъектов.Объект КАК Номенклатура,
    | ЗначенияСвойствОбъектов.Значение КАК Модель
    | ИЗ
    | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    | ГДЕ
    | ЗначенияСвойствОбъектов.Свойство = &сМодель
    | И ЗначенияСвойствОбъектов.Значение = &зМодель
    |
    | СГРУППИРОВАТЬ ПО
    | ЗначенияСвойствОбъектов.Объект,
    | ЗначенияСвойствОбъектов.Значение) КАК взМодель
    | ПО СпрНоменклатура.Ссылка = взМодель.Номенклатура
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ЗначенияСвойствОбъектов.Объект КАК Номенклатура,
    | ЗначенияСвойствОбъектов.Значение КАК Цвет
    | ИЗ
    | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    | ГДЕ
    | ЗначенияСвойствОбъектов.Свойство = &сЦвет
    | И ЗначенияСвойствОбъектов.Значение = &зЦвет
    |
    | СГРУППИРОВАТЬ ПО
    | ЗначенияСвойствОбъектов.Объект,
    | ЗначенияСвойствОбъектов.Значение) КАК взЦвет
    |
    |СГРУППИРОВАТЬ ПО
    | СпрНоменклатура.Ссылка";
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    в запросе делаете левые соединения с выборками по каждому свойству и в условии для отсутствующих свойств ставите проверку значения свойства на NULL
    типа такого
    Код:
    ВЫБРАТЬ
    Номенклатура.Ссылка,
    ЗначенияСвойствОбъектов1.Значение КАК Значение1,
    ЗначенияСвойствОбъектов2.Значение КАК Значение2,
    ЗначенияСвойствОбъектов3.Значение КАК Значение3
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1
    ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов1.Объект
    И (ЗначенияСвойствОбъектов1.Свойство = &Свойство1)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2
    ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов2.Объект
    И (ЗначенияСвойствОбъектов2.Свойство = &Свойство2)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов3
    ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов3.Объект
    И (ЗначенияСвойствОбъектов3.Свойство = &Свойство3)
    ГДЕ
    ЗначенияСвойствОбъектов1.Значение = &Значение1
    И ЗначенияСвойствОбъектов2.Значение = &Значение2
    И ЗначенияСвойствОбъектов3.Значение ЕСТЬ NULL 
    только запрос такой лучше программно делать
  5. TopicStarter Overlay
    АндрейС
    Offline

    АндрейС

    Регистрация:
    16 июл 2013
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо ответившим, все получилось. Тему можно закрывать

Поделиться этой страницей