Имя: Пароль:
1C
 
Сортировка доступных полей построителя отчета
0 bvb
 
21.09.22
11:26
Есть отчет на Универсальном отчете

Там список доступных полей выпадающий при выборе группировки / отбора - не сортирован
что неудобно
Как отсортировать УниверсальныйОтчет.ПостроительОтчета.ДоступныеПоля  (Тип ПоляНастройки) по имени и представлении

Есть функция сдвинуть()
полагаю надо применить ее + какой нибудь пузырьковый алгоритм
1 PR
 
21.09.22
11:34
(0) Выгружай в список значений, сортируй, потом двигай
2 bvb
 
21.09.22
11:51
(1) Они не выгружаются
3 PR
 
21.09.22
11:53
(2) Бяда, да
Видимо, перебрать вручную и добавить в список значений представления не предлагать?
4 bvb
 
21.09.22
13:47
Получилось как то так

УниверсальныйОтчет.СортироватьСписокДоступныхПолейПоПредставлению ();


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