Proje vitrini hazırlanıyorPreparing project showcaseПодготавливаем витрину проекта

Бухгалтерия

OCR чеков и счетов: как превратить бумажные расходы в данные

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

Rocketly · 2026-09-05

Четвёртое число, 21:40. Человек, который ведёт первичный учёт, разложил на кухонном столе пятьдесят шесть чеков: восемь заправочных, две курьерские квитанции, счёт из канцелярского магазина, четыре чека за платную дорогу и три обеденных чека с уже выцветающими краями. На экране пустая таблица, курсор стоит в колонке «Поставщик». Цифры здесь условные, но стол узнаваемый. Деньги уже ушли, расход уже совершён; не хватает только строки, которая его фиксирует. Пока этой строки нет, компания не знает своих затрат — она видит лишь, что остаток на счёте стал меньше.

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

Почему бумажный чек теряется всегда в одной и той же точке?

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

Вторая проблема — сама задержка. Если провести расход через тридцать дней после покупки, запись останется верной, но перестанет быть полезной. В середине месяца вы не ответите на вопрос «куда уходят деньги в этом месяце», потому что половина расходов ещё не в системе. Запоздалый ввод расхода — проблема не бухгалтерии, а управления. Именно здесь проявляется ценность того, чтобы вести учёт доходов и расходов в режиме реального времени: правильной цифры мало, она должна появиться до решения, а не после.

Третья проблема в том, что ввод данных — самая скучная работа в офисе, поэтому её откладывают чаще всего. Вручную забить пятьдесят шесть чеков — монотонный труд, требующий внимания и не дающий никакого удовлетворения. Чем дольше откладываешь, тем больше стопка; чем больше стопка, тем сильнее хочется отложить. OCR решает не проблему скорости набора, а именно этот цикл накопления: задача, которая занимает тридцать секунд в момент покупки, не превращается в четырёхчасовой вечер в конце месяца.

Какие поля OCR действительно вытаскивает из чека?

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

В модуле первичного учёта Rocketly функция Умное распознавание чеков (OCR) связывает этот второй этап с формой расхода: вы фотографируете чек или счёт, а поставщик, дата, НДС и сумма считываются и подставляются в форму расхода за вас. Важное различие: функция заполняет форму, но не подтверждает запись вместо вас. Машина выдаёт предложение, решение принимает человек. Именно это различие удерживает весь процесс в безопасных рамках.

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

Насколько сама фотография меняет результат распознавания?

Большая часть претензий к качеству OCR относится не к движку, а к входным данным. Термобумага выцветает от тепла, солнца и трения; верхняя половина чека, пролежавшего в кошельке два месяца, может стать нечитаемой. Программно это не лечится. Лечится привычкой снимать чек в день покупки.

Привычки, которые действительно работают, укладываются в короткий список:

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

Вместо того чтобы навязывать это команде как регламент, полезнее сделать съёмку в момент покупки максимально лёгкой. Через тридцать секунд после оплаты чек чистый, свет обычно нормальный, а контекст ещё в голове. Через три недели все три проблемы приходят одновременно.

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

Это самое важное проектное решение при внедрении OCR. Писать распознанные данные сразу в остатки и отчёты кажется быстрым решением, но одна неверно прочитанная сумма тихо портит картину месяца. Правильный подход — держать результат работы машины в зоне ожидания и связывать финансовый эффект с подтверждением человека.

В Rocketly это разделение реализовано через Финансовые черновики: поступления и платежи сохраняются как черновики, не затрагивая остатки, очередь черновиков находится в отдельном рабочем пространстве, поэтому необработанная запись не искажает баланс контрагента, а когда данные дополнены, запись одним действием превращается в финансовое движение. Практический итог: каждая строка, созданная OCR, сначала находится в статусе ожидания и попадает в отчёты только после того, как её кто-то посмотрел. Скорость сохраняется, точность не приносится в жертву.

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

Какие поля можно доверить машине, а какие должен проверять человек?

Проверять все поля с одинаковой тщательностью — значит вернуть обратно всё время, сэкономленное OCR. Задача не в том, чтобы убрать контроль, а в том, чтобы сосредоточить его там, где реально возникают ошибки. Разделение ниже можно использовать как черновик внутреннего правила; конкретные пороги устанавливайте исходя из объёма документов и требований вашего бухгалтера.

ПолеЧто делает машинаГде ошибаетсяРекомендуемая проверка
Итоговая суммаЧитается с наибольшей точностьюОбрезанный нижний край, две строки итогаБеглый взгляд; при расхождении переснять
ДатаСчитывается и приводится к форматуПорядок дня и месяца, двузначный год, времяОбязательно проверять на стыке периодов
ПоставщикИзвлекается из шапки документаТорговая марка против юридического названияСовпадение с карточкой подтверждает человек
Ставка и сумма НДСПытается разделить по ставкамНесколько ставок в одном чеке, спецрежимыПроверка человеком в каждом случае
Категория расходаПредполагается по поставщикуРазные по сути траты у одного поставщикаВыбор оставить на экране подтверждения

Логика простая: машина хорошо читает форму и плохо оценивает смысл. Сумма — это форма, категория — это смысл. Поэтому экономия времени приходит со стороны сумм и дат, а качество сохраняется тем, что человек остаётся на категориях и налоге.

