OCR или парсер счетов: где заканчивается текст и начинаются данные
OCR превращает картинку в текст. Парсер превращает документ в поля: номер, дата, сумма, НДС, позиции. Для учёта нужен второй, а не первый.
Разница видна на первом же счёте. OCR вернёт вам строку «Итого 12 480,00» — и дальше вы сами решаете, где сумма, а где номер договора. Парсер вернёт поле total = 12480.00 и поле invoice_number = 412, потому что он знает, что ищет.
| Критерий | Подход A | Подход B |
|---|---|---|
| Что на входе | Картинка или PDF | PDF, фото, скан, XML, QR |
| Что на выходе | Текст, иногда с координатами | Поля документа и строка таблицы |
| Электронные счета (XML) | Читает как текст, теряя структуру | Читает как данные, без распознавания |
| Ошибки в суммах | Обычное дело: 0 и O, 1 и l | Сверка контрольных сумм, расхождение видно |
| Много счетов в одном PDF | Один текст на весь файл | Разбивка по документам и страницам |
| Выгрузка в учёт | Нет | DATEV EXTF, 1С, UBL, CSV, Excel, JSON |
Практический вывод: OCR нужен, когда у вас архив документов и надо найти в них слово. Парсер нужен, когда документы идут потоком и должны попадать в учёт. Это разные задачи, и путать их дорого: OCR экономит минуту на наборе, но не убирает набор.
Можно ли использовать OCR, а потом вручную разложить по полям?
Можно, но это и есть ручной ввод: вы смотрите в текст и печатаете в поля. Экономия — только на поиске нужной строки, а не на работе.
Парсер ошибается?
Ошибается, если документ нестандартный или поля нет в документе. Отличие в том, что ошибку видно сразу — по несовпадению сумм, а не через месяц при сверке.