Электронныя рахункі – частка сучаснай бухгалтарыі
Лічбавізацыя бухгалтарыі працягваецца. Фарматы электронных рахункаў даўно ўжо больш, чым PDF-файл, які адпраўляюць па электроннай пошце.
Сапраўдны электронны рахунак змяшчае структураваныя даныя, якія бухгалтарскія сістэмы і ERP-сістэмы могуць апрацоўваць аўтаматычна.
Нашым новым Open-Source-праектам для Odoo 19 Community мы хочам заняцца менавіта гэтым.
Мы распрацавалі некалькі пашырэнняў, якія бясплатна перадаём супольнасці Odoo.
Праект публічна даступны на GitHub:
Odoo 19 Invoice E-Files на GitHub
Наш акцэнт – найперш Аўстрыя, але частка рашэння цікавая і для кампаній па-за межамі Аўстрыі.
Тры модулі для электронных рахункаў
Зараз праект складаецца з трох асноўных кампанентаў:
- ebInterface 6.1 для Аўстрыі
- ZUGFeRD для электронных рахункаў
- аўтаматычная перадача ў e-Rechnung.gv.at
Так мы аб’ядноўваем розныя патрабаванні да электронных рахункаў у адным Open-Source-праекце для Odoo 19 Community.
ebInterface 6.1 – аўстрыйскі фармат рахункаў
Адзін з асноўных напрамкаў нашай распрацоўкі – ebInterface 6.1.
ebInterface – гэта аўстрыйскі стандартны фармат для структураваных электронных рахункаў.
Наш модуль
l10n_at_ebinterface
стварае з рахунку кліента або крэдытовай ноты ў Odoo адпаведны XML ebInterface 6.1.
Пры гэтым у структуру XML, сярод іншага, пераносяцца адпаведныя даныя з рахунку Odoo:
- Выстаўляльнік рахунку
- Атрымальнік рахунку
- Пазіцыі рахунку
- Падаткі
- Плацёжная інфармацыя
- Банкаўскія рэквізіты
- Даныя рахунку
Створаны XML-файл пры гэтым непасрэдна звязваецца з рахункам.
Чаму мы распрацавалі для гэтага ўласны модуль?
Падчас распрацоўкі мы высветлілі, што для Odoo 19 Community зараз няма адпаведнага модуля ядра Odoo або модуля OCA для натыўнага аўстрыйскага стандарту ebInterface.
Менавіта тут мы і хацелі паспрыяць.
Замест таго каб распрацоўваць аўстрыйскае рашэнне толькі для нашай уласнай устаноўкі, мы рэалізавалі яго як самастойны Open-Source-модуль.
Так ад гэтага можа атрымаць карысць і астатняя супольнасць 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. Электронныя рахункі. Аўстрыя. І бясплатна для супольнасці.
Менавіта для гэтага мы апублікавалі гэты праект.