Всем привет! Подскажите как проще решить задачу: Есть ТаблицаЗначений. Есть заданные критерии например возмем оперативную память задано частота 2133 Ггц, Объем 16 гб, и DDR 4. Запросом получаю все номенклатуры которые отвечают по каждому отбору. Но нужно найти те номенклатуры которые соотвествуют всем параметрам те через И
Пример прикрепил картинкой
---
Первое, что приходит:

На каждое свойство необходимо делать свое внутреннее соединение с ограничением по нужному значению. Что-то вроде

```1c
    Выбрать
    СпрНоменклатура.Ссылка КАК Номенклатура
    Из
    Справочник.Номенклатура КАК СпрНоменклатура
    Внутреннее Соединение Справочник.Номенклатура.ДополнительныеРеквизиты КАК Свойство1
    По СпрНоменклатура.Ссылка = Свойство1.Ссылка
    И Свойство1.Свойство = &Свойство1
    И Значение = &ЗначениеСвойства1
    Внутреннее Соединение Справочник.Номенклатура.ДополнительныеРеквизиты КАК Свойство2
    По СпрНоменклатура.Ссылка = Свойство2.Ссылка
    И Свойство2.Свойство = &Свойство2
    И Значение = &ЗначениеСвойства2
    ...............
```

Либо

```1c
    Выбрать
    Ссылка КАК Номенклатура
    Из
    Справочник.Номенклатура.ДополнительныеРеквизиты
    ГДЕ
    (Свойство = &Свойство1 И Значение = &ЗначениеСвойства1)
    И (Свойство = &Свойство2 И Значение = &ЗначениеСвойства2)
    ...............
```

Текст запроса формировать динамически в зависимости от количества переданных значений свойств.
---
с делай дополнительно сортировку согласно отбору и они всегда будут сверху что упростит твою задачу, а МАНАГЕРУ будет проще подобрать альтернативу, на 16 гб ,нет но возьмите по 8 гб частота таже
---
нет альтернативые не должно быть! если указано что частота 2133 и DDR4 то только номенклатуры которые отвечают этим требованиям должны попасть в выборку!
---
ок, тогда посмотри как в акте сверке реализован процесс, там есть и отбор по Контрагенту и по договру одномвременно
---
хотя я бы сделал, запрос сначала с отбором по 1 1 значению, причем значение с выбором на форме, затем с отбором с 2 значениями, а ты выбрал 3 и думаешь теперь где ошибка
---
Я больше скажу там может быть 1-10 разных параметров и нужно отобрать те номенклатуры которые удволетворяют всем параметром одновременно те через условие И
---
Думал про такой вариант но это в цикле надо будет запросы делать! Не комильфо как то! но идею понял!
---
Покажите ваш запрос.
---
```1c
    ВЫБРАТЬ
    НоменклатураДополнительныеРеквизиты.Ссылка КАК Номенклатура,
    НаборыДополнительныхРеквизитов.Свойство КАК Свойство,
    ВидыНоменклатуры.НаборСвойств КАК НаборСвойств,
    НоменклатураДополнительныеРеквизиты.Значение КАК Значение
    ИЗ
    Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитов
    ПО ВидыНоменклатуры.НаборСвойств = НаборыДополнительныхРеквизитов.Ссылка
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
    ПО (НаборыДополнительныхРеквизитов.Свойство = НоменклатураДополнительныеРеквизиты.Свойство)
    ГДЕ
    НЕ НаборыДополнительныхРеквизитов.Свойство.ЭтоДополнительноеСведение
    И ВидыНоменклатуры.НаборСвойств = &ВидНоменклатуры
    И НоменклатураДополнительныеРеквизиты.Значение В(&МассивЗначений

    ВидНоменклатуры = спр.НаборыДополнительныхРеквизитов = Оперативная память
    МассивЗначений = 16 гб, 2133 ггц, DDR4
```

Конфа УТ11
---
Идея такая что в Номенклатуре в доп реквизитах хранятся свйоства например памяти оперативной. Но они могут быть как числом = 16 гб например так и спр.ЗначениеСвйоствНом = DDR3, DDr4 и задаются некоторые ограничения что для такого то сервера подходит только DDR4 и 16 гб например и нужно запросом найти все номенклатуры которые отвечают заданым критериям причем через И
---
начните с простого:

```1c
    Выбрать
    Cсылка
    из
    Cправочник.Номенклатура.ДополнительныеРеквизиты
    Где
    Свойство в (&Свойства)
    И Значение в (16, &ЗначениеСвойстваDDR4)
    Сгруппировать по
    Ссылка
```
---
Проблема в том что список значений может быть произвольный от 1 до 10 значений! МассивЗначений они и содердит список всех вариантов отбора = 16, DDR4, 2133
В доп реквизитах хранится так: 16 это число и хранится в ТЧ Допреквизиты а вот если DDR4 то это ссылка на спр. СвойстваЗначений
---
В чем именно трудности с формированием списка значений/массива?
---
а зачем разделять 16 и отдельно значениясвойств? я наоборот соединяю в один массив и числа и значение свойств DDR4. Просто не пойму что изменится если я отделю их?
---
Я не призываю вас отделять их, вы правильно делаете, но я не пойму до сих пор, в чем именно у вас возникли трудности?
---
вот результат запроса на картинке я прикрепил! но там выходит как бы через ИЛИ условие! и получаются лишние ном-ры. И после мне нужно скомпоновать так чтобы попали только 2 номенклатры только у них встречаются заданые значения: 16 гб, 2133 и DDR4!
---
Первое, что приходит:

На каждое свойство необходимо делать свое внутреннее соединение с ограничением по нужному значению. Что-то вроде

```1c
    Выбрать
    СпрНоменклатура.Ссылка КАК Номенклатура
    Из
    Справочник.Номенклатура КАК СпрНоменклатура
    Внутреннее Соединение Справочник.Номенклатура.ДополнительныеРеквизиты КАК Свойство1
    По СпрНоменклатура.Ссылка = Свойство1.Ссылка
    И Свойство1.Свойство = &Свойство1
    И Значение = &ЗначениеСвойства1
    Внутреннее Соединение Справочник.Номенклатура.ДополнительныеРеквизиты КАК Свойство2
    По СпрНоменклатура.Ссылка = Свойство2.Ссылка
    И Свойство2.Свойство = &Свойство2
    И Значение = &ЗначениеСвойства2
    ...............
```

Либо

```1c
    Выбрать
    Ссылка КАК Номенклатура
    Из
    Справочник.Номенклатура.ДополнительныеРеквизиты
    ГДЕ
    (Свойство = &Свойство1 И Значение = &ЗначениеСвойства1)
    И (Свойство = &Свойство2 И Значение = &ЗначениеСвойства2)
    ...............
```

Текст запроса формировать динамически в зависимости от количества переданных значений свойств.
---
Воооот! я тоже к этому пришел! по другому хз как! Спасибо так и сделаю тогда