feat(seed): полный план счетов 1С (488 строк) #25
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/23-chart-seed-1c"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #23. ASSUMPTION(OQ-113): выгрузка 1С
fixtures/directories/chart-of-accounts-1c.xlsxсчитается полным планом счетов (подтверждения владельца ещё нет).Что сделано
api/scripts/convert_chart_1c.py— одноразовый конвертер xlsx -> csv (колонки по заголовкам «Код счета», «Наименование счета», «Вид», «Заб.»; порядок строк как в выгрузке;parent_codeпо структуре кода;row_typeпо глубине;kindА/П/АП -> A/P/AP;is_off_balance= «Заб.»=Да).api/seed/core/chart_of_accounts.csv: 122 -> 488 строк (буквенные01.К,62.ОТ,76.АВ, забалансовые001–012,МЦ,ГТД,НЕ…,Я68…).scripts/seed_lib/loaders.py): принимает буквенные коды (кириллица),000и012; забалансовые = 001–012 и буквенные корни; «сироты» выгрузки без родителя (Я68.01,Я68.21,Я68.32,Я68.42,Я01.К,Я69.06.5) загружаются с пустымparent_code(родителей не выдумываем); пустой parent при наличии предка по-прежнему ошибка.test_seed_chart.py(488 строк, иерархия без циклов, сироты, буквенные/забалансовые, kind по 1С, субсчета ОСВ),test_convert_chart_1c.py(конвертер + дрейф «csv == конвертер(xlsx)», skip без fixtures),test_mapping_golden.py(вне плана остаётся только60.АВ),test_domain_osv_mapping.py(66.01 теперь резолвится).reference-data-seed: требование о плане счетов обновлено (1С-план, 001–012, сироты), сценарий «Субсчета реальных ОСВ».Миграции не нужны;
run_seed— upsert поcode(уже существующие строки не дублируются), идемпотентность проверенаtest_second_run_keeps_chart_row_count.Как проверить
Результаты:
make check— 1122 passed (678 deselected);pytest -m "integration and not e2e"— 677 passed, 1123 deselected (4:22); golden: снимков 88, вне плана 1 (60.АВ).Расхождения с прежним seed (брали 1С)
Коды/иерархия/row_type/is_off_balance всех 122 прежних строк не изменились. Изменились имена 24 строк:
19, 60.03, 60.31, 60.32, 62.03, 62.31, 62.32 (в у.е. / «Векселя …»), 66.06/66.22/66.24/66.26, 67.06/67.22/67.24/67.26 (в seed были «(субсчет NN)», в 1С — настоящие названия), 76.07, 76.07.1, 76.07.2, 76.07.5, 76.07.9 (в seed «лизинг», в 1С — «аренда»), 76.08, 76.28, 76.38 («по рассрочке»), 90.09. И kind у 28 строк: субсчета 60.0x/62.0x/76.07.x/76.08/76.28/76.38/90.0x/91.0x были AP (наследие родителя), в 1С — А или П; 70 и 96 были P, в 1С — АП.
kindв коде нигде не читается (только в модели), поведение не меняется.Находки
60.АВесть только в синтетическом снимке s09, в плане 1С его нет:account_id = NULL(из 19 кодов OQ-113 резолвятся 18)normalize_account_codeдополняетРВ.1доРВ.01, а в плане 1С кодРВ.1(одна цифра у буквенного корня): ОСВ сРВ.1не сопоставится со строкой плана096d53btest_build_entries_on_golden_osv_66ожидалaccount_id is Noneдля 66.01096d53breference-data-seedговорила «is_off_balance для 001–011»096d53bDecisions made without discussion
kindберётся из «Вид» 1С для всех строк, включая прежние (обоснование: источник — 1С; ошибка стоит неверный kind в справочнике, нигде пока не читаемый).is_off_balance= «Заб.» 1С: 012 и буквенные корни (МЦ, НЕ, ГТД, ИНВ, КВ, ОТ, РВ, УСН) забалансовые,000иЯ…нет (ошибка: неверный флаг забалансовости у редких счетов).Я68.01…) — пустойparent_code, а не выдуманные родители.Что проверить человеку
Подтвердить полноту плана (OQ-113); решить судьбу
60.АВ(C23-1) иРВ.1(C23-2); просмотреть список изменённых имён.🤖 Generated with Claude Code