Користувацькі звіти

Odoo постачається з потужною та простою у використанні системою звітності. Механізм дозволяє створювати нові звіти, такі як податкові звіти або баланси та звіти про прибутки та збитки з певними групуваннями та макетами.

Важливо

Активуйте режим розробника, щоб отримати доступ до інтерфейсу створення бухгалтерського звіту.

Щоб створити новий звіт, перейдіть до Бухгалтерський облік ‣ Конфігурація ‣ Управління: Бухгалтерські звіти. Звідси ви можете створити або кореневий звіт, або варіант.

Механізм бухгалтерських звітів.

Кореневі звіти

Коренні звіти можна розглядати як загальні, нейтральні бухгалтерські звіти. Вони служать моделями, на основі яких будуються локальні версії бухгалтерського обліку. Якщо звіт не має кореневого звіту, він сам вважається кореневим звітом.

Example

Податкова звітність для Бельгії та США використовуватиме ту саму загальну версію як основу та адаптуватиме її до своїх внутрішніх правил.

Під час створення нового кореневого звіту вам потрібно створити для нього пункт меню. Для цього відкрийте звіт, а потім у цьому ж звіті натисніть Дія ‣ Створити пункт меню. Оновіть сторінку; звіт тепер доступний у розділі Бухгалтерський облік ‣ Звітність.

Примітка

Випадки, що вимагають створення нового кореневого звіту, трапляються рідко, наприклад, коли податкові органи країни вимагають новий та специфічний тип звіту.

Кнопка Створити елемент меню.

Варіанти

Варіанти – це версії кореневих звітів, специфічні для певної країни, і тому завжди посилаються на кореневий звіт. Щоб створити варіант, виберіть загальний (кореневий) звіт у полі Кореневий звіт під час створення нового звіту.

Коли кореневий звіт відкривається з одного з головних меню бухгалтерського додатку, усі його варіанти відображаються в селекторі варіантів у верхньому правому куті вікна перегляду.

Example

На наступному зображенні Звіт з ПДВ (BE) є варіантом кореня Загальний податковий звіт.

Вибір варіанту звіту.

Рядки

Після створення звіту (кореневого або варіантного) вам потрібно заповнити його рядками. Ви можете створити новий, натиснувши Додати рядок, або змінити існуючий рядок, натиснувши на нього. Усі рядки вимагають Назва та можуть мати додатковий Код (на ваш вибір), якщо ви хочете використовувати їхнє значення у формулах.

Варіанти ліній механізму.

Вирази

Кожен рядок може містити один або декілька виразів. Вирази можна розглядати як підзмінні, необхідні для рядка звіту. Щоб створити вираз, натисніть Додати рядок всередині рядка звіту.

Під час створення виразу необхідно призначити мітка, яка використовується для посилання на цей вираз. Тому вона має бути унікальною серед виразів кожного рядка. Також необхідно вказати як Механіхм обчислення, так і Формула. Механізм визначає, як інтерпретуються ваші формули та підформули. За потреби можна змішувати вирази, що використовують різні обчислювальні механізми, в одному рядку.

Примітка

Залежно від механізму, також може знадобитися підформули.

Механізм „Odoo Domain“

У цьому движку формула інтерпретується як Odoo домен, що орієнтований на об’єкти account.move.line.

Підформула дозволяє визначити, як лінії переміщення, що відповідають домену, використовуються для обчислення значення виразу:

sum

Результатом є сума всіх балансів збігаючихся ліній руху.

sum_if_pos

Результатом є сума всіх балансів збігаючихся ліній руху, якщо ця сума додатна. В іншому випадку вона дорівнює 0.

sum_if_neg

Результатом є сума всіх балансів збігаючихся ліній руху, якщо ця сума від’ємна. В іншому випадку вона дорівнює 0.

count_rows

Результатом є кількість підрядків цього виразу. Якщо батьківський рядок має значення групування, це відповідатиме кількості різних ключів групування у збіганих рядках переміщення. В іншому випадку це буде кількість збіганих рядків переміщення.

