![]() |
![]() |
![]() |
|
Как в СКД программно установить отбор? | ☑ | ||
---|---|---|---|---|
0
Бомж
27.03.09
✎
09:22
|
Всем доброго дня.
Как изменить уже существующую настройку отбора в СКД? Добавить новый можно так: НовыйЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПолеОтбора = Новый ПолеКомпоновкиДанных("Регистратор.Дата"); НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора; НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше; НовыйЭлементОтбора.ПравоеЗначение = НП.ПолучитьДатуОкончания(); А как получить уже существующий элемент отбора и установить новое значение? Спасибо. |
|||
1
gr13
27.03.09
✎
09:23
|
в 7.7?
|
|||
2
gr13
27.03.09
✎
09:23
|
||||
3
gr13
27.03.09
✎
09:24
|
хотя там нет) но если подумать, то разберешься) там не сложно
|
|||
4
lucky-nn
27.03.09
✎
09:25
|
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Если ЗначениеЗаполнено(ДатаОтчета) Тогда Настройки.ПараметрыДанных.Элементы[0].Значение = ДатаОтчета; Настройки.ПараметрыДанных.Элементы[0].Использование=Истина; КонецЕсли; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); |
|||
5
Andry888
27.03.09
✎
09:27
|
ЭтотОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(0).Использование=Истина;
ЭтотОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(0).ПравоеЗначение= ...; |
|||
6
Бомж
27.03.09
✎
09:30
|
(5), да примерно так и хотел написать, но такая проблема: Например есть достаточно большой отчет, и отборов может быть много. Вот прользователь добавил пару отборов, поменял их местами и Индекс 0 уже не индекс 0. Как бы по имени получить?
|
|||
7
Andry888
27.03.09
✎
09:34
|
У ...Элементы вроде бы метод "найти" есть...
|
|||
8
Andry888
27.03.09
✎
09:37
|
ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(...
|
|||
9
Shurjk
27.03.09
✎
09:38
|
Примерно так
Отбор = Новый Массив; ЭлементОтбора1 = Новый Структура; ЭлементОтбора1.Вставить("ЛевоеЗначение", "Сотрудник"); ЭлементОтбора1.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.Равно); ЭлементОтбора1.Вставить("ПравоеЗначение", Сотрудник); Отбор.Добавить(ЭлементОтбора1); Параметры = Новый Массив; ЭлементПараметра1 = Новый Структура; ЭлементПараметра1.Вставить("Параметр", "НачалоПериода"); ЭлементПараметра1.Вставить("Значение", НачалоПериода); Параметры.Добавить(ЭлементПараметра1); ЭлементПараметра2 = Новый Структура; ЭлементПараметра2.Вставить("Параметр", "КонецПериода"); ЭлементПараметра2.Вставить("Значение", КонецМесяца(КонецПериода)); Параметры.Добавить(ЭлементПараметра2); ЭлементПараметра3 = Новый Структура; ЭлементПараметра3.Вставить("Параметр", "ВидРасчетногоЛистка"); ЭлементПараметра3.Вставить("Значение", "Подробно"); Параметры.Добавить(ЭлементПараметра3); Объект.НастроитьОтборыПарметры(Отбор, Параметры); |
|||
10
Бомж
27.03.09
✎
09:43
|
НайтиПоле(<Поле>)
Параметры: <Поле> (обязательный) Тип: ПолеКомпоновкиДанных. Поле системы компоновки данных Возвращаемое значение: Тип: Неопределено, ДоступноеПолеКомпоновкиДанных, ДоступноеПолеОтбораКомпоновкиДанных. Описание: Осуществляет поиск доступного поля. Если поле не найдено, возвращается значение Неопределено. Если найдено - найденное поле. <Поле> (обязательный) - Дык а сюда-то что передавать? то что по индексу получил что ли??? Непонятно... |
|||
11
Andry888
27.03.09
✎
09:44
|
(9) не ну это каждый раз перезаписывать отбор + затрет пользовательские отборы...
|
|||
12
Andry888
27.03.09
✎
09:47
|
(10) ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.Элементы.Найти("ИмяПоля")
|
|||
13
Andry888
27.03.09
✎
09:48
|
(10) (12) это <Поле>...
|
|||
14
gr13
27.03.09
✎
09:53
|
(6) в цикле попробуй...
|
|||
15
Бомж
27.03.09
✎
09:55
|
ЭлементОтбора=ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.Элементы.Найти("Регистратор.Дата")
Возвращает неопределено. куда копать? |
|||
16
Andry888
27.03.09
✎
09:57
|
В отладчике просмотри все доступныеэлементыотбора (наверно такого поля там нет...)
|
|||
17
Бомж
27.03.09
✎
10:01
|
Всем спасибо. НА сегодня все. Домой пора уже. буду завтра ковырять
|
|||
18
acsent
27.03.09
✎
10:34
|
НЕ забываем что это ДЕРЕВО отборов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |