Controlisy импорт в Ръст АС – rust-ac

Controlisy импорт в Rust-AC: универсалният експорт, разчетен до последния ред

Публикувано на 1 октомври 2025

Импортът на данни от Controlisy вече не е „черна кутия“, а прозрачен процес с ясен контрол. RS-AC-BG чете универсалния експорт от https://accounting.controlisy.com/, игнорира шумните аналитични признаци 1–4 и превръща XML файловете в чисти счетоводни записи с автоматичен подбор на сметки, контрагенти и ДДС операции.

Какво се случва зад кулисите

  1. Качване и staging – фронтендът приема XML файла (drag & drop или избор от диск) и го изпраща през REST endpoint POST /api/controlisy/import. Файлът се съхранява в таблица controlisy_imports със статус staged, а съдържанието се запазва и като JSON за преглед.
  2. Пречистване на данните – парсерът в backend/src/services/controlisy.rs фиксира проблемни кавички в български имена, декодира съдържанието и създава структура ControlisyData { contractors, documents } само с нужните полета. Аналитичните признаци accountItem1-4 се игнорират, за да не се дублират измерения в нашия сметкоплан.
  3. Преглед и редакция – през ControlisyReviewModal.jsx виждате контрагентите, документите и сметките. Можете да коригирате JSON-а и да го запишете обратно чрез GraphQL мутация updateStagedImportData, преди да пуснете обработката.
  4. Обработка – при 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.
  • Бърз преглед и редакция през модал, включително филтри за документи и сметки.
  • Стартиране на обработката и директно преминаване към модул „Журнални записи“ след успех.

Практически стъпки

  1. Изтеглете универсален XML експорт от Controlisy.
  2. В RS-AC-BG отворете Импорт → Controlisy и качете файла.
  3. Прегледайте автоматично разпознатите документи и, при нужда, коригирайте JSON-а.
  4. Маркирайте импорта като прегледан и стартирайте обработката.
  5. Проверете създадените журнални записи и ги осчетоводете.

Какво печелите

  • Чист сметкоплан – няма дублиращи се аналитични нива, а всяка сметка е създадена с един код.
  • Точно ДДС третиране – VAT операции и тип документи се определят автоматично от съдържанието.
  • Пълен контрол – възможност за редакция преди обработка, история на импортите и детайлен лог.
  • Минимална ръчна работа – контрагенти, сметки и журнални номера се създават автоматично.

Накъде продължаваме

Следващите подобрения са насочени към:

  • Запаметяване на потребителските корекции като правила за бъдещи импорти.
  • Детайлен диф между Controlisy и генерираните журнални записи преди финално осчетоводяване.
  • Поддръжка на по-големи XML файлове с фоново обработване и известия.

С Controlisy импорта в RS-AC-BG пренасяте данните си от старата система без загуби, без допълнителни скриптове и с пълен контрол върху резултата. Време е да замените ръчния труд с проследим автоматизиран процес.

Вашият коментар