01 / Раздел
Два типа переменных
В шаблоне сейчас используются обычные переменные и табличные переменные.
Обычные переменные подставляются один раз. Табличные переменные могут развернуться в несколько строк таблицы.
- `{{client.name}}`, `{{company.name}}`, `{{deal.title}}` — обычные переменные.
- `{{tables.name}}`, `{{tables.count}}`, `{{tables.price}}` — табличные переменные.
02 / Раздел
Как это приходит во внешний метод
- Обычные поля передаются как `data.
`. - Табличные строки передаются как `rows.
`. - Для `rows.*` разделитель строк сейчас — символ `|`.
03 / Раздел
Как сервис считает строки таблицы
Сервис смотрит на все поля `rows.*` внутри одного запроса и берёт максимальное количество значений. По нему строится итоговое число строк.
Если в одном поле значений меньше, оставшиеся ячейки остаются пустыми. Это позволяет не дублировать статические значения вручную.
04 / Раздел
Что важно при ручной сборке шаблона
- Не оставляй незакрытые маски и оборванные конструкции Jinja.
- Если маска стоит в обычной ячейке, она не должна автоматически плодить строки.
- Для табличных блоков лучше заранее понимать, где именно находится строка данных, а где статическая строка вроде `Итого`.