![]() |
![]() |
![]() |
|
Как сделать отбор по дате в динамическом списке? | ☑ | ||
---|---|---|---|---|
0
Crosby
12.11.10
✎
15:11
|
Казалось бы простая задача, но никак не получается...
Есть справочник с реквизитом "ДатаОкончания" типа Дата. Требуется в форме списка справочника сделать такой отбор, что бы выводились только записи, у которых "Дата окончания" больше текущей ИЛИ пустая, т.е.: ДатаОкончания > ТекущаяДата() ИЛИ ДатаОкончания = '00010101' Т.е. нужны только "актуальные" записи справочника, отображаемые в форме списка, или форме выбора справочника. Какие есть мысли? |
|||
1
Crosby
12.11.10
✎
15:19
|
Такое вообще возможно?
|
|||
2
Defender aka LINN
12.11.10
✎
15:21
|
8.2?
|
|||
3
fimanich
12.11.10
✎
15:57
|
Может создать группу отбора "ИЛИ"
|
|||
4
abitfrosty
12.11.10
✎
16:35
|
Открываешь запрос этого динамического списка и пишешь свое условие.
ГДЕ ВЫБОР КОГДА ДатаОкончания <> ДАТАВРЕМЯ(1,1,1,0,0,0) ТОГДА ДатаОкончания > &ТекущаяДата КОНЕЦ |
|||
5
fimanich
12.11.10
✎
16:45
|
(4) это если постоянно такой отбор нужен, а если нет, то лучше через группу отбора
|
|||
6
Crosby
13.11.10
✎
09:32
|
Версия 8.1. А что такое "группа отбора"?
Вообще, сложность то в том, что тут нужно применять два условия на одну колонку списка (реквизит). |
|||
7
fimanich
13.11.10
✎
09:49
|
А разве в 8.1 есть динамический список?
|
|||
8
Crosby
13.11.10
✎
11:25
|
(7) Да, есть. Это, например, тип СправочникСписок. В документации он назван динамическим списком.
Что такое "группа отбора ИЛИ" ?... |
|||
9
Crosby
13.11.10
✎
11:46
|
Это вроде как для Компоновки данных используется, а не для отбора в списках форм??
|
|||
10
fimanich
13.11.10
✎
11:48
|
(8) и все же, насколько я знаю в 8.1 нет в чистом виде такого динамического списка, как в 8.2 (который строится на запросе, в том числе на произвольном и использует систему компоновки данных).
Группы отбора используется в отчетах на СКД или в динамических списках в 8.2. Там в настройках списка на вкладке отбор можно добавить не просто поле отбора, но и группу отбора "И", "ИЛИ" и т.д. В 8.1 такое есть в отчетах на СКД, но нет в списках. В 8.1 можно задать, например, "Дата окончания" "Интервал (>, <)" "Нужная дата". Просто зайди в форму списка и нажми кнопку "Отбор и сортировка", там можно посмотреть. То же самое, конечно, можно и программно задать |
|||
11
fimanich
13.11.10
✎
11:51
|
(10)Но скорее всего интервал тебе то условие, которое ты в (0) написал, не поможет сделать
|
|||
12
AaNnDdRrEeYy
13.11.10
✎
11:53
|
Выбери нужные запросом а в отборе сделай условие в списке значение отбора установи получеными ссылками из зпроса.
|
|||
13
Crosby
13.11.10
✎
11:53
|
(10) Понятно, спасибо!!
К сожалению, простым единичным условием мне не обойтись. Получается, в 8.1 нельзя наложить сложное составное условие на список справочника... Жаль. За подробный ответ ещё раз спасибо. |
|||
14
fimanich
13.11.10
✎
11:54
|
Может, как вариант, там где пустая дата в элементах справочника, задать некую условную заведомо большую дату, например, 01.01.3001. Тогда и простой отбор сработает.
|
|||
15
Crosby
13.11.10
✎
11:56
|
(11) Да, интервалом не получится
(12) Только и остаётся, что "ВСписке", но все мы знаем, как это тормозит при больших списках.. |
|||
16
Crosby
13.11.10
✎
12:03
|
(14) Идея интересная :) Только в моём случае требуется, что бы дата была заполнена только при закрытии актуальности. Типа, как дата увольнения сотрудника.
Кстати, all!!! ЭТО ЖЕ ТИПИЧНАЯ ЗАДАЧА!! Как можно показать список сотрудников с отбором по дате увольнения, а именно: на дату документа, в котором мы указываем сотрудника, этот сотрудник должен числиться работающим, т.е. дата его увольнения либо пустая, либо больше, чем дата документа. Как сделать отбор в форме выбора справочника Сотрудники? Только через условие "ВСписке"? |
|||
17
fimanich
13.11.10
✎
12:10
|
(16) но ты же вместо пустой будешь использовать строго определенную дату, ее легко потом найти.
А так, как вариант, кто мешает сделать свою форму с таблицей значений или табличным документом, и туда уже запросом выводить все, что нужно. |
|||
18
Crosby
13.11.10
✎
12:24
|
(17) Понял, спасибо!
|
|||
19
fimanich
13.11.10
✎
12:33
|
(17) Еще можно добавить в справочник реквизит ДатаНеЗаполнена (ТипБулево), который будет программно заполняться, и потом уже делать отбор по 2-м реквизитам: ДатаНеЗаполнена=Истина; ДатаОкончания>ТекущаяДата()
|
|||
20
fimanich
13.11.10
✎
12:39
|
(19) Хотя так не прокатит,сорри, все равно ДатаОкончания анализироваться будет
|
|||
21
fimanich
13.11.10
✎
12:40
|
(20)Если только два реквизита ДатаНеЗаполнена и ДатаАктуальна и по ним отбор
|
|||
22
Crosby
13.11.10
✎
14:46
|
(21) То, что "ДатаАктуальна" будет известно только в момент открытия списка справочника...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |