Перейти к содержанию

индекс

Функция индекс получает элемент списка по его позиции.

Нумерация элементов начинается с 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).остаток

и вернёт значение поля остаток из последнего элемента списка.