Распознавание первичных документов: как это работает

Счета, накладные, акты и УПД приходят в бухгалтерию сканами, фотографиями и PDF — а попасть должны в учётную систему строками с суммами, ставками НДС и номенклатурой. Разбираем, как устроено распознавание первичных документов, почему точность на реальном потоке ниже обещанной и какие данные нужны, чтобы обучить или дообучить модель под ваши формы.

Автор: Редакция DataMarkupОпубликовано: 2026-07-29
Распознавание первичных документов: как это работает — иллюстрация к статье

Что такое распознавание первичных документов?

Распознавание первичных документов — автоматическое извлечение из счетов, накладных, актов и УПД тех данных, которые бухгалтер иначе вбивает руками: номера и даты, контрагента, позиций номенклатуры, количества, сумм и ставок НДС. На выходе получается не текст, а структура, которую учётная система принимает как проводку или документ.

Разница принципиальна. Распознать текст на скане — задача OCR, решённая давно. Понять, что число 18 900 — это сумма с НДС из итоговой строки, а не количество в третьей позиции, — задача извлечения структуры, и именно на ней проекты спотыкаются.

Как устроено распознавание документов: этапы обработки

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

Почему точность на реальном потоке ниже обещанной?

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

Самые частые источники ошибок на первичке:

  1. Разные макеты поставщиков. Один и тот же счёт у двух контрагентов выглядит по-разному.
  2. Табличная часть. Многострочные позиции, переносы на следующую страницу, объединённые ячейки.
  3. Печати и подписи. Оттиск поверх суммы делает цифры нечитаемыми для модели.
  4. Фотографии вместо сканов. Перекос, тень от руки, блик от лампы.
  5. Сокращения номенклатуры. «Кабель ВВГнг 3х1.5» в каталоге и в счёте поставщика записаны по-разному.

Как измерить качество распознавания документов?

Правильная метрика — доля документов, которые прошли без единой правки человеком, а не средняя точность по символам. Дополнительно считают точность по критичным полям отдельно: ошибка в сумме или ИНН дороже, чем опечатка в наименовании. Замер делают на отложенной выборке реальных документов, не участвовавшей в обучении.

Полезно разделять ошибки на две группы: пропущенные поля (модель не нашла) и неверно извлечённые (нашла не то). Первые обычно чинятся расширением обучающей выборки, вторые — уточнением правил разбора макета.

Какие данные нужны, чтобы модель работала на ваших документах?

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

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

Как распознанные документы попадают в 1С?

Распознавание само по себе даёт только структуру полей — ценность появляется, когда эта структура становится документом в учётной системе. Для 1С это означает три вещи: загрузку через обработку или HTTP-сервис, сопоставление строк со справочником номенклатуры и очередь на подтверждение для полей, в которых модель не уверена.

Именно интеграция, а не само чтение текста, обычно занимает больше всего времени на проекте. Справочник номенклатуры у каждой компании свой, названия товаров у поставщиков не совпадают с внутренними, а типовая конфигурация чаще всего доработана. Как мы это делаем на практике — на странице распознавания первичных документов в 1С.

Частые вопросы

Чем распознавание документов отличается от обычного OCR?

OCR превращает картинку в текст. Распознавание документов идёт дальше: определяет тип документа, находит смысловые поля — номер, дату, контрагента, суммы, ставку НДС — и собирает из них структуру, пригодную для загрузки в учётную систему. Текст без структуры бухгалтерии бесполезен.

Какая точность считается нормальной?

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

Почему модель ошибается на наших документах?

Чаще всего потому, что таких форм не было в обучающей выборке. У каждого поставщика свой макет счёта, свои сокращения номенклатуры и расположение реквизитов. Модель, обученная на чужих документах, переносит опыт частично — прирост даёт дообучение на ваших формах.

Какие данные нужны для обучения такой модели?

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

Можно ли распознавать документы без передачи их наружу?

Да, если модель разворачивается в вашем контуре. Тогда документы не покидают периметр, а подрядчик работает с обезличенной или согласованной выборкой для обучения. Это стандартный сценарий для организаций с требованиями к защите данных.

Нужна такая задача на практике?

Опишите, что у вас за данные и какая цель — вернёмся с планом, сроком и оценкой в течение рабочего дня.

Не любите формы — напишите на info@datamarkup.ru

Смотрите также

Telegramответим за 15 минут