Спеки применены: 5 новых capability (arm-core, arm-web, scan-gateway, statement-normalization, tabular-recognition-service) с Purpose, изменения quality-checks и recognition-contract. Ссылки в 05-domain-rules, DBML v5.19, entities, dev/checks.md и dev/qa-statements-v2.md ведут в архив. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
78 KiB
Тестирование единой нормализации ББ/ОФР (контракт 2.0)
Документ для тестировщиков к выкладке «единой нормализации ББ/ОФР» на тестовый стенд в контуре банка (19.10.2026).
Проверка — через экраны АРМ КА (arm-web) на стенде контура. Как поднять стенд локально, войти и проверить API через
Swagger — общий гайд qa-guide.md (разделы 4, 6.9, 8.5); здесь — только то, что изменилось с этой
выкладкой.
Что выложено: arm-core ddd607e (DBML v5.19, приём результатов 1.x и 2.0, встроенный фронт = arm-web test 4a02512),
tabular-parser 4d1709a, scan-gateway 1d05b9e, общий пакет arm-statements 3390f92. Задача — RSHB/arm-ka-docs#116;
правила — docs/context/05-domain-rules.md §7, §9.5, §11; решения Р-1…Р-44 — openspec/changes/archive/2026-10-19-unified-statement-normalization/design.md.
Перед выкладкой все сценарии ниже прогнаны на локальном стенде (18–19.10.2026: 25 книг Excel, 6 PDF, 129 ОСВ, сводная ОСВ двух периодов). Найденное там и не исправленное — в разделе 6: такие случаи не заводите как баги.
Как читать: раздел 1 — что изменилось, раздел 3 — что проверить перед началом, раздел 4 — справка по цветам, значкам и текстам предупреждений, раздел 5 — чек-лист сценариев, разделы 6–7 — известное и «не баг», раздел 8 — как заводить баги.
1. Что изменилось для пользователя
| Было | Стало |
|---|---|
| Excel (tabular-parser) и PDF (scan-gateway + ИС Сканирование) разбирались разными программами: одинаковая форма из Excel и из скана вела себя по-разному | Оба сервиса разбирают таблицу формы одним общим кодом (пакет arm_statements): одинаковые правила поиска колонки кодов, строк, сумм, проверок и статуса. Различается только чтение файла: лист Excel или ответ ИС Сканирование |
| Строки без кода («в том числе: …»), строки с нечитаемым кодом и строки без кода с суммами молча пропадали | Строки не пропадают. У каждой строки статус: обычная; расшифровка (строка без кода под строкой с кодом — «в том числе …»); код не распознан (в ячейке кода мусор: «ИЧ,250», «12 /»); кода нет (строка с суммами без кода в начале таблицы) |
| Повтор кода — вторая строка терялась | Повтор кода — законный случай (в ББ 2025 года две строки 1220 и две 1520): видны все строки, в проверках их суммы складываются |
| Оранжевой подсвечивалась любая ячейка с уверенностью распознавания ниже 100 % | Подсвечивается только то, что требует внимания: сомнительное значение, которое не подтвердила ни одна сошедшаяся контрольная проверка (§7), сомнительный код строки, поле шапки. Сомнительная ячейка, подтверждённая проверкой, не подсвечивается, но в подсказке видно, что распознано и с какой уверенностью |
| Предупреждения сервисов нигде не показывались | Предупреждения — у места: список «Предупреждения (N)» над таблицей (уровни «Ошибка» и «Информация», ссылка «Показать»), значок у ячейки, строки, заголовка колонки и поля шапки; в панели «Первичные документы» под статусом документа — значок с числом, по клику — список |
| Подтвердить можно было любую форму без нарушений | Новые блокировки: «Подтвердить данные» неактивна, пока есть строки без кода с суммами («Разберите строки без кода: N»); вторая форма того же типа и периода в одном файле не подтверждается, если первая уже подтверждена |
| Соотношение §7 с пустой целью пропускалось | Соотношение считается, если заполнена хоть одна его сторона: пустой итог при заполненных слагаемых — нарушение «цель не заполнена»; лист только с активом даёт нарушение 1600 = 1700 |
| — | В режиме «Редактировать»: назначить или сменить код строки, «Это расшифровка» / «Сделать расшифровкой», «Подтвердить код», подтвердить значение без правки (серая галочка), поставить или подтвердить дату колонки, подтвердить дату отчёта, править наименование организации |
| Числа правее таблицы (формулы аналитика в свободных столбцах) становились колонкой без даты | Столбец без подписи правее последней колонки с периодом в форму не попадает; вместо ошибки — «Информация»: «числа правее таблицы формы не учитываются: <адреса ячеек>» (правило Р-44) |
| Формы из PDF почти всегда «Требуется проверка» | Чистый скан, где все проверки сошлись, может подтвердиться автоматически (статус «Загружен» сразу) |
| ОСВ: предупреждения парсера не показывались | ОСВ разбирается как раньше; предупреждения листа видны в панели (значок с числом) и блоком «Предупреждения» на экране «Просмотр ОСВ» |
| Формы ББ/ОФР, загруженные до выкладки | Удалены очисткой перед выкладкой (раздел 3): их нужно загрузить заново, тогда они разберутся по новым правилам |
Чего нет и в этой выкладке не будет: склейки страниц формы из разных файлов (OQ-140) и половинок формы внутри одного файла (Р-15), восстановления потерянных строк по наименованию (OQ-149), сопоставления формы без колонки кодов по именам строк (OQ-139), переключателя «строки как в файле» (Р-14), удаления строк (вместо него — «Сделать расшифровкой»).
2. Как это работает
- Загрузка. Аналитик загружает файл в панели «Первичные документы» ЮЛ (как раньше). Ядро сохраняет файл и
отправляет задание: Excel (
xls,xlsx,xlsb) — в tabular-parser, PDF и картинки — в scan-gateway, который отдаёт файл в ИС Сканирование и ждёт ответ (на скане — до нескольких минут). - Чтение файла (шаг 1, у каждого сервиса своё). tabular-parser читает листы книги, scan-gateway — json-ответы ИС. Оба превращают каждую найденную форму в одинаковую «сетку» ячеек: текст, число (если оно есть в Excel), уверенность распознавания (у Excel всегда 100 %), адрес ячейки.
- Нормализация (шаги 2–8, общий код). Колонка кодов и наименований, колонки периодов и их даты, строки и их статусы, разбор сумм, код и редакция формы (66н / ФСБУ 4), тип формы (ББ / ОФР / расшифровка), контрольные проверки §7, признак «требует внимания» у каждой ячейки, строки и поля шапки, предупреждения, статус документа «готово» или «нужна проверка».
- Результат 2.0. Сервис кладёт результат в хранилище и сообщает ядру. Ядро сохраняет его как пришёл (ничего не пересчитывает) и добавляет только свои сверки: ИНН и организация с ЮЛ, код в справочнике наименований, наименование строки со справочным для сомнительных кодов, период — конец квартала.
- Автоподтверждение. Документ «готово», ИНН совпал с ЮЛ, период — конец квартала, в файле нет ошибок уровня файла и второй формы того же типа и периода → статус «Загружен» без участия аналитика. Иначе — «Требуется проверка».
- Экран проверки формы. Аналитик смотрит подсвеченное, правит («Редактировать» → «Сохранить»). После каждого сохранения ядро пересчитывает проверки §7 и статус тем же общим кодом: правленое или подтверждённое значение больше не «требует внимания», принятые с комментарием нарушения не блокируют.
- Подтверждение. «Подтвердить данные»: ядро проверяет по порядку — период определён → нет строк без кода с суммами → в файле нет уже подтверждённой формы того же типа и периода → нет непринятых жёстких нарушений §7. Подтверждённая форма закрывает ячейку «Бух.баланс» / «ОФР» в «Организациях» версии консолидации и больше не правится.
3. Предусловия на стенде контура
Что владелец сделал при выкладке (уточните у него, если что-то не так):
- Резервная копия БД и очистка форм скриптом ядра
scripts/purge_statements.py(сначала--dry-runс отчётом, затем--apply): удалены все документы «Бух. баланс» и «ОФР» с данными форм, комментариями и привязками к версиям «в работе»; файлы, где кроме форм ничего нет, удалены целиком. ОСВ, консолидации, справочники не тронуты. Смешанные файлы (в одной книге ОСВ и формы): по умолчанию у них удаляются только формы, файл с ОСВ остаётся; с флагом--include-mixed— удаляются целиком. Спросите владельца, какой вариант применён (решение Р-27). - Порядок выкладки «сначала ядро»: arm-core (миграция v5.19, приём старых 1.x и новых 2.0 результатов) и его встроенный фронт, затем tabular-parser и scan-gateway на контракте 2.0.
Как убедиться, что версия новая:
| Что | Как проверить | Признак новой версии |
|---|---|---|
| Ядро и экран | открыть любой документ ОСВ или форму | на экране «Просмотр ОСВ» над таблицей блок «Предупреждения (N)»; в панели «Первичные документы» под статусом документа — значок с числом (ⓘ / ❗ N) |
| tabular-parser (Excel) | загрузить любую ОСВ из 1С и нажать значок с числом под статусом | в разделе «Предупреждения документа» — «Информация: иерархия строк — по группировке листа (outline)». Старый сервис: вместо этого раздел «Предупреждения файла» с текстом вида sheet=TDSheet hierarchy=outline |
| scan-gateway (PDF) | загрузить PDF формы | в списке предупреждений документа тексты вида «Дата отчёта не разобрана», «склеенная строка сетки 73 разделена на 2 строк». Старый сервис: «Предупреждения файла» вида <…>.json: table:0: строк с нечисловым кодом пропущено: 8 |
| Очистка форм | открыть панель документов ЮЛ, где до выкладки были ББ/ОФР | ни одного «Бух. баланс» / «ОФР» с датой загрузки раньше выкладки |
Если сервис ещё старый (окно перехода), формы и ОСВ всё равно принимаются и экран работает, но без новых сигналов качества (сценарий N58). Это не баг — сообщите владельцу, что сервис не обновлён.
Повторная загрузка после очистки. Файл, удалённый целиком, загружается заново как новый. Смешанный файл, у которого удалены только формы, повторно не загрузится: «файл … уже загружен для этого ЮЛ» (дубликат по содержимому). Чтобы получить его формы — удалите файл (если его ОСВ не подтверждены вручную) и загрузите заново, либо загрузите копию, пересохранённую в Excel.
Файлы. Репозиторий тестовых данных fixtures в контур не переносится. Ниже у каждого сценария указан файл из наших
фикстур (если у вас есть его копия) и чем он особенный — чтобы подобрать аналог среди отчётности на стенде. Загружайте
формы на ЮЛ с тем же ИНН, что в шапке формы: иначе «Контрагент ✗» и автоподтверждения не будет (это правильно, но
мешает проверять другое).
| Файл | Путь в fixtures | Что в нём особенного |
|---|---|---|
| Т1 | statements-xlsx/mezheninovskaya/2025-Q3/1_Форма1_бух_09.xlsx |
чистый ББ из 1С, ФСБУ 4, три колонки (30.09.2025, 31.12.2024, 31.12.2023), 37 строк с кодом; правее таблицы в столбцах U–W числа и формулы аналитика; ИНН 7016006635 |
| Т2 | statements-xlsx/mezheninovskaya/2025-Q3/1_Форма2_бух_09.xlsx |
чистый ОФР того же ЮЛ, две колонки |
| Т3 | statements-xlsx/npz/2025-Q3/Бухгалтерская отчетность за Январь - Сентябрь 2025 г. (НОВОРОССИЙСКИЙ ПРОКАТНЫЙ ЗАВОД).xlsx |
одна книга: ББ на нескольких листах (листы 2–5 без шапки) и ОФР; в шапке ОФР нет ИНН; пятизначные подстроки (11501…) |
| Т4 | statements-xlsx/unagrande-co/2024-FY/Б.Б Лист 1.xls |
постраничная печать 1С: в файле только страница 1 баланса (актив, есть 1600, нет 1700) |
| Т5 | statements-xlsx/unagrande-co/2024-FY/Б.Б. Лист 2.xls |
страница 2 того же баланса (пассив) отдельным файлом: нет шапки (ни организации, ни ИНН, ни единиц), есть 1700, нет 1600 |
| Т6 | statements-xlsx/synthetic/st01_both_forms_one_sheet.xlsx |
ББ и ОФР на одном листе |
| Т7 | statements-xlsx/synthetic/st03_no_codes.xlsx |
форма без колонки кодов |
| Т8 | statements-xlsx/synthetic/st04_mixed_book.xlsx |
книга: лист ОСВ и лист ББ |
| Т9 | statements-xlsx/synthetic/st06_header_variants.xlsx |
ОФР и пять листов приложений (расшифровки, ОДДС, отчёт об изменениях капитала, целевое использование) |
| Т10 | statements-xlsx/templates/ББ до 01.01.2025.xlsx |
пустой бланк банка: нет организации, ИНН, даты, сумм |
| Т11 | ocr/aep_3.pdf |
плохой скан ББ и ОФР за 2024 год (66н): мусор в шапке, нечитаемые коды, 24 нарушения; второй json ответа ИС — ошибка |
| Т12 | ocr/aep_6.pdf |
скан ООО «Дорстроймонтаж» на 30.06.2025 (ФСБУ 4): ИНН не распознан, в поле даты — текст организации, 20 расшифровок |
| Т13 | statements/rb/Бухгалтерская отчетность 1 кв.25.pdf |
чистый скан ББ и ОФР АО «Русский бисквит» (ИНН 3528052718) за 1 кв. 2025: все проверки сходятся, 40 расшифровок в ББ, одна склеенная строка |
| Т14 | statements/schastl/БО 1 кв 2025.PDF |
скан ООО «Пекарня Счастливочная» (ИНН 3528104476) за 1 кв. 2025: проверки сходятся, поле даты отчёта не разобрано |
Про PDF: на локальном стенде ответы ИС подставляет эмулятор (сохранённые ответы настоящей ИС), в контуре отвечает настоящая ИС Сканирование. Распознавание может немного отличаться (другая уверенность, другие нечитаемые ячейки) — сверяйте поведение по смыслу, а не точные числа предупреждений.
4. Справка: что видно на экране
4.1 Статусы и подсветка
| Что видно | Что значит |
|---|---|
| статус «Загружен» (зелёный) | документ подтверждён — пользователем или автоматически |
| статус «Требуется проверка» (оранжевый) | нужна проверка аналитика (так же выглядят документы, ставшие «Распознан» после правки, — RECOGNIZED) |
| статус «Ошибка» | файл не разобран (причина — во всплывающем списке значка) |
| оранжевый фон ячейки суммы | значение требует внимания: сомнительное и не подтверждено проверкой, или участвует в несошедшемся соотношении |
| оранжевый фон наименования и кода строки | сомнительный код строки: подтвердите («Подтвердить код») или смените |
| розовая строка целиком, код серым | строка без разобранного кода: «Код не распознан: «<текст>»» или «—» с подсказкой «Кода в строке нет» |
| голубой фон | исправлено аналитиком; подсказка «Исходное: …» |
| серая галочка перед суммой | значение подтверждено аналитиком без изменения («Подтверждено аналитиком» в подсказке) |
| серый текст в ячейке суммы | текст ячейки, который не удалось прочитать как число (подсказка «Не распознано как сумма: «…»») |
| фиолетовые строки 1600 / 1700 | итог «БАЛАНС» (как раньше) |
| красный значок ❗ / синий ⓘ у ячейки, строки, заголовка колонки, поля шапки | у этого места есть предупреждение уровня «Ошибка» / «Информация»; текст — в подсказке |
| переключатель «Показать расшифровки (N)» | в форме N строк-расшифровок; по умолчанию скрыты, включённые стоят под своей строкой с отступом, код пуст, подсказка «Расшифровка — в суммы формы не входит» |
| переключатель «Показать пустые строки детализации (N)» | пустые подстроки бланка скрыты (как раньше) |
| ссылка «Разберите строки без кода: N» над шапкой | в форме N строк без кода с суммами; клик ведёт к первой; «Подтвердить данные» неактивна |
| подсказка ячейки | «Распознано: «<сырой текст>»», «Уверенность: N%», «Исходное: …», «Подтверждено аналитиком», тексты предупреждений этой ячейки |
| подсказка поля шапки | «Распознано: «<текст>» · уверенность N%» или «Исходное: …» после правки |
| блоки над таблицей | «Проверки пройдены» (зелёный); «Нарушения (N)» (красный, жёсткие соотношения §7, блокируют подтверждение до «Принять с комментарием»); «Предупреждения проверок (N)» (жёлтый, мягкие соотношения, не блокируют); «Межформенная проверка ББ↔ОФР» (жёлтый, не блокирует); «Нарушения приняты»; «Предупреждения (N)» — предупреждения документа, показаны первые 3, «Показать все (N)» |
Уровни предупреждений: «Ошибка» — данные или их полнота под сомнением, документ не подтвердится автоматически; «Информация» — к сведению, на статус не влияет.
4.2 Тексты предупреждений (справка)
Код виден в ответе API (GET /documents/{id}/statement, поле issues[].code) — его указывайте в баге.
| Код | Уровень | Текст на экране (пример) | Что значит и что делать |
|---|---|---|---|
JSON_FAILED |
Ошибка, файл | INVALID_DOCUMENT: Не удалось определить тип документа. — file:<…>_ofr.json |
один из ответов ИС по файлу — ошибка: часть формы могла потеряться; документы файла не подтверждаются автоматически. Снимается только перезагрузкой |
TABLE_LOST, TABLE_PARSE_ERROR |
Ошибка, файл | — | таблица ответа ИС не разобрана; перезагрузка |
CODE_COLUMN_NOT_FOUND |
Ошибка | «столбец кодов строк не найден» | форма без колонки кодов: строк из файла нет, только пустые строки бланка |
SEGMENT_WITHOUT_CODES, SHEET_NOT_JOINED, CONTINUATION_TYPE_CONFLICT |
Ошибка | — | лист или страница-продолжение не присоединились к форме; перезагрузка |
SEGMENT_COLUMNS_MISMATCH |
Ошибка | «в сегменте со строки N колонок значений 1, в первом сегменте 0…» | на продолжении другое число колонок сумм; значения разложены по порядку — проверьте; перезагрузка |
HEADER_ROW_NOT_FOUND |
Ошибка | «строка заголовка таблицы не найдена» | у колонок нет подписей и дат; заголовки «Колонка N» |
COLUMN_WITHOUT_DATE |
Ошибка | «у столбца N с числами нет разобранной подписи периода» | колонка с суммами без даты; поставьте дату колонке в режиме правки |
COLUMN_DATE_UNCERTAIN |
Ошибка | «дата подписи столбца N («…») не подтверждена» | дата колонки распознана неуверенно; проверьте и нажмите «Подтвердить» под датой колонки |
TYPE_CONFLICT |
Ошибка | «тип по кодам строк (…) противоречит типу по заголовку (…)» | перезагрузка |
NO_ORGANIZATION_NO_INN |
Ошибка | «В шапке нет ни организации, ни ИНН» | впишите ИНН или организацию в шапке — предупреждение снимется |
PERIOD_UNKNOWN |
Ошибка | «Отчётный период не определён: нет ни даты отчёта, ни дат колонок» | впишите дату отчёта |
REPORT_DATE_UNCERTAIN |
Ошибка | «Дата отчёта неуверенна и не подтверждена колонками» | проверьте дату и нажмите «Подтвердить» под полем или исправьте |
XLSB_SCALE_SUSPECT |
Ошибка | — | книга xlsb, «тыс. руб.» и суммы с копейками: возможен масштаб ×1000 |
INN_NOT_FOUND, INN_UNCERTAIN |
Информация | «ИНН не найден», «ИНН распознан неуверенно» | ИНН сверяет ядро с ЮЛ («Контрагент ✓/✗») |
ORGANIZATION_NOT_FOUND, ORGANIZATION_UNCERTAIN |
Информация | «Организация не найдена», «Название организации распознано неуверенно» | к сведению |
REPORT_DATE_UNPARSED |
Информация | «Дата отчёта не разобрана» | период взят по датам колонок; можно вписать дату |
UNITS_NOT_FOUND |
Информация | «Единицы измерения не найдены» | впишите единицу в шапке |
COLUMN_SKIPPED |
Информация | «столбец N («Изменение») пропущен: не период» | служебная колонка («Изменение», «Отклонение», «%», «Примечание») не взята |
FRACTIONAL_IN_THOUSANDS |
Информация | «единицы «тыс. руб.», но N из M значений с дробной частью» | проверьте единицы |
XLSB_NO_FORMATS, NUMBER_FORMAT_UNPARSED, VALUE_OUT_OF_RANGE, XLS_NO_CODEPAGE, FILE_TYPE_MISMATCH, SHEET_OTHER, TABLE_SKIPPED |
Информация | — | особенности файла, на данные не влияют |
ROW_SPLIT |
Информация | «склеенная строка сетки 73 разделена на 2 строк» | ИС склеила две строки бланка в одну, сервис их разделил; суммы проверены соотношениями |
NUMBERS_OUTSIDE_TABLE |
Информация | «числа правее таблицы формы не учитываются: TDSheet!V45, …» | числа справа от таблицы (формулы аналитика) в форму не взяты (Р-44) |
RELATION_FAILED |
Ошибка | блок «Нарушения»: «Колонка N: 1600 = 1100 + 1200 — ожидалось X, получено Y» | жёсткое соотношение §7 не сошлось |
RELATION_SOFT |
Информация | блок «Предупреждения проверок» | мягкое соотношение (подстроки, 2400, расхождение в пределах округления) — не блокирует |
CODE_NOT_IN_DICTIONARY |
Информация (ядро) | «кода 2350 нет в словаре наименований редакции» | код не из справочника банка; наименование — из файла |
CODE_NOT_IN_EDITION |
Информация (ядро) | «код N не входит в перечень кодов редакции формы» | к сведению |
NAME_MISMATCH |
Информация (ядро) | «наименование «Целевой капитал» не совпало со справочным для кода 1320» | у строки с сомнительным кодом наименование не совпало со справочным: такая форма не подтверждается автоматически; проверьте код |
STATEMENTS_VERSION_MISMATCH |
Информация (ядро) | «форма распознана общим кодом версии X, в ядре версия Y» | после правки, если сервис и ядро на разных версиях общего кода; к сведению |
MAPPING_WARNING |
Информация (ядро) | тексты обработки, как раньше («период формы не определён …») | к сведению |
LEGACY_WARNING |
Информация | старый текст предупреждения сервиса | результат от сервиса старой версии (1.x), см. N58 |
OSV_* |
Информация | «иерархия строк — по группировке листа (outline)» и др. | предупреждения листа ОСВ, на статус не влияют |
5. Чек-лист сценариев
Отмечайте: ✅ ожидание совпало / ❌ баг (с номером issue) / ⚠️ вопрос. Пользователь — аналитик с правом правки
документов (как ka_go на локальном стенде). Сценарии с пометкой (спека) на локальном стенде не прогонялись —
ожидание взято из правил; расхождение — повод для вопроса, а не обязательно баг.
5.1 Excel: ББ и ОФР
| № | Файл | Шаги | Ожидание |
|---|---|---|---|
| N1 | Т1 | загрузить на ЮЛ с ИНН шапки, дождаться обработки (5–15 с), открыть «Бух. баланс» | «Загружен» сразу (автоподтверждение), «Контрагент ✓»; под статусом синий значок «ⓘ 1». На экране: «Проверки пройдены»; «Предупреждения (1)» — «Информация: числа правее таблицы формы не учитываются: TDSheet!V45, TDSheet!W57, …»; три колонки с датами из подписей; оранжевых ячеек нет; столбцов U–W в таблице нет |
| N2 | Т2 | загрузить тому же ЮЛ, открыть «ОФР» | «Загружен»; две колонки периодов; блок «Межформенная проверка ББ↔ОФР» может появиться — он жёлтый и подтверждение не блокирует |
| N3 | Т3 | загрузить на ЮЛ НПЗ, открыть оба документа | два документа из одной книги: «Бух. баланс» и «ОФР». В ББ — строки всех листов (листы без шапки присоединены, ни одна строка не потеряна), пятизначные подстроки под своей строкой; «Предупреждения проверок (N)» по подстрокам (11501…, 14101…) — жёлтые, не блокируют. В ОФР — «Информация: ИНН не найден». Оба «Загружен», если организация совпала с ЮЛ |
| N4 | Т4 | загрузить, открыть ББ | «Требуется проверка»; «Нарушения (3)»: «Колонка N: 1600 = 1700 — ожидалось <сумма 1600>, получено —» по каждой колонке (1700 на этом листе нет). Номер колонки — см. известное замечание I-1. «Принять с комментарием» → комментарий → «Принять» → «Нарушения приняты»; «Подтвердить данные» проходит |
| N5 | Т5 | загрузить на другое ЮЛ (не то, где Т4), открыть ББ | «Требуется проверка»; в шапке все поля «—»; «Предупреждения»: «Ошибка: В шапке нет ни организации, ни ИНН», «Информация: Единицы измерения не найдены»; «Нарушения»: «1600 = 1700 — цель не заполнена, получено <сумма 1700>». «Редактировать» → вписать ИНН → «Сохранить»: ошибка про организацию и ИНН исчезла (информация про единицы остаётся — M-4) |
| N6 | Т6 | загрузить, открыть оба документа | из одного листа два документа: «Бух. баланс» (коды 1xxx) и «ОФР» (коды 2xxx) |
| N7 | Т7 | загрузить, открыть ББ | «Требуется проверка»; «Ошибка: столбец кодов строк не найден»; в таблице только пустые строки бланка («-»), строк из файла нет. «Подтвердить данные» активна и проходит — известное замечание I-4 |
| N8 | Т10 | загрузить, открыть ББ, нажать «Подтвердить данные» | «Требуется проверка»; «Ошибка: Отчётный период не определён…», «Ошибка: В шапке нет ни организации, ни ИНН»; подтверждение — красный блок «<текст сервера>. Исправьте дату отчёта в шапке и сохраните.» (PERIOD_REQUIRED) |
| N9 | свой: любой ББ, в свободный столбец справа от таблицы (без подписи) вписать несколько чисел в строках с кодами | загрузить, открыть | статус как у исходного файла; «Информация: числа правее таблицы формы не учитываются: <адреса ваших ячеек>»; лишней колонки в форме нет |
| N10 | свой: тот же ББ, но над столбцом с числами подпись «Итог» (не период) и столбец между колонками периодов | загрузить, открыть | колонка «Итог» в форме без даты; «Ошибка» у заголовка колонки: «у столбца N с числами нет разобранной подписи периода»; «Требуется проверка». «Редактировать» → под заголовком колонки поле «ГГГГ-ММ-ДД» → дата → «Сохранить»: заголовок «На <дата>», ошибка снята. Подпись «Изменение» / «%» / «Примечание» → колонка не взята, «Информация: столбец N («Изменение») пропущен: не период» |
| N11 | свой (спека): ББ с единицей «тыс. руб.», где суммы с копейками; то же, сохранённое как xlsb | загрузить оба | xlsx: «Информация: единицы «тыс. руб.», но N из M значений с дробной частью», статус не меняется; xlsb: «Ошибка» (подозрение на масштаб ×1000), «Требуется проверка» |
5.2 PDF: ББ и ОФР
| № | Файл | Шаги | Ожидание |
|---|---|---|---|
| N12 | Т13 | загрузить на ЮЛ «Русский бисквит», дождаться (до нескольких минут), открыть «Бух. баланс» | оба документа «Загружен» (автоподтверждение скана); в ББ «Проверки пройдены», «Информация: склеенная строка сетки N разделена на 2 строк» со ссылкой «Показать»; переключатель «Показать расшифровки (40)»; колонки «На 31 марта 2025 г.» и т. п.; оранжевых ячеек нет |
| N13 | Т14 | загрузить на ЮЛ «Пекарня Счастливочная», открыть ББ | «Загружен»; в шапке «Дата отчёта» — «—» с синим ⓘ «Дата отчёта не разобрана» (известное замечание I-2); период документа в панели — «2025 К1» (по датам колонок); «Показать расшифровки (20)» |
| N14 | Т11 | загрузить на любое ЮЛ, открыть «Бух. баланс» | «Требуется проверка», «Контрагент ✗»; ссылка «Разберите строки без кода: 5», «Подтвердить данные» неактивна; «Нарушения (24)»; «Предупреждения»: «Ошибка: строка заголовка таблицы не найдена», «Ошибка: Дата отчёта неуверенна и не подтверждена колонками», «Информация: ИНН распознан неуверенно», «Информация: Название организации распознано неуверенно», «Информация: наименование «…» не совпало со справочным для кода 1320»; колонки «Колонка 3», «Колонка 5», «Колонка 6» (I-1); поле «Дата отчёта» оранжевое. В панели значок ❗ с числом, в списке «Предупреждения файла» — «Ошибка: INVALID_DOCUMENT …_ofr.json» (на эмуляторе; в контуре — если ИС снова вернёт ошибку по второй части) |
| N15 | Т12 | загрузить, открыть ББ и ОФР | ББ: «Требуется проверка», «Проверки пройдены»; «ИНН —» с ⓘ «ИНН не найден», «Дата отчёта —» с ⓘ «Дата отчёта не разобрана»; «Предупреждения (3)», среди них «Информация: наименование «…» не совпало со справочным для кода 1530» со ссылкой «Показать»; две розовые строки «код не распознан» без сумм — подтверждение они не блокируют (ссылки «Разберите строки…» нет, «Подтвердить данные» активна); «Показать расшифровки (20)». ОФР: «Нарушения (1)» по 2300 = 2200 + 2310 + 2320 - 2330 + 2340 - 2350, «Предупреждения проверок (1)» по 2410 = 2411 + 2412 |
| N16 | PDF, который ИС не может разобрать (не отчётность, пустая страница) | загрузить | файл «Ошибка»; в списке значка — «Предупреждения файла»: «Ошибка» с текстом ИС (например, «INVALID_DOCUMENT: Не удалось определить тип документа») |
5.3 Шапка: организация, ИНН, дата, единицы
| № | Файл | Шаги | Ожидание |
|---|---|---|---|
| N17 | Т11 или Т14 | навести на поля шапки | подсказка «Распознано: «<текст>» · уверенность N%»; поле из списка «требует внимания» — оранжевое |
| N18 | Т11 (дата 31.12.2024 оранжевая, «Ошибка: Дата отчёта неуверенна…») | «Редактировать» → под полем даты «Подтвердить» (станет «Подтверждено») → «Сохранить» | дата та же, оранжевый фон снят, ошибка про дату исчезла из списка; изменения сохранены одним запросом |
| N19 | любая неподтверждённая форма | дата отчёта 2025-06-30 → «Сохранить»; затем 2025-09-15 → «Сохранить» → «Подтвердить данные» |
период документа пересчитан (2025 К2); у колонок с относительными подписями («На отчётную дату») даты пересчитаны; дата не на конец квартала — подтверждение: «… Исправьте дату отчёта в шапке и сохраните.» Дата вводится строго ГГГГ-ММ-ДД |
| N20 | любая неподтверждённая форма | ИНН 123 → «Сохранить»; затем ИНН другого ЮЛ |
123 — ошибка с текстом сервера (неверный ИНН), ничего не сохранено; другой ИНН — сохранено, поле голубое («Исходное: …»), в панели «Контрагент ✗» |
| N21 | Т5 | «Организация» — вписать наименование ЮЛ → «Сохранить» | сохранено, поле голубое (подсказки «Распознано» нет — в файле организации не было); «Контрагент» пересчитан; «Ошибка: В шапке нет ни организации, ни ИНН» снята. Текст длиннее 1000 символов — «Наименование организации — не длиннее 1000 символов», запрос не уходит |
| N22 | Т5 | «Единица измерения» → тыс. руб. → «Сохранить» |
сохранено, поле голубое. Очистить поле шапки нельзя — только заменить (как раньше). ОКУД, ОКПО, ОКЕИ, адрес на экране не показываются |
5.4 Строки и коды
Удобный файл — Т11 (пять строк без кода с суммами, расшифровки, сомнительные коды); на стенде контура — любой плохой скан, где после загрузки есть ссылка «Разберите строки без кода».
| № | Шаги | Ожидание |
|---|---|---|
| N23 | найти розовые строки | строка «код не распознан» стоит сразу под строкой, после которой она шла в файле (например, «12 /» — под предыдущей строкой раздела); в ячейке кода серый сырой текст, подсказка «Код не распознан: «12 /»». Строка «кода нет» — «—», подсказка «Кода в строке нет»; без строки выше — в начале первого раздела |
| N24 | включить «Показать расшифровки (N)» | расшифровки появились под своими строками с отступом, код пуст; оранжевой подсветки у их сумм нет, подсказка с распознанным текстом есть; выключить — скрыты. Итоги разделов и проверки расшифровки не учитывают |
| N25 | «Редактировать» → в поле «Код» розовой строки начать вводить 12 |
выпадает подсказка «1230 — Дебиторская задолженность» и т. п. (справочник редакции формы); выбрать → «Сохранить» → «Изменения сохранены»; строка переехала на место кода, не розовая, подсказка кода «Код назначен аналитиком»; счётчик «Разберите строки без кода» уменьшился; проверки пересчитаны |
| N26 | в поле «Код» ввести 12 или abc → «Сохранить» |
красная рамка у поля, «Код — 4 или 5 цифр», запрос не уходит |
| N27 | у розовой строки меню «⋮» → «Это расшифровка» → «Сохранить» | до сохранения у кода тег «→ расшифровка»; после — строка ушла в расшифровки (видна при включённом переключателе), счётчик «Разберите строки…» уменьшился |
| N28 | у обычной строки из файла «⋮» → «Сделать расшифровкой» → «Сохранить»; затем у неё же (в расшифровках) «⋮» → «Назначить код» → прежний код → «Сохранить» | строка ушла в расшифровки и её суммы перестали участвовать в проверках (могут появиться нарушения); после назначения кода — вернулась на место. У пустых строк бланка (достроенных) меню нет |
| N29 | у обычной строки «⋮» → «Сменить код» → другой код → «Сохранить» | строка переехала на место нового кода, подсказка «Код назначен аналитиком»; «⋮» → «Отменить изменение строки» до сохранения возвращает как было |
| N30 | строка с оранжевыми наименованием и кодом (подсказка кода «Уверенность кода: 50%») → «⋮» → «Подтвердить код» → «Сохранить» | тег «→ код подтверждён» до сохранения; после — подсветка снята, подсказка «Код подтверждён»; «⋮» → «Снять подтверждение кода» → «Сохранить» — подсветка вернулась |
| N31 | форма с законным повтором кода (ББ 2025 из 1С: две строки 1220 — «НДС, начисленный по отгрузке» и НДС по приобретённым ценностям; или 1520 «Обязательство по аренде») | обе строки видны, в порядке файла; в проверках §7 их суммы складываются; предупреждения о повторе нет |
| N32 | (спека) назначить пустой строке бланка X сумму → «Сохранить»; затем другой строке назначить код X → «Сохранить»; затем сделать оба действия одним сохранением |
409 у поля кода: текст сервера «код занят строкой, созданной правкой, с суммами», ничего не сохранено; одним сохранением — «Код X назначается строке, а в шаблонную строку X введены суммы — сохраните по очереди», запрос не уходит. Назначение кода, который уже есть у строки из файла, разрешено (повтор кода законен, см. M-1) |
5.5 Суммы и правка
| № | Шаги | Ожидание |
|---|---|---|
| N33 | Т11 или Т12: навести на оранжевую ячейку и на неподсвеченную | у обеих подсказка «Распознано: «…»», «Уверенность: N%»; неподсвеченная с уверенностью ниже 100 % — значит, её подтвердила сошедшаяся проверка (так задумано, Р-7) |
| N34 | «Редактировать» → сумма в ячейке → «Сохранить» | ячейка голубая, подсказка «Исходное: <было>»; проверки и статус пересчитаны; вернуть исходную сумму → голубой фон снят. Ввод abc или 1.234 — красная рамка «Неверный формат суммы», запрос не уходит |
| N35 | «Редактировать» → у оранжевой ячейки кнопка ✓ «Подтвердить значение» → «Сохранить» | до сохранения кнопка синяя, подсказка «Подтверждение будет сохранено — нажмите, чтобы убрать»; после — серая галочка перед суммой, оранжевый фон снят, ячейка не голубая, сумма прежняя; подсказка «Подтверждено аналитиком». Кнопка ↶ «Снять подтверждение» → «Сохранить» — подсветка вернулась. Ввод суммы в ту же ячейку отменяет подтверждение |
| N36 | ячейка с серым текстом (не число) → «Редактировать» | в поле ввода — пусто (нераспознанный текст не показан, M-3); вписать сумму → «Сохранить» → сумма, голубая |
| N37 | «Редактировать» → поменять суммы → «Отменить» | правки сброшены, запроса нет |
| N38 | (для тех, у кого есть доступ к БД аудита) после N34–N35 | одна запись RECOGNIZED_DATA_EDIT на одно сохранение с before/after |
5.6 Проверки §7
| № | Шаги | Ожидание |
|---|---|---|
| N39 | неподтверждённая форма без нарушений: увеличить сумму 1600 первой колонки на 100 → «Сохранить» | «Нарушения (N)»: «Колонка N: 1600 = 1100 + 1200 — ожидалось X, получено Y» и/или 1600 = 1700; ячейки соотношения оранжевые; статус «Требуется проверка». «Показать» прокручивает к строке (без рамки — F-1) |
| N40 | «Подтвердить данные» | красный блок с текстом сервера и списком нарушений; документ не подтверждён |
| N41 | «Принять с комментарием» при несохранённых правках; затем после сохранения | при несохранённых — кнопка неактивна, подсказка «Сначала сохраните изменения»; окно «Принять нарушения»: с пустым комментарием «Принять» неактивна; после — «Нарушения приняты» с датой и комментарием; «Подтвердить данные» проходит |
| N42 | после N41: подтвердить ячейку (N35) → «Сохранить»; затем изменить сумму → «Сохранить» | подтверждение ячейки, кода или даты принятие не сбрасывает; правка суммы сбрасывает («Нарушения приняты» пропал) |
| N43 | вернуть сумму 1600 → «Сохранить» | «Проверки пройдены»; статус «Требуется проверка» до ручного подтверждения (после правки форма не подтверждается автоматически) |
| N44 | в чистой форме очистить ячейку 1600 (пустое поле) → «Сохранить» | нарушение «1600 = 1100 + 1200 — цель не заполнена, получено <сумма>»: пустой итог при заполненных слагаемых — теперь нарушение |
| N45 | Т3 или Т4: блок «Предупреждения проверок (N)» | жёлтый, «Показать» у каждой строки; подтверждение не блокирует, «Принять» для них не нужно |
5.7 Подтверждение формы и блокировки
| № | Шаги | Ожидание |
|---|---|---|
| N46 | Т11, ББ: ссылка «Разберите строки без кода: 5» | клик — прокрутка к первой такой строке; «Подтвердить данные» неактивна. Разобрать все пять (назначить код или «Это расшифровка», N25/N27) → кнопка активна (останутся нарушения — их принять, N41) |
| N47 | (спека) книга Excel с двумя листами одной формы за один период (скопировать лист ББ с шапкой) | в файле два документа «Бух. баланс», оба «Требуется проверка» (ни один не подтверждается автоматически); подтвердить первый — проходит; второй — красный блок с текстом сервера и ссылкой «Открыть подтверждённую форму» |
| N48 | подтверждённая форма | «Редактировать» и «Подтвердить данные» неактивны, «Принять с комментарием» нет; читать и смотреть подсказки можно |
| N49 | Т13 или Т1 на ЮЛ с другим ИНН | «Требуется проверка», «Контрагент ✗»; ручное подтверждение проходит |
5.8 Повторная загрузка и автозамена
| № | Шаги | Ожидание |
|---|---|---|
| N50 | загрузить тот же файл ещё раз | «Отклонено: 1», «<имя> — файл «<имя>» уже загружен для этого ЮЛ» |
| N51 | форма ББ за период уже загружена; загрузить другой файл ББ того же ЮЛ и периода (например, тот же, пересохранённый в Excel) | старый файл «Заменён» (виден по переключателю «Все документы организации»), новая форма разобрана заново; подтверждённая старая форма тоже заменяется (как раньше). Подтвердить документ заменённого файла нельзя |
| N52 | Т4 подтвердить; затем тому же ЮЛ загрузить Т5 | файл Т4 «Заменён» файлом Т5 — известное замечание I-3 |
| N53 | после очистки: файл, где были только формы и который загружали до выкладки | загружается заново как новый, формы разобраны по новым правилам. Смешанный файл (ОСВ + формы), у которого удалены только формы, — «уже загружен» (раздел 3) |
5.9 Файлы с несколькими документами
| № | Файл | Ожидание |
|---|---|---|
| N54 | Т8 | два документа: «ОСВ <счёт>» и «Бух. баланс»; статус каждого — свой (ОСВ не ждёт формы и наоборот) |
| N55 | Т9 | «ОФР» и «Расшифровка»; приложения дают один документ «Расшифровка» вместо пяти — известное замечание M-9; документ «Расшифровка» не открывается (как раньше) |
| N56 | Т11 | ББ и ОФР из одного PDF; при ошибке по части ответа ИС («Предупреждения файла»: «Ошибка: … .json») ни один документ файла не подтверждается автоматически |
5.10 ОСВ не сломалась (регресс)
| № | Шаги | Ожидание |
|---|---|---|
| N57 | загрузить ОСВ из 1С (любой счёт), открыть | как раньше: «Загружен» для чистой ОСВ, «Требуется проверка» при чужой организации в шапке; экран «Просмотр ОСВ» — плоская таблица (колонки «Субсчёт», «Контрагент», «ИНН», шесть сумм, внизу «Итого по документу»), поиск «Контрагент или ИНН», фильтр «Субсчёт», «Строк: N»; над таблицей «Предупреждения (1)» — «Информация: иерархия строк — по группировке листа (outline)»; в панели у каждой ОСВ значок «ⓘ 1» (O-2). Суммы «Итого по документу» равны строке «Итого» файла |
| N58 | (окно перехода, если tabular-parser или scan-gateway ещё старые) загрузить ОСВ и форму | принимаются, экран работает; у форм все строки обычные, расшифровок и розовых строк нет; в значке документа — «Предупреждения файла» уровня «Информация» со старыми текстами (LEGACY_WARNING). Не баг — сообщите владельцу |
| N59 | ОСВ сч. 01 за 2-й или 3-й квартал без оборотов (Счастливочная 2025 Q2 / Q3) | «Требуется проверка» вместо «Загружен» — известное замечание I-5 |
5.11 Консолидация и сводная ОСВ (регресс)
Контрольные цифры — на комплекте РБ и Счастливочной (те же файлы, что в наших фикстурах osv/rb/, osv/schastl/,
22 ОСВ за 2024 Q1–Q3; порядок загрузки — qa-guide.md 7.1, W18). На других данных сравните свод с выгрузкой до
выкладки, если она есть.
| № | Шаги | Ожидание |
|---|---|---|
| N60 | версия «Русский Бисквит» 2024 К3, все 22 ОСВ подтверждены, «К отчётности →» | «Строк: 1385»; баннер «… Осталось: 1236.»; «Пробелы: 7» (РБ 01, 58.03, 66, 67, 76; Счастливочная 01, 02); фильтр «Тип контрагента»: «ГСК» — 10, «ГК» — 26, «Внешний» — 1349 строк (сумма 1385) |
| N61 | фильтры «Компания ГК» = Счастливочная, «Контрагенты» = бисквит |
«Строк: 6» (60.01, 60.02, 62.01, 62.02, 76.06, 76.АВ), суммы — как в qa-guide.md 7.2 и W32 |
| N62 | версия 2025 К1 тех же ЮЛ (16 ОСВ за 1 кв. 2025) | «Строк: 1421», пробелов нет |
| N63 | в версии загрузить и подтвердить ББ и ОФР ЮЛ за период версии | в «Организациях» у ЮЛ «Бух.баланс» и «ОФР» — «Загружен»; формы в свод ОСВ не входят; форма за другой квартал ячейку не закрывает |
| N64 | «Экспорт» свода | xlsx открывается, число строк = «Строк» на экране, лист «Пробелы» |
5.12 Права
| № | Пользователь | Шаги | Ожидание |
|---|---|---|---|
| N65 | только просмотр (эксперт) | открыть форму; «Редактировать» → «Сохранить»; «Принять с комментарием»; «Подтвердить данные» | форма и подсказки видны; каждое действие — уведомление с текстом сервера «недостаточно прав: требуется DOCUMENT_EDIT», ничего не изменилось |
| N66 | пользователь другого филиала | открыть форму ЮЛ чужого филиала по ссылке | «не найдено» (как у несуществующего документа) |
6. Известные замечания (не заводить как баги)
Найдены на приёмочных прогонах 18–19.10.2026, исправляются одной пачкой. Если видите то же самое — отметьте «известно, <номер>» и идите дальше. Если проявление другое или хуже — заводите баг со ссылкой на номер.
| № | Где | Как проявляется |
|---|---|---|
| I-1 | список «Нарушения» и «Предупреждения проверок»; заголовки колонок без подписи и даты | «Колонка N» — это номер столбца листа Excel (или таблицы ИС), а не порядковый номер колонки формы. Унагранде «Б.Б Лист 1» — «Колонка 25», «Колонка 29», «Колонка 36» (столбцы Y, AC, AJ листа) вместо 1, 2, 3; скан aep_3 — заголовки «Колонка 3», «Колонка 5», «Колонка 6». Сверяйте по подписи колонки или по порядку |
| I-2 | шапка формы из PDF | у «БО 1 кв 2025» (и aep_6) «Дата отчёта» пустая с «Информация: Дата отчёта не разобрана», а в подсказке поля «Распознано: «Общество с ограниченной ответственностью "Пекарня»» — ИС кладёт в поле даты текст организации. Период документа верный (по датам колонок) |
| I-3 | автозамена | страница 2 баланса без шапки («Лист 2», отдельный файл) того же ЮЛ и периода заменяет уже подтверждённую страницу 1 («Лист 1»): файл страницы 1 становится «Заменён». Склейки страниц из разных файлов нет (OQ-140) |
| I-4 | «Подтвердить данные» | подтверждение проходит у формы без единого значения (файл без колонки кодов — только пустые строки бланка) и у формы с предупреждениями уровня «Ошибка» («В шапке нет ни организации, ни ИНН» у страницы без шапки). Предупреждения «Ошибка» запрещают только автоподтверждение |
| I-5 | ОСВ | квартальная ОСВ сч. 01 без оборотов (Счастливочная 2025 Q2 и Q3) считается «нарастающей» и получает «Требуется проверка»; правило «нарастающая по данным Q1» — со Среза 2c, не новое (проверяется, регрессия ли) |
| M-1 | назначение кода | назначение строке кода, который уже есть у другой строки из файла, проходит без предупреждения. Так по правилам: повтор кода законен (Р-4), а ошибка «код занят» возникает только против строки, созданной аналитиком, с суммами. Нужна ли подсказка о повторе — вопрос владельцу |
| M-2 | API | уточнено, не дефект: PATCH …/statement с полем is_detail отклоняется (422), потому что такого поля нет; «сделать расшифровкой» — lines: [{line_id, line_status: "detail"}], экран отправляет именно так |
| M-3 | режим «Редактировать» | в поле суммы — сырое значение без форматирования («30127.00» вместо «30 127»); у ячейки с нераспознанным текстом (серый текст) поле пустое — текст в режиме правки не виден |
| M-4 | шапка | правка поля снимает только связанные с ним предупреждения «Ошибка» («В шапке нет ни организации, ни ИНН», «Отчётный период не определён», «Дата отчёта неуверенна…») и «Дата отчёта не разобрана». «Информация» «ИНН не найден», «ИНН распознан неуверенно», «Название организации распознано неуверенно», «Единицы измерения не найдены» остаются в списке и после исправления поля |
| M-5 | тексты | у форм, принятых от старого (1.x) и нового (2.0) сервиса, одни и те же ситуации описаны разными словами |
| M-6 | ОСВ | ОСВ в «Требуется проверка», хотя в её списке предупреждений только «Информация» (Агрокомплекс ОСВ 62 и 76 за 9 мес. 2025, НКЗ 58): причина (несошедшиеся суммы, признак «нарастающая») на экране не видна |
| M-7 | шапка формы из PDF | в «Организация» мусор: ведущее «:» и перенос строки внутри («Общество с ограниченной ответственностью "Пекарня : "Счастливочная""», «: Акционерное общество "Русский бисквит"»); у плохого скана — весь текст верха страницы |
| M-8 | тексты нарушений | при пустой стороне соотношения формулировки непонятны: «цель не заполнена, получено X» (пустой итог) и «ожидалось X, получено —» (пустые слагаемые); нарушения в списке идут не по порядку колонок |
| M-9 | книга с приложениями | несколько листов приложений (пояснения, ОДДС, отчёт об изменениях капитала) дают один документ «Расшифровка» вместо отдельного на каждый лист (st06: 5 → 1) |
| O-2 | панель «Первичные документы» | у каждой ОСВ под статусом синий значок «ⓘ 1» — это информационное «иерархия строк — по группировке листа (outline)» (OSV_HIERARCHY_BY_OUTLINE); шумит, ничего не значит |
| F-1 | экран формы | «Показать» в блоках «Нарушения» и «Предупреждения проверок» прокручивает к строке, но не обводит её рамкой (у «Показать» в «Предупреждениях» рамка есть) |
| F-2 | экран формы | значок ⓘ / ❗ слева от суммы стоит в разных строках на разной высоте и на разном расстоянии от края — колонка «прыгает» |
7. Что не считать багом (так задумано)
- Строки без кода, «в том числе …», строки с нечитаемым кодом теперь видны — раньше они пропадали молча (Р-8).
- Две строки с одним кодом — обе на экране, в проверках сумма (Р-4).
- Сомнительная ячейка (уверенность ниже 100 %, текст с мусором) без подсветки, если её подтвердила сошедшаяся проверка §7; сомнительный текст остаётся в подсказке (Р-7). Подсветки по уверенности «напрямую» нет.
- Суммы расшифровок не подсвечиваются, не входят в итоги, проверки, сводную ОСВ и КФО (Р-8, Р-23).
- Скан может подтвердиться автоматически — так задумано, если все проверки сошлись.
- Лист только с активом или только с пассивом (постраничная печать 1С) — нарушение
1600 = 1700и «Требуется проверка»: пустая сторона соотношения теперь нарушение. Решение — «Принять с комментарием» или загрузить файл с полной формой. - Мягкие соотношения («Предупреждения проверок»: подстроки 11501…, 2400, расхождение в пределах округления) и межформенная проверка ББ↔ОФР подтверждение не блокируют.
- Числа правее таблицы не попадают в форму (Р-44). Цена правила: настоящая колонка сумм без подписи справа тоже будет отброшена с «Информация» — если видите такую, это вопрос, а не баг.
- Некоторые «Ошибки» снимаются только перезагрузкой исправленного файла: колонки продолжения не совпали, строка заголовка не найдена, тип по кодам противоречит заголовку, потерянная часть ответа ИС, лист не присоединился, xlsb с подозрением на масштаб.
- Строки удалить нельзя (первичка не меняется); вывести строку из сумм — «Сделать расшифровкой».
- Строки на экране стоят по коду «как на бумаге», а не в порядке файла; строки без кода — под своей предыдущей строкой.
- Страницы одной формы из разных файлов не склеиваются (OQ-140); две половинки формы в одном файле — две формы (Р-15).
- Форма без колонки кодов строк из файла не получает (OQ-139) — только пустые строки бланка.
- Коды без образца в наших данных (66н: 2421, 2430, 2450; ФСБУ 4: 1120 и др.): сомнительный такой код на скане подсвечивается, пока аналитик его не подтвердит (Р-26).
- Значок с числом у документа считает и уже принятые нарушения; «Предупреждения обработки» в число не входят.
- После правки формы может появиться «Информация: форма распознана общим кодом версии …, в ядре версия …» — на окне выкладки это штатно.
- В контуре PDF распознаёт настоящая ИС Сканирование: уверенность и нечитаемые ячейки могут отличаться от описанных здесь для aep_3 / aep_6.
- Документ «Расшифровка» в панели не открывается (как раньше).
8. Как заводить баги
На стенде контура баг заводится задачей в Jira проекта AURORA, как остальные замечания тестирования. Шаблон описания —
qa-guide.md раздел 11; в задаче укажите, чей он, если понятно (экран — arm-web, API и данные — arm-core, распознавание
Excel — tabular-parser, PDF — scan-gateway; не уверены — по вкладке Network). Для форм ББ/ОФР дополнительно приложите:
- Файл (или обезличенную копию) и где он лежит на стенде: ЮЛ, имя файла, дата загрузки.
- id документа — из адреса страницы проверки (
…/documents/<id>). - Скриншот экрана проверки целиком (шапка, блоки нарушений и предупреждений, нужная строка; подсказку проблемной ячейки — отдельным скриншотом).
- Ответ
GET /documents/{id}/statement— вкладка Network браузера (запросstatement, вкладка «Response», сохранить как файл); для ошибки загрузки — ответGET /files/{file_id}(поляjob.warnings,job.error_code). - Номер сценария из раздела 5 и что ожидали.
- Для PDF — что видно на скане в этом месте (страница и строка) и что распознано (из подсказки ячейки).