Files
public/docx_report/README.md

5.6 KiB
Raw Blame History

DOCX-шаблоны

name: docx_report version: 19.0.1.0.0 author: Mk.Lab

1. Общее описание

Модуль добавляет в Odoo систему DOCX-шаблонов для печати документов. Вместо стандартных HTML-отчётов пользователь загружает файл .docx с разметкой переменных — и система формирует готовый документ Word, подставляя данные из карточки записи.

Модуль расширяет возможности базового docx_report_generation: добавляет интерфейс управления шаблонами, валидацию, кастомные переменные и привязку шаблонов к моделям.

2. Установка

  1. Убедитесь что установлены модули docx_report_generation, account, sale, l10n_ru_contract

  2. Установите Python-пакеты: pip install docxtpl docxcompose beautifulsoup4

  3. Скопируйте папку docx_report в директорию addons

  4. Перезапустите сервер Odoo

  5. Обновите список приложений: Настройки → Приложения → Обновить список

  6. Найдите модуль «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-шаблонов.

img_1.png

Как это выглядит в интерфейсе

Форма шаблона содержит основные поля, кнопку «Валидация» и две вкладки: «Кастомные переменные» и «Доступные переменные».

img_2.png

После привязки шаблона к модели в меню ⚙️ Печать записи появляется дополнительный пункт с именем шаблона.

img_3.png

Пример использования

Создать шаблон

Перейдите в меню «Шаблоны для отчетов», нажмите Создать. Укажите название, загрузите .docx-файл, выберите модель документа.

img_4.png

Проверить доступные поля

На вкладке «Доступные переменные» выберите модель для подсказки — отобразится список всех полей с техническими именами и типами. Используйте их при создании шаблона.

img_5.png

Добавить кастомную переменную (если нужно)

На вкладке «Кастомные переменные» добавьте переменную: укажите техническое имя и Python-выражение для вычисления значения.

img_6.png

Проверить шаблон

Нажмите кнопку «Валидация» в шапке формы. Система проверит синтаксис и существование всех полей в шаблоне, отобразит результат.

img_7.png

Привязать шаблон к модели

Нажмите кнопку «Добавить печать в действия» — шаблон появится в меню ⚙️ Печать для записей выбранной модели.

img_8.png

Распечатать документ

Откройте нужную запись (договор, заказ и т.д.) → меню ⚙️ Печать → выберите название шаблона. Файл .docx скачается автоматически.

img_9.png