|
Установка и очистка отбора (управляемые формы) | ☑ | ||
---|---|---|---|---|
0
ac13
02.05.17
✎
16:15
|
При установлен флаге надо скрывать документы, где стоит дата выдачи.
А при снятом флаге показывать все без отбора. При открытии формы отбор по документам, где Дата выдачи - заполнена - работает. А когда снимаю флаг, отбор не снимается. &НаКлиенте Процедура СкрытьПоказатьархивные() Если ЭтотОбъект.СкрыватьАрхивные = Истина Тогда Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ДатаВыдачи").Поле; Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; Отбор.Использование = Истина; Иначе Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ДатаВыдачи").Поле; Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; Отбор.Использование = Истина; КонецЕсли; КонецПроцедуры |
|||
1
ac13
02.05.17
✎
16:16
|
ой, в коде бред ...
|
|||
2
ac13
02.05.17
✎
16:18
|
Вот, но все равно не работает:
Если ЭтотОбъект.СкрыватьАрхивные = Истина Тогда Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ДатаВыдачи").Поле; Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; Отбор.Использование = Истина; Иначе Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Отбор.ЛевоеЗначение = Список.Отбор.ДоступныеПоляОтбора.Элементы.Найти("ДатаВыдачи").Поле; Отбор.Использование = Ложь; КонецЕсли; |
|||
3
Неверный Параметр И
02.05.17
✎
16:19
|
.Очистить()
|
|||
4
Mort
02.05.17
✎
16:19
|
Ты не снимаешь использование у существующего элемента отбора, а добавляешь новый. Старый, соответственно, остается.
|
|||
5
Mort
02.05.17
✎
16:21
|
Если конфа типовая (или нетиповая на БСП) то для этого есть функции шоб велосипед не изобретать.
|
|||
6
ac13
02.05.17
✎
16:22
|
(3) а если мне не надо весь отбор снимать, а только у этого поля
|
|||
7
ac13
02.05.17
✎
16:22
|
(5) так какие функции?
чтобы удалить отбор только для одного поля |
|||
8
Mort
02.05.17
✎
16:23
|
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(...)
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(...) |
|||
9
AsadRoman
02.05.17
✎
16:36
|
(2) Вот и каждый раз идет добавление нового условия отбора. После 10 нажиманий на форме на поле с галочкой будет десять условий отбора для одного поля.
Нужно циклом пройтись по элементам отбора, найти нужное и установить для него НЕИСПОЛЬЗОВАТЬ, когда галочка снята. А еще лучше построить динамический список так, чтобы было поле Выводить с типом Булево, которое будет Истина, если ДатаВыдачи не заполнена и Ложь - Если заполнена ( или наоборот). Тогда вывести на форму это поле в качестве поля отбора. И не нужно огород городить. Использовать поле отбора : с датой выдачи, или без даты выдачи и не использовать поле - выводить все. |
|||
10
ac13
02.05.17
✎
16:55
|
(8) спасибо!
&НаКлиенте Процедура СкрытьПоказатьархивные() Если ЭтотОбъект.СкрыватьАрхивные = Истина Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаВыдачи", , ВидСравненияКомпоновкиДанных.НеЗаполнено, , Истина); Иначе ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ДатаВыдачи", ); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |