Начните бесплатный 3-дневный пробный период
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.


Чтобы извлечь позиции счёта с помощью ИИ, сначала определите, что считается одной строкой, сохраните исходное значение и координаты на странице, а затем пересчитайте суммы детерминированными формулами. ИИ может предложить структурированную строку, но не вправе объявлять пропуск, дубликат, конфликт валют или расхождение итогов несущественным.
Ответственный процесс работы с ИИ особенно важен для счетов: аккуратный JSON ещё не доказывает правильность чтения. Извлечение, расчёт и бухгалтерское одобрение должны оставаться разными этапами.
Ключевые выводы
- Присвойте каждому счёту и каждой видимой строке стабильный идентификатор и указатель на источник.
- Храните исходный текст рядом с нормализованными полями; никогда не перезаписывайте доказательства.
- Разделяйте количество, цену без налога, скидки, сборы, налог и округление.
- Пересчитывайте строки и контрольные итоги вне модели.
- Передавайте людям пропущенные, продублированные, неоднозначные и несовпадающие записи.
Позиция счёта — минимальная выставленная единица, которую процесс будет утверждать, сверять, проводить или оспаривать. Обычно это одна видимая строка товара или услуги, но строка-продолжение, объединённое описание, кредитовая строка, промежуточный итог, доставка или налоговая сводка могут выглядеть на странице похоже. Определите гранулярность до извлечения, чтобы модель не объединяла и не делила строки ради аккуратной таблицы.
Peppol Billing разделяет строки, скидки, сборы, налоговые категории и денежные итоги и задаёт расчётные связи.[1]Европейская комиссия описывает европейский стандарт электронных счетов как семантическую модель для совместимого обмена.[2]UBL 2.1 также предоставляет отдельные структуры для строки, цены, количества, AllowanceCharge, налога и итогов.[3]Это полезные ориентиры для проектирования полей, а не универсальные налоговые или бухгалтерские инструкции.
Запишите правило строк для вашего набора документов:
| Объект на странице | Обработка |
|---|---|
| Товар или услуга | Отдельная кандидатная строка |
| Продолжение описания | Присоединять только после проверки макета |
| Колонтитул | Метаданные документа |
| Скидка или сбор | Хранить на указанном уровне |
| Налоговый итог | Не смешивать с товарными строками |
| Подытог или сумма к оплате | Контрольное значение, не покупка |
Если счета приходят в PDF, сначала примените процесс извлечения таблиц из PDF. Страница с выделяемым текстом, отсканированными пикселями, несколькими таблицами или повёрнутыми разделами может требовать разных методов извлечения даже в одном файле.
Присвойте исходному файлу неизменяемый ID поступления и запишите имя файла, время получения, число страниц, напечатанное имя поставщика, номер и дату счёта, валюту и разрешённый ключ поиска дублей. Оригинал храните в управляемой системе-источнике; не делайте ИИ архивом.
До извлечения строк зафиксируйте видимые контрольные значения документа, не интерпретируя их:
Если поле отсутствует, пишите Не указано, а не ноль. Ноль — финансовое значение, а отсутствие — состояние доказательства. Если на разных страницах указаны разные валюты или номера счёта, сохраните оба наблюдения и откройте исключение, а не выбирайте более правдоподобное.
Используйте схему, по которой можно восстановить, что увидел извлекатель и что изменила нормализация. Практичный минимум:
| Поле | Назначение |
|---|---|
| ID поступления / счёта | Связь с зафиксированным оригиналом |
| ID кандидатной строки | Стабильная идентичность внутри счёта |
| Страница и область | Координаты, таблица/строка либо эквивалент |
| Исходный текст строки | Дословное доказательство для проверки |
| Ссылка поставщика на строку | Напечатанный номер или «Не указано» |
| Описание / код позиции | Отдельные текст и идентификатор без догадок |
| Количество / код единицы | Исходное и нормализованное значения |
| Чистая цена / базовое количество | Цена и количество, к которому она относится |
| Скидка / сбор строки | Сумма, причина и уровень |
| Налоговая категория / ставка | Только напечатанное, без вывода о юрисдикции |
| Указанный итог строки | Напечатанная сумма |
| Рассчитанный итог строки | Детерминированный пересчёт |
| Уверенность извлечения | Сигнал маршрутизации, не доказательство |
| Исключение / проверяющий / статус | Решение человека и история проверки |
Для чисел разделяйте raw_value, normalized_value и normalization_rule. Десятичные и групповые разделители, скобки, конечный минус и валюту разбирайте по утверждённому правилу. После извлечения используйте руководство по очистке таблиц, не изменяя исходную запись.
Обрабатывайте одну страницу или ограниченную таблицу за раз. Просите модель вернуть строки по схеме, а также несопоставленный текст и структурные предупреждения. Она не должна сводить баланс счёта, добавляя вероятно пропущенный товар, копируя значение из строки выше или превращая нечитаемый символ в удобное число.
Извлеки только видимые данные строк из заданной области. Сохрани исходный
текст, координаты, ID кандидатной строки, запрошенные поля, пунктуацию,
знаки, разделители, валюту, единицы и состояния отсутствия. Не объединяй
строки, не определяй налог, не чини итоги и не создавай значения.
Неуверенное разбиение и несопоставленный текст направь в исключения.
Полезные структурные предупреждения: строка переходит на другую страницу, заголовки повторяются внутри таблицы, сумма стоит отдельно, у описания нет числовых ячеек, изображение закрывает текст, для одного поля есть две возможные колонки. Оценки уверенности помогают расставить приоритеты проверки, но даже высокая оценка не заменяет сверку с источником.
Нормализуйте только после сохранения исходных значений. Например, 1.250,00 в одной системе записи означает 1250,00, а 1.250 в другой может быть и целым числом с разделителем групп, и десятичной дробью. Модель не может разрешить такую неоднозначность по одному форматированию: нужны подтверждающие метаданные документа или решение человека. Разбирайте знаки, разделители, проценты, единицы и валютные коды по документированному правилу локали и поставщика; неоднозначность не должна молча превращаться в число. Используйте десятичную арифметику нужной точности, не двоичные числа с плавающей точкой, и утверждённую точку округления; не округляйте каждый промежуточный результат автоматически.
Определите формулу до её применения. Упрощённая формула суммы строки:
итог строки = количество × чистая цена ÷ базовое количество − скидки + сборы
Это контрольная формула, а не универсальное налоговое правило: в некоторых документах база цены, скидки, сборы, налоги, кредиты или округление выражены иначе. Peppol публикует явные правила расчёта и округления для счетов своего профиля.[1] Применяйте их, только если счёт и процесс действительно подпадают под эту спецификацию.
Сохраняйте версию формулы, входы, результат до округления, операцию округления, рассчитанное и указанное значение и разницу. Разницу классифицируйте по утверждённым допускам. ИИ может объяснить, какой вход вызвал расхождение, но арифметику должен выполнять детерминированный код или проверенная таблица.
Проверьте обязательность полей, диапазоны, знаки, валюты и координаты через контрольный список валидации данных.
Считайте итоги по слоям, чтобы расхождение оставалось диагностируемым:
Таблица сверки должна показывать название контроля, указанную и рассчитанную суммы, валюту, разницу, правило допуска, статус и проверяющего.
Не суммируйте валюты. Разделяйте валюту счёта и валюту налогового учёта, применяя только разрешённое правило пересчёта; отсутствие документного курса не разрешает подставить текущий рыночный. Сопоставление двух таблиц помогает сравнить результат с заказом или реестром, но арифметика самого счёта должна пройти отдельно.
Одни итоги не доказывают полноту: пропущенная и продублированная строки одинаковой суммы могут взаимно компенсироваться. Сочетайте арифметические проверки со структурными:
Не удаляйте дубликат автоматически: две одинаковые услуги могут быть законными, а повторное извлечение одной области — нет. Решение подтверждают координаты и человек.
Создайте очередь исключений по счетам: серьёзность, ID счёта и строки-кандидата, координаты, исходное доказательство, нарушенное правило, разницу, владельца, решение, причину и ревизию. Задайте правила остановки. Например, неоднозначная идентичность счёта, конфликт валют, отсутствие обязательных координат или несверенная сумма к оплате должны блокировать проведение согласно утверждённой политике.
Категории: нечитаемо, конфликт разбиения, пропущенная строка, возможный дубль, конфликт валют, ошибка формулы, налоговая проверка и несовпадение контрольного итога. Описание с низкой уверенностью иногда можно проверять без блокировки арифметики, но границу задаёт политика, не модель.
На запуске независимо сравните с изображением оригинала каждое поле риск-ориентированной выборки и все исключения. Измеряйте ошибки полей, сегментации, пропуски, дубли, арифметические расхождения, сбои отдельных поставщиков или макетов и исправления. Общая точность документа может скрывать ошибки важнейшего поля. Повторяйте тест после изменения OCR, модели, промпта, схемы, макета поставщика или расчётного правила. Храните источник, версии извлекателя, схемы и расчёта, решения проверяющего и историю исправлений. Минимизируйте данные до доступа модели и работайте в разрешённой среде. NIST отмечает риски конфабуляции, приватности, целостности информации и взаимодействия человека с ИИ.[4]
Точность зависит от макета, качества скана, языка и поля. Используйте проверку на уровне полей, детерминированные итоги и риск-ориентированное одобрение человеком; не считайте гладкий вывод или один тест основанием для проведения.
Обычно нет. Храните видимые подытоги как контрольные значения, если утверждённая схема явно не задаёт им другую роль: учёт подытога как покупки дублирует сумму.
Использовать Не указано, Нечитаемо или Неприменимо, но не ноль и не соседнее значение.
Он может переписать указанную ставку и отметить конфликт. Применимость определяет квалифицированный налоговый или бухгалтерский специалист с учётом юрисдикции, фактов сделки и действующих правил.
Пропущенная и продублированная строки могут компенсировать друг друга, а неверное количество — маскироваться неверной ценой. Помимо итогов проверяйте охват источника, идентичность строк и значения полей.
Сохранять знак и роль документа, затем применять утверждённое правило, не переворачивая знак ради баланса.
Не по умолчанию. Сохраните каждую указанную валюту и доказательства пересчёта из документа. Отсутствующий или противоречивый курс передайте уполномоченному проверяющему.
После существенных изменений модели, OCR, промпта, схемы, макета или расчётов и при мониторинге исправлений.
Отказ от ответственности: материал содержит общую информацию об обработке документов и контролях, а не бухгалтерскую, налоговую, юридическую или аудиторскую консультацию. Значимые решения должны утвердить квалифицированные специалисты.
Sources checked 6 сентября 2026 г.
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.





