Коллеги, здравствуйте. Прошу помощи.
В базе забита номенклатура. В каждом товаре занесены несколько свойств (как с заполненными значениями, так и просто с названиями, без значений: Цвет:..., Размер: М, Стиль: Взрослый и так далее). Значения свойств хранятся в регистре сведений ЗначенияСвойствОбъектов. Задача прямым запросом получить результат вида: Колонки: Товар, Размер, Стиль (и все остальные свойства, какие бывают у товара), а в строках непосредственно значения. Все это надо взять из регистра ПродажиПоДисконтнымКартам. Беру следующим запросом (в запросе реализован вывод только свойства "Размер"):

```1c
    ВЫБРАТЬ
    ИсточникДанных.ДисконтнаяКарта.НомерКарты КАК НомерКарты,
    ИсточникДанных.ДисконтнаяКарта.ФИОВладельца КАК ФИОВладельца,
    ИсточникДанных.Номенклатура.Наименование КАК Наименование,
    ИсточникДанных.Номенклатура.Артикул КАК Артикул,
    ИсточникДанных.Номенклатура.ОсновнойШтрихКод КАК ОсновнойШтрихКод,
    ИсточникДанных.Регистратор.Дата,
    ИсточникДанных.КоличествоОборот КАК Количество,
    ИсточникДанных.СуммаСоСкидкойОборот КАК СуммаСоСкидкой,
    ИсточникДанных.СуммаСкидкиОборот КАК СуммаСкидки,
    ВЫБОР
    КОГДА ИсточникДанных.СуммаСоСкидкойОборот + ИсточникДанных.СуммаСкидкиОборот <> 0
    ТОГДА 100 * ИсточникДанных.СуммаСкидкиОборот / (ИсточникДанных.СуммаСоСкидкойОборот + ИсточникДанных.СуммаСкидкиОборот)
    ИНАЧЕ 100
    КОНЕЦ КАК ПроцентСкидки,
    ВЫБОР
    КОГДА ЗначенияСвойствОбъектов.Свойство.Наименование = "Размер"
    ТОГДА ЗначенияСвойствОбъектов.Значение
    КОНЕЦ КАК Размер
    ИЗ
    РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(, , Авто, ) КАК ИсточникДанных
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ПО ИсточникДанных.Номенклатура = ЗначенияСвойствОбъектов.Объект
    ГДЕ
    ИсточникДанных.Номенклатура = &Номенклатура
```

Беру в параметр товар, по которому была одна продажа размера М. Результат получается вот такой:

ТО есть в результат запроса вместо одной строки с размером выводится 7 строк (по количеству заполненных свойств у товара из параметра) и свернуть все это дело никак не получается. Прошу помощи. Запрос нужен именно непосредственно к БД, без использования СКД.
---
Всем откликнувшимся - спасибо за подсказки. Истина, как обычно оказалась где-то рядом. Вышел из положения следующим образом:

```1c
    МАКСИМУМ(ВЫБОР
    | КОГДА ЗначенияСвойствОбъектов.Свойство.Наименование = "Размер"
    | ТОГДА ЗначенияСвойствОбъектов.Значение
    | КОНЕЦ) КАК Размер,
```

и сгруппировал по всем полям кроме, собственно, полей со свойствами. В итоге агрегирующая функция отобрала из 7 записей (среди которых 6 NULL и одна значимая, в данном примере, с размером) одну со значимым содержимым.
---
так может надо отбор по свойству добавить?

```1c
    ГДЕ
    ИсточникДанных.Номенклатура = &Номенклатура
    И ЗначенияСвойствОбъектов.Свойство(или как оно называется) = &ВыбСвойство
```
---
В запросе товар параметром передал для примера - в оригинале запрос делается на все продажи по всем товарам сов всеми свойствами. Теоретически могу, конечно, указать в ГДЕ все 13 (а впоследствие и больше) значений свойств...
---
добавить СГРУППИРОВАТЬ ПО ?
---
Сколько свойств, столько и соединений

```1c
    СвойстваЦвет.Значение как Цвет,
    СвойстваРазмер.Значение как Размер,
    СвойстваСтиль.Значение как Стиль

    ИЗ
    РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(, , Авто, Номенклатура = &Номенклатура) КАК ИсточникДанных
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваРазмер
    ПО ИсточникДанных.Номенклатура = СвойстваРазмер.Объект
    И СвойстваРазмер.Наименование = "Размер"
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваСтиль
    ПО ИсточникДанных.Номенклатура = СвойстваРазмер.Объект
    И СвойстваСтиль.Наименование = "Стиль"
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СвойстваЦвет
    ПО ИсточникДанных.Номенклатура = СвойстваЦвет.Объект
    И СвойстваЦвет.Наименование = "Цвет"
```
---
Раз соединение с регистром свойств происходит только по номенклатуре, то конечно туда буду попадать лишние записи, ведь этому условию удовлетворяют все 7 записей.
Решить можно несколькими путями, на мой взгляд:
1) Обычный запрос с итогами по номенклатуре и обход результат по группировкам
3) Обычный запрос: получить все нужные свойства и программно собрать запрос, состоящий из многих соединений по каждому свойству.
3) Отдельный отчет на СКД, закладка "Характеристики", тогда в режиме предприятия можно настроить, какие колонки, куда и в каком порядке выводить.
4) Если нужны именно данные, то можно взять СКД из п.3 и вывести результат выполнения в ТЗ, например, и работать с ней дальше.
---
Всем откликнувшимся - спасибо за подсказки. Истина, как обычно оказалась где-то рядом. Вышел из положения следующим образом:

```1c
    МАКСИМУМ(ВЫБОР
    | КОГДА ЗначенияСвойствОбъектов.Свойство.Наименование = "Размер"
    | ТОГДА ЗначенияСвойствОбъектов.Значение
    | КОНЕЦ) КАК Размер,
```

и сгруппировал по всем полям кроме, собственно, полей со свойствами. В итоге агрегирующая функция отобрала из 7 записей (среди которых 6 NULL и одна значимая, в данном примере, с размером) одну со значимым содержимым.