# Декларация УСН «Доходы» (Этап 8) — статус Модуль: `rsbu_fns_reporting`. Форма КНД 1152017, электронный формат `NO_USN_1_030_00_05_09` (версия 5.09). Объект налогообложения — «Доходы». ## Сделано - **Расчёт** (`rsbu.usn.declaration`): разделы 2.1.1 (доход 110-113, ставка 120-123, исчислено 130-133, вычет взносов 140-143) и 1.1 (авансы 020/040/070, к уменьшению 050/080, налог к доплате 100, к уменьшению 110) нарастающим итогом из `rsbu.kudir.summary` по формулам Порядка (п.16-25). Вычет взносов ограничен признаком НП: 50% (работодатель) / 100% (ИП без работников). - **Электронный XML** (`rsbu_usn_xml.py`): lxml, windows-1251, кириллические теги. Структура Файл/Документ/СвНП/Подписант/УСН/СумНалПУ_НП/РасчНал1. Реквизиты из настроек (ИНН/КПП/ОКТМО/КодНО/подписант, модуль `rsbu_reporting_base`). Имя файла обмена по Порядку п.3 (`NO_USN_<КодНО>_<КодНО>_<ИНН+КПП>__`); атрибут `ИдФайл` совпадает с именем файла. Валидация против XSD-схемы (`data/schemas/`) встроена в выгрузку. - **UI**: список/форма с кнопками «Рассчитать»/«Выгрузить XML», меню «Отчётность ФНС → Декларация УСН». - **Свежесть данных**: `action_export_xml` ВСЕГДА вызывает `action_compute` (пересбор итогов КУДиР + расчёт) перед формированием файла — исключён риск выгрузки устаревших сумм после проведения новых документов. Пересчёт идемпотентен. Кнопка «Выгрузить XML» видна только после расчёта; в форме — пояснение, что выгрузка пересчитывает автоматически. - **Тесты**: прогрессия авансов, лимит вычета 50%, аванс к уменьшению, валидность XML против XSD, совпадение ИдФайл с именем файла. ## Осталось по УСН (TODO) 1. **Сверка с эталоном по ООО «ИЦП» «до рубля»** — не выполнена. Нужен эталонный пример декларации УСН за год (заполненная форма или XML/PDF от 1С по нашей компании), как `NO_NDS` для НДС. Механика проверена на синтетике и XSD, но сквозная сверка сумм с 1С не сделана. Калибровка `rsbu_fresh` не эталон для УСН (содержит демо Q1/Q3 + калибровочный Q2). 2. **Состав вычета взносов (стр.140-143)** — требует уточнения. На калибровке вычет за полугодие 611 291 против уплаченных взносов 295 881 (разница ~315 тыс — вероятно пособия / взносы за прошлый год). Источник вычета — раздел IV КУДиР (`rsbu.kudir.summary.insurance`), который на калибровке не заполнен; для сверки нужно разобрать состав уменьшения. 3. **Ставка/льгота региона (стр.124)** — обоснование пониженной ставки (`КодЛьгот` в XSD) не реализовано; сейчас единая ставка из настроек. Добавить при наличии региональной льготы. 4. **Признак НП «2» и разделы 2.1.2/4** (торговый сбор, расходы на ККТ) — вне базового сценария; при необходимости добавить узлы РасчТоргСбор / РасчСумККТ.