5.6 KiB
DOCX-шаблоны
name: docx_report version: 19.0.1.0.0 author: Mk.Lab
1. Общее описание
Модуль добавляет в Odoo систему DOCX-шаблонов для печати документов. Вместо стандартных HTML-отчётов пользователь загружает файл .docx с разметкой переменных — и система формирует готовый документ Word, подставляя данные из карточки записи.
Модуль расширяет возможности базового docx_report_generation: добавляет интерфейс управления шаблонами, валидацию, кастомные переменные и привязку шаблонов к моделям.
2. Установка
-
Убедитесь что установлены модули
docx_report_generation,account,sale,l10n_ru_contract -
Установите Python-пакеты:
pip install docxtpl docxcompose beautifulsoup4 -
Скопируйте папку
docx_reportв директориюaddons -
Перезапустите сервер Odoo
-
Обновите список приложений: Настройки → Приложения → Обновить список
-
Найдите модуль «DOCX Templates» и установите
3. Функциональность
3.1 Основные возможности:
- Загрузка
.docx-файла как шаблона отчёта для любой модели Odoo - Подстановка данных из записи через переменные
{{ object.field }} - Условные конструкции
{% if %}и циклы{% for %}в шаблоне - Кастомные переменные с произвольными Python-выражениями
- Валидация шаблона: проверка синтаксиса и существования полей модели
- Подсказки доступных полей выбранной модели прямо в форме шаблона
- Привязка шаблона к форме записи через меню печати
3.2 Синтаксис шаблона:
| Конструкция | Пример | Описание |
|---|---|---|
| Переменная | {{ object.name }} |
Значение поля записи |
| Связанное поле | {{ object.partner_id.name }} |
Поле через Many2one |
| Условие | {% if object.amount > 0 %}...{% endif %} |
Условный вывод |
| Цикл | {% for line in object.line_ids %}...{% endfor %} |
Перебор строк |
| Кастомная переменная | {{ my_var }} |
Переменная из вкладки «Кастомные переменные» |
| Дата | {{ time.strftime('%d.%m.%Y') }} |
Текущая дата |
3.3 Меню:
В главном меню появляется пункт «Шаблоны для отчетов» — список всех DOCX-шаблонов.
Как это выглядит в интерфейсе
Форма шаблона содержит основные поля, кнопку «Валидация» и две вкладки: «Кастомные переменные» и «Доступные переменные».
После привязки шаблона к модели в меню ⚙️ Печать записи появляется дополнительный пункт с именем шаблона.
Пример использования
Создать шаблон
Перейдите в меню «Шаблоны для отчетов», нажмите Создать. Укажите название, загрузите .docx-файл, выберите модель документа.
Проверить доступные поля
На вкладке «Доступные переменные» выберите модель для подсказки — отобразится список всех полей с техническими именами и типами. Используйте их при создании шаблона.
Добавить кастомную переменную (если нужно)
На вкладке «Кастомные переменные» добавьте переменную: укажите техническое имя и Python-выражение для вычисления значения.
Проверить шаблон
Нажмите кнопку «Валидация» в шапке формы. Система проверит синтаксис и существование всех полей в шаблоне, отобразит результат.
Привязать шаблон к модели
Нажмите кнопку «Добавить печать в действия» — шаблон появится в меню ⚙️ Печать для записей выбранной модели.
Распечатать документ
Откройте нужную запись (договор, заказ и т.д.) → меню ⚙️ Печать → выберите название шаблона. Файл .docx скачается автоматически.








