Охайна таблиця може приховувати складне питання: звідки взялося це значення? Поки поля з актів, рахунків і договорів переносять вручну, відповідь зазвичай знає той, хто їх переносив. Коли перенесення автоматизоване, знати відповідь має сама система.
Ця стаття — про перенесення даних із документів у таблицю чи облікову систему: як зберігати підставу для кожного поля, перевіряти значення перед експортом і не втрачати зміст таблиць. Якщо задача інша і співробітникам треба знаходити в документах відповіді на запитання, почніть зі статті про те, що підготувати в документах перед впровадженням AI-пошуку, і зі сторінки пошуку відповідей у документах.
Почніть з однієї ручної передачі
З фразою «треба автоматизувати роботу з документами» працювати не можна: вона надто широка. Візьміть одну передачу, яку зараз хтось виконує вручну, і дайте відповідь на чотири запитання:
- Хто отримує документ?
- Які дані він переносить?
- У яку систему?
- Як він розуміє, що крок завершено?
Умовний приклад: офіс-менеджер отримує від підрядника акт поштою, переносить у таблицю номер, дату, суму й номер договору та позначає рядок як готовий для бухгалтерії.
Додайте ще два запитання, про які часто забувають. Наскільки якісні вихідні дані? Що людина робить, якщо в документі немає потрібного поля або його доводиться уточнювати у відправника? Зазвичай найбільше часу йде саме на такі винятки.
Потім перевірте API, права доступу й обмеження вибраних систем. Із назв сервісів не випливає, що їх можна поєднати. Розбір може закінчитися по-різному: автоматизувати одну обмежену передачу, спершу навести лад у вихідних даних або змінити сам процес. Домовтеся про наступний крок до початку розробки.

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