Перейти к основному содержанию
`Ctrl`+`K`

# Наборы значений

Наборы значений находятся в `Приложение "Настройка системы"` -> `Настройки и сервисы` -> `Наборы значений`.

На вкладке `Структура набора` настраивается условие универсального фильтра, которое задает какие значения попадают в текущий набор значений.

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

## Работа с наборами значений

### Универсальный фильтр

Набор значений можно задать как значение для ссылочных атрибутов в УФ:

### Код

Методы подбора значений находятся в `ru.bitec.app.btk.valueset.Btk_ValueSetApi`.

#### `ru.bitec.app.btk.valueset.Btk_ValueSetApi#getValueSetSQL(id, bWithStructure)`

Возвращает SQL строку типа:

    SELECT t.id FROM Bs_Goods t
    WHERE upper(t.sName) = upper('ИМПОРТНЫЙ ТМЦ')
    UNION
    SELECT t.id FROM Bs_Goods t
    WHERE upper(t.sName) like upper('t'||'%')
    UNION
    ... -- И так все наборы значений входящие в структуру переданного

Параметры:

- `id` - идентификатор набора значений.

- `bWithStructure` - добавлять вложенные наборы значений.

#### `ru.bitec.app.btk.valueset.Btk_ValueSetApi#getValueSetGidSQL(id, bWithStructure)`

Тоже что и `ru.bitec.app.btk.valueset.Btk_ValueSetApi#getValueSetSQL` только gid вместо id.

#### `ru.bitec.app.btk.valueset.Btk_ValueSetApi#getWhereCondition(id, tableName)`

Возвращает WHERE условие для переданного набора значений.
Параметры:

- `id` - идентификатор набора значений;

- `tableName` - алиас для фильтруемой таблицы.

### Печатные формы

Нужно добавить условие набора в параметры ПФ.

Через процедуру дополнительных параметров
Подробнее см. Процедура получения дополнительных параметров печати для ПФ

    propertyMap.update("myCondition", Btk_ValueSetApi.getValueSetStructureSQL(Btk_ValueSetApi.findByMnemoCode("Import_Goods")))

#### Jasper

Добавить параметр в отчет

    <parameter name="myCondition" class="java.lang.String"/>

        SELECT *
        FROM Bs_Goods t
        WHERE t.id IN ($P!{myCondition})

#### Шаблоны отчетов(DOCX, XLXS, TXT)

        SELECT *
        FROM Bs_Goods t
        WHERE t.id IN (&myCondition)