# Декларация НДС (Этап 8) — статус Модуль: `rsbu_fns_reporting`. Форма КНД 1151001, формат ФНС **5.12** (`NO_NDS_1_003_00_05_12_01`). Сценарий — УСН + спецставка НДС 5%. ## Комплект (3 файла) Декларация НДС = архив из трёх XML: - **корневая** (`NO_NDS`): реквизиты + раздел «НДС» (СумУплНП/СумУпл164: РеалТов5, ОплПредПост, СумНалВыч) + ссылки на файлы разделов (КнигаПокуп/КнигаПрод), флаги ПризнНал8/9; - **раздел 9** (`NO_NDS.9`): книга продаж — строки КнПродСтр; - **раздел 8** (`NO_NDS.8`): книга покупок — строки КнПокСтр. ## Сделано - **Модель** `rsbu.nds.declaration` (постоянная): расчёт из книг НДС (`rsbu.vat.book.line`) и итогов (`rsbu.vat.summary`). Начисленный НДС делится на реализацию (РеалТов5) и авансы (ОплПредПост) по признаку наличия строки 76.АВ в проводке-источнике. Вычет — книга покупок. - **XML** (`rsbu_nds_xml.py`): три файла, lxml, windows-1251, версия 5.12. Корень — целые рубли, книги — с копейками. Ссылки КнигаПокуп/Прод на имена файлов разделов. Валидация каждого файла по своей XSD 5.12. Выгрузка — zip-архив из 3 файлов. - **Свежесть**: `action_export_xml` всегда вызывает `action_compute` (пересбор книг + итогов) перед формированием — данные не устаревают. - **UI**: список/форма, меню «Отчётность ФНС → Декларация НДС». - **Сверка с 1С (ref_1c) до рубля**: начислено 424319, вычет 130062, к уплате 294257, РеалТов5 229174, авансы 195145 — совпадает с живой декларацией. Все 3 файла валидны против XSD 5.12. Транзиент-визард `rsbu.vat.declaration.wizard` (rsbu_vat) оставлен для быстрого просмотра сумм; полная декларация с XML — здесь. ## Осталось / TODO 1. **База авансов (ОплПредПост/НалБаза)** — Δ 1 рубль с эталоном (4098049 vs 4098050) от округления копеек по строкам. Некритично. 2. **Строки книг (номер/дата СФ, КВО, документ оплаты, частичный СФ)** — заполняются упрощённо (КВО фикс 01/22, СФ из invoice_id/номера строки). Для полного соответствия построчно с 1С нужна детализация СФ на строках книги (номер/дата авансовой СФ, документ оплаты) — при необходимости построчной сверки книг. 3. **Раздел 8: продавец = сама организация** (вычет собственного авансового НДС при отгрузке) — верно для нашего сценария; для входящих покупок с вычетом входного НДС (не наш случай на УСН) — доработать. 4. **Период**: код периода в корне вычисляется из квартала date_to (21..24). Для годовой/иной отчётности — уточнить.