05 §1.0: ОСВ других учётных систем — названия, запасной признак, группы и стороны, «ВСЕГО» (tp#81)
AURORA-1717, AURORA-1719, AURORA-1732. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
b754799694
commit
ca759d482d
@ -17,11 +17,26 @@
|
||||
`fixtures/osv/` — это примеры двух организаций, а не спецификация формата. Парсер обязан:
|
||||
|
||||
1. **Найти лист(ы) с ОСВ** по содержимому: ячейка в первых 30 строках листа (`SHEET_MARKER_ROWS`: шапка ведомости всегда
|
||||
над таблицей), матчащая `оборотно[- ]сальдовая ведомость` (без учёта регистра, «ё/е», переносов строк). Один файл может содержать несколько листов с разными ОСВ → несколько `document`.
|
||||
над таблицей), матчащая название ведомости (без учёта регистра, «ё/е», переносов строк): `оборотно[- ]сальдовая
|
||||
ведомость` в любом месте ячейки или, **с начала ячейки**, названия других учётных систем и отчётов 1С — «Оборотная
|
||||
ведомость …», «ОСВ по сч. …», «Оборотный баланс», «Фин. Обороты Листок» (Navision), «Отчет по Главной книге» (SAP)
|
||||
(AURORA-1717; «… см. оборотную ведомость» в примечании формы признаком не является). Отчёт 1С «Обороты счета»
|
||||
(обороты в разрезе корр. счетов) — не ОСВ.
|
||||
**Запасной признак** (лист без названия ведомости, tabular-parser#81): лист, который не опознан ни как ОСВ по
|
||||
названию, ни как форма ББ/ОФР или её продолжение по признакам форм, — ОСВ, если в его первых 30 строках есть строка
|
||||
со всеми тремя группами сумм («начало», «обороты», «конец»), у каждой группы найдены «Дебет» и «Кредит» и между ними
|
||||
в строках заголовка нет других подписей; свёрнутое сальдо (одна колонка) запасного признака не даёт. Слабое
|
||||
продолжение формы (лист из 1–2 кодов сразу после формы) признаком формы не считается: лист с такой таблицей после
|
||||
формы — ОСВ.
|
||||
Один файл может содержать несколько листов с разными ОСВ → несколько `document`.
|
||||
Листы без признаков ОСВ/ББ/ОФР — пропускать с warning, не падать.
|
||||
2. **Найти заголовок таблицы** по содержимому: строка(и), где встречаются одновременно «Сальдо на начало…»,
|
||||
«Оборот(ы) за период», «Сальдо на конец…» (с вариантами: «Нач. сальдо», «Обороты», «Кон. сальдо», «Дебет/Кредит»,
|
||||
«Дт/Кт», «Д-т/К-т»). **Обязательны группы «обороты» и «сальдо на конец»; отсутствовать может только «сальдо на
|
||||
«Дт/Кт», «Д-т/К-т»; выгрузки других систем, AURORA-1719: «Остаток на начало/конец (периода)», «Остаток по дебету на
|
||||
начало», «Начальное/Конечное сальдо», «Сальдо вх/исх Дт/Кт» (SAP), «НачалоДт / ОборотДт / КонецКт» (Navision)).
|
||||
Сторона может стоять в самой ячейке группы после названия — через пробел («Сальдо вх Дт»), словами («Оборот по
|
||||
дебету») или вплотную («Сальдо НачальноеДТВВ», «ОборотыДтВВ», SAP); тогда подзаголовков «Дебет/Кредит» нет. Сторона
|
||||
перед названием группы («Дт оборот», SAP) пока не распознаётся (AURORA-1722). **Обязательны группы «обороты» и «сальдо на конец»; отсутствовать может только «сальдо на
|
||||
начало»** (иначе заголовок не найден → `INVALID_FORMAT`, §1.6). Заголовок может занимать 1–4 строки с merged-ячейками; группировки могут быть как под «Счет»
|
||||
в первой колонке, так и строкой «Субконто», так и перечислением через запятую (вариант 2).
|
||||
3. **Определить колонки сумм по тексту**, а не по позиции: для каждой из трёх групп («начало», «оборот», «конец»)
|
||||
@ -295,7 +310,8 @@ AURORA-1661; прикладной сценарий валютных строк
|
||||
`CONTRACT` (§1.3, п. 3: после COUNTERPARTY дочерние продолжают классифицироваться по схеме; вид договоров здесь не
|
||||
назван в шапке, поэтому тип задаёт сама раскладка), на уровень глубже контрагента. Суммы контрагента = Σ его договоров.
|
||||
Иерархия листа: субсчёт → контрагент → договор (стратегия каскада `code_blocks`, `OSV_HIERARCHY_BY_CODE_BLOCKS`).
|
||||
4. **«ИТОГ» — итог листа.** Строка с текстом ровно «ИТОГ» (`total_row_exact`, наравне с «Итого») — TOTAL; таблица кончается
|
||||
4. **«ИТОГ» и «ВСЕГО» — итог листа.** Строка с текстом ровно «ИТОГ» или «ВСЕГО» (ведомости ГК КТЗ по счёту 009,
|
||||
AURORA-1732; `total_row_exact`, наравне с «Итого») — TOTAL; таблица кончается
|
||||
на ней, а не на первой «ИТОГ по …» (та не начинается с «Итого» и итогом листа не является). Сверка «Итого = Σ строк
|
||||
уровня 0» (§1.4) идёт по субсчетам.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user