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