Заметки из Зазеркалья

20.01.2014

Поиск в списках

Реализовано в версии 8.3.5.1068.

Мы переработали механизм поиска в списках, сделав его более удобным и понятным.

Первое внешнее отличие заключается в том, что теперь в командной панели формы присутствуют два новых элемента: строка поиска и управление поиском:

Как и раньше, чтобы найти что-то, достаточно просто начать набирать на клавиатуре искомые слова. Курсор автоматически перейдет в строку поиска, и в ней будут отображаться набираемые вами символы.

Например, если вы хотите найти, что покупала «Шлюзовая ООО» оптом со среднего склада, то для этого просто наберите на клавиатуре: «шлюз опт сре»:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

При этом платформа будет искать во всех колонках списка одновременно по нескольким значениям (фрагментам строк). При наборе с клавиатуры вы отделили эти фрагменты друг от друга пробелами. Для того чтобы было проще ориентироваться в результатах поиска, платформа подсвечивает найденные фрагменты строк.

Очень удобной возможностью нового поиска является поиск по номеру без учёта лидирующих нулей. То есть, если вы хотите найти накладную с номером 000000011, для этого достаточно набрать на клавиатуре (или прямо в строке поиска) «11»:

Поиск по текущему значению

Мы вернули в платформу команду поиска по текущему значению. Искать по текущему значению можно было и раньше. Для этого нужно было вызвать диалог поиска и нажать Enter. Но без специальной отдельной команды многие пользователи этого не понимали.

Теперь вы можете легко найти все строки таблицы, в которых содержится то же значение, что и в выделенной ячейке. Проще всего для этого использовать команду, которая находится в контекстном меню таблицы:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Обратите внимание, что теперь над таблицей отображаются те значения, по которым найдены строки таблицы. Это удобно по двум причинам. Во-первых, теперь наглядно видно, что таблица показывает не все данные, а только некоторую часть. Во-вторых, значения, по которым выполнен поиск, вы теперь можете легко удалить или изменить на другие значения:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Также удобным моментом является то, что платформа запоминает текущие значения, по которым выполнялся поиск. Они сохраняются в истории поиска, которая доступна через кнопку управления поиском. Поэтому в любой момент вы можете вернуться обратно к тем значениям поиска, которые использовали раньше:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Расширенный поиск

Механизм поиска, существовавший в платформе раньше, остался, и называется теперь Расширенный поиск. Мы немного изменили внешний вид его диалога и добавили возможность поиска по началу строки.

Для вызова расширенного поиска мы сделали отдельную команду на тот случай, если у вас возникнет желание использовать именно его. И кроме этого платформа использует его тогда, когда вы меняете значения, по которым уже выполнен поиск:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Выбор периода

Мы значительно переработали диалог выбора периода. Этот диалог используется в отчётах, для задания периода, за который должны быть показаны данные. Этот же диалог используется в списках документов для поиска документов, относящихся к определенному периоду.

Отбор списка документов по периоду можно считать одним из способов их поиска - поиск по дате. Поэтому команду установки периода мы разместили в управлении поиском.

При первом открытии диалог предлагает выбрать один или несколько месяцев текущего, предыдущего или последующего года. По нашим оценкам это наиболее часто встречающийся сценарий поиска:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Период в несколько месяцев вы можете выбрать легко. Для этого нужные месяцы надо просто выделить мышью:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Если есть необходимость, можно тут же задать произвольный период, указав дату начала и дату окончания. Или же вы можете перейти на другую страницу диалога и выбрать один из стандартных периодов, имеющихся в платформе. Для того чтобы вам было легче ориентироваться в большом количестве стандартных периодов, мы сгруппировали их по интервалам: день, неделя, декада и т.д.:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Как выглядит новый поиск в конфигураторе

Для работы с новым механизмом поиска мы добавили в форму новый элемент. Он называется Дополнение элемента формы. Раньше у формы было 5 элементов: Поле, Таблица, Кнопка, Группа и Декорация. Теперь таких элементов шесть.

Для таблиц динамических списков платформа автоматически создаёт три таких элемента: Строка поиска, Состояние просмотра и Управление поиском. Появление этих элементов в форме регулируется тремя новыми свойствами таблицы: ПоложениеСтрокиПоиска, ПоложениеСостоянияПросмотра и ПоложениеУправленияПоиском.

При желании разработчик может не использовать стандартные элементы (Дополнение элемента формы), а создать собственные. Для этого достаточно добавить в форму Дополнение элемента формы и задать ему источник. В зависимости от конкретного источника этот элемент примет тот или иной внешний вид. На данный момент источники есть только у таблицы динамического списка (три источника), но в дальнейшем мы, возможно, будем расширять эту механику:

Mute
Current Time 0:00
/
Duration Time 0:00
Loaded: 0%
Progress: 0%
Stream TypeLIVE
Remaining Time -0:00
 

Теги: списки  8.3.5