Карта полного описания
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.