Имя: Пароль:
1C
1С v8
8.3 УФ Сортировка списка справочника по реквизиту
0 Alex108
 
25.03.21
17:23
Приветствую! Понимаю, что подобная тема наверняка уже обсуждалась, но что-то не могу ничего подходящего найти.
Есть самопальная конфигурация 8.3 на управляемых формах. В ней есть форма списка справочника, в реквизитах справочника есть текстовое поле Адрес, по которому хочу устроить сортировку по нажатию на кнопку. Сам реквизит помечен как сортируемый, и при нажатии по шапке поля Адрес списка этого справочника сортировка происходит.
Нарыл на просторах такой код:

[code]
Порядок=ЭтаФорма.Список.Порядок;

Порядок.Элементы.Очистить();

ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));

ЭлементПорядка.РежимОтображения =  РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;

ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;

ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Адрес"); // Поле, по которому будет упорядочивание

ЭлементПорядка.Использование = Истина;

[/code]

Но он у меня не работает, от слова совсем, т.е. вообще никаких телодвижений, даже ошибок.
Вижу два варианта:
- разобраться с вышеизложенным кодом
- програмное нажатие на шапке списка.

Прошу помощи
1 lubitelxml
 
25.03.21
18:01
Справа от вашей тему есть буква "Я" - там все описано как нужно делать
2 Alex108
 
25.03.21
20:53
Спасибо.
Вот нашел решение:

ЭлементыПользовательскихНастроек = СписокНоменклатура.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
Для Каждого Элемент Из ЭлементыПользовательскихНастроек Цикл
    Если ТипЗнч(Элемент) = ТипЗнч(СписокНоменклатура.КомпоновщикНастроек.Настройки.Порядок) Тогда
        Элемент.Элементы.Очистить();
        УсловиеСортировки = Элемент.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
        УсловиеСортировки.Поле = Новый ПолеКомпоновкиДанных("Наименование");
        УсловиеСортировки.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
        УсловиеСортировки.Использование = Истина;
    КонецЕсли;    
КонецЦикла;
Ошибка? Это не ошибка, это системная функция.