InvoicePlane выставит счёт и на этом остановится — чего в нём нет
Кто-то ищет self-hosted замену зарубежному инвойсингу, находит InvoicePlane, за вечер поднимает его на VPS — и через месяц спрашивает в чате поддержки, где отчёт о прибылях и убытках или складские остатки. Их там нет и не будет: InvoicePlane — это именно инструмент для выставления счетов, а не бухгалтерская система в миниатюре. Путаница возникает не на пустом месте — сам факт «оно считает деньги» подсознательно достраивается до «значит, ведёт учёт целиком». Разберём честно, что InvoicePlane делает хорошо, а что в нём отсутствует принципиально, и для какого сценария он на самом деле подходит.
Содержание
- Что InvoicePlane действительно умеет
- Откуда берётся заблуждение «раз есть счета — значит, есть и бухгалтерия»
- Чего нет: бухгалтерской отчётности
- Чего нет: складского и производственного учёта
- Чего нет: приёма платежей и интеграций
- Чего нет: командной работы и масштабирования
- Для какого сценария InvoicePlane — правильный выбор
Что InvoicePlane действительно умеет
InvoicePlane — открытый (MIT) self-hosted инструмент на PHP, изначально написанный на фреймворке CodeIgniter, разворачивается классическим LAMP/LEMP-стеком: PHP, MySQL/MariaDB, веб-сервер. Устанавливается через веб-мастер (/index.php/setup/step_1 при первом запуске), после которого появляется рабочая панель. Никакой экзотики в требованиях — это осознанно лёгкое приложение, а не тяжёлая платформа с десятком фоновых сервисов.
Из коробки он закрывает именно то, что вынесено в название — выставление счетов:
- клиенты (contacts/clients) с реквизитами, несколькими адресами, привязкой к группе;
- счета (invoices) с произвольными позициями, налоговыми ставками на каждую строку, скидками;
- сметы/коммерческие предложения (quotes), которые одним действием превращаются в счёт;
- повторяющиеся счета по расписанию (recurring invoices) для клиентов на абонентской модели;
- ручная фиксация оплат — полных и частичных, с историей по каждому счёту;
- каталог товаров/услуг с ценами по умолчанию, чтобы не вбивать позиции заново;
- кастомизируемые PDF-шаблоны счетов (собственный шаблонизатор, можно верстать под фирменный стиль);
- мультивалютность на уровне отдельного счёта и базовая мультиязычность интерфейса;
- статусы счетов (draft, sent, viewed, paid, overdue) с фильтрацией по ним в списке.
Для того, кто закрывает ровно эту задачу — выставить счёт клиенту под своим доменом, без ежемесячной подписки на зарубежный SaaS и без риска потерять доступ из-за санкционных ограничений оплаты — InvoicePlane делает это честно и без лишнего веса. Проблема начинается там, где от него ждут больше.
Откуда берётся заблуждение «раз есть счета — значит, есть и бухгалтерия»
Причина путаницы простая: слово «счёт» на бытовом уровне ассоциируется со всей финансовой отчётностью бизнеса — сколько заработали, сколько потратили, какой налог платить. На деле выставление счёта клиенту и бухгалтерский учёт — это две разные по природе задачи. Первая — коммуникация с клиентом («вот сумма, вот реквизиты, оплатите до такого-то числа»). Вторая — систематизация всех денежных операций компании по правилам, которые понимает налоговая и банк: план счетов, двойная запись, привязка каждой операции к статье.
InvoicePlane закрывает только первую задачу. Он честно фиксирует, что счёт выставлен и (если вы сами отметили) оплачен — но эта запись существует в изоляции, вне какой-либо системы учёта. Никакого автоматического отражения «выставлен счёт → появилась дебиторская задолженность → пришла оплата → закрылась задолженность и увеличился баланс» здесь нет, потому что самого понятия баланса в системе не существует.
Усугубляет путаницу то, что сравнимые по нише инструменты — Invoice Ninja, Akaunting — на разных этапах развития добавляли себе элементы учёта (учёт расходов, привязку к проектам, более развитую отчётность), и по умолчанию их часто путают между собой как «примерно одно и то же». InvoicePlane сознательно остаётся минималистичным — это его сила для одной задачи и явная граница для любой другой.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверЧего нет: бухгалтерской отчётности
Вот здесь заблуждение стоит дороже всего, если разбираться в нём постфактум перед сдачей отчётности.
В InvoicePlane нет:
- плана счетов — нет никакой структуры счетов бухучёта (касса, расчётный счёт, дебиторка, кредиторка, себестоимость), только плоский список выставленных документов;
- двойной записи — операция «оплата получена» не проводится дебетом/кредитом ни по одному счёту, это просто отметка статуса на конкретном инвойсе;
- баланса и отчёта о прибылях и убытках — система не знает ваших расходов вообще (о них ниже), поэтому посчитать прибыль в принципе не может — только сумму выставленных и оплаченных счетов;
- налоговой отчётности — InvoicePlane считает налог на каждой строке счёта (например, НДС по заданной ставке) и показывает сумму на конкретном документе, но не формирует сводный отчёт по всем налогооблагаемым операциям за период в виде, пригодном для подачи;
- сверки с банком — нет импорта банковской выписки и автоматического сопоставления платежей со счетами: оплату вы вносите руками, глядя в выписку в другом окне.
Практический вывод: если вам для отчётности нужна хотя бы упрощённая, но настоящая бухгалтерия — книга доходов и расходов, декларация по УСН, что угодно, что требует полной картины движения денег, а не только выставленных счетов — InvoicePlane эту задачу не решит ни при какой настройке. Это не недоработка, а осознанная граница проекта: он не пытается конкурировать с полноценными учётными системами вроде 1С и подобных решений, рассчитанных именно на такой уровень отчётности.
Чего нет: складского и производственного учёта
Вторая частая иллюзия — раз в счёт можно вписать «Товар А, 5 шт., цена за штуку», значит система хоть немного понимает остатки на складе. Не понимает.
Каталог товаров/услуг в InvoicePlane — это просто справочник «название + цена по умолчанию», который экономит время при заполнении позиций счёта. В нём нет:
- количества на складе и его уменьшения при выставлении счёта;
- себестоимости позиции и, соответственно, расчёта маржи;
- партионного или серийного учёта;
- инвентаризации, списаний, пересортицы;
- разделения по нескольким складам или точкам продаж.
Если вы продаёте физический товар и вам нужно одновременно с выставлением счёта видеть, сколько единиц осталось на складе — InvoicePlane не подойдёт даже в связке с дисциплиной «руками сверять остатки в блокноте»: система физически не хранит эти данные, их негде даже посмотреть. Для сценариев с реальным складом (от небольшого магазина до мастерской с расходниками) нужен инструмент другого класса — ERP-система с модулем склада, а InvoicePlane в лучшем случае остаётся местом, откуда клиент получает PDF счёта, но не источником истины по остаткам.
Чего нет: приёма платежей и интеграций
Здесь граница особенно ощутима на фоне более развитых аналогов вроде Invoice Ninja, где онлайн-чекаут через несколько платёжных шлюзов есть из коробки.
В базовой установке InvoicePlane онлайн-приём оплаты не встроен как полноценный checkout-процесс — приложение генерирует и отправляет счёт, но провести клиента через страницу оплаты картой внутри самого InvoicePlane без дополнительной обвязки не получится. Отметка «оплачено» — это ручное действие администратора (или запись, добавленная через прямой доступ к базе/скрипт), а не автоматическое событие от платёжного шлюза.
Второй ограничивающий момент — интеграции с внешними системами. У InvoicePlane исторически не было развитого официального REST API, сравнимого с тем, что есть у более крупных конкурентов: интеграция с внешней CRM, сайтом или платёжным сервисом реализуется либо через прямые SQL-запросы к базе (что хрупко и ломается при обновлении схемы), либо через импорт/экспорт CSV, либо руками. Если ваш процесс требует, чтобы оплата на сайте автоматически создавала и закрывала счёт без участия человека — закладывайте на это отдельную прослойку или смотрите в сторону инструмента с полноценным API, например Invoice Ninja, где API — часть проекта с самого начала, а не то, что приходится дописывать самостоятельно.
Данные при этом полностью в MySQL/MariaDB на вашем сервере — риск не «утечка через API», а обычная потеря базы без бэкапа. Регулярный дамп базы обязателен ровно так же, как для любой другой финансовой системы — общие практики и грабли разобраны в статье про бэкап MySQL на сервере.
Чего нет: командной работы и масштабирования
Третий блок ограничений всплывает не сразу, а когда бизнес из «один человек выставляет счета» превращается в «несколько человек одновременно работают с клиентами».
Ролевая модель пользователей в InvoicePlane базовая — можно завести несколько учётных записей администраторов, но тонкой настройки прав («этому сотруднику — только просмотр счетов своего отдела, этому — право менять цены, но не удалять клиентов») не предусмотрено на уровне, сравнимом с ERP-системами. Нет мультикомпанийности из коробки — одна инсталляция рассчитана на одну компанию/юрлицо, для второй нужен отдельный экземпляр (отдельная база, отдельный домен или поддомен).
Также отсутствуют вещи, которые нужны студиям и агентствам, но не нужны для чистого инвойсинга:
- трекинг времени по проектам и биллинг по часам;
- канбан-доска задач или подобие CRM-воронки для сделок;
- мобильные приложения (только веб-интерфейс, адаптированный под мобильный браузер);
- встроенный портал с личным кабинетом клиента, где он видит историю всех своих счетов и может оплатить онлайн — в InvoicePlane клиент получает счёт по ссылке/PDF, но не полноценный self-service кабинет.
Если команда растёт и нужно разграничение доступа, биллинг по часам или клиентский портал — это тот момент, когда стоит сравнить более функциональные open-source альтернативы. Мы отдельно разбирали Invoice Ninja и Crater между собой — оба явно ближе к «системе для команды», чем InvoicePlane.
Для какого сценария InvoicePlane — правильный выбор
После списка «чего нет» может показаться, что InvoicePlane — слабый инструмент. Это не так: для узкой задачи, под которую он написан, он подходит очень хорошо, и переусложнять выбор в эту сторону — тоже ошибка.
InvoicePlane — правильный выбор, если:
- вы фрилансер, консультант или небольшая студия с десятком-другим клиентов в месяц, и вся ваша потребность — красиво оформленный счёт под своим брендом, отправленный клиенту, с отметкой оплачен/не оплачен;
- бухгалтерию вы ведёте отдельно — в 1С, в экселе с бухгалтером на аутсорсе, в специализированной учётной системе — и InvoicePlane нужен только как удобная витрина для клиента, а не источник данных для налоговой;
- вам не нужен онлайн-чекаут внутри системы — клиент платит по реквизитам из счёта на банковский счёт или через отдельный способ, а не кликом по кнопке «Оплатить» на странице;
- вы цените минимализм интерфейса и не хотите тратить ресурсы сервера и время на изучение системы с десятком модулей, из которых нужен один;
- у вас нет физического товара со складским учётом — только услуги или проекты, где позиция в счёте — это просто строка с ценой, а не единица, которую нужно списывать с остатка.
Если хотя бы один пункт не выполняется — трекинг времени, склад, полноценная отчётность, командная работа с ролями — реалистичнее сразу смотреть в сторону инструмента другого класса, а не пытаться дотянуть InvoicePlane расширениями и костылями до задачи, для которой он не проектировался. Держать инвойсинг и бухгалтерию раздельно — не всегда плохо: чёткая граница между «выставить счёт» и «свести баланс» иногда сама по себе дисциплинирует процесс, если вы честно понимаете, где эта граница проходит.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
InvoicePlane можно донастроить плагинами до полноценной бухгалтерии?
Официальной системы плагинов, сравнимой с экосистемой более крупных проектов, у InvoicePlane нет. Расширить функциональность реально только вмешательством в код или прямыми запросами к базе — это работает, но ответственность и риск при обновлениях полностью на вас.
Данные из InvoicePlane можно потом перенести в полноценную учётную систему?
Прямого автоматического экспорта в формат конкретной бухгалтерской системы нет. Реалистичный путь — выгрузить список клиентов и историю счетов через CSV или прямой запрос к MySQL и занести вручную или через импорт целевой системы.
Нужен ли InvoicePlane отдельный VPS или хватит доли ресурсов на общем сервере?
Приложение лёгкое — PHP-скрипт плюс MySQL/MariaDB без фоновых воркеров и очередей. Спокойно уживается на общем VPS рядом с другими сайтами при разумном лимите RAM, отдельный сервер нужен скорее по соображениям изоляции финансовых данных, а не по нагрузке.
А что с приёмом оплат картой прямо на странице счёта?
Из коробки такого чекаута нет — клиент видит сумму и реквизиты, оплата происходит вне системы, а отметка «оплачено» вносится вручную. Если нужен встроенный приём онлайн-платежей, это весомый аргумент в пользу более развитого инструмента вроде Invoice Ninja.
Чем InvoicePlane принципиально отличается от Akaunting или ERPNext?
Akaunting и особенно ERPNext изначально проектировались как учётные системы (с планом счетов, отчётностью, часто складом), внутри которых модуль счетов — лишь одна из функций. InvoicePlane — наоборот: система, где счёт — это всё приложение целиком, без слоя учёта вокруг.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →