Электронные счета — неотъемлемая часть современной бухгалтерии
Цифровизация бухгалтерии продолжает развиваться. Форматы электронных счетов давно перестали быть просто PDF-файлом, отправляемым по электронной почте.
Настоящий электронный счёт содержит структурированные данные, которые бухгалтерские и ERP-системы могут обрабатывать автоматически.
Нашим новым проектом с открытым исходным кодом для Odoo 19 Community мы хотим решить именно эту задачу.
Мы разработали несколько расширений, которые бесплатно предоставляем сообществу Odoo.
Проект публично доступен на GitHub:
Odoo 19 Invoice E-Files на GitHub
Наш основной фокус — Австрия, но часть решения интересна и для компаний за пределами Австрии.
Три модуля для электронных счетов
В настоящее время проект состоит из трёх основных компонентов:
- ebInterface 6.1 для Австрии
- ZUGFeRD для электронных счетов
- автоматическая передача в e-Rechnung.gv.at
Таким образом, мы объединяем различные требования к электронным счетам в одном проекте с открытым исходным кодом для Odoo 19 Community.
ebInterface 6.1 – австрийский формат счетов
Одним из приоритетов нашей разработки является ebInterface 6.1.
ebInterface — это австрийский стандартный формат для структурированных электронных счетов.
Наш модуль
l10n_at_ebinterface
формирует из счёта клиента или кредит-ноты в Odoo соответствующий XML ebInterface 6.1.
При этом, среди прочего, соответствующие данные из счёта Odoo переносятся в XML-структуру:
- Выставитель счёта
- Получатель счёта
- Позиции счёта
- Налоги
- Платёжная информация
- Банковские реквизиты
- Данные счёта
Созданный XML-файл напрямую связывается со счётом.
Почему мы разработали для этого собственный модуль?
В ходе разработки мы выяснили, что для Odoo 19 Community в настоящее время нет подходящего модуля ядра Odoo или модуля OCA для австрийского нативного стандарта ebInterface.
Именно здесь мы и хотели помочь.
Вместо того чтобы разрабатывать австрийское решение только для нашей собственной установки, мы реализовали его как самостоятельный модуль с открытым исходным кодом.
Тогда и остальное сообщество Odoo сможет воспользоваться им.
ZUGFeRD автоматически с каждым счётом
Вторым приоритетом нашего проекта является ZUGFeRD.
ZUGFeRD объединяет счёт в формате PDF со структурированным XML-счётом.
В результате получается так называемый гибридный счёт: для человека счёт остаётся читаемым в виде PDF, а программное обеспечение может автоматически обрабатывать содержащиеся в нём структурированные данные счёта.
Odoo 19 в принципе уже поддерживает ZUGFeRD и CII.
Однако на практике есть ряд ограничений.
Наш модуль
account_invoice_zugferd_ebinterface_auto
поэтому решает именно эти проблемы.
ZUGFeRD — больше не просто опция
Нам нужен был максимально автоматизированный процесс.
Поэтому при отправке счёта клиенту не проверяется, настроен ли данный клиент индивидуально для ZUGFeRD.
Вместо этого ZUGFeRD автоматически используется для счетов клиентов и кредит-нот.
Дополнительно сформированный XML ebInterface прикладывается как часть счёта.
Так возникает сквозной процесс:
Счёт Odoo → PDF → структурированный электронный счёт → отправка
без необходимости выполнять пользователю дополнительные действия для каждого счёта.
Мы также закрываем пробелы в Odoo 19 Community
При реализации мы столкнулись с рядом особенностей в реализации Odoo 19.
В частности, в экспортере CII есть зависимости, которые могут вызывать проблемы за пределами установок для определённых стран.
Наш модуль устраняет несколько таких практических ограничений.
К ним, среди прочего, относятся:
- отсутствующие поля для периодов Deferred Revenue
- ограничение конвертации в PDF/A-3 по странам
- отсутствующие или не заданные банковские реквизиты в существующих счетах
Благодаря этому ZUGFeRD можно будет надёжно использовать и в компаниях за пределами изначально предусмотренных конфигураций стран.
e-Rechnung.gv.at – прямая передача австрийскому государству
Третий компонент особенно интересен компаниям, выставляющим счета государственным заказчикам.
С помощью
l10n_at_erechnung_gv_at
счёт ebInterface можно напрямую передать в австрийский веб-сервис e-Rechnung.gv.at.
Так простое создание счетов превращается в автоматизированный процесс электронного документооборота счетов.
Процесс может выглядеть, например, так:
Создать счёт в Odoo
↓
Сформировать XML ebInterface
↓
Отправить счёт
↓
Автоматически передать ebInterface в e-Rechnung.gv.at
Таким образом, иначе ручной процесс напрямую интегрируется в Odoo.
Автоматическая передача только для нужных клиентов
Передача в e-Rechnung.gv.at не включается огульно для каждого клиента.
Вместо этого её можно включить у конкретного австрийского клиента.
Для этого у клиента сохраняются необходимые данные, например
- Номер поставщика
- Группа закупок / номер филиала
- Ссылка на заказ
в карточке клиента.
Модуль при этом также проверяет, выполнены ли условия для активации.
Тестовый и производственный режим
Для e-Rechnung.gv.at можно выбрать между тестовой и производственной средой.
Данные доступа к веб-сервису USP сохраняются в настройках Odoo.
Таким образом, интеграцию можно сначала подготовить в тестовой среде, прежде чем использовать её для отправки счетов в рабочем режиме.
Автоматизация вместо дополнительной работы
Наша цель при разработке состояла не в том, чтобы дать бухгалтеру ещё больше кнопок.
Напротив.
Идея такова:
Как можно меньше ручной работы.
Счёт создаётся в Odoo.
Необходимые структурированные форматы формируются автоматически.
При отправке соответствующие файлы прикрепляются автоматически.
А для соответствующим образом настроенных австрийских клиентов счёт дополнительно может автоматически передаваться в e-Rechnung.gv.at.
Именно эта автоматизация отличает простой экспорт файлов от по-настоящему интегрированного решения для электронных счетов.
Качество данных не скрывается
Важный момент нашей реализации, впрочем, также в следующем:
Электронный счёт может быть только настолько хорошим, насколько хороши данные, из которых он создаётся.
Поэтому мы не пытаемся молча подставлять вместо отсутствующих обязательных данных какие-либо значения.
Если, например, отсутствуют обязательные сведения для ZUGFeRD или ebInterface, Odoo должна обратить на это внимание пользователя.
К этому относятся, например:
- отсутствующая страна у клиента
- отсутствующая налоговая информация в позициях счёта
- отсутствующие банковские реквизиты
С нашей точки зрения, это лучше, чем отправлять формально созданный, но по содержанию неверный электронный счёт.
Open Source для сообщества Odoo
Этот проект мы также предоставляем бесплатно как Open Source.
Почему?
Потому что мы сами пользуемся преимуществами программного обеспечения с открытым исходным кодом.
Odoo Community предлагает превосходную основу для ERP, бухгалтерии и бизнес-процессов. Если в повседневной работе нам не хватает какой-либо функции, мы разрабатываем её.
А если решение может быть интересно и другим компаниям, мы предоставляем его сообществу.
Для нас это и есть живой Open Source.
Фокус на Австрии – но не только для Австрии
У проекта чёткий австрийский акцент.
ebInterface и e-Rechnung.gv.at интересны прежде всего австрийским компаниям.
Поддержка ZUGFeRD, напротив, актуальна и для компаний за пределами Австрии.
Таким образом, проект — не исключительно австрийское решение.
Именно сочетание структурированных данных счёта и автоматически создаваемого документа PDF/A-3 может быть интересно и для других установок Odoo.
Для Odoo 19 Community
Модули разработаны для Odoo 19 Community.
В настоящее время репозиторий содержит:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
Модули зависят друг от друга, поэтому в зависимости от сценария использования достаточно установить только необходимые компоненты.
Наш вклад в сообщество
Мы рассматриваем этот проект не как готовое коммерческое программное обеспечение, а как вклад в дальнейшее развитие сообщества Odoo.
Возможно, кому-то нужен только ebInterface.
Возможно, другой компании нужен ZUGFeRD.
Возможно, компании нужно регулярно отправлять счета государственным заказчикам через e-Rechnung.gv.at.
Во всех трёх случаях наш проект может стать основой.
А поскольку исходный код открыт, каждый пользователь может проверить решение, адаптировать его и развивать дальше.
Open Source означает: становиться лучше вместе
Мы убеждены, что Open Source даёт большое преимущество именно в ERP-системах.
У компаний разные требования.
Решение, которое идеально работает для одной компании, для другой, возможно, придётся адаптировать.
С открытым исходным кодом это возможно.
Поэтому мы будем рады:
- Отзывам
- Сообщениям об ошибках (Bug Reports)
- Предложениям по улучшению
- Pull Requests
- дополнительным поддерживаемым сценариям использования
Хорошее решение сообщества возникает не обязательно с первого коммита.
Оно возникает в результате дальнейшего развития силами многих пользователей и разработчиков.
Использовать проект бесплатно
Весь исходный код публично доступен на GitHub:
GitHub – Odoo 19 Invoice E-Files
Там же находятся инструкции по установке и документация по отдельным модулям.
Для интеграции австрийского веб-сервиса e-Rechnung.gv.at дополнительно требуется библиотека Python Zeep.
Наш вклад в открытый мир Odoo
Этим проектом мы хотим показать, что даже небольшие собственные разработки могут принести пользу всему сообществу.
Изначально мы разработали модули для решения конкретных задач.
Теперь мы бесплатно предоставляем эти решения всем пользователям Odoo 19 Community.
Так индивидуальная разработка может стать решением для сообщества.
Odoo 19. Open Source. Электронные счета. Австрия. И бесплатно для сообщества.
Именно для этого мы опубликовали этот проект.