Чому вилучення даних із чеків ламається на потоці
Конвеєр обробки первинних документів рідко ламається на одному документі — він розсипається на потоці. Скани з БФП надходять упереміш із фото з телефона під кутом і за поганого світла, банківські вивантаження — з факсами та повторними надсиланнями.
Вилучення даних із чеків, налаштоване на рівні квитанції, на такій суміші втрачає рядки позицій і плутає податок із підсумком.
Друга точка відмови — розмітка самого чека. Розпізнавання чеків упирається не в текст, а в геометрію: найменування позиції переноситься на два рядки, кількість і ціна стоять в окремих колонках, знижка йде від'ємною сумою, повернення — окремим блоком унизу.
Типові помилки розпізнавання виглядають саме так: зліплені рядки, втрачена кількість, сума, приписана не тій позиції.
Далі — вивантаження. Правильно прочитаний чек потрібно розкласти за полями облікового контуру: номенклатура, кількість, ставка податку, підрозділ — щоб дані лягли в 1С без ручного доналаштування.
Тут помилки не падають, а накопичуються, і частка ручного введення реквізитів не знижується: оператор усе одно перевіряє кожне поле.
Платить за це не відділ введення, а звірка. Втрачений рядок не блокує приймання — він спливає пізніше, коли акт підписано, а розбіжність потрібно пояснювати.
Точність за документом тут нічого не показує: чек із сорока позицій іде на ручне виправлення цілком, хоча тридцять дев'ять рядків прочитано правильно.
Далі розбираємо, як це закривається — контролем на рівні полів, а не документа.
Що змінюється після впровадження: точність, швидкість, контроль
Перший зсув видно на вході: автоматизація введення документів знімає з оператора рутинне розкладання — потік розбирається пакетами, і час від завантаження скана до готового запису в обліковій системі скорочується з хвилин до секунд на документ.
Вузьке місце переїжджає туди, де воно й має бути: у перевірку спірних випадків, а не в перенесення цифр руками.
Другий зсув — частка документів, які проходять весь маршрут без жодної правки. На типових чеках із рівним сканом це близько дев'яти з десяти: поля позицій, підсумок, дата й номер зіставляються з еталонною схемою, і оператор їх навіть не відкриває.
Залишок — зім'яті, засвічені й повернуті бланки, нечитабельний шрифт у позиціях — іде в чергу ручної перевірки з підсвічуванням сумнівних полів.
Третій зсув — характер помилок. Зникають не «будь-які помилки», а конкретні класи: втрачені рядки в довгих чеках, переплутані позиції за схожих найменувань, арифметичний розбіг між сумою позицій і підсумком. Такі розбіжності система ловить на етапі розбору й позначає, замість того щоб тихо занести в базу.
Четвертий зсув — керованість. Частка ручних правок стає метрикою, видимою за днями та за типами постачальників: якщо на конкретній мережі точність розпізнавання просідає, це помітно до того, як розбіжності накопичаться у звітності.
Поріг упевненості налаштовується, тому потік можна вести в суворому режимі або з розширеним автоприйманням — під конкретний ризик.
Розпізнавання чеків: шаблони, моделі та гібридні схеми
Вилучення даних із чеків будується трьома способами, і вибір між ними визначає не «просунутість» технології, а стабільність постачальника документів.
Якщо мережа працює з одним-двома типами касової стрічки, жорсткий шаблон дає максимальну швидкість і передбачуваний результат; якщо постачальники й форми змінюються щотижня, шаблон розсипається на першій же зміні верстки.
На змішаному потоці частіше виграє гібридна схема: документ спочатку проходить дешеву класифікацію за геометрією та якірними зонами, і лише чеки, де шаблон не дав упевненості за ключовими полями, ідуть на модель. Так масовий однотипний потік обробляється без перенавчання під кожну нову касу.
| Режим | Коли підходить | Обмеження |
|---|---|---|
| Шаблонне розпізнавання | Один-два типи кас, стабільна верстка, фіксовані зони реквізитів | Ламається при зміні форми чека; на кожну точку потрібен свій набір шаблонів |
| Модельне розпізнавання | Різнорідний потік, різні постачальники, скани й фото під кутом | Потребує розмітки та постійного контролю якості; рідко вживані форми дають просідання |
| Гібридна схема | Змішаний потік: масовий однотипний плюс нестандартні чеки | Дорожче в підтримці: потрібні обидві гілки й правила маршрутизації між ними |
Вибір режиму обробки фіксується в конфігурації й не потребує переписування логіки розбору: новий шаблон підключається окремо від моделі.
Це дає змогу стартувати з простого варіанта, а в міру зростання кількості постачальників переводити на модель лише ту частку потоку, де впевненість шаблону падає.
Як ми ведемо впровадження: від розбору сканів до передачі
Впровадження розпізнавання починаємо не з налаштування, а з розбору вхідного потоку: скани зім'ятого паперу, фото під кутом, знімки екрана, вивантаження з пошти та касових програм.
Поки не видно розподілу типів документів і полів, будь-яка оцінка точності — це оцінка на зручних прикладах. Тому етапи проєкту вибудовуємо так, щоб заявлений результат підтверджувався на вашій тестовій вибірці, а не на демонстраційних чеках.
- Аудит вибірки: збираємо 300–500 реальних документів, розмічаємо поля вручну та фіксуємо еталон — базу для подальшої перевірки точності.
- Схема потоку: визначаємо, звідки надходять файли, у якому вигляді йдуть дані в облікову систему, що робити з дублями та обрізаними полями.
- Налаштування вилучення: під типові макети задаємо зони реквізитів, для решти — довідник постачальників і звірку підсумкової суми із сумою позицій.
- Замір на тестовій вибірці: точність вважаємо за кожним полем окремо — дата, сума, номер, реквізити, — інакше загальний відсоток маскує провал на важливому реквізиті.
- Поріг упевненості: поле нижче порога йде оператору разом із фрагментом зображення, а не мовчки потрапляє в базу.
- Дослідна експлуатація: кілька тижнів система працює паралельно з ручним введенням, розбіжності розбираємо й доналаштовуємо правила.
- Передача та супровід: віддаємо конфігурації, схему потоку, регламент розбору помилок і порядок донавчання на нових типах чеків.
Що залишається у вас на руках: артефакти та регламенти
Проєкт із розпізнавання чеків закінчується не демонстрацією, а передачею робочого контуру: налаштувань, схем, правил і документів, за якими система живе далі без автора. Нижче — що саме фіксується в передаваному комплекті й навіщо кожна позиція потрібна вашій команді.
- Конфігурації вилучення — набори налаштувань під кожен тип документа (касовий, товарний, корпоративний чек), пороги впевненості, за яких поле вважається розпізнаним, і правила розбору нестандартних колонок.
- Схема обробки документів — покроковий маршрут: приймання файлу, підготовка зображення, вилучення реквізитів, перевірка, вивантаження в облікову систему. Із зазначенням точок відмови та того, що відбувається з чеком у кожній із них.
- Правила валідації реквізитів — звірка суми позицій із підсумком, контрольні розряди ІПН, відповідність ставки податку та суми, відсікання дат поза допустимим періодом. Окремо описано, що система відхиляє сама, а що йде на ручну перевірку.
- Довідники та словники — номенклатура, контрагенти, ставки податку, а також порядок їх поповнення: хто вносить нову позицію і як вона потрапляє в розбір.
- Документація проєкту — опис логіки розбору, відомі обмеження, типові причини падіння точності та послідовність дій за їх появи.
- Регламент супроводу — хто відповідає за контур, у який термін реагує на розбіжність у вивантаженні та як зміна правил проходить перевірку перед випуском.
- Інструкція для операторів — як працювати з чергою ручної перевірки, які правки допустимі, як виправлення повертається в налаштування й стає частиною навчального набору.
Комплект пишеться так, щоб новий інженер або оператор розібрався в системі без звернення до нас — це і є критерій приймання, а не список файлів в архіві.
Потік первинних документів: метрики до та після
Замовник — оптова компанія з розподіленими поставками: близько 12 000 первинних документів на місяць надходило в бухгалтерію фото та сканами.
Оператор вводив реквізити руками, один документ займав 3-5 хвилин, до кінця періоду черга накопичувалася, а закриття місяця зсувалося на кілька днів.
Метрики до та після
| Показник | До впровадження | Після |
|---|---|---|
| Точність вилучення полів на потоці | 91-93% за ручного введення (помилки уваги) | 94% на повному потоці, без вибірки |
| Час обробки одного документа | 3-5 хвилин ручного введення | 12-18 секунд, включно із завантаженням |
| Частка документів із ручною правкою | 34% | 9%, здебільшого зім'яті та засвічені скани |
| Закриття періоду | 3 робочі дні на розбір черги | розбір іде в день надходження |
Що змінили: налаштували маршрутизацію за впевненістю моделі — поля з низькою довірою не «додумуються», а йдуть оператору з підсвічуванням сумнівного фрагмента.
Так досягається точність на потоці: система чесно віддає на перевірку те, де сумнівається, замість тихої підстановки неправильного значення. Результати розбору складаються в 1С, звірка з постачальниками йде за розпізнаними реквізитами.
Що дало ефект
Окремо налаштували контроль якості: щотижня звіряємо випадкову вибірку розпізнаних документів із вихідниками й фіксуємо, які типи бланків просідають — правки в правила вилучення вносяться точково, без перенавчання всього конвеєра. На потоках з однотипними бланками постачальників частка правок опускається до 3-4%.
Ручна праця не зникла, а змістилася: оператор розбирає лише спірні документи замість усього потоку. Черга на закритті періоду перестала бути вузьким місцем — вузьке місце тепер там, де його видно й можна порахувати.
Що робити, якщо частина документів — фото з телефона
Фото з телефона — повноцінний вхідний формат, але не «як є». Відмінностей від скана чотири: нерівномірна освітленість із тінями та засвітами, геометричні викривлення через нахил, шум сенсора за слабкого світла і змаз від руху.
Модель, навчена на рівних сканах, втрачає точність на такому вході не через «поганий зір», а тому що зображення символів фізично інше.
Тому перед розпізнаванням іде попередня обробка зображень. Спочатку знаходимо межі документа та вирівнюємо його за чотирма кутами перспективним перетворенням — нахил перестає впливати.
Потім оцінюємо різкість: якщо кадр змазано так, що штрихи злилися, він не йде в конвеєр, а одразу позначається на повторне знімання. Далі — локальна бінаризація за адаптивним порогом: вона утримує тінь по краю чека там, де глобальний поріг «з'їдає» половину рядка. Наприкінці нормалізуємо контраст, і вицвілий термопапір читається майже як новий.
Після попередньої обробки знімок за властивостями наближається до скана, і далі працює та сама логіка, що для документів із роликовою подачею.
Стійкість розпізнавання дає не одна модель, а розбір за структурою: спочатку знаходимо очікувані зони реквізитів, потім розпізнаємо вміст поля.
Там, де значення перевіряється формально — номер, сума, дата, — вмикається валідація та автокорекція схожих символів (нуль і O, одиниця й l, вісім і B). Помилку, яку ловить арифметика, людині віддавати не потрібно.
Ключовий прийом — поріг упевненості. Поле, розпізнане з низькою впевненістю, не вгадується: фрагмент підсвічується й іде в чергу ручної перевірки як одна позиція, а не як увесь документ.
Тому якість сканів перестає бути загальним множником — частка автозаповнення рахується за підсумком, а спірні кадри розбираються точково.
На практиці конвеєр приймає JPEG, PNG, HEIC і PDF-скани, розбирає кілька чеків на одному фото та знімки з кас різних виробників — від АТОЛ і далі: кегль, шаблон друку та розташування рядків у них відрізняються, гілка розбору підбирається за геометрією документа.
Єдине, що варто закріпити в інструкції для співробітників, — знімати чек цілком і не під гострим кутом: це дешевше, ніж відновлювати нечитабельний кадр вручну.
Технічні питання, які задають до старту
Перед стартом інженерні команди задають приблизно одні й ті самі питання: що буде з новими типами документів, як влаштовано доступ до даних, як розбираються помилки та чи можна нарощувати охоплення поетапно. Нижче — відповіді по суті, без загальних слів.
Чек нового формату зламає розпізнавання?
Схема вилучення спирається на розмітку сутностей — номер, дата, сума, позиції, — а не на жорсткий зразок друкованої форми. Поки набір полів той самий, новий тип документа проходить через той самий маршрут обробки.
Донавчання потрібне лише там, де змінюється структура табличної частини: це кілька днів роботи, а не перезапуск проєкту.
Як ви отримуєте доступ до наших даних?
Обробку можна розгорнути на вашій стороні, де лежать документи, або забрати лише той масив, який потрібен для запуску. Персональні дані вирізаються на вході, до вилучення реквізитів, — назовні йде знеособлений результат. Права на вибірку обмежуються роллю сервісного облікового запису.
Як розбираєте помилки розпізнавання?
Кожна розбіжність потрапляє в журнал із зазначенням поля, документа та версії схеми. Тому видно, де втрачається точність: на якості скана, на нестандартній верстці чи на конкретному реквізиті. За цими зрізами будуємо звіт і закриваємо системну причину, а не одиничний випадок.
Чи можна розширювати охоплення поетапно?
Так, і це бажаний шлях. Починаємо з одного типу документа та одного каналу надходження, заміряємо точність на контрольній вибірці, звіреній вручну, і лише потім підключаємо решту. Так розширення спирається на підтверджені цифри, а не на припущення.
Обговоримо задачу та повернемося з оцінкою й планом
Розмова про впровадження розпізнавання починається не з презентації, а з матеріалів. Щоб повернутися з оцінкою обсягу робіт і реалістичним планом впровадження, а не із загальними словами, нам достатньо такого набору:
- вибірка чеків у вихідній якості — 30–50 штук, включно з зім'ятими, засвіченими та знятими під кутом: на них одразу видно, де модель втрачає реквізити;
- список полів, які потрібно вилучати, із позначкою, які критичні (сума, ставка ПДВ, дата, номер документа), а які бажані;
- еталонний розбір за 10–15 чеками з тієї ж вибірки — значення, перевірені вручну, з ними ми порівняємо результат розпізнавання;
- опис приймача даних: куди йде результат (облікова система, сховище, таблиця) і в якому форматі його чекають;
- профіль потоку: скільки документів за добу в середньому та в пік, чи потрібна обробка в момент сканування або допустима пакетна;
- обмеження за контуром: де дозволено розміщувати дані та хто отримує до них доступ.
За цими матеріалами ми робимо пробний запуск на вибірці та показуємо точність за кожним полем окремо, а не одну усереднену цифру — так видно, який реквізит доведеться донавчати.
Далі узгоджуємо план впровадження: етапи, точки контролю якості, порядок розбору помилок на ваших же документах. Опишіть задачу та надішліть вибірку — повернемося з оцінкою й планом.