Ви також можете поставити знак - на початку підформули, щоб змінити знак результату на протилежний.

Лінія виразу в межах лінійного звіту

Механізм „Податкові мітки“

Формула, створена для цього механізму, складається з назви, яка використовується для зіставлення податкових тегів. Якщо такі теги не існують під час створення виразу, вони будуть створені.

Під час обчислення виразу, обчислення виразу можна приблизно виразити так: (кількість рядків переміщення з + тег) - (кількість рядків переміщення з - тег).

Example

Якщо формула - tag_name, пошукова система зіставляє податкові теги +tag_name та -tag_name, створюючи їх за потреби. Для подальшого прикладу: формула зіставляє два теги. Якщо формула - A, вона вимагатиме (і створюватиме за потреби) теги +A та -A.

Механізм „Агрегація інших формул“

Використовуйте цей механізм, коли вам потрібно виконувати арифметичні операції над сумами, отриманими для інших виразів. Формули тут складаються з посилань на вирази, розділених одним із чотирьох основних арифметичних операторів (додавання +, віднімання -, ділення / та множення *). Щоб звернутися до виразу, введіть код його батьківського рядка, потім крапку . та мітку виразу (наприклад, код.мітка).

Підформули можуть бути одними з наведених нижче:

if_above(CUR(amount))

Значення арифметичного виразу буде повернуто лише тоді, коли воно більше за задану межу. В іншому випадку результатом буде 0.

if_below(CUR(amount))

Значення арифметичного виразу буде повернуто, лише якщо воно менше за задану межу. В іншому випадку результатом буде 0.

if_between(CUR1(amount1), CUR2(amount2))

Значення арифметичного виразу буде повернуто лише тоді, коли воно знаходиться строго в межах заданих меж. В іншому випадку воно буде повернуто до найближчої межі.

if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

Значення арифметичного виразу буде повернуто лише тоді, коли значення виразу, позначеного наданим кодом рядка та міткою виразу, більше за надану межу. В іншому випадку результатом буде 0.

if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

Значення арифметичного виразу буде повернуто лише тоді, коли значення виразу, позначеного наданим кодом рядка та міткою виразу, менше за надану межу. В іншому випадку результатом буде 0.

CUR – це код валюти великими літерами, а amount – це сума зобов’язання, виражена в цій валюті.

Ви також можете використовувати підформулу cross_report для зіставлення з виразом, знайденим в іншому звіті.

Механізм „Префікс кодів облікових записів“

Цей механізм використовується для зіставлення сум, внесених на рахунки, з використанням префіксів кодів цих рахунків як змінних в арифметичному виразі.

Example

21
Арифметичні вирази також можуть мати один префікс, як-от тут.

Example

21 + 10 - 5
Ця формула додає залишки рядків переміщення, здійснених за рахунками, коди яких починаються з 21 та 10, та віднімає залишки за рахунками з префіксом 5.

Також можна ігнорувати вибірку підпрефіксів.

Example

21 + 10\(101, 102) - 5\(57)
Ця формула працює так само, як і попередній приклад, але ігнорує префікси 101, 102 та 57.

Ви можете застосувати „підфільтрацію“ до кредитів та дебетів, використовуючи суфікси C та D. У цьому випадку рахунок буде розглянуто лише за умови збігу його префікса, та якщо загальний баланс рядків переміщення, здійснених за цим рахунком, становить credit/debit.

Example

Рахунок 210001 має сальдо -42, а рахунок 210002 має сальдо 25. Формула 21D відповідає лише рахунку 210002, і тому повертає 25. 210001 не відповідає, оскільки його сальдо кредит.

Виключення префіксів можна змішувати з суфіксами C та D.

Example

