Ответ вслух Senior Управляемые формы обновлено

Тяжёлая форма документа

Вопрос

Форма заказа с табличной частью на 3000 строк открывается 10 секунд и тормозит при вводе. Как оптимизировать?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Начинаю с замера: сколько занимает ПриСозданииНаСервере и сколько передача данных. Часто в ПриСозданииНаСервере в цикле по строкам заполняют дополнительные колонки обращением через точку: заменяю это одним запросом.

Что должно прозвучать в ответе

  • Замер: где время, сервер или передача данных

  • Не тащить на клиент лишнее: реквизиты формы, скрытые колонки, вычисляемые поля одним запросом

  • Пересчёты строк на клиенте, без серверного вызова на каждое изменение

  • Тяжёлые данные подгружать по требованию

  • Условное оформление вместо программной раскраски строк

  • Рассмотреть другой интерфейс: подбор, фильтры, разбиение документа

Что могут спросить следом

  • Почему условное оформление лучше раскраски строк в коде?
  • Когда стоит разбить документ на несколько?

Разбор

Начинаю с замера: сколько занимает ПриСозданииНаСервере и сколько передача данных. Часто в ПриСозданииНаСервере в цикле по строкам заполняют дополнительные колонки обращением через точку: заменяю это одним запросом. Убираю лишние реквизиты формы и скрытые колонки, которые всё равно передаются. Пересчёт суммы строки делаю на клиенте, без серверного вызова на каждое изменение количества. Остатки и цены подгружаю по требованию, кнопкой или для текущей строки. Раскраску строк делаю условным оформлением, оно работает на стороне платформы. Если 3000 строк это норма, обсуждаю с бизнесом интерфейс: подбор, фильтрацию строк или разбиение документа.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.