Користувацькі звіти¶
Odoo постачається з потужною та простою у використанні системою звітності. Механізм дозволяє створювати нові звіти, такі як податкові звіти або баланси та звіти про прибутки та збитки з певними групуваннями та макетами.
Важливо
Активуйте режим розробника, щоб отримати доступ до інтерфейсу створення бухгалтерського звіту.
Щоб створити новий звіт, відкрийте застосунок Бухгалтерський облік та перейдіть до . Звідси ви можете створити або кореневий звіт, або варіант.
Кореневі звіти¶
Коренні звіти можна розглядати як загальні, нейтральні бухгалтерські звіти. Вони служать моделями, на основі яких будуються локальні версії бухгалтерського обліку. Якщо звіт не має кореневого звіту, він сам вважається кореневим звітом.
Example
Податкова звітність для Бельгії та США використовуватиме ту саму загальну версію як основу та адаптуватиме її до своїх внутрішніх правил.
Під час створення нового кореневого звіту вам потрібно створити для нього пункт меню. Для цього відкрийте звіт і в цьому ж звіті натисніть значок (Дії), а потім виберіть Створити пункт меню. Оновіть сторінку; звіт тепер доступний у розділі .
Примітка
Випадки, що вимагають створення нового кореневого звіту, трапляються рідко, наприклад, коли податкові органи країни вимагають новий та специфічний тип звіту.
Варіанти¶
Варіанти – це версії кореневих звітів, специфічні для певної країни, і тому завжди посилаються на кореневий звіт. Щоб створити варіант, виберіть загальний (кореневий) звіт у полі Кореневий звіт під час створення нового звіту.
Коли кореневий звіт відкривається з одного з головних меню бухгалтерського додатку, усі його варіанти відображаються в селекторі варіантів у верхньому правому куті вікна перегляду.
Example
На наступному зображенні Звіт з ПДВ (BE) є варіантом кореня Загальний податковий звіт.
Позиції звіту¶
Після створення звіту (кореневого або варіантного) вам потрібно заповнити його рядками звіту. Ви можете створити новий, натиснувши Додати рядок, або змінити існуючий рядок звіту, натиснувши на нього. Усі рядки звіту вимагають Назва та можуть мати додатковий Код (на ваш вибір), якщо ви хочете використовувати їх значення у формулах.
Вирази¶
Кожен рядок звіту може містити один або декілька виразів. Вирази можна розглядати як підзмінні, необхідні для рядка звіту. Щоб створити вираз, натисніть Додати рядок в рядку звіту.
Під час створення виразу необхідно призначити мітку Мітка, яка використовується для посилання на цей вираз. Тому вона має бути унікальною серед виразів кожного рядка. Також необхідно вказати як Обчислювальний механізм, так і Формула. Механізм визначає, як інтерпретуються ваші формули та підформули. За потреби можна змішувати вирази, що використовують різні обчислювальні механізми, в одному рядку.
Примітка
Залежно від механізму, також може знадобитися підформули.
Механізм „Odoo Domain“¶
У цьому движку формула інтерпретується як Odoo домен, що орієнтований на об’єкти account.move.line.
Підформула дозволяє визначити, як лінії переміщення, що відповідають домену, використовуються для обчислення значення виразу:
sumРезультатом є сума всіх балансів збігаючихся ліній руху.
sum_if_posРезультатом є сума всіх балансів збігаючихся ліній руху, якщо ця сума додатна. В іншому випадку вона дорівнює
0.sum_if_negРезультатом є сума всіх балансів збігаючихся ліній руху, якщо ця сума від’ємна. В іншому випадку вона дорівнює
0.count_rowsРезультатом є кількість підрядків цього виразу. Якщо рядок звіту має значення групування, це відповідатиме кількості різних ключів групування у збіганих рядках переміщення. В іншому випадку це буде кількість збіганих рядків переміщення.
Ви також можете поставити знак - на початку підформули, щоб змінити знак результату на протилежний.
Механізм „Агрегація інших формул“¶
Використовуйте цей механізм, коли вам потрібно виконувати арифметичні операції над сумами, отриманими для інших виразів. Формули тут складаються з посилань на вирази, розділених одним із чотирьох основних арифметичних операторів (додавання +, віднімання -, ділення / та множення *). Щоб звернутися до виразу, введіть код його рядка звіту, потім крапку . та мітку виразу (наприклад, код.мітка).
Підформули можуть бути одними з наведених нижче:
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
21Example
21 + 10 - 521 та 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 можна використовувати xmlid.
Example
tag(my_module.my_tag)Ви також можете використовувати арифметичні вирази з тегами, можливо, поєднуючи їх з префіксним вибором.
Example
tag(my_module.my_tag) + tag(42) + 1010.Суфікси C та D можна використовувати так само з тегами.
Example
tag(my_module.my_tag)CВиключення префіксів також працює з тегами.
Example
tag(my_module.my_tag)\(10)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 стовпця містить позначку виразів, значення яких відображається. Якщо рядок не має виразу у цьому полі, то для нього в цьому стовпці нічого не відображається. Якщо потрібно кілька стовпців, необхідно використовувати різні позначки виразів.
Під час використання функції порівняння періодів, яка знаходиться на вкладці Параметри бухгалтерського звіту, усі стовпці повторюються в кожному періоді та для кожного періоду.
Налаштування власного податкового звіту¶
Налаштування звітів¶
Порада
Усі технічні терміни та функції механізму звітів Odoo пояснені в попередніх розділах цієї сторінки. Ми наполегливо рекомендуємо прочитати ці розділи перед налаштуванням власного податкового звіту.
Щоб створити власний податковий звіт, відкрийте програму Бухгалтерський облік, перейдіть до , а потім натисніть Створити:
Введіть назву для вашого звіту.
Виберіть Кореневий звіт.
У полі Наявність виберіть Збіги країн, а потім виберіть Країна, що відповідає вашій компанії.
Далі створіть рядок звіту, натиснувши Додати рядок. Після створення натисніть на цей рядок звіту, щоб налаштувати його:
Знову натисніть Додати рядок, щоб створити Вираз та назвіть його.
На вкладці Визначення виберіть Обчислювальний механізм для цього виразу залежно від наступних сценаріїв:
У цьому сценарії ваша компанія використовує податкові сітки:
Виберіть Податкові теги як обчислювальний механізм. Odoo використовує це поле для зв’язування рядка звіту з вашими податками.
У полі Формула введіть свій короткий ідентифікатор сітки (наприклад,
vat_sales_base). Odoo автоматично генерує варіанти цього тегу+та-для відображення всередині .У полі Підформула введіть або
base, щоб повідомити неоподатковану суму, абоtax, щоб повідомити фактично зібрану/сплачену суму податку.
Повторіть цей процес за потреби. Потім Зберегти та закрити.
Або ж ви можете:
Виберіть Агрегувати інші формули як обчислювальний механізм. Odoo використовує це поле для виконання математичних обчислень у рядках, які вже присутні у звіті, а не для сканування необроблених транзакцій.
У полі Формула використовуйте базову алгебру, посилаючись на коди ваших ліній (наприклад,
LINE_10 - LINE_20).
Повторіть цей процес за потреби. Потім Зберегти та закрити.
У цьому сценарії ваша компанія не використовує податкові сітки. Натомість вона відстежує все виключно через рахунки Головної книги:
Виберіть Префікс кодів рахунків як обчислювальний механізм: Odoo використовує це для рядків, які потребують отримання фінансових підсумків. Замість пошуку тегів транзакцій, Odoo отримує актуальні залишки безпосередньо з вашого плану рахунків.
У полі Формула введіть початкові цифри рахунків, які ви хочете відстежувати (наприклад,
40витягне загальну суму всіх рахунків доходів, що починаються з400000,401000тощо).
Повторіть цей процес за потреби. Потім Зберегти та закрити.
Або ж ви можете:
Виберіть Агрегувати інші формули як обчислювальний механізм. Odoo використовує це для обчислення проміжних підсумків, чистого податку або загальних підсумків шляхом додавання або віднімання інших рядків вашого звіту.
У полі Формула використовуйте базову алгебру, посилаючись на коди ваших ліній (наприклад,
LINE_10 - LINE_20).
Повторіть цей процес за потреби. Потім Зберегти та закрити.
У цьому сценарії вашій компанії потрібні розширені фільтри, ручні зміни користувачами або складна алгоритмічна логіка, яку стандартні теги та префікси облікових записів не можуть обробити:
Виберіть Odoo Domain як обчислювальний механізм: Odoo використовує це, щоб повністю обійти податкові теги та фільтрувати необроблені записи журналу (
account.move.line) за допомогою стандартного синтаксису пошуку Odoo.У полі Формула введіть дійсний домен, починаючи з дужок, щоб ізолювати транзакції, звільнені від оподаткування, для певних категорій партнерів.
Або ж ви можете:
Виберіть Зовнішнє значення як обчислювальний механізм. Odoo використовує це для реєстрації ручних змін або історичних перенесених значень.
У полі Формула введіть або
sum(щоб додати всі ручні значення разом у звітах за кілька періодів), абоmost_recent(щоб відобразити лише останнє значення).У полі Підформула введіть
editable, щоб відобразити значок редагування у звіті в реальному часі, що дозволить користувачам змінювати значення вручну. Крім того, ви можете округлити числа, ввівшиrounding=x.
Або ж ви можете:
Виберіть Користувацька функція Python як обчислювальний механізм. Odoo використовує його як виконавчий механізм для виконання певних обчислень через бекенд-код, коли правила включають прогресивні дужки, цикли або багаторівневі пороги.
У полі Формула введіть точну технічну назву методу Python, визначеного у вашому власному модулі локалізації.
Повторіть цей процес за потреби. Потім Зберегти та закрити.
На вкладці Параметри виразу Вираз заповніть поле Перенести на формулою, щоб завжди переносити залишки або переносити їх лише тоді, коли сума від’ємна. Залиште це поле порожнім, якщо ви не хочете використовувати цю функцію.
Example
if_below(EUR(0))Податкова конфігурація¶
Далі перейдіть до та натисніть Новий, щоб створити та налаштувати нові податки для вашого власного податкового звіту. Створіть податки Продажі та Покупки та заповніть Податкові сітки для всіх податків, використовуючи відповідні податкові сітки, які ви створили раніше. Нарешті, переконайтеся, що ви вказали як рахунок податку до сплати, так і рахунок дебіторської заборгованості для кожного податку.
Example
Закриття запису¶
Щоб закрити податки, для кожного податку, що використовується у вашому користувацькому податковому звіті, необхідно вказати податкову групу. Для цього відкрийте програму Accounting, перейдіть до , відкрийте податок, для якого потрібна податкова група, натисніть вкладку Додаткові параметри та виберіть групу в полі Податкова група. Після призначення натисніть значок (стрілка праворуч) та встановіть як Рахунок до сплати податків, так і Рахунок до отримання податків.
Порада
Коли все налаштовано, обов’язково перевірте свій звіт, створивши рахунки-фактури, рахунки-фактури та кредитні ноти, використовуючи податки, характерні для цього звіту. Нарешті, перевірте сам запис закриття.
Якщо ви хочете приховати певний рахунок від відображення в записі про закриття податкової звітності, перейдіть до , виберіть податок і натисніть значок (налаштування налаштувань). Далі встановіть прапорець Запис про закриття податкової звітності, щоб налаштувати його видимість.
Перегляньте також