Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Производительность динамического списка... Есть ли куда расти?

  • Добавить свою публикацию
  • для этого требуется регистрация

"Куча" динамических списков на одной форме.

Есть ли что то в этом плохого? С первого раза точно и не скажешь. Но все же есть тут свои особенности. Дело в том, что при создании формы каждый динамический список создает свой запрос к SQL базе. И если эти списки находятся на разных вкладках, то при открытии формы пользователь как бы теряет в производительности. Формируется несколько списков, а видит он только один. Более правильным, наверно, является формирование списка только в момент непосредственного к нему обращения, например при переключении вкладки.

Изображение

Как это сделать?

Для этого каждый динамический список необходимо представить в виде произвольного запроса и добавить в условие "ГДЕ" параметр "&Формируется". При создании на сервере и смене вкладки будем устанавливать этот параметр только для тех списков, которые должны в данный момент формироваться. Ниже приведен листинг этой процедуры.

 Процедура УстановитьФормированиеСписков()
		Если Элементы.Страницы.ТекущаяСтраница = Элементы.ОбычныйСписок Тогда
			Список.Параметры.УстановитьЗначениеПараметра("Формируется", Истина);
			Список2.Параметры.УстановитьЗначениеПараметра("Формируется", Ложь);
		Иначе
			Список.Параметры.УстановитьЗначениеПараметра("Формируется", Ложь);			
			Список2.Параметры.УстановитьЗначениеПараметра("Формируется", Истина);
		КонецЕсли;
	КонецПроцедуры 

 

Данный способ увеличивает производительность формирования формы. Особенно это заметно, если списки состоят из сложных соединений множества таблиц. Тем более, в силу особенностей платформы, в динамических списках нельзя использовать временные таблицы, лишь ворженные запросы, что в значительной степени уменьшает скорость работы.

Однако на клиент-серверном варианте работы этот метод не защищает списки от неуместного формирования. Хотя увеличение производительности все таки наблюдается. В данном режиме работы рекомендуется разносить динамические списки по разным формам, которые будут открываться из основной формы по нажатию соответствующих команд. Этот прием мы можем встретить во многих местах типовых конфигурациях. Например, ранее список единиц измерения располагался непосредственно на форме справочника "Номенклатура". Теперь же он формируется в отдельной форме при нажатии на соответствующую команду в навигационной панели.

Изображение

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

Вывод

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


 
0
Читайте также
Разработки
Отчет "Динамика продаж по номенклатуре" (для УТ 10.3, УПП, КА, УТП)
"Динамика продаж по определенному товару"
Автоматизация отдела доставки 1С (УТ, УПП)
Надстройка для упрощения работы распределения заказов по курьерам
Учет номенклатуры по серийным номерам для 1С 7.7 ТиС
Учет по серийным номерам поступления и реализации товаров
Еще от автора
≡ к списку статей