Если кассовый чек — не счёт, чем отличается запись расхода?

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

Практическое правило: тип документа лучше выбирать при загрузке, а не оставлять на догадку OCR. Чек, счёт поставщика, банковская выписка и платёжная квитанция идут разными маршрутами: один создаёт строку расхода, другой лишь закрывает платёж. Один и тот же документ, вошедший через две разные двери и создавший две записи, — самая частая причина задвоенных расходов. Необязывающие документы требуют такой же аккуратности; понимание того, чем проформа отличается от официального счёта, изначально предотвращает попадание не того документа в расходы.

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

По какому курсу учитывается валютный чек?

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

На стороне Rocketly функция Мультивалютность и курс центрального банка фиксирует это решение вместе с записью: документы можно оформлять в USD, EUR, GBP и других валютах, курс на момент документа сохраняется, а сумма пересчитывается в базовую валюту по ежедневно публикуемым значениям центрального банка. Ключевой момент — курс хранится вместе с записью, поэтому спустя месяцы вопрос «по какому курсу пересчитана эта строка» решается по данным, а не по памяти. Учётную сторону курсовых разниц мы разбирали подробнее в материале про работу с валютой и курсовые разницы.

Одно предупреждение: пустое поле курса в валютной записи бьёт не только по самой строке, но и по отчётам. Валютные позиции без сохранённого курса не попадают в прогноз денежного потока, и на экране об этом сказано прямо. Это видимое предупреждение, а не тихий пропуск, — но читать предупреждения тоже нужно привыкнуть.

Если электронные счета приходят автоматически, зачем всё ещё нужен OCR?

Для закупок внутри цепочки электронных документов OCR не нужен: данные уже приходят структурированными. В Rocketly функция Расходы из входящих электронных счетов использует это напрямую: вы задаёте период, ваши входящие электронные счета превращаются в черновики расходов, а каждый документ переносится один раз по своему уникальному идентификатору, поэтому задвоенных записей не возникает. В этом маршруте понятия «ошибка распознавания» нет, потому что обрабатывается не изображение, а документ с готовыми полями.

Зона OCR — всё, что остаётся за пределами этой цепочки: кассовые чеки, парковочные и дорожные квитанции, мелкие наличные покупки, часть счетов поставщиков, которые всё ещё приходят на бумаге, и документы из-за рубежа, не попадающие в местную систему электронных документов. То есть это не конкуренты, а две ветки одного конвейера. Понимание того, какой документ приходит по какой ветке, экономит больше всего времени при настройке, а первый шаг такого разделения — прояснить разницу между электронным счётом и электронным архивом.

Соотношение веток со временем меняется. По мере расширения охвата электронных документов доля OCR уменьшается, но не обнуляется: мелкие, спонтанные и бумажные траты остаются в любом бизнесе. За изменением охвата для своей компании нужно следить; материал о том, как устроены сроки обязательности и пороги по обороту, даёт рамку, а своё положение уточняйте у бухгалтера.

Как в поток попадают личные траты сотрудников?

В компаниях с выездными командами большая часть чеков вообще не принадлежит бэк-офису: они выходят из кармана техника, менеджера по продажам или курьера. Это порождает две отдельные задачи: отразить расход и учесть долг перед сотрудником. Если система их не разделяет, конец месяца превращается в восстановление ответа «кому и сколько мы должны» по переписке в мессенджере.

В Rocketly сторону Личные траты сотрудников закрывает отдельный блок: траты, оплаченные сотрудником из своих денег, и возмещения отслеживаются, а выписка по сотруднику показывает, кому и сколько вы должны. В связке с OCR поток упрощается до пяти шагов: тот, кто заплатил, фотографирует чек; запись падает черновиком; бэк-офис подтверждает категорию и НДС; в выписку сотрудника попадает строка долга; после возмещения строка закрывается.

Чтобы это прижилось в команде, достаточно одного правила: нет фотографии — нет возмещения. Звучит жёстко, но выполняется легко, потому что съёмка занимает тридцать секунд прямо у кассы. Альтернатива — спорить в конце месяца о чеке, которого уже не существует.

Как в конце месяца сверить данные OCR с банковскими движениями?

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

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

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

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

Как выглядит тридцатидневный переход от бумаги к данным?

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

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

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

Чтобы проверить всё на своих документах, откройте аккаунт Rocketly и прогоните через поток несколько собственных чеков.

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

Прочитает ли OCR выцветший термочек?

Частично. Если часть печати исчезла полностью, движок не выдумает недостающее поле: обычно сумма считывается, а строка поставщика или налога остаётся пустой. Поэтому базовая рекомендация — снимать в день покупки. Нераспознанные поля вы дозаполняете вручную и затем превращаете черновик в финансовое движение.

Попадает ли расход из OCR сразу в отчёты?

По замыслу — нет. Распознанные данные ждут в статусе черновика, и поскольку очередь черновиков находится в отдельном рабочем пространстве, необработанная запись не искажает баланс контрагента. Запись становится финансовым движением и попадает в отчёты только после подтверждения.

Что будет, если загрузить один и тот же чек дважды?

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

Сколько нужно хранить бумажные чеки?

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