|
Поиск по элементам коллекции набора данных СКД | ☑ | ||
---|---|---|---|---|
0
Leksus
16.09.11
✎
14:11
|
Например часто возникает такая задача:
необходимо в настройках СКД программно найти и установить поле отбора. Как это эффективно решать? У элементов коллекции набора данных СКД нет метода Найти() Есть возможность получить по индексу, но как получить индекс необходимого элемента? |
|||
1
also
16.09.11
✎
14:21
|
Перебор
|
|||
2
Leksus
16.09.11
✎
14:37
|
(1) печально :(
|
|||
3
chingiz
16.09.11
✎
15:24
|
КоллекцияЭлементовОтбораКомпоновкиДанных (DataCompositionFilterItemCollection)
Индекс (IndexOf) Синтаксис: Индекс(<Элемент>) Параметры: <Элемент> (обязательный) Тип: ЭлементОтбораКомпоновкиДанных; ГруппаЭлементовОтбораКомпоновкиДанных. Элемент, индекс которого определяется. Возвращаемое значение: Тип: Число. Описание: Получает индекс элемента в коллекции. |
|||
4
Axel2009
16.09.11
✎
15:35
|
(3) особенно если надо найти по имени
|
|||
5
chingiz
16.09.11
✎
15:36
|
Минуя индекс - http://1cskd.ru/2010/06/kak_izmenit_otbor_programmno/
|
|||
6
chingiz
16.09.11
✎
15:37
|
Сам сейчас сижу над подобным. Только не с отбором, а с выбором 8)
|
|||
7
Axel2009
16.09.11
✎
15:42
|
а с индексом как по имени?
|
|||
8
chingiz
16.09.11
✎
15:48
|
Да я вот сам бьюсь. Мне нужно получить индекс ГруппыВыбранныхЭлементов и что-то не выходит.
КомпоновщикНастроек.Настройки.Выбор.Элементы[2].Элементы.Получить(ЭлементыФормы.ПолеСписка.ТекущаяСтрока.ПолучитьИдентификатор()) Вот с ПолемСписка все ясно, он берет Текущую Строку и получает индекс, и мы его благополучно пихаем в Получить. Но вот порнографию в виде "Элементы[2]" мне нужно убрать, а то пользователь ведь может передвинуть ГруппуПолей в настройках... |
|||
9
Axel2009
16.09.11
✎
15:53
|
а что во 2ом элементе находится?
|
|||
10
Axel2009
16.09.11
✎
15:53
|
что делать если пользователь "может удалить"?
|
|||
11
chingiz
16.09.11
✎
16:05
|
Первый это ГруппаВыбранныхПолей, а второй сами поля. Ну дак если удалит, то и поля не будет...значит ошибка :) Мне то не грозит, эта Группа всегда включена и используется....а вот то что ее могут подвинуть, это нужно решить :\
|
|||
12
Axel2009
16.09.11
✎
16:08
|
ну сделай имя группировки. и проверяй по имени
|
|||
13
Робинзон Крузо
16.09.11
✎
16:19
|
В (1), пожалуй, правильно сказано. Отборов не бывает уж очень много. так что использование перебора в данном случае некритично.
|
|||
14
chingiz
16.09.11
✎
16:27
|
Мда, что же я на (1) не посмотрел :) Вот и решение в коде:
Для каждого Элемент из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл Если Элемент.Заголовок = "Характер поездок" Тогда Индекс = КомпоновщикНастроек.Настройки.Выбор.Элементы.Индекс(Элемент); КонецЕсли; КонецЦикла; |
|||
15
chingiz
16.09.11
✎
16:28
|
Респект (1) и (13), я уже как только не извращаюсь 2 часа по незнанию 8))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |