Звіт про перевірку незмінності даних¶
Податкові органи в деяких країнах вимагають від компаній підтверджувати незмінність проведених облікових записів, тобто після захисту запису його більше не можна змінювати.
Для цього Odoo створює унікальний відбиток для кожного захищеного запису за допомогою алгоритму SHA-256. Цей відбиток називається хешем. Хеш генерується шляхом взяття основних даних запису (значень полів name, date, journal_id, company_id, debit, credit, account_id і partner_id), їх об’єднання та введення в хеш-функцію SHA-256, яка потім виводить рядок символів фіксованого розміру (256 біт). Хеш-функція є детермінованою (однакові вхідні дані завжди створюють однаковий результат): будь-яка незначна зміна вихідних даних повністю змінить отриманий хеш. Отже, алгоритм SHA-256 часто використовується, зокрема, для цілей перевірки цілісності даних.
Крім того, хеш попереднього запису завжди додається до наступного запису, утворюючи хеш-ланцюг. Це використовується для забезпечення того, щоб новий запис не було додано згодом між двома захищеними записами, оскільки це порушило б хеш-ланцюг.
Примітка
Хеші, згенеровані алгоритмом SHA-256, теоретично не є унікальними, оскільки існує скінченна кількість можливих значень. Однак це число надзвичайно велике: 2²⁵⁶, що набагато більше за кількість атомів у відомому всесвіті. Ось чому хеші вважаються унікальними на практиці.
Функції незмінності¶
Функції незмінності можна увімкнути, активувавши параметр захист проведених записів хешем у будь-якому журналі або за допомогою майстра захисту записів.
До форми журнального запису додано два індикатори. Вони показують, чи захищений запис.
або (піктограма замка) поруч зі станом Проведено.
Прапорець Захищено на вкладці Інша інформація.
Фільтр Не захищено доступний у списках журнальних записів і елементів журналу. Його можна використовувати для пошуку проведених журнальних записів, які ще не захищено.
Опція відкрити майстер захисту записів відображається в меню Облік.
Захист проведених записів за допомогою хешу¶
Щоб активувати функцію хешування для конкретного журналу, перейдіть до . Відкрийте журнал продажів, закупівель або різних операцій, перейдіть на вкладку Розширені налаштування та увімкніть Захист проведених записів за допомогою хешу. Журнали, для яких активовано цю функцію, називаються «обмеженими».
Для обчислення хешу запису Odoo отримує попередні записи ланцюга (тобто записи з тим самим префіксом послідовності) і хешує їх безперервним способом від останнього хешованого запису до нового запису для хешування.
Попередження
Після проведення запису в обмеженому журналі ви більше не зможете вимкнути цю функцію, а також редагувати будь-які захищені записи.
Майстер захисту записів¶
Ви також можете використовувати майстер Захист записів, щоб захистити всі записи журналу в усіх журналах до певної дати.
Примітка
Майстер працює незалежно від налаштувань журналу та типів журналів.
Щоб відкрити його, активуйте режим розробника, перейдіть до та натисніть Захист записів. Якщо функції незмінності активовані, він також видимий поза режимом налагодження.
Щоб захистити записи, виберіть дату, до якої всі записи мають бути захищені, та натисніть Захист записів.
Попередження
Після захисту записів ви більше не зможете їх редагувати.
Примітка
Може статися так, що записи, які є раніше вибраної дати, будуть захищені. Це можливо, оскільки ланцюг хешів відповідає префіксу послідовності, впорядкованому за номером послідовності.
Завантаження звіту¶
Щоб завантажити звіт про перевірку незмінності даних, перейдіть до та натисніть Завантажити звіт про перевірку незмінності даних.
Перший розділ звіту є оглядом усіх префіксів послідовностей журналів, що містять хешовані записи. У стовпці Обмежений ви можете побачити, чи журнал має активовану опцію захист проведених записів за допомогою хешу (V) чи ні (X). Стовпець Перевірка повідомляє вам, чи всі записи правильно хешовані.
Другий розділ надає більш детальний результат перевірки узгодженості даних для кожного префікса послідовності хешованого журналу. Ви можете переглянути перший хешований запис та відповідний йому хеш, а також останній хешований запис та відповідний йому хеш.