← На главную
Многие пользователи при работе с журналами документов, операциями или большими справочниками в интерфейсе «Такси» платформы «1С:Предприятие 8.3» сталкиваются с тем, что привычная вертикальная полоса прокрутки либо ведет себя непредсказуемо («подпрыгивает», сбрасывает позицию), либо полностью отсутствует, уступая место кнопкам постраничной навигации. Разберем архитектурные причины такого поведения платформы и рассмотрим практические способы удобной навигации по большим массивам данных.
Архитектурная причина: как работает динамический список
Проанализируем, почему поведение таблиц в 1С отличается от стандартных офисных программ или файлов Excel. Все журналы документов, списки справочников и регистров в управляемых формах построены на объекте ДинамическийСписок.
Основная задача динамического списка — обеспечить максимально быстрое открытие формы и мгновенный отклик программы при наличии сотен тысяч или миллионов записей в базе данных. Для этого платформа не считывает всю таблицу целиком в память клиентского приложения, а запрашивает данные у СУБД небольшими порциями (блоками по несколько десятков строк) по мере прокрутки.
Выясним, к чему это приводит на практике:
- Отсутствие информации об общем объеме: чтобы отобразить классический пропорциональный бегунок, клиенту 1С потребовалось бы знать точное общее количество строк в выборке. Выполнение запроса подсчета общего количества записей при каждом обновлении или листании списка создавало бы колоссальную нагрузку на сервер и СУБД при одновременной работе пользователей.
- Ступенчатая подгрузка: когда пользователь перемещал бегунок классического скроллбара, список пытался обратиться к неизвестной области выборки, что приводило к рывкам, «подпрыгиваниям» бегунка и неожиданным смещениям видимой области.
- Осознанный отказ от бегунка: начиная с версии платформы 8.3.8, разработчики интерфейса заменили визуальный бегунок на навигационные кнопки перехода (в начало, на страницу вверх, на страницу вниз, в конец), чтобы внешний вид таблицы полностью соответствовал реальному порционному механизму считывания данных.
Эффективные методы навигации для пользователей
Рассмотрим удобные и быстрые инструменты поиска и перемещения по таблицам без необходимости непрерывного вращения колесика мыши.
- Установка периода отображения: самый эффективный способ сократить объем записей в журналах операций и документов — воспользоваться кнопкой «Установить интервал» (значок календаря на панели). Ограничение периода текущим месяцем или кварталом оставляет в таблице только актуальные данные.
- Быстрый и контекстный поиск: вместо ручного поиска строки используем комбинацию клавиш
Ctrl + F или начинаем вводить текст прямо в нужной колонке. Платформа мгновенно отфильтрует динамический список по введенному значению. - Настройка отборов: через меню «Еще» → «Настроить список...» устанавливаем точные фильтры по контрагенту, организации, проведенности или сумме, что избавляет от необходимости листать весь список.
- Смена направления сортировки: один клик по заголовку колонки (например, «Дата» или «Номер») меняет порядок сортировки на противоположный, мгновенно перемещая самые свежие или самые старые документы в начало списка.
- Горячие клавиши навигации: для перемещения между порциями данных используем клавиши
Page Up и Page Down, а для мгновенного перехода в самый верх или самый низ списка — сочетания Ctrl + Home и Ctrl + End (либо клавиши Home и End).
Рекомендации для разработчиков по оптимизации списков
Разберем параметры конфигуратора, которые влияют на стабильность и плавность навигации динамического списка в пользовательском режиме.
- Свойство «Основная таблица»: если в динамическом списке используется произвольный запрос, обязательно указываем свойство
ОсновнаяТаблица. Это позволяет платформе однозначно строить критерии выборки порций по первичным ключам и индексам. При отсутствии основной таблицы навигация может работать медленно и со сбоями. - Управление динамическим считыванием: в свойствах запроса динамического списка флаг
ДинамическоеСчитываниеДанных по умолчанию включен. Его отключение заставляет платформу считывать порции большего размера, что делает навигацию визуально более плавной, однако может увеличить время первоначального открытия формы на больших объемах. - Альтернатива для небольших наборов данных: если для решения прикладной задачи требуется строгая пропорциональная полоса прокрутки с гарантированной загрузкой всех строк, данные загружаются в объект
ТаблицаЗначений формы или выводятся в ТабличныйДокумент.