21D + 10\(101, 102)C - 5\(57)
Ця формула додає залишки рядків переміщення, здійснених за рахунками, код яких починається з 21 якщо це дебет (D) та 10 якщо це кредит (C), але ігнорує префікси 101, 102 та віднімає залишки одиниць за рахунками з префіксом 5, ігноруючи префікс 57.

Щоб знайти літеру C або D у префіксі та не використовувати її як суфікс, використовуйте порожній виняток ().

Example

21D\()
Ця формула зіставляє рахунки, код яких починається з 21D, незалежно від знака їхнього балансу.

Окрім використання префіксів кодів для включення рахунків, ви також можете зіставити їх за допомогою тегів рахунків. Це особливо корисно, наприклад, якщо у вашій країні немає стандартизованого плану рахунків, де один і той самий префікс може використовуватися для різних цілей у різних компаніях.

Example

tag(25)
Ця формула зіставляє облікові записи, пов’язані з якими теги містять тег з id 25.

Якщо тег, на який ви посилаєтесь, визначено у файлі даних, замість id можна використовувати xmlid.

Example

tag(my_module.my_tag)
Ця формула зіставляє облікові записи, пов’язані з якими теги містять тег, позначений як my_module.my_tag.

Ви також можете використовувати арифметичні вирази з тегами, можливо, поєднуючи їх з префіксним вибором.

Example

tag(my_module.my_tag) + tag(42) + 10
Баланси рахунків з тегом my_module.my_tag будуть підсумовані із балансами рахунків, пов’язаних з тегом з ідентифікатором 42, та рахунків з префіксом коду 10.

Суфікси C та D можна використовувати так само з тегами.

Example

tag(my_module.my_tag)C
Ця формула зіставляє облікові записи з тегом my_module.my_tag та кредитним балансом.

Виключення префіксів також працює з тегами.

Example

tag(my_module.my_tag)\(10)
Ця формула зіставляє облікові записи з тегом my_module.my_tag та кодом, який не починається з 10.

Механізм „Зовнішнє значення“

Механізм „зовнішнє значення“ використовується для посилання на ручні та перенесені значення. Ці значення зберігаються не за допомогою account.move.line, а за допомогою account.report.external.value. Кожен із цих об’єктів безпосередньо вказує на вираз, на який він впливає, тому тут потрібно дуже мало робити з їх вибором.

Формули можуть бути одними з наведених нижче:

sum

Якщо результат має бути сумою всіх зовнішніх значень за період.

most_recent

Якщо результат має бути значенням останнього зовнішнього значення за період.

Крім того, підформули можна використовувати двома способами:

rounding=X

Заміна X числом вказує на округлення суми до X знаків після коми.

editable

Вказує на те, що цей вираз можна редагувати вручну, що призводить до відображення піктограми у звіті, що дозволяє користувачеві виконати цю дію.

Примітка

Ручні значення створюються для значення date_to, вибраного наразі у звіті.

Обидві підформули можна змішувати, розділяючи їх знаком ;.

Example

editable;rounding=2
є правильною підформулою, що поєднує обидві поведінки.

Рушій „Налаштування функцій Python“

Цей механізм надає розробникам можливість впроваджувати власні обчислення виразів у кожному окремому випадку. Формула – це назва функції Python, яку потрібно викликати, а підформула – це ключ, який потрібно вибрати у словнику, що повертається цією функцією. Використовуйте його, лише якщо ви створюєте власний власний модуль.

Стовпці

Звіти можуть мати невизначену кількість стовпців для відображення. Кожен стовпець отримує свої значення з виразів, оголошених у рядках. Поле expression_label стовпця містить позначку виразів, значення яких відображається. Якщо рядок не має виразу у цьому полі, то для нього в цьому стовпці нічого не відображається. Якщо потрібно кілька стовпців, необхідно використовувати різні позначки виразів.

Колонки звіту.

Під час використання функції порівняння періодів, яка знаходиться на вкладці Параметри бухгалтерського звіту, усі стовпці повторюються в кожному періоді та для кожного періоду.