Приёмка: весь путь на «Примере 2» — от выбора примера до чтения текста

Проверка шла на работающем сервисе, в настоящем браузере, теми же действиями, что делает человек: клики мышью по кнопкам и протяжка мышью по скану. Взят «Пример 2», страница 1, вкладка «После выравнивания». Пройден путь целиком: выбор примера → автоматическое выравнивание → «Найти структуру» → ручная дорисовка мышью → «Сохранить эталон» → повторный автопоиск → «Читать текст». Дополнительно проверено, что у остальных четырёх примеров «Найти структуру» тоже не ломается.

Что прошло, а что нет

Шаг путиРезультат
Выбрать «Пример 2» кнопкой Да. Загрузился скан, включилось автоматическое выравнивание.
Вкладка «После выравнивания» Да, переключается и остаётся активной весь сценарий.
Кнопка «Найти структуру» Да. Найдено ячеек — 112, линий — 65. Сверка с ранее сохранённым эталоном: линий совпало 22 из 24, ячеек совпало 44, ещё 68 добавлено по эталону — итого 112.
Шапка товарной таблицы размечена ячейками Да. Все 16 колонок шапки («Код товара/ работ услуг» … «Регистрационный номер декларации») получили свои границы и попали в сетку отдельными ячейками (снимки 2 и 4). Раньше на этом самом примере шапка не размечалась вовсе.
Крайний правый столбец на месте Да. Столбец «11» («Регистрационный номер декларации…») виден в сетке по всей высоте таблицы, правый край сетки доходит до 97% ширины листа (снимок 3). Раньше этот столбец полностью выпадал.
Ручная дорисовка мышью («+ ячейка») Да. Протяжка мышью в свободной зоне листа добавила ячейку, подпись сменилась на «Добавлено вручную: ячеек — 1».
«Сохранить эталон» Да. Подпись «Эталон сохранён: линий — 24, ячеек — 1» — дорисованное вручную вошло в сохранённый эталон.
Повторный автопоиск после сохранения Да, отработал без ошибок, результат тот же (112 ячеек) — новый эталон не разрушил то, что уже находилось само.
Кнопка «Читать текст» Да. Подпись «Готово: ячеек 112 (заполнено 67), свободных зон 3».
Многострочный текст в ячейках цел Да. Проверено на шапке (например, «Наименование товара (описание | выполненных работ. оказанных услуг), имущественного права» — три строки скана слиты в одну запись без потери и без повтора) и на многострочных описаниях товаров.
Ошибки на странице / в консоли браузера Ни одной за весь прогон, от выбора примера до чтения текста.

Что не сошлось

НаблюдениеПояснение
45 ячеек из 112 в разборе текста пустые Часть пустых ячеек законна — это правда пустые клетки макета (например, строка «Всего к оплате» занимает не все колонки). Но два конкретных столбца шапки — самый первый («Код товара/ работ услуг») и узкий столбец «№ п/п» — распознаются пустыми во всех строках, хотя на скане текст в них виден глазами (снимок 4): это узкие и слегка скошенные ячейки, движку распознавания текста тяжело их прочитать. Это не про сетку — границы этих ячеек на месте и посчитаны верно; это про качество самого распознавания текста внутри уже правильно найденной ячейки, а движок распознавания в этот шаг менять не входило.
Качество текста в узких столбцах шапки низкое В колонках «Код вида товара», «Условное обозначение (национальное)», «Налоговая ставка» и похожих текст читается с ошибками («циница . мерения» вместо «единица измерения» и т. п.). Причина та же: мелкий повёрнутый шрифт и шум скана — движок распознавания текста не дорабатывался в этом шаге по прямому ограничению задачи.

Остальные четыре примера — поиск структуры не ломается

ПримерРезультат «Найти структуру»
Пример 1Найдено: ячеек 266, линий 58. Без ошибок.
Пример 3Найдено: ячеек 26, линий 61. Без ошибок.
Пример 4Найдено: ячеек 82, линий 38. Без ошибок.
Пример 5Найдено: ячеек 306, линий 78. Без ошибок.

Полный путь (выравнивание → структура → ручная дорисовка → сохранить → повтор → чтение текста) в этой проверке пройден только на «Примере 2» — это и была задача шага. На остальных четырёх — быстрая проверка, что общий шаг «Найти структуру» их не задел.

Снимки экрана

1. Весь рабочий экран после полного прохода: «Пример 2» выбран, найдена структура (112 ячеек, 65 линий), внизу слева видна дорисованная вручную ячейка (пунктирная рамка), эталон сохранён, справа снизу — прочитанный текст по 112 ячейкам.
Экран целиком после полного сценария
2. Шапка таблицы крупно: каждая из 16 колонок («Код товара/ работ услуг» … «Регистрационный номер…») размечена своей ячейкой, границы видны как линии сетки.
Шапка таблицы с размеченными ячейками
3. Правый край листа крупно: столбцы «Страна происхождения» и «Регистрационный номер декларации» на месте, с текстом в ячейках («10228020/030224/5014388/3» и т.п.).
Правый край таблицы с ячейками
4. Левый край шапки крупно — иллюстрация замечания выше: столбцы «Код товара/ работ услуг» и «№ п/п» на скане читаются глазами, но в разборе текста для них пусто.
Левый край шапки таблицы крупно

Вывод

Весь сценарий на «Примере 2» проходит подряд без единой ошибки, и оба главных требования из прошлых доработок теперь выполняются: шапка размечена отдельными ячейками, а правый столбец таблицы больше не теряется. Ручная дорисовка, сохранение эталона, повторный автопоиск и чтение текста работают как единая цепочка — то, что дорисовано руками, переживает сохранение и попадает в итоговый разбор. Многострочный текст в ячейках цел, задвоений не найдено.

Не идеально — но не про сетку. Два узких столбца шапки читаются с пустым текстом, а несколько других — с шумом в тексте. Это ограничение движка распознавания текста на мелком повёрнутом шрифте, а не задачи по сетке линий и ячеек: доработка самого распознавания в этот шаг не входила по прямому ограничению задания.