Ускорение работы пользователей 1с
Разработки

Ускорение работы операторов. Часть 2: Сортировка данных

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

 

Мы не задумывались над тем, какие колонки сортируются в журнале документов, а какие нет. По-умолчанию сортируются номер и дата. А вот остальные реквизиты просто проигнорированы. Конечно, в типовом функционале это сделано, видимо, намерено, чтобы возможно база не сильно быстро росла по размерам, так как все индексируемые реквизиты требуют ресурсов дополнительных от программы. Также при создании конфигурации рекомендуется взвешенно подходить к организации сервиса динамического просмотра информации и уж тем более его сортировки. В целом лучше здесь рассмотреть, насколько это становится удобным в дальнейшей эксплуатации, чем занимать себя мыслями как это увеличит размер базы. Тем более, если ваша база работает на SQL, то это вас должно волновать в меньшей степени. Волновать должно, но не сильно.

  

 





 

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


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

 

На управляемых формах этот клик осуществляется в динамичных списках даже без необходимости индексирования реквизитов. Это огромный плюс новой платформы.

 

 

Стоит ли делать…

«Будь у нас больше настойчивости, мы могли бы отыскать путь почти к любой цели»
Ф.Ларошфуко
 
При этом у нашего заказчика еще возникло обязательное желание сортировать по полю «комментарий». Если кто не знает, что такое просто невозможно сделать с безразмерными текстовыми реквизитами, каковым является этот реквизит, даже на управляемых формах.

 

Есть еще один нюанс, который оказался настолько критичным, что вызывал подозрения в неадекватности заказчика. Если не позволяет платформа что-то делать, то почему от нее нужно требовать невыполнимого? Есть же альтернативные пути! Типовые пути— все то, что доступно в типовом исполнении. Зачем от нее требовать невыполнимого и ломать систему?

В нашем примере, необходимо не просто организовать сортировку по реквизиту «контрагент», но чтобы, находясь в этой колонке, при наборе первых символов можно было позиционироваться в списке на искомом контрагенте. Выяснилось, что если реквизит является справочником, то такое сделать невозможно. Плюс сортировка колонки должна быть по одному клику в шапке колонки.  Речь идет об обычных формах на платформе 1с8.2. Альтернатива этому – нажать Ctrl+F и в диалоговом окне набрать там эти символы, после нажатия на enter, будет произведен поиск и позиционирование на найденном. Казалось бы ведь почему этого недостаточно?

 

При этом на управляемых формах даже сделали на уровне платформы, что при наборе первых символов сразу открывается данная форма поиска по подстроке. Сказать, что это неправильно? Правильно. Многие системы также делают. Правда почему-то в 1с8.3 это решили использовать для быстрого отбора, вместо простого позиционирования на найденном. Нет, позиционирование осуществляется, только отбор то тут при чем. Переход на искомый элемент — это переход, а не отбор. Не совсем понятно.

 

В нашем случае заказчик был несколько категоричен, что это неудобно. И мы прислушались к нему.

Вы можете, конечно, улыбнуться над этим. Нам же было не до смеха. Ведь это не единственное, что требовалось сделать необычное на обычных формах.

 

На форме поиск по подстроке можно осуществить только по реквизитам с типом «Дата», «Строка», «Число».

 

Вам еще не пришла мысль в голову как это можно сделать? Как можно по колонке «Контрагент» сделать поиск по подстроке? Не догадались?

 

С точки зрения логики хранения данных в базе этот способ, конечно же, не является правильным, но сделать – мы сделали. И это вовсю используется. Собственно мы уже подсказку дали. А именно: завели в документы отдельный индексируемый реквизит «КонтрагентИмя» с типом «Строка» с 50-ю знаками. При записи документа туда дублировалась информация из реквизита «Контрагент». Это позволило сделать именно то, что требовалось заказчику. Для остальных реквизитов столь критичным подход не требовался.

 

Вы скажете, что не нужно было такого делать? И будете правы. Но только вдумайтесь в суть, ведь это действительно удобно! Аналогично поступили с реквизитом «комментарий»— добавили строковый реквизит «дополнительная информация» с 30-ю значками и проиндексировали. Вуаля. Сортировка работает и быстрый поиск по первым символам в колонках тоже.

 
«Мы часто клеймим чужие недостатки, , но редко, пользуясь их примером, исправляем свои»
Ф.Ларошфуко
 

А теперь еще смотрите, выплыло аналогичное требование: «в номере документа почему указаны префиксы? – нам нужно без префиксов, чтобы легко искать в списке при набирании первых цифр».

Конфигурация управление производственным предприятием (УПП 1.3). В ней ведется многофирменный учет. Префиксы из документа естественно убирать нельзя! Получается и здесь необходимо также заводить отдельный реквизит числовой «НомерБезПрефикса», чтобы это было в списке и позволяло пользоваться сортировкой. 

 
Конечно, все эти требования излишни. У нас вызвало недоумение. Но и логику пользовательскую тоже видно. Это удобно. И таких много случаев.
 
 

Вывод

 

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

 

<< Особый случай. Внедрение или установка?    Далее: Первое знакомство с разработчиком >> 


 


Нравится 0 Не нравится
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Добавить комментарий
Ваше имя: *
Ваш e-mail: *
Вопрос: Юзабилити - это удобство работы в программе?
Ответ:
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: