Учёт движения денег в Google Таблице: где он ломался
В агентстве движение денежных средств вели в общей Google Таблице. Сотрудники писали о приходах и расходах в рабочий чат, а кто-то потом переносил это в таблицу. Сверка остатков шла раз в неделю вручную, кассы складывались в остатки ИП, статусы актов и договоров по каждому приходу жили в отдельных колонках. Чем больше операций, тем больше ручного переноса и расхождений.
Задача была оставить привычный чат, но убрать ручной перенос: операция вносится там же, где её обсуждают, а остатки, сверка и документы считаются сами.
Операции прямо из чата Telegram
Сотрудник пишет в рабочую группу как обычно: «+50 000 от клиента за август» или пересылает SMS банка. Бот находит в сообщении операцию и отвечает: «Провести?»
- Разбор без нейросети, по правилам: сумма в разных форматах («10.000», «1.5 млн», «9997.38»), дата («вчера», «от 21.08»), контрагент, счёт. Шум банковских SMS вроде номера документа и остатка вычищается.
- Несколько операций в одном сообщении проводятся по отдельности, строки без суммы становятся комментарием.
- Кнопки: провести через форму, провести сразу без формы, провести все, «не операция».
- Защита от повторов: если похожая операция уже есть в пределах суток, бот предупреждает «похоже на повтор» и не даёт провести её в одно нажатие.
- Правка ответом на карточку операции: «сумма 5000», «дата 08.09», «удалить».
- Чеки и файлы: фото или документ, отправленные вместе с суммой или в течение пяти минут, прикрепляются к операции.
Категория определяется по правилам, контрагенты каждый день подтягиваются из СБИС с ИНН и склеиваются с дублями.
Mini App и веб-кабинет
В Telegram Mini App и в браузере видны остатки по счетам, лента операций с фильтрами, переводы между своими счетами и кассами, отчёты и выгрузки в Excel. Вход через Telegram: в Mini App по подписи Telegram, в браузере через виджет или подтверждение кодом в боте. Доступ есть у участников рабочей группы: вышел из группы, потерял доступ.
Еженедельная сверка остатков
Неделя закрывается по средам в 11:00. Для каждого счёта сервис считает остаток по операциям, владелец ИП вводит остаток из банка и видит расхождение. Когда все ИП подтвердили сверку, неделя закрыта. Если кто-то задним числом меняет операцию в уже закрытой неделе, подтверждение снимается и сверку нужно пройти заново. Напоминания приходят сначала лично, потом в группу, а в выходные не приходят.
Документы по приходам: акты и договоры
Для каждого прихода ведутся статусы работ, акта и договора, номера документов и отметка бухгалтера. Приходы проходят этапы «Ждёт статуса», «Готов к акту», «Ждём подписи», «Нет договора», «Закрыто», а менеджер и бухгалтер видят, что осталось закрыть. Когда работа отмечена выполненной, бухгалтер получает уведомление.
Отчёт бухгалтера за месяц
Сервис сам считает работу бухгалтера за месяц по неделям: подписанные акты, подписанные и подготовленные договоры, сверки с клиентами. Отчёт проходит статусы «черновик», «на проверке», «подтверждён» или возвращается с комментарием, а подтверждённый сохраняет цифры и выгружается в Excel.
Переход с таблицы и резервные копии
История перенесена из Google Таблицы разовым импортом: операции, документы и контрагенты, остатки сошлись с итоговым листом. Бот по расписанию присылает архив базы с вложениями и полную выгрузку в Excel, из которой данные можно восстановить.
Как устроено
TypeScript, Fastify для API, grammY для бота, SQLite через Drizzle ORM, Mini App на React и Vite. Всё работает одним процессом на сервере заказчика, ежедневные резервные копии базы хранятся 30 дней.
Скриншоты

Частые вопросы
Можно ли вести ДДС в Telegram вместо Google Таблицы?
Да. Сотрудники пишут операции в рабочий чат, бот предлагает их провести, а остатки, сверка и отчёты собираются в Mini App.
Нужна ли нейросеть, чтобы разбирать сообщения?
Нет. Суммы, даты, счета и контрагенты находятся по правилам, поэтому разбор предсказуемый, а каждая операция подтверждается человеком.
Как не провести одну операцию дважды?
Бот ищет похожие операции в пределах суток и в этом случае не даёт провести операцию в одно нажатие, только через форму с проверкой.
Как считается сверка остатков?
Раз в неделю сервис считает остаток по операциям, владелец счёта вводит остаток из банка и подтверждает расхождение. Правки задним числом снимают подтверждение.





