|
Отбор работает некорректно | ☑ | ||
---|---|---|---|---|
0
dart909
14.07.15
✎
10:36
|
Подскажите пожалуйста знающие люди. Есть код в модуле формы списка:
&НаСервере Процедура СделатьОтборПоПринятым() ТекОтбор = Список.Отбор.Элементы; ТекОтбор.Очистить(); УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус"); УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; УсловиеОтбора.ПравоеЗначение = перечисления.СтатусСотрудника.Принят ; КонецПроцедуры &НаСервере Процедура СделатьОтборПоУволенным() ТекОтбор = Список.Отбор.Элементы; ТекОтбор.Очистить(); УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус"); УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; УсловиеОтбора.ПравоеЗначение = перечисления.СтатусСотрудника.Уволен; КонецПроцедуры &НаКлиенте Процедура ОтобратьПринятых(Команда) Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьПринятых.Пометка = Не Проверка; Проверка = Не Проверка; СделатьОтборПоПринятым(); Если Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьПринятых.Пометка = Ложь Тогда Список.Отбор.Элементы.Очистить() КонецЕсли; Если Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьПринятых.Пометка = Ложь И Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьУволенных.Пометка = Ложь Тогда ОтменаОтбора(Команда) КонецЕсли КонецПроцедуры &НаКлиенте Процедура ОтобратьУволенных(Команда) Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьУволенных.Пометка = Не ПроверкаУволенных; ПроверкаУволенных = Не ПроверкаУволенных; СделатьОтборПоУволенным(); Если Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьУволенных.Пометка = Ложь И Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьПринятых.Пометка = Ложь Тогда ОтменаОтбора(Команда) КонецЕсли КонецПроцедуры Процедура ПриОткрытии(Отказ) Элементы.Посмотреть.ПодчиненныеЭлементы.ОтобратьПринятых.Пометка = Ложь; Проверка = Ложь; ПроверкаУволенных = Ложь; КонецПроцедуры Как сделать, чтобы можно было сделать отбор и по принятым и по уволенным? и Соответственно отменять отбор по принятым или уволенным, а не полностью его очищать? |
|||
1
Cyberhawk
14.07.15
✎
10:45
|
Найти(), Добавить()...
|
|||
2
dart909
14.07.15
✎
11:06
|
(1) И куда это?
|
|||
3
D_E_S_131
14.07.15
✎
11:40
|
"и по принятым и по уволенным" — вид сравнения "В списке", "Правое значение" список нужных тебе статусов.
|
|||
4
dart909
14.07.15
✎
11:42
|
(3) Список создавать заполнять в той же процедуре Отбор?
|
|||
5
D_E_S_131
14.07.15
✎
12:18
|
(4) Да где хочешь.
|
|||
6
dart909
14.07.15
✎
12:38
|
(5) &НаСервере
Процедура СделатьОтборПоПринятым() СписокЗнач = Новый СписокЗначений; СписокЗнач.Добавить("Принят"); СписокЗнач.Добавить("Больничный"); СписокЗнач.Добавить("Уволен"); ТекОтбор = Список.Отбор.Элементы; УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус"); УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; УсловиеОтбора.ПравоеЗначение = СписокЗнач; КонецПроцедуры Отбор ничего не выдал |
|||
7
ЛисИзЛеса
14.07.15
✎
13:23
|
Даю подсказку
Сравните 2 строчки: СписокЗнач.Добавить("Принят") УсловиеОтбора.ПравоеЗначение = перечисления.СтатусСотрудника.Принят В первом случае тип данных - "Строка" Во втором - Перечисление. |
|||
8
Cyberhawk
14.07.15
✎
13:27
|
(2) в синтакс-помощник, во вкладку "Индекс"
|
|||
9
dart909
14.07.15
✎
13:42
|
(7) Спасибо
|
|||
10
dart909
14.07.15
✎
13:43
|
А можно вопрос еще как наложить такое условие, Если кнопка нажата Тогда в список добавляем значение?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |