Имя: Пароль:
1C
1С v8
Как программно заполнить табличное поле с данными Построитель.Отбор?
0 Vladal
 
22.06.15
13:27
Во внешней обработке есть реквизит Построитель, на форму поместил табличное поле с данными Построитель.Отбор.
В модуле объекта написал:

Построитель.Текст =
    "ВЫБРАТЬ ...";
Построитель.ЗаполнитьНастройки();

На форме в поле отборов пользователь вручную добавляет нужный ему отбор, но надо бы эти поля добавить в табличное поле отбора.
Как программно заполнить это табличное поле?
Понимаю, что надо перебирать отбор построителя, есть ли какой пример?
1 Fragster
 
гуру
22.06.15
13:28
Построитель.Отбор.Добавить...
2 DTXqueque
 
22.06.15
13:29
В данных ТП добавить Построитель.Отбор
3 Vladal
 
22.06.15
13:32
Я в данных ТП и установил ПОстроитель.Отбор. Пользщователдь может в поле сам добавлять нужные ему отборы.
НО надо добавить эти поля. чтобы пользователь просто уже выбирал правое значение фильтров.
4 DTXqueque
 
22.06.15
13:33
Отбор (Filter)
Отбор (Filter)
Элементы коллекции:

ЭлементОтбора
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы отбора.
Возможно обращение к элементу отбора посредством оператора [...]. В качестве аргумента передается индекс элемента (нумерация с 0).

Свойства:

<Имя элемента отбора> (<Filter element name>)

Методы:

Добавить (Add)
Индекс (IndexOf)
Количество (Count)
Найти (Find)
Получить (Get)
ПолучитьДоступныеПоля (GetAvailableFields)
Сбросить (Reset)
Сдвинуть (Move)
Удалить (Delete)
УстановитьДоступныеПоля (SetAvailableFields)

Описание:

Предназначен для хранения условий отбора.
Представляет собой коллекцию элементов отбора. Используется для установки фильтрации данных в различных выборках, наборах записей, визуальных списках.
Каждый из элементов может устанавливать одно условие. Весь объект представляет собой составное условие, состоящее из отдельных условий, описываемых элементами, соединяющимися по "И".

Доступность:

Сервер, толстый клиент, внешнее соединение
5 Vladal
 
22.06.15
13:34
(4) и? какие из букв мне должны помочь?
6 DTXqueque
 
22.06.15
13:35
(5) Добавить (Add)
7 Vladal
 
22.06.15
13:38
(6) Возможно, я не понял ответ.
Поля отбора построителя и так есть, задавал их в тексте запроса:

    |{ГДЕ
    |    ВТ_Результат.Номенклатура.,
    |    ВТ_Результат.ДокументОприходования.
,
    |    ВТ_Результат.Цена,
    |    ВТ_Результат.СтавкаНДС.*,
    |    ВТ_Результат.ЦенаДляПоследующейОбработки,

Сейчас пользователь в поле отбора ручками жмёт ПКМ -> Добавить -> выбирает из списка полей нужное поле -> устанавливает нужное значение фильтра.

А я хочу доступные поля отбора вывести в ТП, а пользователь будет проставлять только правое значение отбора.
8 Vladal
 
22.06.15
13:39
*После точек в Номенклатура., и ДокументОприходования., должны быть звёздочки
9 DTXqueque
 
22.06.15
13:44
(7) Ну так и добавь нужные тебе отборы с помощью (6). А пользователь просто правые значеня будет клацать.
10 Vladal
 
22.06.15
13:47
(9) Если я правильно понял, получить список отборов в цикле?

Для каждого ПолеОтбора из Построитель.Отбор Цикл

НоваяСтрока = ЭлементыФормы.ОтборПостроителя Добавить();
НоваяСтрока.Имя = ПолеОтбора.Имя;

...

КонецЦикла
11 Vladal
 
22.06.15
13:55
Получилось!

    // Заполнение поле отбора
    Для каждого ПолеОтбора Из Построитель.ДоступныеПоля Цикл
        ЭлементыФормы.ОтборПостроителя.Значение.Добавить(ПолеОтбора.Имя, ПолеОтбора.Имя);
    КонецЦикла;
12 DTXqueque
 
22.06.15
13:58
>ЭлементыФормы.ОтборПостроителя.Значение
Мощно :)
13 Vladal
 
22.06.15
13:59
(12) как правильно?
14 hhhh
 
22.06.15
14:00
ОтборПостроителя
15 Vladal
 
22.06.15
14:02
(14) нет, так он не давал. Я не определял реквизит с типом ПОстроитель.Отбор, просто на форму положил ТП и назначил его данные как ПОстроитель.Отбор.
16 Зеленый пень
 
22.06.15
14:03
(15) Загляни в реквизиты формы и найдешь там свой построитель. Или у тебя Построитель - реквизит основного реквизита формы :)
17 hhhh
 
22.06.15
14:03
(15) ну тогда ПОстроитель.Отбор.
18 DTXqueque
 
22.06.15
14:04
(13) >Во внешней обработке есть реквизит Построитель
ЭлементыФормы.ОтборПостроителя.Значение -> Построитель.Отбор
19 Vladal
 
22.06.15
14:06
(17) Так получилось более изящно. Спасибо!

    Для каждого ПолеОтбора Из Построитель.ДоступныеПоля Цикл
        Построитель.Отбор.Добавить(ПолеОтбора.Имя);
    КонецЦикла;
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.