"""Реквизиты компании (страхователя/налогоплательщика) для отчётности. Обязательные реквизиты XML-форматов ФНС и СФР, отсутствующие в базовых модулях: ОКТМО, код налогового органа, ОКВЭД, КБК по налогам/взносам, регистрационный номер СФР, класс профессионального риска, подписант. ВНИМАНИЕ: конкретные коды (ОКТМО, код НО), значения КБК и класс профриска зависят от организации и региона — задаются пользователем в настройках. Приведённые defaults КБК — типовые на 2026 и подлежат сверке с актуальными приказами Минфина. TODO(сверка). """ from odoo import fields, models # Типовые КБК 2026 (подлежат сверке — TODO). Заданы как defaults, чтобы # не хардкодить в генераторах XML; пользователь корректирует в настройках. KBK_USN_INCOME = '18210501011011000110' # УСН «Доходы» KBK_NDS = '18210301000011000110' # НДС KBK_NDFL = '18210102010011000110' # НДФЛ (агент) KBK_INSURANCE_UNIFIED = '18210201000011000160' # Страховые взносы (ед. тариф) KBK_INJURY = '79710212000061000160' # Взносы на травматизм (СФР) class ResCompany(models.Model): _inherit = 'res.company' # --- Территория и налоговый орган --- rsbu_oktmo = fields.Char( string='ОКТМО', help='Код территории муниципального образования (ОКТМО) для ' 'деклараций и уведомлений. TODO(сверка).') rsbu_tax_office_code = fields.Char( string='Код налогового органа', help='Четырёхзначный код ИФНС по месту учёта. TODO(сверка).') rsbu_okved = fields.Char( string='ОКВЭД', help='Основной код вида экономической деятельности. TODO(сверка).') # --- КБК по налогам и взносам --- rsbu_kbk_usn = fields.Char( string='КБК УСН', default=KBK_USN_INCOME, help='КБК налога при УСН. TODO(сверка с приказом Минфина).') rsbu_kbk_nds = fields.Char( string='КБК НДС', default=KBK_NDS, help='КБК налога на добавленную стоимость. TODO(сверка).') rsbu_kbk_ndfl = fields.Char( string='КБК НДФЛ', default=KBK_NDFL, help='КБК налога на доходы физлиц (налоговый агент). TODO(сверка).') rsbu_kbk_insurance = fields.Char( string='КБК страховых взносов', default=KBK_INSURANCE_UNIFIED, help='КБК страховых взносов по единому тарифу. TODO(сверка).') rsbu_kbk_injury = fields.Char( string='КБК взносов на травматизм', default=KBK_INJURY, help='КБК взносов на травматизм (СФР). TODO(сверка).') # --- Реквизиты страхователя в СФР --- rsbu_sfr_reg_number = fields.Char( string='Рег. номер в СФР', help='Регистрационный номер страхователя в Социальном фонде России ' '(для ЕФС-1). TODO(сверка).') rsbu_profrisk_class = fields.Char( string='Класс профриска', help='Класс профессионального риска (определяет тариф взносов на ' 'травматизм). TODO(сверка с уведомлением СФР).') rsbu_ogrn = fields.Char( string='ОГРН', help='Основной государственный регистрационный номер юридического ' 'лица (13 знаков). Элемент «ОГРН» блока «Страхователь» в ЕФС-1. ' 'Для ИП указывается ОГРНИП (15 знаков).') # --- Подписант отчётности --- rsbu_signatory_id = fields.Many2one( 'res.users', string='Подписант отчётности', help='Лицо, подписывающее налоговую/страховую отчётность ' '(руководитель или уполномоченный представитель).') rsbu_signatory_is_representative = fields.Boolean( string='Подписант — представитель', help='Отмечено — подписант является уполномоченным представителем ' '(признак «2» в XML), иначе руководитель (признак «1»).') rsbu_signatory_title = fields.Char( string='Должность подписанта', default='ГЕНЕРАЛЬНЫЙ ДИРЕКТОР', help='Должность руководителя (уполномоченного представителя), ' 'подписывающего отчётность. Элемент «Должность» в блоке ' '«Руководитель» ЕФС-1.') # --- Электронный документооборот (ЭДО) — для имени файла обмена УПД --- rsbu_edo_operator_code = fields.Char( string='Код оператора ЭДО (УИОЭДО)', size=3, default='000', help='Трёхзначный код оператора ЭДО, присвоенный ФНС (напр. «2BM» — ' 'Диадок, «2BE» — СБИС). «000» — при обмене не через оператора ' 'ЭДО. Используется в имени файла обмена УПД.') rsbu_edo_participant_id = fields.Char( string='Идентификатор участника ЭДО', help='Уникальный идентификатор участника (организации) в системе ' 'ЭДО, присвоенный оператором (УИОтпр в имени файла обмена). ' 'При обмене не через оператора — GUID участника.')