|
v8: УФ. Как задать отбор динамическому списку? | ☑ | ||
---|---|---|---|---|
0
ptrtss
26.04.12
✎
12:42
|
Форма документа. На ней таблица с регистром сведений, который нужно отобрать по измерению-ссылке текущего документа. Регистр сведений независимый
В конфигураторе, в настройках динамического списка добавил отбор по документу, но с пустым значением. Нужно при открытии этот элемент отбора найти и поставить вместо пустого значения отбора ссылку Я начал копать вот так: ДинамическийСписок.Отбор и т.д. но это компоновочный отбор, а компоновку я не очень знаю. Как там искать элемент-отбор по документу, полным перебором коллекции ДинамическийСписок.Отбор.Элементы? Нет там каких-нибудь найти, получить и т.п. но только не по индексу, а по наименованию? Или вообще по другому надо? |
|||
1
Mort
26.04.12
✎
12:47
|
Кнопку "Я" нажми справа от заголовка темы.
|
|||
2
YFedor
26.04.12
✎
12:49
|
//------- © YF --------------------
// Устанавливает отбор в динамическом списке // Параметры: // _список : динамический список отбор в котором хотим установить // _имяОтбора : имя реквизита для отбора // _видСравнения : вид сравнения // _значениеОтбора : значение по которому хотим установить отбор // _отборПоПустомуЗначению : Если истина, то при передаче пустого значения в качестве значения отбора // по нему и устанавливается отбор, если Ложь, то при передаче пустого значения в качестве значения отбора // отбор отключается // // Отбор устанавливается только на равенство (во всяком случае пока) Процедура УстановитьОтборВСписке(_список, _имяОтбора, _видСравнения = Неопределено, _значениеОтбора, _отборПоПустомуЗначению = Ложь, _скрытьОтбор = Ложь) Экспорт // Если вид сравнения не передавали, то установим сравнение по равенству Если _видСравнения = Неопределено Тогда _видСравнения = ВидСравненияКомпоновкиДанных.Равно; КонецЕсли;//_видСравнения = Неопределено // элементОтбора_ = Неопределено; // Поищем а есть ли уже элемент отбора по указанному реквизиту Для каждого элемент_ из _список.Отбор.Элементы Цикл Если ВреГ(элемент_.ЛевоеЗначение) = ВреГ(_имяОтбора) Тогда элементОтбора_ = элемент_; Прервать; КонецЕсли;//ВреГ(элемент_.ЛевоеЗначение) = ВреГ(_имяОтбора) КонецЦикла;//каждого элемент_ из Список.Отбор.Элементы // Установим отбор по реквизиту Если элементОтбора_ = Неопределено Тогда элементОтбора_ = _список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); элементОтбора_.ВидСравнения = _видСравнения; элементОтбора_.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(_имяОтбора); КонецЕсли;//элементОтбора_ = Неопределено элементОтбора_.ПравоеЗначение = _значениеОтбора; // Если значение для отбора не заполнено, значит нужно убрать отбор по //данному реквизиту Если ЗначениеЗаполнено(_значениеОтбора) Тогда элементОтбора_.Использование = Истина; ИначеЕсли _отборПоПустомуЗначению Тогда элементОтбора_.Использование = Истина; Иначе элементОтбора_.Использование = Ложь; КонецЕсли;//ЗначениеЗаполнено(_значениеОтбора) // Если нужно - скроем от пользователя отбор Если _скрытьОтбор Тогда элементОтбора_.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; КонецЕсли;//_скрытьОтбор КонецПроцедуры//УстановитьОтборвСписке Эта функция вызывается из управляемых форм, чтобы устанавливать в них отбор, например ПриСозданииНаСервере |
|||
3
gavrikprog
26.04.12
✎
12:51
|
(2) счас он код для применения еще попросит =)
|
|||
4
gavrikprog
26.04.12
✎
12:52
|
(2)
вообще похоже немного на копипаст из типовых |
|||
5
YFedor
26.04.12
✎
12:53
|
(4) х.з., не помню, вроде сам писал :-)
|
|||
6
ptrtss
26.04.12
✎
12:58
|
Мдя, 1С думает о нас! (прастигоспади)
&НаКлиенте Процедура УстановитьОтборИсторииСообщений() ПолеЗаявка = ИсторияСообщений.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Заявка").Поле; Для каждого ЭлементОтбора из ИсторияСообщений.Отбор.Элементы Цикл Если ЭлементОтбора.ЛевоеЗначение = ПолеЗаявка Тогда ЭлементОтбора.ПравоеЗначение = Объект.Ссылка; Возврат; КонецЕсли; КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |