|
как установить отбор в скд при открытии формы отчета | ☑ | ||
---|---|---|---|---|
0
ботаникус
18.01.12
✎
18:35
|
нужно чтобы при открытии отчета в пользовательских настройках стоял отбор. Делаю так, но ничего не выходит, значение отбора не заполнено
Коллекция = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; Для Каждого ЭлементНастройки Из Коллекция Цикл Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных")тогда Если ТипЗнч(ЭлементНастройки.ПравоеЗначение) = Тип("СправочникСсылка.Клиенты") Тогда ЭлементНастройки.ПравоеЗначение = ПараметрыСеанса.ТекущийПользователь.Клиент; КонецЕсли; КонецЕсли; КонецЦикла; что не так? |
|||
1
МурЬка
18.01.12
✎
18:38
|
Кроме значения нужно включать использование и устанавливать вид сравнения, ЕМНИП
|
|||
2
ботаникус
18.01.12
✎
18:40
|
(1)пробовал, не помогает
|
|||
3
МурЬка
18.01.12
✎
18:50
|
(2) Если не выводит даже само устанавливаемое значение, есть два варианта:
- не ПравоеЗначение, а ЛевоеЗначение или Значение - у текущего пользователя клиент не установлен |
|||
4
ботаникус
18.01.12
✎
18:56
|
дело не в этом, вроде разобрался
после создания отрабатывает ПриЗагрузкеПользовательскихНастроекНаСервере, код надо писать там |
|||
5
МурЬка
18.01.12
✎
18:57
|
Вот это работает
настройки = КомпоновщикНастроек.Настройки; эл = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); эл.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Эл.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НоменклатурнаяГруппа"); эл.ПравоеЗначение = НоменклатурнаяГруппа; НомГруппа = НоменклатурнаяГруппа.Наименование; эл.Использование = истина; |
|||
6
silent007
04.02.12
✎
18:34
|
Я это сделал вот так. Мне нужно было установит при открытии
отбор по произвольному полю "СписокКлиентов.Контрагент". Отчет открывается из модуля команды справочника контрагенты в форму отчета в качестве параметра передается структура с отбором по контрагенту [code] &НаСервере Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки) Если ТипЗнч(Параметры.СтруктураОтборов) = Тип("Структура") Тогда Клиент = Неопределено; Если Параметры.СтруктураОтборов.Свойство("Клиент", Клиент) Тогда Если Клиент <> Неопределено Тогда ПолеКлиент = Новый ПолеКомпоновкиДанных("СписокКлиентов.Контрагент"); Идентификатор = ""; Для каждого ЭлементОтбора Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ЭлементОтбора.ЛевоеЗначение = ПолеКлиент Тогда Идентификатор = ЭлементОтбора.ИдентификаторПользовательскойНастройки; Прервать; КонецЕсли; КонецЦикла; Для каждого ЭлементПользовательскихНастроек Из Настройки.Элементы Цикл Если ЭлементПользовательскихНастроек.ИдентификаторПользовательскойНастройки = Идентификатор Тогда ЭлементПользовательскихНастроек.ЛевоеЗначение = ПолеКлиент; ЭлементПользовательскихНастроек.ПравоеЗначение = Клиент; ЭлементПользовательскихНастроек.Использование = Истина; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры [code] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |