Обмеження при використанні динамічних списків
1.1. Під час розробки інтерфейсу розробник може використовувати групування в динамічних списках (див. Групування у списках). Розробник може:
1.1. Під час розробки інтерфейсу розробник може використовувати групування в динамічних списках (див. Групування у списках).
Розробник може:
- установити в налаштуваннях динамічного списку групування за замовчуванням;
- додати до форми спеціальні елементи керування (команди меню, поля вибору для «швидкого» групування тощо), які надають користувачеві можливість установлювати групування.
У цьому стандарті перелічено умови, яких повинен дотриматися розробник, якщо він тим чи іншим способом керує групуваннями динамічних списків.
1.2. Користувач за допомогою налаштування списку може встановити власні групування – у цьому випадку прикладний розробник не може (і не повинен) гарантувати оптимальну продуктивність.
1.3. Використання групувань рекомендується в тих динамічних списках, у яких свідомо невелика кількість записів (не більше кількох сотень). Невелика кількість записів може забезпечуватися відбором, застосованим у запиті динамічного списку, або відбором, що застосовується до динамічного списку у формі та дію якого користувач не може скасувати.
1.4. У динамічних списках, які відображають таблиці з великою кількістю записів, групування може здійснюватися лише за проіндексованими полями.
Вимога пов'язана з такими особливостями роботи динамічного списку. Для побудови групування динамічному списку необхідно вибрати всі унікальні з таблиці бази даних значення поля, за яким будується групування. Потім виконується сортування та виведення користувачеві. Коли користувач розкриває значення групування, динамічний список вибирає всі записи таблиці із заданим значенням у полі.
1.5. Допускається робити багаторівневі групування в динамічних списках лише за дотримання таких умов:
- поле, за яким здійснюється перше групування, має бути проіндексоване;
- поле, за яким здійснюється перше групування, повинно мати хорошу селективність (тобто кожному значенню цього поля має відповідати невелика кількість записів у таблиці бази даних);
Ці вимоги пов'язані з тим, що розкриття користувачем наступних (після першого) групувань динамічний список виконуватиме вже без використання індексів, за всіма елементами, відібраними за першим групуванням.
1.6. Не рекомендується робити групування за полями, які є характеристиками об'єкта метаданих. Це обмеження пов'язане з тим, що під час виведення характеристик виконується ЛІВЕ З'ЄДНАННЯ з таблицею характеристик, тому запит із відбором за однією характеристикою буде неефективним навіть за наявності індексу (у будь-якому разі буде сканування за головною таблицею).
2. Для ієрархічних списків не рекомендується встановлювати властивість НачальноеОтображениеДерева у значення РаскрыватьВсеУровни, оскільки це призведе до критичного зниження швидкості відкриття великих списків. Слід використовувати значення НеРаскрывать або РаскрыватьВерхнийУровень.
Додаткову інформацію про особливості динамічних списків можна отримати в документації щодо платформи (див. Динамічний список)