Что такое неизменяемый реестр (immutable ledger)? Аудиторские следы и почему удаление проводок - это ошибка
Почему проведенные бухгалтерские проводки никогда нельзя редактировать или удалять, как работают исправления в реестре только для добавления (append-only ledger) и что на самом деле гарантируют закрытия периодов и журналы аудита.
Неизменяемый реестр (immutable ledger) - это реестр, в котором проведенные проводки никогда не изменяются и не удаляются. Исправления вносятся путем добавления новых проводок, которые сторнируют или корректируют старые, благодаря чему история учета становится частью самого учета.
Это не техническое предпочтение. Именно это превращает бухгалтерскую отчетность в доказательство, а не в текущее мнение о прошлом, и именно поэтому на просьбу "добавить кнопку удаления для журнала проводок" следует отвечать отказом.
Почему редактирование и удаление разрушают все
Аудиторский след (audit trail) - это и есть продукт. Смысл двойной записи заключается в том, что каждое сальдо раскладывается на составляющие его проводки. Если проводки можно незаметно изменить, такое разложение ничего не доказывает: след показывает лишь то, что кто-то посчитал нужным отразить в последний момент.
Сданные показатели перестают совпадать с учетными данными. Декларация по НДС, поданная в марте, содержит мартовские цифры. Отредактируйте мартовский счет в июне, и ваша главная книга перестанет соответствовать документу, уже представленному в налоговый орган. Никто не замечает этого до сверки, а к тому моменту причина кроется в месяцах проведенных транзакций.
Мошенничество становится невидимым. Выявление манипуляций зависит от возможности увидеть факт изменений. Если проводки можно редактировать на месте, смотреть не на что - именно поэтому налоговые органы по всему ЕС требуют, чтобы бухгалтерские записи защищали от несанкционированного вмешательства (tamper-evident), а несколько стран сертифицируют программное обеспечение для выставления счетов именно на основе этого свойства.
Распределенное состояние расходится. Если счет был отправлен клиенту, выгружен в банковский файл, передан на платформу электронного выставления счетов и прочитан через API партнера, редактирование вашей копии никак не повлияет на их копии. Вы не исправили ошибку, вы создали расхождение.
Как на самом деле работают исправления
Любое правомерное исправление - это добавление:
| Ситуация | Правильный механизм |
|---|---|
| Неправильная проводка в журнале | Провести ее сторно, а затем правильную проводку |
| Неверная сумма в счете | Выставить кредитовое авизо, а при необходимости - новый счет |
| Неверный период | Провести операцию в текущем открытом периоде с датой совершения исправления |
| Устаревшая оценка | Сторнировать начисление, отразить факт - см. начисленный доход |
Результат читается как повествование: вот что мы предполагали, вот когда мы узнали правду, вот исправление. Аудитор, задающий вопрос "что случилось со счетом S-1041?", получает исчерпывающий ответ вместо цифры, которая, судя по записям, была таковой всегда.
Цена такого подхода заключается в том, что реестр навсегда сохраняет ошибки. В этом и суть: компания, в учетом регистре которой нет исправлений, либо исключительно удачлива, либо редактирует свои книги.
Чем неизменяемость не является
- Не означает "нельзя ничего исправить". Исправить можно что угодно; исправление достигается добавлением, а не перезаписью.
- Не является блокчейном. Криптографическая цепочка - лишь один из способов защиты от несанкционированного вмешательства (tamper-evidence); реляционный реестр только для добавления (append-only) с принудительными ограничениями и журналом аудита дает вам бухгалтерские свойства без сопутствующей сложности распределенного консенсуса.
- Не заменяет журнал аудита. Журнал аудита фиксирует, кто и что сделал. Неизменяемость означает, что сами бухгалтерские данные не меняются. Вам нужны оба компонента, поскольку они отвечают на разные вопросы.
- Не применяется к черновикам. Черновик счета является рабочим документом и может свободно редактироваться. Неизменяемость начинается с момента выставления - того дня, когда документ становится значимым для кого-то еще.
Как Nordlet обеспечивает соблюдение правил
Три механизма, носящие структурный, а не условный характер:
Проведенные проводки доступны только для добавления. Записи в журнале создаются один раз. Нет ни одной конечной точки (endpoint), которая редактирует или удаляет проведенную транзакцию, а POST /v1/ledger/journal/transactions/create выполняет валидацию перед записью: дебет должен равняться кредиту, счета должны существовать и допускать проводки, период должен быть открытым. Несбалансированная проводка не может быть представлена в базе данных.
Периоды блокируются. POST /v1/ledger/periods/lock закрывает месяц, и любая транзакция с датой в заблокированном периоде отклоняется - независимо от того, поступает ли она из ручной проводки, счета, банковского импорта или автоматизированного процесса начисления. Блокировка гарантирует постоянное соответствие сданной декларации данным учета, а разблокировка сама по себе является аудируемым действием. Рабочий процесс описан в статье об отчетном периоде.
Аудируется все. Операции, изменяющие состояние, записываются в журнал аудита с указанием субъекта (actor), действия, сущности и различий (diff), включая автоматизированные операции, которые фиксируют системного агента, а не создают видимость выполнения человеком. Когда зеркалирование между аффилированными лицами создает счет, журналы обеих компаний отражают это событие.
Документы подчиняются тому же правилу: выставление счета на продажу резервирует номер из сплошной последовательности (gapless series) и проводит документ; последующее исправление означает создание кредитового авизо, но никак не редактирование. Первоначальный счет, кредитовое авизо и результирующее сальдо остаются видимыми в истории клиента.
Черновики документов остаются полностью доступными для редактирования, а удаление представляет собой мягкое удаление (soft delete) - метку времени deletedAt, которая скрывает запись из активных запросов, сохраняя ее в системе.
FAQ
Что такое неизменяемый реестр (immutable ledger)?
Бухгалтерский реестр, в котором проведенные проводки никогда не изменяются и не удаляются. Исправления вносятся путем добавления сторнирующих или корректирующих проводок, благодаря чему полная история, включая ошибки и исправления, остается частью учетных данных.
Почему нельзя просто удалить неправильную проводку в журнале?
Потому что эта проводка уже может быть отражена в поданной налоговой декларации, документе, отправленном клиенту, или в записях другой системы. Ее удаление приведет к молчаливому расхождению ваших книг со всеми этими данными. Сторнирование исправляет цифры, сохраняя при этом свидетельство того, что произошло на самом деле.
Требует ли неизменяемый реестр использования блокчейна?
Нет. Блокчейн - это лишь один из способов защиты записей от несанкционированного вмешательства. Проектирование базы данных только для добавления (append-only) с принудительными ограничениями баланса, блокировками периодов и журналом аудита обеспечивает необходимые бухгалтерские свойства без использования распределенного консенсуса.
Могу ли я отредактировать черновик счета?
Да. Неизменяемость действует с момента выставления документа и обретения им юридической силы для третьих лиц. Черновики являются рабочими документами и могут свободно изменяться или удаляться.
Как исправить проводку в закрытом периоде?
Проведите исправление в текущем открытом периоде с датой совершения исправления. Если отчетные показатели закрытого периоды были существенно неверными, альтернативным вариантом является намеренное открытие периода, исправление, повторная сдача отчетности и повторная блокировка - это аудируемое действие, представляющее собой честный способ пересчета (restate).