Это учебный разбор постановки задачи. Возьмём вымышленную просьбу «перенесите данные из PDF-счетов в таблицу» и покажем, как превратить её в ограниченную задачу с проверяемым результатом. Документы и ожидаемые значения ниже заданы для примера.
Такой пример полезен, если документы приходится открывать по одному и переписывать сведения вручную. Вместо обещания «распознать любые счета» сначала договоримся, какие файлы обрабатываются, что попадёт в реестр и куда отправлять исключения.
Исходная просьба и четыре учебных файла
Представим, что сотруднику нужен реестр счетов: поставщик, номер, дата, итоговая сумма, валюта и имя исходного файла. Для обсуждения первой версии зададим четыре вымышленных документа:
- schet-101.pdf — текстовый PDF согласованного образца: «Учебный поставщик А», счёт 101 от 1 октября 2026 года, 12 500 рублей.
- schet-102.pdf — второй текстовый PDF того же образца: «Учебный поставщик Б», счёт 102 от 2 октября 2026 года, 8 400 рублей.
- schet-101-copy.pdf — точная копия первого файла с другим именем.
- scan-103.pdf — изображение бумажного счёта без текстового слоя.
Этот набор поможет согласовать результат до разработки: исполнителю понятны исходные условия, а заказчику — ожидаемая судьба каждого документа.
Где провести границу первой версии
Ограничим задачу одним согласованным образцом текстового PDF. Программа должна извлекать заданные поля, проверять их наличие и формировать реестр. Документы с другим расположением полей, паролем или отсутствующим обязательным значением нужно показывать в отчёте, а не заполнять догадками.
Текстовый PDF и скан требуют разного подхода. Например, библиотека pypdf извлекает текстовый слой, но не выполняет OCR и не извлекает текст непосредственно из изображения. Это различие объясняется в официальной документации pypdf. Поддержку сканов и проверку распознанных значений выделим в отдельный этап.
Также не включаем в первую версию загрузку документов в бухгалтерскую систему, оплату счетов и автоматическое исправление реквизитов. Цель этого этапа — подготовить данные для проверки сотрудником.
Как должен выглядеть ожидаемый реестр
Для учебного примера выберем файл Excel в формате XLSX. Если нужен CSV, до работы согласуйте кодировку, разделитель, запись дат и чисел, затем проверьте открытие в используемой программе. Фраза «выгрузить в таблицу» эти детали не определяет.
Ожидаемые строки основного листа в нашем примере:
| Источник | Поставщик и номер | Дата | Сумма, RUB |
|---|---|---|---|
| schet-101.pdf | Учебный поставщик А, № 101 | 2026-10-01 | 12 500,00 |
| schet-102.pdf | Учебный поставщик Б, № 102 | 2026-10-02 | 8 400,00 |
В самом файле поставщик и номер должны занимать отдельные колонки; здесь они объединены для компактного показа. Суммы согласуем как числовые значения, валюту — отдельным полем. Контрольная сумма двух учебных строк составляет 20 900 рублей. По этому эталону можно проверить будущую обработку.
Что делать с повтором и сканом
Точная копия schet-101-copy.pdf не должна добавлять третью строку в основной реестр. В отчёте обработки для неё нужен статус «Повтор» и указание исходного документа. Правило касается именно одинакового содержимого: совпадение одного имени файла или номера счёта не делает документы равными.
Для scan-103.pdf ожидается статус «Требуется ручная проверка» с причиной «Нет доступного текстового слоя». Файл должен остаться доступен сотруднику. Номер и сумма из такого документа не попадают в подтверждённый реестр автоматически.
Таким образом, для четырёх входных файлов предусмотрены две строки реестра, одна отметка о повторе и один документ для ручной проверки. Отдельный журнал должен объяснять судьбу каждого файла, включая успешные.
Критерии приёмки вместо общего «всё работает»
- Обе ожидаемые строки совпадают с эталоном по всем согласованным полям.
- Суммы записаны числами, даты открываются в согласованном формате, источник каждой строки указан.
- Точная копия отмечена как повтор и не увеличивает итоговую сумму.
- Скан находится в списке ручной проверки; отсутствующие значения не выдуманы.
- Для каждого входного файла есть понятный статус и причина исключения, если она требуется.
- Повторный запуск на том же наборе выполняется по согласованному правилу: пересоздаёт отдельный отчёт или корректно дополняет существующий.
- Исходные документы сохраняются, а сотрудник получает инструкцию запуска и разбора ошибок.
Перед приёмкой исполнитель и заказчик должны согласовать сам образец PDF и подготовить обезличенные примеры. Четыре файла проверяют перечисленные ситуации, но не доказывают поддержку любых поставщиков и вариантов оформления.
Как превратить разбор в собственную заявку
Пример формулировки: «Нужно собирать реестр из PDF-счетов одного образца. Поля: поставщик, номер, дата, итоговая сумма, валюта, исходный файл. Результат — XLSX и журнал обработки. Точные повторы исключаются из реестра, сканы и неоднозначные документы передаются на ручную проверку. До разработки согласуем образец и эталон ожидаемых строк. Поддержка OCR и загрузка в учётную систему в этот этап не входят».
Добавьте сведения о количестве документов, частоте обработки, используемой ОС и желаемом сроке. Для обсуждения подготовьте обезличенные образцы. Если форматы отличаются, перечислите их: оценка одного шаблона не распространяется автоматически на все остальные.
Чтобы обсудить такую автоматизацию, разместите задачу на НейроБирже. Начать можно с исходной просьбы своими словами, а этот учебный разбор использовать как ориентир для уточнения результата.