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