Аккуратная таблица может скрывать трудный вопрос: откуда взялось это значение? Пока поля из актов, счетов и договоров переносят вручную, ответ обычно знает тот, кто их переносил. Когда перенос автоматизирован, знать ответ должна сама система.
Эта статья о переносе данных из документов в таблицу или учётную систему: как хранить основание для каждого поля, проверять значения перед экспортом и не терять смысл таблиц. Если задача другая и сотрудникам нужны ответы на вопросы по документам, начните со статьи о том, что подготовить в документах перед внедрением AI-поиска, и со страницы поиска ответов в документах.
Начните с одной ручной передачи
С фразой «нужно автоматизировать работу с документами» работать нельзя: она слишком широкая. Возьмите одну передачу, которую сейчас кто-то делает руками, и ответьте на четыре вопроса:
- Кто получает документ?
- Какие данные он переносит?
- В какую систему?
- Как он понимает, что шаг завершён?
Условный пример: офис-менеджер получает от подрядчика акт по почте, переносит в таблицу номер, дату, сумму и номер договора и отмечает строку как готовую для бухгалтерии.
Добавьте ещё два вопроса, о которых часто забывают. Насколько хороши исходные данные? Что человек делает, если в документе нет нужного поля или его приходится уточнять у отправителя? Обычно больше всего времени уходит как раз на такие исключения.
Затем проверьте API, права доступа и ограничения выбранных систем. Из названий сервисов не следует, что их можно связать. Разбор может закончиться по-разному: автоматизировать одну ограниченную передачу, сначала навести порядок в исходных данных или изменить сам процесс. Договоритесь о следующем шаге до начала разработки.

У каждого поля есть происхождение
Вместе с предложенным значением храните его основание:
- документ — его идентификатор, а не только имя файла;
- версию документа или дату, когда он получен;
- страницу и фрагмент, откуда взято значение;
- кто предложил значение: правило, модель или человек;
- текущий статус поля.
Тогда проверяющий сразу открывает нужное место документа, а не ищет его заново по всему архиву. А через полгода на вопрос «почему у этого договора такой срок оплаты» можно ответить, открыв конкретную страницу, а не поднимая переписку.
Предложенное значение отдельно от утверждённого
Предложенное и утверждённое значения — два разных поля. В экспорт попадают только утверждённые. Утвердить значение может правило, если значение есть в документе, подтверждено фрагментом и проходит проверки. Если основание неоднозначное, утверждает человек.
Исправления должны оставлять след. Когда проверяющий меняет значение, сохраняйте исходное предложение, исправление и причину. Со временем по этой истории видно, где извлечение ошибается систематически: например, путает дату документа с датой подписания в одном конкретном шаблоне.
Правдоподобное не заменяет отсутствующее
Если значения в документе нет, поле так и помечается: «нет в документе». Подставлять похожее значение из другого документа или «типичное» нельзя.
Оценка уверенности извлечения — полезный сигнал, но не повод игнорировать противоречие в самом источнике. Сумма цифрами расходится с суммой прописью, итог таблицы не равен сумме строк: такое поле уходит на проверку, даже если модель «уверена».
Проверка перед экспортом
Прежде чем значения уйдут в таблицу или учётную систему, ответьте на три вопроса:
- Есть ли обязательное значение и подтверждает ли его источник?
- Соответствует ли оно правилу для этого типа документа? Например, номер договора есть в справочнике договоров, а валюта совпадает с валютой договора.
- Кто вправе утвердить значение, если основание неоднозначное?
Третий вопрос организационный, и ответить на него нужно до запуска. Иначе спорные поля будут копиться без хозяина.
Таблица должна сохранить смысл
В PDF таблица может выглядеть нормально, а после извлечения текста потерять смысл. Число само по себе ничего не значит: смысл у него появляется только вместе со строкой, заголовком столбца, единицей измерения и сноской. Как проверить, что система вообще правильно прочитала таблицу, мы описали в статье о подготовке документов для AI-поиска. Для переноса данных добавьте ещё несколько проверок.
- Единица — отдельным полем. Если в заголовке написано «в тысячах», а в ячейке «120», в экспорт должно попасть «120» с единицей «тыс.» или пересчитанное значение, но не голое «120».
- Пустая ячейка, ноль и «не применяется» — разные значения. Прочерк, пробел и «0» нельзя сводить к одному. Договоритесь, как каждый из них записывается в экспорт.
- Пустые ячейки сдвигают значения. При извлечении текста пустая ячейка может просто исчезнуть, и значение из соседнего столбца окажется не на своём месте. Сверьте вручную несколько строк с пропусками.
- Сноска — часть значения. Если цена действует только для заказов от 10 единиц, это условие должно попасть в экспорт вместе с ценой.
Возьмите таблицу из реальной задачи и сравните результат с оригиналом построчно: к какой строке относится каждое значение, где указана единица, какое условие добавляет сноска. Пусть владелец документа проверит и значения, и фрагменты, на которые они опираются. Если структура потерялась, исправьте представление таблицы и повторите проверку. До этого таблица не считается проверенным источником для этой задачи.
Когда источник меняется
Поставщик прислал исправленный акт, вышла новая редакция договора, обновился прайс-лист. Поля, извлечённые из старой версии, нужно отметить для повторной проверки, прежде чем снова использовать экспорт. Ссылка на версию в каждом поле помогает найти все затронутые значения, а не перепроверять всё подряд.
Не перезаписывайте молча. Утверждённое значение из прежней версии остаётся в истории, а поля новой версии снова проходят путь «предложено — проверено — утверждено». Если старые данные уже ушли дальше, заранее решите, кто об этом узнаёт и что с ними делать.
Чек-лист
- Описана одна ручная передача: кто получает документ, какие данные, куда и как понять, что шаг завершён.
- Известно, что делать, если данных нет или документ требует уточнения.
- API, права и ограничения систем проверены до начала разработки.
- У каждого поля хранятся документ, версия, страница и фрагмент.
- Предложенное и утверждённое значения хранятся раздельно, в экспорт попадают только утверждённые.
- Отсутствующее значение помечается, а не подставляется.
- Перед экспортом проверяются наличие значения, правило для типа документа и право утверждения.
- Исправления хранят исходное значение, новое значение и причину.
- В таблицах сохраняются заголовки, единицы и сноски, а пустые ячейки отличаются от нулей.
- При новой версии документа затронутые поля уходят на повторную проверку.
С чего начать
Возьмите один тип документа и согласуйте список полей. Опишите ручную передачу по четырём вопросам выше. Соберите небольшой набор реальных документов, включая неудобные: сканы, таблицы с пропусками, исправленные версии. Результат первого пилота — экспорт, который можно проверить: у каждого значения есть ссылка на источник, а рядом лежит список исправлений с причинами. Если вам нужен такой перенос из почты или папки в таблицу, посмотрите сценарий «Документы → таблица» на странице автоматизации процессов.
Если в вашей команде есть документ, который до сих пор перепечатывают вручную, опишите этот процесс нам в Telegram (@infracortex_studio): для первого разговора хватит описания шагов, без внутренних документов и персональных данных.
