Controlisy импорт в Rust-AC: универсалният експорт, разчетен до последния ред
Публикувано на 1 октомври 2025
Импортът на данни от Controlisy вече не е „черна кутия“, а прозрачен процес с ясен контрол. RS-AC-BG чете универсалния експорт от https://accounting.controlisy.com/, игнорира шумните аналитични признаци 1–4 и превръща XML файловете в чисти счетоводни записи с автоматичен подбор на сметки, контрагенти и ДДС операции.
Какво се случва зад кулисите
- Качване и staging – фронтендът приема XML файла (drag & drop или избор от диск) и го изпраща през REST endpoint
POST /api/controlisy/import. Файлът се съхранява в таблицаcontrolisy_importsсъс статусstaged, а съдържанието се запазва и като JSON за преглед. - Пречистване на данните – парсерът в
backend/src/services/controlisy.rsфиксира проблемни кавички в български имена, декодира съдържанието и създава структураControlisyData { contractors, documents }само с нужните полета. Аналитичните признациaccountItem1-4се игнорират, за да не се дублират измерения в нашия сметкоплан. - Преглед и редакция – през
ControlisyReviewModal.jsxвиждате контрагентите, документите и сметките. Можете да коригирате JSON-а и да го запишете обратно чрез GraphQL мутацияupdateStagedImportData, преди да пуснете обработката. - Обработка – при
POST /api/controlisy/process/{id}бекендът създава/обновява контрагенти, генерира уникални номера на журнални записи (CTRL-<номер>-<timestamp>), създава счетоводни линии и маркира импорта катоcompleted,partially_completedилиfailedспоред резултата.
Автоматично разпознаване на тип документи
Controlisy файловете не винаги казват дали съдържат покупки или продажби. Затова RS-AC-BG комбинира няколко сигналa:
- Име на файла (
pokupki,prodajbi,sale,покупки,продажби). - VAT регистър (
vatRegister=1→ покупки,2→ продажби). - Анализ на сметки: кредит по 401/402/404 ⇒ покупка, дебит по 411/412 или кредит по 7xx ⇒ продажба.
- Резервен план: дебит по 4531 ⇒ покупка, кредит по 4532 ⇒ продажба.
// backend/src/services/controlisy.rs
if account_code.starts_with("401") && detail.direction == "Credit" {
return "purchase".to_string();
}
Така всеки документ получава точен VAT тип (01 продажба, 03 покупка) и коректни операции – например vat_purchase_operation = 1 за доставките с пълен данъчен кредит.
Контрагенти и сметки без ръчно въвеждане
- Контрагенти – системата търси съществуващ запис по ЕИК и обновява името и ДДС номера. Ако липсва, създава нов
counterpartс типSUPPLIERи активира ДДС регистрация по подразбиране. - Сметки –
get_or_create_accountпроверява сметка по код и ако не съществува, я създава като аналитична (ниво 3) със стандартни стойности за тип и клас. Тъй като импортът работи само със „чисти“ сметки, не се наслагват допълнителни аналитични нива. - Журнални записи – всяка счетоводна линия използва сумата от Controlisy, маркирана с дебит/кредит посока, и запазва основанието от документа. Всяко импортирано движение остава проследимо към оригиналния файл.
Контролният панел на импорта
Фронтенд компонентът ControlisyImport.jsx предоставя пълния цикъл:
- Drag & drop качване с индикация за поддържаните формати (.xml).
- История на импортите по фирма с етапи
staged → reviewed → processing → completed/failed. - Бърз преглед и редакция през модал, включително филтри за документи и сметки.
- Стартиране на обработката и директно преминаване към модул „Журнални записи“ след успех.
Практически стъпки
- Изтеглете универсален XML експорт от Controlisy.
- В RS-AC-BG отворете
Импорт → Controlisyи качете файла. - Прегледайте автоматично разпознатите документи и, при нужда, коригирайте JSON-а.
- Маркирайте импорта като прегледан и стартирайте обработката.
- Проверете създадените журнални записи и ги осчетоводете.
Какво печелите
- Чист сметкоплан – няма дублиращи се аналитични нива, а всяка сметка е създадена с един код.
- Точно ДДС третиране – VAT операции и тип документи се определят автоматично от съдържанието.
- Пълен контрол – възможност за редакция преди обработка, история на импортите и детайлен лог.
- Минимална ръчна работа – контрагенти, сметки и журнални номера се създават автоматично.
Накъде продължаваме
Следващите подобрения са насочени към:
- Запаметяване на потребителските корекции като правила за бъдещи импорти.
- Детайлен диф между Controlisy и генерираните журнални записи преди финално осчетоводяване.
- Поддръжка на по-големи XML файлове с фоново обработване и известия.
С Controlisy импорта в RS-AC-BG пренасяте данните си от старата система без загуби, без допълнителни скриптове и с пълен контрол върху резултата. Време е да замените ръчния труд с проследим автоматизиран процес.