Программная организация сортировки в форме списка по произвольному реквизиту (обычное приложение)

Версия для печатиPDF-версия

Описанные ниже методы могут применяться для форм списка любых объектов (СправочникСписок, ДокументСписок, РегистрСведенийСписок, ПланОбменаСписок и т.д.).

Для программного создания сортировки в форме списка можно использовать свойство расширения табличного поля списка НастройкаПорядка или свойство списка Порядок. Возможно также совместное использование этих свойств.

Свойство НастройкаПорядка используется для предоставления доступа к полям упорядочивания.

Свойство Порядок содержит объект, по которому осуществляется текущее упорядочивание элементов в списке.

Ниже приведён пример использования указанных свойств:

// Модуль формы списка
Процедура ПриОткрытии()
	// Добавляем возможность сортировки по реквизиту Цена
	ЭлементыФормы.Список.НастройкаПорядка.Цена.Доступность = Истина;
	// Добавляем возможность сортировки по реквизиту ЕдиницаИзмерения
	ЭлементыФормы.Список.НастройкаПорядка.ЕдиницаИзмерения.Доступность = Истина;
	// Устанавливаем текущую сортировку по реквизитам Валюта по убыванию и Цена по возрастанию
	Список.Порядок.Установить("Валюта Убыв, Цена Возр");
КонецПроцедуры

При открытии формы список будет упорядочен по Валюте по убыванию и по Цене по возрастанию:

Сортировка в форме списка по умолчанию

Если открыть форму настройки отбора и сортировки, то возможность изменения сортировки будет закрыта, так как программно установлено упорядочивание по полю Валюта, которое недоступно для интерактивной настройки порядка.

Настройки сортировки заблокированы от изменения

Если интерактивно изменить сортировку (нажатием на заголовок колонки, по которой возможно упорядочивание или через контекстное меню), то сортировка по Валюте более не будет доступна, так как её доступность не включена в НастройкеПорядка. В то же время есть возможность упорядочивания по ЕдиницеИзмерения, хотя эта колонка и не отображается на форме.

Доступные поля сортировкиНастройка сортировки

Упорядочивание возможно по любому реквизиту объекта, как отображаемому на форме, так и не отображаемому, за исключением реквизитов, имеющих тип Строка неограниченной длины.

Полезность материала: 
5
Ваша оценка: Нет Средняя: 5 (2 оценок)
Оцените полезность материала
© При копировании материалов сайта ссылка на оригинал обязательна.