В новом релизе CRM 3.1.25.11 была реализована следующая интересная функциональность.
Отложенное открытие формы Клиента
Задержки в открытии формы клиента иногда становятся критичными при оперативной работе пользователей. В прошлых релизах был проведен ряд существенных доработок и оптимизаций для ускорения открытия форм. Но в итоге были достигнуты ограничения платформы, связанные с текущим дизайном формы клиента и такими универсальными механизмами, как «дополнительные реквизиты и сведения» и «контактная информация».Поскольку ускорить вывод подобной информации сразу при открытии формы уже не удается, он реализован в режиме отложенного вывода. То есть сначала открывается форма клиента без контактной информации и дополнительных реквизитов, а затем, уже после открытия формы, данные подгружаются.
На примере ниже выделили возможные зоны отложенной загрузки.
Зоны отложенной загрузки
Оптимизация открытия АРМ «Мои продажи»
Скорость первого и последующих открытий формы АРМ «Мои продажи» увеличена за счет отложенного обновления заголовков колонок в режиме Канбан. Оптимизация касается также объединенных решений и Модуля 1С:CRM для ERP и КА2.»
Как это выглядит внутри?
Возьмем в качестве примера вывод контактной информации на форме элемента справочника Партнеры.
В обработчике события формы ПриСозданииНаСервере в процедурах ИнициализацияКонтактнойИнформации, ПриСозданииНаСервере, ПриСозданииНаСервереЗавершение общего модуля CRM_УправлениеКонтактнойИнформацией происходит программное создание реквизитов для хранения контактной информации и ее заполнение. Заметим, что процедура CRM_УправлениеКонтактнойИнформацией.ПриСозданииНаСервере вызывается с параметром ОтложеннаяИнициализация = Истина, этот параметр определяет, добавлять ли на форму элементы КИ или нет:
Далее, в обработчике события формы ПриОткрытии, подключается процедура Подключаемый_ОтложенныеДействияПриОткрытии в качестве обработчика ожидания:
В обработчике вызывается процедура ОтложенныеДействияПриОткрытииНаСервере:
Далее вызывается процедура отложенной инициализации КИ:
В самой процедуре CRM_УправлениеКонтактнойИнформацией.ВыполнитьОтложеннуюИнициализацию снова вызывается процедура CRM_УправлениеКонтактнойИнформацией.ПриСозданииНаСервере, но уже с параметром ОтложеннаяИнициализация = Ложь - это необходимо для того, чтобы добавить элементы КИ на форму.
Таким образом, часть действий по выводу контактной информации партнера теперь происходит уже после открытия самой формы, что позволяет ускорить само открытие. По такому же механизму теперь происходит вывод дополнительных реквизитов, контактных лиц партнера. Вывод некоторых элементов - индекса 1СПАРК Риски, тегов, некоторых кнопок командной панели формы - тоже “переехал” в подключаемый обработчик отложенных действий.
Данный пример можно использовать и для своих разработок, нужно лишь реализовать создание реквизитов формы и их заполнение при создании на сервере, а программный вывод элементов на форму с помощью подключаемых обработчиков при открытии.