Функция «сортировать»
Функция сортировать располагает элементы списка по возрастанию в зависимости от значения выбранного поля или выражения.
Например, список позиций можно отсортировать по цене — от меньшей к большей — и в таком порядке вывести позиции в документ.
Результатом функции является отсортированный список, который можно передать в цикл или табличный цикл вместо исходного списка.
Синтаксис
сортировать(элемент из список, выражение)
элемент— имя текущего элемента списка, которое используется в выражении сортировки;список— список, элементы которого необходимо отсортировать;выражение— значение, по которому определяется порядок элементов.
Например, чтобы отсортировать список1 по полю цена, используется выражение:
сортировать(позиция из список1, позиция.цена)
Функция располагает элементы по возрастанию значения позиция.цена.
Поскольку результат функции является списком, сортировать можно указать в выражении метки «Цикл» вместо исходного списка:
{цикл(отсортированнаяПозиция из сортировать(позиция из список1, позиция.цена))}
Пример
Предположим, список1 содержит следующие позиции:
Монитор — 15000
Клавиатура — 800
Принтер — 12000
Мышь — 600
Нужно вывести позиции в порядке увеличения цены.
Для этого в выражении метки «Цикл» вместо исходного списка используется функция сортировать:
{цикл(отсортированнаяПозиция из сортировать(позиция из список1, позиция.цена))}
{отсортированнаяПозиция.название} — {отсортированнаяПозиция.цена}
{/цикл}
Здесь:
цикл— открывающая метка цикла;отсортированнаяПозиция— имя текущего элемента отсортированного списка. Оно используется в теле цикла для обращения к его полям;сортировать(...)— функция, которая сортируетсписок1по возрастанию;позиция— имя текущего элемента исходного списка, которое используется внутри функциисортировать;список1— исходный список;позиция.цена— поле, по значению которого выполняется сортировка;{отсортированнаяПозиция.название}— выводит название текущей позиции;{отсортированнаяПозиция.цена}— выводит цену текущей позиции;{/цикл}— закрывающая метка цикла.
В результате позиции будут выведены в порядке увеличения цены:
Мышь — 600
Клавиатура — 800
Принтер — 12000
Монитор — 15000
Использование в табличном цикле
В табличном цикле функция применяется по тому же принципу — сортировать(...) указывается вместо исходного списка.
Например:
{т_цикл(элТабл из сортировать(...))}
Ошибки
Функция вернёт ошибку, если:
- вместо списка передано значение другого типа;
- выражение сортировки записано некорректно или возвращает значение, которое нельзя использовать для сортировки.