## MODIFIED Requirements ### Requirement: Аудит экспорта шахматки Каждый успешный `GET …/intercompany-matrix/all/export`, `POST …/intercompany-matrix/manual/export` и `GET …/intercompany-matrix/preset/{rule_id}/export` SHALL добавлять отдельное неизменяемое событие `audit_event` с `action = EXPORT`, `section = EXPORT`, `object_type = consolidation_version`, `object_id = consolidation_version_id`, `user_id` инициатора, `before_value = null` и `after_value = {report: "intercompany_matrix", mode, debit_account_ids, credit_account_ids, cells}`; для `PRESET` в `after_value` SHALL быть дополнительно `rule_id`. `mode` — `ALL`, `MANUAL` или `PRESET`, массивы счетов — ID из запроса (в ALL и PRESET пустые), `cells` — число ячеек. Выгрузка сводной ОСВ продолжает писать собственное событие `EXPORT`. #### Scenario: Две выгрузки - **WHEN** пользователь дважды выгружает ту же шахматку - **THEN** в `audit_event` две разные записи `EXPORT`, каждая со своим payload и числом ячеек #### Scenario: Выгрузка пресета - **WHEN** пользователь выгружает `GET …/intercompany-matrix/preset/{rule_id}/export` - **THEN** событие `EXPORT` содержит `mode = PRESET`, `rule_id` правила, пустые массивы счетов и число ячеек