Карта полного описания
1-3. Что это, стек, запуск
jFabula - толстый браузерный клиент оперативного учёта
(заказ -> производство -> деньги -> печать/ЭДО). Порт с MS Access; Win-1251; vanilla JS.
Не тонкий CRUD: справочники в db.tbl.*, фильтры/расчёты/печать на клиенте.
- SaaS - код+БД у хоста; гибрид - код с сервера, БД у заказчика через AwwS.
- Стек:
forms/main.*(shell) *Fabula.js/Fabula.mm.js/fabula.min.js(fa) *lib/wi.**lib/db.js* API/db/{db}/...,/auth/.... - Вход:
/jFabula/db/{db}; cookie Login/dbName/Sha1 -> POST auth ->main.Start(preload Sys/Gands/Firms/formula -> вкладки + MainFilter). GuardisAdmin("N")-> только/pm. - PWA-manifest есть (
standalone); offline/SW не подтверждён.
4. Модель данных
- Docs - заказ/документ (тип SYОП*, статус, филиал, суммы, долг).
- Movement - строки (GS, CodeOp/КОП, фазы MMFlag -> PM).
- Firms / ClientFIO, Gands(+Sys), Property (EAV).
- Money + PartPay - платежи и разнесение; Profile / Talk - UI-профиль и лента задач.
5-8. Модули UI
| Вкладка | Суть |
|---|---|
| Заказы | Список + продукция/операции/оплаты/затраты/макеты; статусы Df->Wk->...; печать, ККТ, calc |
| Задачи (pm) | Производственная лента: фазы, исполнители, Talk, макеты, сигналы WS |
| Деньги | Приход/расход, импорт банка, PartPay, ККТ (~24 кассы в well) |
| Контрагенты | Firms, ИНН, ЭДО Астрал |
| Номенклатура | Дерево Gands + корень ~SYSTEM (конфиг всей системы) |
~SYSTEM / КОП / филиалы
Конфиг в номенклатуре SY* -> кэши CodesOp, Companes, DocTypes, plugins, KKT, formula...
- SYВк - вкладки/меню/плагины/От/ХФ * SYСП - справочники и параметры
- SYОП - типы документов * SYСо - сотрудники / Users / Profile
- КОП (
SYСПКТКП, ~371) - коды операций строк/платежей; флаг A ? АВР - Филиалы (
SYСПФи, 14 в well) - реквизиты, р/с, НДС, привязка KKT
9. Права, Profile, formula
- Rights - буквы
db.isAdmin(tag): A супер; B бухгалтерия/1С/ЭДО; C касса; F админ UI; N только /pm; S сборка; W склад; Z финансы; ... - Profile / Config - Filters, PM, Money, Main...;
getConfig ? formula. - formula (~469 строк / ~425 ключей): GandsExt
GSExType=formula;formula(name)/{expr}/P[n]/$0...$9(Fabula.mm.js). Константы, SQL-предикаты, ККТ/ЭДО, chk*, хуки фаз.
10. Ядро fa / db / фильтр / WS
- fa - контекст Doc / Move / Cur / Money / Props (не единый store).
- db.Query -> Ajax
/db/{db}/{CacheName}; apiTbl / getReferences; архив *ARX. - MainFilter - общие gf.* + Filter вкладки; persist в Profile.
- WebSocket
/ws/{db}/{user}- в основном PM/Talk (setflag, settalk, reload...).
11. Плагины и интеграции
Три механизма: toolbar iframe (SYВкДп) * модальный setPlugin * ядро add/exts.
- Toolbar: calc, fs, am, /acc, sborka(SF), atol(CFW), Zaprintom, проверка макетов, ФИС.
- exts: 1С OData, Астрал ЭДО + КриптоПро CAdES, Атол/RBSoft ККТ, маркировка ЧЗ/СУЗ.
- Оплаты: Robokassa, Uniteller, VTB, Best2Pay, РНКБ, QRM/СБП ->
/pay+hookpay.
12. Печать, отчёты, хитрые фильтры
- SYВк*От - печать (docs.print, не-query) и аналитика (
localReport, type=query) по вкладкам Оп/За/Пл/Ко/Но. - SYВк*ХФ - «хитрый фильтр» в комбо SM: SQL-предикаты ошибок данных
(
wiPropFilter.getFilterSF); вне общего SysExts-кэша.
13-14. Live well, экосистема, мобильность
- well: полиграфия (ШФ, этикетка, ДТФ, наружка...), канал Zaprintom; плотные гриды, пагинация «по 4000»; скриншоты в Fabula.doc.img/.
- Рядом: /pm, /add/am, /acc, /add/stock, /sb, calc, wiki, fs, витрина :8000, Mobula.apk.
- Мобильность: отдельного responsive jFabula нет.
Есть
AA/w800(сжатие shell, fullscreen плагинов) + PWA без offline. Реальная мобильная работа - АРМ (/add/am, склад,/acc) и Mobula.apk (AndroidFunction).
15. Сквозные сценарии
Заказ (SYОП*) -> строки/calc -> Wk -> PM (MMFlag) -> оплаты/PartPay -> ККТ Атол -> печать Счёт/АВР / ЭДО Банк -> importMoney -> PartPay -> CorrectMoney Документ -> setPlugin(calc|bill|/pay|...) -> iframe
16-17. Ядро кода и ограничения разбора
| Символ | Где |
|---|---|
| jf / setPlugin | Fabula.js |
| fa (Doc/Move) | fabula.min.js |
| db_Client / ws | lib/db.js |
| formula | GandsExt + Fabula.mm.js |
| main.Start | forms/main.js |
| docs/pm/money/... | forms/* |
Неполно: семантика части Status/букв UPT; полный список банков/URL плагинов - в БД; SW/offline не найден; часть веток - легаси. §17
18. Плюсы / минусы
Плюсы
- Полный ops-контур под производство
- Глубокая доменная модель Docs/Movement/Property
- Расширение: плагины, спецформы, formula/~SYSTEM
- Гибрид SaaS + локальная БД (AwwS)
- Интеграции: 1С, ЭДО, ККТ, банк, маркировка
- Экосистема АРМ + Mobula
- Тонкие права-теги и Profile
Минусы
- Legacy vanilla JS / Win-1251
- Монолиты (docs/Fabula/money на тысячи строк)
- Конфиг «в БД», дорогой онбординг
- UI эпохи десктопа; слабый mobile shell
- Sha1/cookie-auth, мало тестов/CI
- PWA без полноценного offline
Итог: сильная отраслевая система «под полиграфию». Эволюционировать лучше окантовывая ядро (плагины/API/formula в репо), а не «переписывая всё». Подробная оценка - §18.