Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Оптимизация динамических списков с произвольным запросом в формах 1С

Обновлено: 26.08.2026  ·  Официальная база знаний
  • Форма списка документов или справочника открывается более 5-10 секунд.
  • Зависание интерфейса при листании или быстром поиске по динамическому списку.
  • СУБД выполняет полное сканирование тяжелых таблиц при каждом открытии формы.

1. Включение режима динамического считывания данных

В свойствах динамического списка формы убедитесь, что флаг Динамическое считывание данных (DynamicRead) включен. Это заставляет платформу считывать порции строго по размеру видимой области экрана (20-50 строк через FETCH FIRST / TOP N).

2. Устранение неоптимальных конструкций в тексте запроса

  • Отказ от сортировки по неиндексированным полям: Сортировка по колонкам без индекса отключает динамическое считывание и заставляет СУБД прочитать всю таблицу.
  • Исключение левых соединений с тяжелыми регистрами: Не выводите остатки и обороты в динамический список документов напрямую через ЛЕВОЕ СОЕДИНЕНИЕ.
  • Исключение функций в секции ВЫБРАТЬ: Не используйте конструкции ВЫБОР КОГДА... с обращением к полям через точку.

3. Ограничение состава выгружаемых полей (Основная таблица)

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

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

Частые вопросы (FAQ)

Почему поиск в динамическом списке без индекса работает медленно?

При поиске по неиндексированному полю или подстроке в середине платформе приходится сканировать всю таблицу СУБД (Table Scan), блокируя отрисовку интерфейса.

Как вывести остатки товаров в форму списка без замедления?

Используйте контекстный показ остатков: рассчитывайте остаток только по текущей выделенной строке при активизации строки, а не для всех записей списка одновременно.

Что происходит при установке пользовательской сортировки по неиндексированной колонке?

Динамическое считывание отключается, СУБД выполняет сортировку всего миллионного объема данных во временных таблицах tempdb, вызывая фриз клиента 1С.

Как влияет свойство 'Основная таблица' на динамический список?

Указание основной таблицы позволяет платформе 1С автоматически применять стандартные механизмы отборов, динамического чтения и стандартных картинок состояния объектов.