Короткий ответ
Половина срока по конвейеру закрывающих документов уходит на вёрстку шаблонов под бухгалтерию, а путь исключения в распознавании отделяет полезную таблицу от чистой таблицы с неверными числами.
Половина срока уходит на вёрстку шаблона, и это написано прямо в прайсе
В каталоге VIT Market услуга называется «Конвейер закрывающих документов: счёт, акт, УПД по одному клику», и срок у неё указан так: «⏱ 2-4 дня, из них половина — вылизывание вёрстки шаблонов под требования бухгалтерии». Прайс-листы обычно не признаются, куда именно уходит время, а здесь признание вынесено в саму строку срока. Сгенерировать PDF из строки таблицы — работа на утро. Вторая половина срока тратится на то, чтобы страница выглядела ровно так, как бухгалтерия принимает её без разговоров.
Это не мелочь округления, это форма всей задачи. Закрывающий документ — юридический объект, приемлемость которого решается его поверхностью: где стоит блок реквизитов контрагента, в каком порядке идут колонки, продублирована ли сумма прописью под цифрами, продолжает ли номер ту серию, которую компания ведёт с января. Ни один пункт из этого списка не относится к бизнес-логике. Всё это вёрстка, и каждого пункта по отдельности достаточно, чтобы документ вернулся обратно.
Команда, которая закладывает в бюджет «генератор PDF», закладывает лёгкую половину и будет удивлена второй. Довольно быстро выясняется, что бухгалтер не отклоняет документы из-за неверной арифметики: арифметику софт считает правильно с первого раза и продолжает считать правильно всегда. Документы возвращаются потому, что строка с НДС сформулирована так, что бухгалтерия контрагента её не принимает, или потому, что блок подписи стоит там, где сканер его обрежет.
Поэтому честнее читать диапазон «2-4 дня» как две работы примерно одинакового объёма под одним ценником. Первая механическая и заканчивается по расписанию. Вторая — переговоры с людьми, которые годами возвращают документы и точно знают, как выглядит правильный, но обычно формулируют это только после того, как увидят неправильный. День, заложенный на этот разговор, — не запас на всякий случай, а та часть, от которой зависит, выйдет ли проект в работу вообще.
Что на самом деле сжато в «одном клике»
Описание услуги точно указывает источник документа: «Из строки в таблице или сделки в CRM автоматически рождается счёт и акт по фирменному шаблону, в PDF, с корректной нумерацией и суммой прописью, и сразу уходит клиенту на почту». Прочитайте это как пять отдельных ручных шагов, которые раньше делал один человек, переключаясь между четырьмя окнами, и формулировка «по одному клику» перестанет звучать как реклама и начнёт звучать как техническое задание.
Первый шаг — нумерация, и его чаще всего пропускают мимо ушей. Порядковый номер — это разделяемое состояние. Два человека, выставляющие счета в одну минуту, не должны получить один номер; документ, сформированный для предпросмотра и не отправленный, обязан либо занять номер, либо явно его не занимать; аннулированный документ оставляет дыру, которую кому-то потом придётся объяснять. Это решения, которые покупателю стоит принять осознанно, а не унаследовать по умолчанию.
Второй шаг — сумма прописью, и именно это поле тихо разрушает доверие. Оно обязано совпадать с цифрой до копейки, подчиняться грамматике языка, на котором печатается, и корректно проходить неудобные случаи: ноль копеек, круглые тысячи, суммы на границе склонения. Генератор, который один раз напишет эту строку неверно, будут перепроверять руками всегда, а это возвращает бухгалтера ровно в ту позицию, из которой услугу покупали, чтобы его убрать.
Пятый шаг — «сразу уходит клиенту на почту» — превращает конвейер из внутреннего удобства во внешнее обязательство. Как только документы уходят автоматически, самой отправке нужен след: какая версия какого шаблона ушла на какой адрес и в какую минуту, и что происходит, когда адрес отбивает письмо. Без такого следа спор о том, отправляли документ или нет, становится невыигрываемым, и конвейер не убрал проблему, а переставил её на шаг вправо.
«Бухгалтер перестаёт быть узким горлышком» — что это значит на календаре
Описание услуги заканчивается сухой фразой: «Бухгалтер перестаёт быть узким горлышком». Стоит уточнить, что именно здесь утверждается, потому что это не утверждение о медленном бухгалтере. В большинстве компаний бухгалтер быстрый, а очередь всё равно длинная, потому что закрывающие документы приходят к нему последовательно, пачкой, в конце периода, от людей, каждый из которых считает свою просьбу маленькой и срочной одновременно. Просьба маленькая, а очередь из маленьких просьб собирается в один день и упирается в одного человека с ограниченным рабочим временем.
У такого горлышка характерная форма: нагрузка не размазана, она пиковая. Три недели документы не нужны никому, потом двадцать штук нужны в один день, обычно накануне дедлайна. Наращивание мощности пик не лечит, потому что три недели эта мощность простаивает. Лечит снятие последовательности — то есть генерация из строки CRM вместо заявки в чат, где документ появляется тогда, когда произошло коммерческое событие, а не тогда, когда до заявки дошли руки.
Есть второй эффект, который редко попадает в обоснование бюджета и стоит дороже сэкономленных минут. Когда выставление документа мгновенно, документы выставляют в момент события. Отсчёт срока оплаты начинается раньше, спорные позиции всплывают, пока детали ещё свежи, а разрыв между «работа сдана» и «документ выставлен» перестаёт быть местом, где выручка тихо стареет и превращается в неприятный разговор в конце квартала. Документ, выставленный через две недели после сдачи работы, продлевает отсрочку ровно на эти две недели, и никакая скорость оплаты потом их не вернёт.
В каталоге у услуги стоит уровень сложности «Дорого и сложно», и с учётом сказанного эта отметка относится к согласованиям, а не к коду. Трудная часть — не генератор. Трудная часть — договориться между продажами, производством и бухгалтерией о том, какое именно событие в CRM даёт документу право появиться на свет, и удержать эту договорённость после того, как кнопка заработает и станет по-настоящему быстрой.
Входящий поток: формат здесь задаёте не вы
Исходящая задача ограничена, потому что шаблон ваш. Входящая не ограничена ничем, и именно поэтому вторая услуга этой пары стоит принципиально других денег. В каталоге она называется «Распознавание счетов, накладных и договоров в структурированные данные», лежит в той же категории «Документооборот», имеет ту же сложность «Дорого и сложно», стоит «$1 000 - $3 500» или «80 000 - 250 000 ₽» и занимает «⏱ 10-18 рабочих дней».
Её описание формулирует контракт прямо: «Кидаете PDF или скан — на выходе получаете аккуратный JSON или строку в 1С/Excel: контрагент, ИНН, номер, дата, позиции, суммы, НДС. Заменяет ручной ввод бухгалтера и снимает ошибки перепечатывания». Каждое существительное в этом перечне — место, где входящий документ от незнакомого контрагента может отличаться от всех документов, которые вы видели раньше, и ни один из этих контрагентов не станет подстраивать вёрстку под вас.
Поэтому та же проблема вёрстки возвращается с обратным знаком. На исходящей стороне вы тратите половину срока, договариваясь, как выглядит правильная страница. На входящей вы тратите большую часть срока, выясняя, сколько существует страниц, выглядящих неправильно, но при этом полностью действительных: скан, повёрнутый на четыре градуса, таблица, разорванная между листами, поставщик, который выносит НДС в сноску, договор с приложением, сфотографированным отдельно. По отдельности каждый такой случай выглядит редкостью, а вместе они и составляют ту часть входящего потока, ради которой распознавание покупают.
Практический вывод простой: входящее распознавание нельзя описать через идеальный документ. Его можно описать только через стопку реальных, включая уродливые, и поэтому разумное первое действие в таком проекте — собрать эту стопку, а не выбирать модель. Диапазон в 10-18 рабочих дней исходит из того, что стопка существует; проект, который начинается с просьбы её собрать, потратит часть этого диапазона на ожидание почты и разбор архива.
Путь исключения — главное проектное решение, а не цифра точности
Распознаватель, который возвращает значение для каждого поля каждого документа, всегда даст чистую таблицу. Чистота и правильность — не связанные между собой свойства. Таблица без пропусков выглядит законченной, её выгружают, суммируют и отправляют в реестр платежей, и по внешнему виду итог, собранный из верно прочитанных счетов, ничем не отличается от итога, куда попало несколько уверенно перепутанных цифр. Это и есть режим отказа, против которого стоит проектировать, потому что он бесшумный.
Альтернатива — три исхода вместо двух. «Принят» означает, что поля прочитаны и внутренние проверки сходятся. «Отклонён» означает, что документ вообще не удалось обработать; такой исход громкий и потому безобидный. «Отложен» означает, что документ прочитан, но что-то не сходится, и он ждёт человека в очереди. Третье состояние стоит денег на разработке и именно оно делает первые два состояния заслуживающими доверия. Именно оно превращает таблицу из отчёта о выполненной работе в рабочий инструмент, у которого видно границу собственной компетентности.
Отправлять документ в отложенные должны проверки, которые можно объяснить словами, а не непрозрачный балл уверенности. Позиции не сходятся с итогом. НДС не соответствует заявленной ставке. ИНН не проходит проверку контрольного разряда. Название контрагента и ИНН указывают на разные организации. Дата документа позже даты его получения. Каждое из этих правил бухгалтер и так применяет в голове, и каждое дёшево закодировать один раз. Объяснимая причина в комментарии экономит человеку половину времени разбора: он сразу знает, куда смотреть на странице.
Как только появилось состояние «отложен», меняется и честная метрика проекта. Вопрос перестаёт быть «какая у него точность» и становится «какая доля документов доходит до человека и всегда ли понятна причина, по которой она до него дошла». Система, которая откладывает документы и к каждому прикладывает конкретную претензию, работает как задумано. Система, не отправляющая никому ничего, либо выдающаяся, либо врёт, и по таблице отличить одно от другого нельзя.
Семь полей из описания и разная цена ошибки в каждом
Каталог перечисляет поля на выходе поимённо: контрагент, ИНН, номер, дата, позиции, суммы, НДС. Считать эти семь равнозначными — самая частая ошибка проектирования, потому что стоимость ошибки различается между ними на порядок. Разложить их по последствиям до начала разработки — разговор на полчаса, который меняет то, что будет построено, и вести этот разговор заказчику удобнее, чем подрядчику: цену ошибки знает тот, кто потом её оплачивает.
Суммы и ИНН — поля жёсткого отказа. Неверная сумма даёт неверный платёж, а неверный ИНН привязывает настоящий документ к чужому юридическому лицу, и такую ошибку обнаруживает налоговая, а не вы. Ни то ни другое нельзя принимать при низкой уверенности чтения. Если система не может подтвердить их чем-то ещё на этой же странице, документ уходит в отложенные, и человек закрывает вопрос одним взглядом на страницу.
Номер и дата восстановимы. Неверно прочитанный номер счёта раздражает и вскрывается при первом же поиске; сдвинутая дата уводит документ в чужой период и вскрывается на закрытии. Этим полям нужна проверка, но не блокирующая. Они хорошо подходят под сценарий «прочитать, пометить низкой уверенностью и поправить пачкой позже», а не под остановку конвейера по каждому экземпляру отдельно. Главное — не превращать восстановимую ошибку в остановку конвейера: цена такой остановки выше цены самой ошибки. Пометка и пакетная правка дешевле по времени людей, чем очередь из документов, каждый из которых ждёт отдельного подтверждения.
Позиции — место, где прячутся самые интересные ошибки, потому что сбой здесь структурный, а не текстовый. Строка, перенесённая на вторую линию, читается как две строки. Промежуточный итог в середине длинной таблицы читается как товар. Разрыв страницы теряет строку целиком. Ни один из этих случаев не даёт значения, которое выглядит неправильным при взгляде глазами, и именно поэтому проверка «сумма позиций равна итогу» окупается как самый дешёвый структурный сторож.
10-18 рабочих дней: чем именно они заполнены
Срок распознавания в каталоге указан как «⏱ 10-18 рабочих дней», то есть от двух до почти четырёх календарных недель. Есть соблазн считать, что ширина диапазона отражает выбор модели или инфраструктуру. Не отражает. На обоих концах диапазона используются одни и те же компоненты; разница между быстрым и медленным концом — в том, сколько различных макетов документов реально содержит ваш входящий поток и как быстро можно достать их образцы.
Компания, получающая документы от двенадцати постоянных поставщиков в стабильных форматах, стоит на коротком конце. Компания, получающая документы от двухсот контрагентов, включая сканы, снятые телефоном под углом, и договоры, собранные из трёх разных шаблонов, стоит на длинном и должна на это рассчитывать. По описанию отрасли определить, какая из двух вы, невозможно. На это уходит час просмотра почтового ящика, и этот час стоит потратить до подписания договора.
Остальное время съедают вещи, невидимые на демонстрации: сопоставление с теми колонками 1С или Excel, которые действительно существуют у вас, а не теми, которые предположил разработчик; обработка дублей, когда один и тот же счёт приходит дважды по двум каналам; поведение на скане со скана; и интерфейс разбора отложенных, без которого очередь исключений не используют, а игнорируют. Сюда же попадает разбор того, что делать с документами, которые формально распознались, но относятся к договору, закрытому в прошлом году, и с приложениями, пришедшими отдельным письмом без пояснений.
Из этого следует понятный способ управлять ожиданиями. Если вы хотите короткий конец диапазона, приходите с пятьюдесятью-ста реальными документами, отобранными так, чтобы туда попали худшие случаи, с письменным списком полей жёсткого отказа и с фамилией человека, который имеет право решать, как выглядит правильное сопоставление. Без этого диапазон не станет короче — обнаружение просто произойдёт внутри него, за ваши же деньги. Подрядчик не может собрать вашу почту за вас, и именно на ожидании этих материалов чаще всего расходуется разница между десятью днями и восемнадцатью.
Две цены в одной категории: 20-70 тысяч и 80-250 тысяч
Поставленные рядом, две услуги этой пары делят категорию и уровень сложности и почти ничего больше. Конвейер стоит «$250 - $900» или «20 000 - 70 000 ₽» и занимает 2-4 дня. Распознавание стоит «$1 000 - $3 500» или «80 000 - 250 000 ₽» и занимает 10-18 рабочих дней. Обе отмечены как «Дорого и сложно», и это способ каталога сообщить, что ни одна из них не является скриптом на выходные.
Разделяет их не изощрённость, а то, кто управляет входом. На исходящей стороне вход — ваша база и ваш шаблон, поэтому неизвестность здесь вкусовая и внутренняя, а вкусовые вопросы закрываются совещанием. На входящей стороне вход производят сотни организаций, которые о вашем проекте никогда не слышали, поэтому неизвестность эмпирическая и закрывается только просмотром документов, то есть временем, а не решением руководителя. Совещание занимает час, просмотр двухсот входящих документов — несколько дней, и эта разница целиком отражена в двух ценниках каталога.
Это же различие объясняет, почему ширина диапазонов ведёт себя по-разному. Диапазон конвейера определяется в основном количеством типов документов и шаблонов и строгостью вашей бухгалтерии. Диапазон распознавания определяется разнообразием контрагентов и качеством их сканирования. Первое — вопрос объёма, на который вы ответите сегодня по памяти; второе — измерение, которое надо провести, и провести его придётся в любом случае. Поэтому по конвейеру честную оценку внутри диапазона можно получить в первом же разговоре, а по распознаванию — только после того, как подрядчик увидит вашу стопку документов своими глазами.
Отсюда следует правило очерёдности, которое ничего не стоит соблюдать: покупайте ту сторону, которая кровоточит. Если команда опаздывает с выставлением документов и бегает за подписями, конвейер окупается первым и окупается быстро. Если команда перебивает счета поставщиков руками и ловит переставленные цифры на закрытии, финансировать надо распознавание, а конвейер спокойно подождёт следующего квартала. Обратный порядок тоже допустим, но только осознанно: он означает, что вы согласны сначала потратить 10-18 рабочих дней и большую сумму на ту сторону процесса, которая сегодня болит меньше, ради задела на будущее. Иногда это правильное решение, но его стоит принимать глазами открытыми.
Арифметика, которую считают за своим столом до запроса цены
Дальше идёт пример расчёта, а не измерение чего бы то ни было: числа в него подставляете вы, а не мы. Посчитайте, сколько закрывающих документов компания выставила в прошлом месяце, — цифра лежит в учётной системе и достаётся за две минуты. Засеките, сколько времени честно уходит на один документ руками, вместе с переключением между окнами и перечитыванием реквизитов контрагента. Перемножьте. Полученное произведение и есть та исходящая величина, с которой конкурирует конвейер.
Теперь то же самое в обратную сторону. Посчитайте счета и накладные поставщиков, которые за прошлый месяц перебили в систему руками, и засеките одно честное перебивание вместе с проверочным проходом, который аккуратный человек делает после. Перемножьте ещё раз — это входящая величина. Какое из двух произведений окажется больше, та сторона процесса и подсказывает, что финансировать первым, причём подсказывает надёжнее любого спора о том, какая технология интереснее; смысл упражнения в сравнении, а не в каждой цифре по отдельности.
Затем добавьте величину, о которой обычно забывают: сколько документов вернулось на исправление — в любую из двух сторон — и сколько календарных дней прошло между первой отправкой и принятой версией. Переделка дешёвая в минутах и дорогая в днях, а отсрочка платежа считается именно в днях. Документ, отклонённый в пятницу и исправленный в понедельник, стоил компании выходных кассового разрыва независимо от того, насколько быстро внесли саму правку.
Ни одна из трёх величин не является отраслевым эталоном и ни одна не встречается в каталоге. Считать их всё равно стоит: они переводят абстрактный вопрос про автоматизацию в конкретный вопрос про ваш собственный прошлый месяц. И потому, что прийти с ними на разговор об объёме работ — это разница между обсуждением опубликованного диапазона и обсуждением того, в какую его точку попадает ваш случай.
Что отправить подрядчику до первого дня работ
Для конвейера отправьте шаблоны, которыми пользуетесь сейчас, в утверждённом виде, плюс по одному примеру каждого типа документа, заполненному реальными значениями. Затем отправьте кое-что полезнее: три последних документа, которые вернулись от контрагента или от собственной бухгалтерии с претензией, и саму претензию. Эти три страницы описывают критерии приёмки точнее любого техзадания и напрямую сокращают ту половину срока, которая уходит на вёрстку. Претензия ценна именно формулировкой: она называет ту деталь оформления, которую внутренний регламент обычно не описывает словами вообще.
Отдельно отправьте правила нумерации в том виде, в каком они реально практикуются, а не в том, в каком записаны. Какие серии существуют, где обнуляется счётчик, что происходит с аннулированными номерами, занимает ли номер предпросмотр и кому разрешено выставить документ вне очереди. Обычно эти правила живут в памяти одного человека. Достать их заранее дешевле, чем обнаружить в день, когда конвейер выдаст первый дубль.
Для распознавания отправляйте документы, а не описания, и собирайте стопку осознанно. Положите туда самого аккуратного поставщика и самого неаккуратного. Положите многостраничный счёт, повёрнутый или затенённый скан, договор с приложением и хотя бы один документ от контрагента, чью вёрстку в офисе никто не любит. Пятьдесят представительных документов дороже пятистраничной служебной записки и собираются быстрее, чем она пишется. Описание идеального документа подрядчику не поможет: оно описывает то, что вы уже умеете обрабатывать, а деньги уходят на то, что вы обрабатывать не умеете и в требования не записали.
И решите до старта, кто владеет очередью отложенных. Ей нужны фамилия, место, где она живёт, и договорённость о том, как быстро её разбирают, потому что очередь разбора, за которую никто не назначен отвечать, бесшумно превращается в ту самую чистую таблицу с неверными числами, и происходит это раньше, чем кто-либо успевает заметить. Путь исключения — процессное решение, которое софт поддерживает, и это единственная часть этой пары проектов, которую подрядчик не может поставить вместо вас.
Вопросы и ответы
Сколько стоит автоматизация счетов, актов и УПД и сколько это займёт?
В каталоге VIT Market услуга «Конвейер закрывающих документов: счёт, акт, УПД по одному клику» стоит 20 000 - 70 000 ₽, или $250 - $900, а срок указан как «2-4 дня, из них половина — вылизывание вёрстки шаблонов под требования бухгалтерии». Именно эта оговорка полезнее цены: закладывайте примерно половину проекта на вёрстку и согласование с бухгалтерией, а не на сам генератор.
Почему распознавание документов стоит в разы дороже их генерации?
Потому что в одном случае вход контролируете вы, а в другом нет. Конвейер стоит 20 000 - 70 000 ₽ и занимает 2-4 дня, а «Распознавание счетов, накладных и договоров в структурированные данные» стоит 80 000 - 250 000 ₽, или $1 000 - $3 500, и занимает 10-18 рабочих дней. Генерация идёт по вашему шаблону из вашей базы, а распознавание обязано справляться с вёрсткой всех контрагентов сразу.
Какие именно данные я получу на выходе после распознавания?
Каталог перечисляет поля дословно: «аккуратный JSON или строку в 1С/Excel: контрагент, ИНН, номер, дата, позиции, суммы, НДС», а на входе принимается PDF или скан. Относитесь к этим семи полям как к неравным по риску: суммы и ИНН нельзя принимать при низкой уверенности чтения, а номер и дата — восстановимые ошибки, которые можно пометить и поправить пачкой.
Нужны ли обе услуги сразу или лучше начать с одной?
Начинайте с той стороны, которая сегодня дороже обходится. Обе услуги лежат в категории «Документооборот» и обе помечены сложностью «Дорого и сложно», но конвейер укладывается в 2-4 дня, а распознавание занимает 10-18 рабочих дней, так что исходящая сторона ещё и даёт результат заметно раньше. Распознавание финансируйте первым, только если счета поставщиков сейчас перебивают руками.

