Оптимизация динамических списков с произвольным запросом в формах 1С
- Форма списка документов или справочника открывается более 5-10 секунд.
- Зависание интерфейса при листании или быстром поиске по динамическому списку.
- СУБД выполняет полное сканирование тяжелых таблиц при каждом открытии формы.
1. Включение режима динамического считывания данных
В свойствах динамического списка формы убедитесь, что флаг Динамическое считывание данных (DynamicRead) включен. Это заставляет платформу считывать порции строго по размеру видимой области экрана (20-50 строк через FETCH FIRST / TOP N).
2. Устранение неоптимальных конструкций в тексте запроса
- Отказ от сортировки по неиндексированным полям: Сортировка по колонкам без индекса отключает динамическое считывание и заставляет СУБД прочитать всю таблицу.
- Исключение левых соединений с тяжелыми регистрами: Не выводите остатки и обороты в динамический список документов напрямую через
ЛЕВОЕ СОЕДИНЕНИЕ. - Исключение функций в секции ВЫБРАТЬ: Не используйте конструкции
ВЫБОР КОГДА...с обращением к полям через точку.
3. Ограничение состава выгружаемых полей (Основная таблица)
Всегда явно указывайте свойство Основная таблица в настройках динамического списка, чтобы платформа могла оптимизировать генерацию запроса выборки.
Частые вопросы (FAQ)
Почему поиск в динамическом списке без индекса работает медленно?
При поиске по неиндексированному полю или подстроке в середине платформе приходится сканировать всю таблицу СУБД (Table Scan), блокируя отрисовку интерфейса.
Как вывести остатки товаров в форму списка без замедления?
Используйте контекстный показ остатков: рассчитывайте остаток только по текущей выделенной строке при активизации строки, а не для всех записей списка одновременно.
Что происходит при установке пользовательской сортировки по неиндексированной колонке?
Динамическое считывание отключается, СУБД выполняет сортировку всего миллионного объема данных во временных таблицах tempdb, вызывая фриз клиента 1С.
Как влияет свойство 'Основная таблица' на динамический список?
Указание основной таблицы позволяет платформе 1С автоматически применять стандартные механизмы отборов, динамического чтения и стандартных картинок состояния объектов.