TG Telegram Group & Channel
Прусаков Никита про 1С | United States America (US)
Create: Update:

Медленное открытие формы: причины и способы решения

Один из любимых вопросов на сертификационном экзамене 1С:Эксперт:

Как вы будете устранять проблему медленного открытия формы? С чего начнёте? Какие шаги предпримете?

На практике причин может быть несколько, и пути решения — разные. Разберёмся по порядку:

1️⃣Разница в скорости у пользователей и администратора

Если у пользователей с ограниченными правами форма открывается медленно, а у администратора — быстро, велика вероятность, что дело в RLS (role level security). В этом случае пути решения лежат в области оптимизации RLS. Это может быть как отказ от RLS через разделение системы, например вести учет по каждой организации в отдельной базе. Также выходном может быть использование производительного РЛС.

2️⃣Форма тормозит в рабочее время, но летает ночью

Вне рабочего времени всё работает быстро — значит, стоит обратить внимание на ресурсы оборудования:

- Перегруженность дисков
- Нехватка оперативной памяти на сервере СУБД
- Сетевые задержки

Также нельзя исключать возможные проблемы с клиентским компьютером. Для диагностики в таких случаях обязательно собираем тех. журнал на клиенте.

3️⃣Проблема не в RLS и не в железе
Если вышеуказанные причины исключены, пора включать отладчик и исследовать код. Важно выяснить, на каком этапе уходит основное время. Применяем принцип Парето: ищем те 20% операций, которые дают 80% задержек. Оптимизация именно этих участков кода даст наибольший эффект.

4️⃣Долгое клиент-серверное взаимодействие
Иногда отладчик показывает, что основная задержка — это обмен между клиентом и сервером. В таких случаях:

- Собираем технический журнал (ТЖ)
- Анализируем временной промежуток между событиями VRSREQUEST и VRSRESPONSE

При этом должно соблюдаться следующее неравенство:

Время замера кода < Время по тех. журналу < Время по секундомеру или по APDEX

Частой проблемой является перегрузка формы большим количеством элементов и реквизитов. Чрезмерное усложнение формы не совсем правильный подход в разработке (но мы то живем в реальной жизни) и такое может произойти сплошь и рядом.

Программисты часто помещают очень много данных в реквизиты формы с целью «оптимизации» создавая тем самым «кэш» к которому можно обращаться и с клиента и с севера. При этом не осознавая, что один серверный вызов при необходимости может быть намного быстрее чем хранение большой таблицы в реквизитах формы.

Если избежать загрузки таблицы нельзя, но её формирование на сервере занимает много времени — есть способ ускорить эту операцию используя помещение таблицы во временное хранилище.

- В процедуре ПриСозданииНаСервере формируем таблицу.
- Посещаем её во временное хранилище.
- В реквизите формы сохраняем адрес временного хранилища.
- При необходимости работы с таблицей в момент серверного вызова — извлекаем таблицу из временного хранилища по адресу и работаем с ней.

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

На ИТС есть отличная статья, подробно описывающая методику расследования медленного открытия форм. Очень рекомендую к прочтению — системный подход помогает не тратить время на догадки, а сразу действовать эффективно.

Медленное открытие формы: причины и способы решения

Один из любимых вопросов на сертификационном экзамене 1С:Эксперт:

Как вы будете устранять проблему медленного открытия формы? С чего начнёте? Какие шаги предпримете?

На практике причин может быть несколько, и пути решения — разные. Разберёмся по порядку:

1️⃣Разница в скорости у пользователей и администратора

Если у пользователей с ограниченными правами форма открывается медленно, а у администратора — быстро, велика вероятность, что дело в RLS (role level security). В этом случае пути решения лежат в области оптимизации RLS. Это может быть как отказ от RLS через разделение системы, например вести учет по каждой организации в отдельной базе. Также выходном может быть использование производительного РЛС.

2️⃣Форма тормозит в рабочее время, но летает ночью

Вне рабочего времени всё работает быстро — значит, стоит обратить внимание на ресурсы оборудования:

- Перегруженность дисков
- Нехватка оперативной памяти на сервере СУБД
- Сетевые задержки

Также нельзя исключать возможные проблемы с клиентским компьютером. Для диагностики в таких случаях обязательно собираем тех. журнал на клиенте.

3️⃣Проблема не в RLS и не в железе
Если вышеуказанные причины исключены, пора включать отладчик и исследовать код. Важно выяснить, на каком этапе уходит основное время. Применяем принцип Парето: ищем те 20% операций, которые дают 80% задержек. Оптимизация именно этих участков кода даст наибольший эффект.

4️⃣Долгое клиент-серверное взаимодействие
Иногда отладчик показывает, что основная задержка — это обмен между клиентом и сервером. В таких случаях:

- Собираем технический журнал (ТЖ)
- Анализируем временной промежуток между событиями VRSREQUEST и VRSRESPONSE

При этом должно соблюдаться следующее неравенство:

Время замера кода < Время по тех. журналу < Время по секундомеру или по APDEX

Частой проблемой является перегрузка формы большим количеством элементов и реквизитов. Чрезмерное усложнение формы не совсем правильный подход в разработке (но мы то живем в реальной жизни) и такое может произойти сплошь и рядом.

Программисты часто помещают очень много данных в реквизиты формы с целью «оптимизации» создавая тем самым «кэш» к которому можно обращаться и с клиента и с севера. При этом не осознавая, что один серверный вызов при необходимости может быть намного быстрее чем хранение большой таблицы в реквизитах формы.

Если избежать загрузки таблицы нельзя, но её формирование на сервере занимает много времени — есть способ ускорить эту операцию используя помещение таблицы во временное хранилище.

- В процедуре ПриСозданииНаСервере формируем таблицу.
- Посещаем её во временное хранилище.
- В реквизите формы сохраняем адрес временного хранилища.
- При необходимости работы с таблицей в момент серверного вызова — извлекаем таблицу из временного хранилища по адресу и работаем с ней.

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

На ИТС есть отличная статья, подробно описывающая методику расследования медленного открытия форм. Очень рекомендую к прочтению — системный подход помогает не тратить время на догадки, а сразу действовать эффективно.
Please open Telegram to view this post
VIEW IN TELEGRAM


>>Click here to continue<<

Прусаков Никита про 1С






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)