Позволяет создать один документ на основе другого с автоматическим переносом данных. Пользователь открывает карточку записи и видит кнопку «Создать на основании» — кликает и получает новый документ с уже заполненными полями.
Типичный сценарий: из счёта создать акт, из заявки создать заказ, из заказа создать накладную.
Настройка находится в разделе «Структура» → сущность → кнопка «На основании».
Для каждой пары «источник → цель» задаётся:
Одна сущность может иметь несколько настроек «на основании» от разных источников.
В карточке записи появляется кнопка «Создать ▾» с выпадающим меню. В меню — пункты для каждой настроенной цели. При выборе открывается форма нового документа с уже заполненными данными.
Автоматические действия, которые выполняются при определённых событиях с записью. Не требуют участия пользователя — срабатывают в фоне при сохранении.
| Событие | Когда |
|---|---|
| При создании | Запись только что создана |
| При изменении | Любое поле записи изменилось |
| При смене статуса | Статус документа изменился (например, стал «Проведён») |
| При изменении поля | Изменилось конкретное поле (задаётся в настройке) |
Триггер можно ограничить условием — он сработает только если поле равно / не равно / больше / меньше заданного значения. Например: срабатывать только если статус стал «Проведён», или только если сумма больше 100 000.
| Действие | Что происходит |
|---|---|
| Установить поле | Записывает значение в поле записи. Можно использовать now для текущей даты/времени, или взять значение из другого поля |
| Изменить статус | Переводит документ в нужный статус |
| Обновить связанную запись | Обновляет поле в записи из связанного справочника (например, меняет остаток на складе) |
| Обновить записи по строкам таблицы | Для каждой строки таблицы обновляет связанную запись |
| Создать запись | Создаёт новую запись в указанной сущности |
Если включить «Уведомить пользователя» — после срабатывания триггера пользователь увидит всплывающее сообщение с названием триггера и результатом.
Несколько триггеров на одной сущности выполняются последовательно сверху вниз. Каждый триггер можно включить или отключить не удаляя.
Сущность: Заказ
Событие: При смене статуса
Условие: Статус = Проведён
Действие: Установить поле «Дата проведения» = now
Уведомить: Да → «Заказ проведён и зафиксирован»
Создание печатных документов (PDF или HTML) на основе данных записи. Пользователь открывает карточку и нажимает кнопку «Печать» — выбирает нужную форму и скачивает готовый документ.
Настройка в разделе «Структура» → сущность → кнопка «Печатные формы».
Для каждой формы задаётся:
Шаблоны используют синтаксис Jinja2 — популярный язык шаблонов, похожий на обычный HTML с вставками данных.
Вывод значения поля:
{{ client }}
{{ amount }}
{{ record.id }}
{{ record.status }}
{{ record.created_at }}
Для reference-полей значение автоматически резолвится в читаемое название. Сырой ID доступен через суффикс _raw:
{{ client }}
{{ client_raw }}
Для файлов и изображений доступны URL:
{% for img in photo %}
<img src="{{ img.preview_url }}">
<a href="{{ img.download_url }}">{{ img.name }}</a>
{% endfor %}
Табличные части доступны как список строк:
<table>
<tbody>
{% for row in positions %}
<tr>
<td>{{ row.name }}</td>
<td>{{ row.qty }}</td>
<td>{{ row.price }}</td>
<td>{{ row.amount }}</td>
</tr>
{% endfor %}
</tbody>
</table>
Условия и циклы:
{% if record.status == 'posted' %}
<p>Документ проведён</p>
{% endif %}
{% for row in positions %}
{{ loop.index }}. {{ row.name }}
{% endfor %}
<style>
body { font-family: DejaVu Sans, sans-serif; font-size: 12pt; }
table { width: 100%; border-collapse: collapse; }
td, th { border: 1px solid #ccc; padding: 4px 8px; }
</style>
<h2>Заказ № {{ record.id }} от {{ record.created_at }}</h2>
<p>Клиент: {{ client }}</p>
<table>
<thead>
<tr>
<th>Наименование</th>
<th>Кол-во</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
</thead>
<tbody>
{% for row in positions %}
<tr>
<td>{{ row.name }}</td>
<td>{{ row.qty }}</td>
<td>{{ row.price }}</td>
<td>{{ row.amount }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<p><strong>Итого: {{ total }} ₽</strong></p>
Для корректного отображения кириллицы в PDF используется встроенный шрифт DejaVu Sans — указывайте его в CSS.
Платформа Уни · v0.9.9.8