Приклад: екран власника поверх API

ERP, з якої всі даніЩо всередині?

Ви - власник компанії: ТОВ «Крило і Гвинт». Дивитеся, що з грошима і що стоїть.

Стан на сьогодні

Що стоїть і чому

і ще 2

Що не дає закрити місяць

що всередині?

Що всередині?

Що відбувається всередині

6 викликів API, запитів до бази: 4, 7523 мс

З чого складається цей екран

  1. Хто виGET /api/v1/q/company_profile?as_of=Назва компанії з її власної картки.
  2. Гроші, борг покупців, борг постачальникамGET /api/v1/q/dashboard_statsТри суми з книги одним запитом: рахунок банку, розрахунки з покупцями і з постачальниками.
  3. Угоди, що стоять, і чомуGET /api/v1/v/prodazh/deal_stagesБез параметра подання відповідає лише угодами, що стоять, кожна з етапом і причиною.
  4. Що не дає закрити місяцьGET /api/v1/v/zvity/month_closeПерелік перевірок місяця; рядки зі станом «не дає закрити» - те, що заважає.
  5. Усе за один похідчотири GET разомПакетного виклику API не має: сторінка надсилає читання одночасно. Скільки це зберігає, сказано над переліком викликів.

Виклики API цієї сторінки

Назви запитів і таблиць дає сам API. Перевірку ключа і запис у журнал викликів тут не пораховано.

Один похід: 4 виклики разом за 2455 мс; по черзі це 6290 мс.

  1. 1опис queries327 мс200

    GET /api/v1/queries

    Іменовані запити, які читає цей ключ, з таблицями кожного

    Опис, який API дає про себе. Тримається в памʼяті десять хвилин.

    показати запит і відповідь
    GET /api/v1/queries
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "queries": [
        {
          "name": "dashboard_stats",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "account"
          ]
        },
        {
          "name": "party_role_counts",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_role"
          ]
        },
        {
          "name": "trial_balance",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "account"
          ]
        },
        {
          "name": "accounts",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "account"
          ]
        },
        {
          "name": "journal",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "document",
            "journal_entry",
            "economic_event",
            "rule_snapshot",
            "party"
          ]
        },
        {
          "name": "journal_latest",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "document",
            "journal_entry",
            "economic_event",
            "rule_snapshot",
            "party"
          ]
        },
        {
          "name": "entry",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party",
            "app_user",
            "api_key",
            "journal_entry",
            "economic_event",
            "period",
            "rule_snapshot"
          ]
        },
        {
          "name": "entry_lines",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "journal_line",
            "account",
            "party"
          ]
        },
        {
          "name": "periods",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "period"
          ]
        },
        {
          "name": "rule_snapshots",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "rule_snapshot"
          ]
        },
        {
          "name": "parties_by_role",
          "params": [
            "role"
          ],
          "roles": [
            "sales",
            "purchaser",
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party",
            "party_role"
          ]
        },
        {
          "name": "parties",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_role",
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "party",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party"
          ]
        },
        {
          "name": "party_roles_for",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_role"
          ]
        },
        {
          "name": "party_by_identifier",
          "params": [
            "scheme",
            "value"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "parties_by_scheme",
          "params": [
            "scheme",
            "kind",
            "date"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "agreement",
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "agreements_by_scheme",
          "params": [
            "scheme",
            "kind",
            "role"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_role",
            "party_identifier",
            "party",
            "agreement"
          ]
        },
        {
          "name": "party_identifiers_for",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier"
          ]
        },
        {
          "name": "party_requisites",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "party_profile",
          "params": [
            "party_id",
            "as_of"
          ],
          "roles": [
            "sales",
            "purchaser",
            "accountant"
          ],
          "tables": [
            "party_profile"
          ]
        },
        {
          "name": "party_profile_history",
          "params": [
            "party_id"
          ],
          "roles": [
            "sales",
            "purchaser",
            "accountant"
          ],
          "tables": [
            "party_profile"
          ]
        },
        {
          "name": "agreements_for_party",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "agreement"
          ]
        },
        {
          "name": "ledger_for_party",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "ledger_line",
            "account"
          ]
        },
        {
          "name": "party_balances",
          "params": [
            "role",
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party",
            "party_role",
            "ledger_line"
          ]
        },
        {
          "name": "documents_open",
          "params": [
            "kind",
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "document",
            "economic_event",
            "party",
            "open_item"
          ]
        },
        {
          "name": "open_items_for_party",
          "params": [
            "account",
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "open_item"
          ]
        },
        {
          "name": "events_by_kind",
          "params": [
            "kind"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "document",
            "event_number",
            "journal_entry",
            "economic_event",
            "party",
            "rule_snapshot"
          ]
        },
        {
          "name": "events_by_kind_page",
          "params": [
            "kind",
            "offset"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "party",
            "rule_snapshot"
          ]
        },
        {
          "name": "event",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event"
          ]
        },
        {
          "name": "agreements_on",
          "params": [
            "kind",
            "date"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "agreement",
            "party"
          ]
        },
        {
          "name": "agreements_between",
          "params": [
            "kind",
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "agreement",
            "party"
          ]
        },
        {
          "name": "items",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "item"
          ]
        },
        {
          "name": "stock_on_hand",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "stock_balance",
            "item",
            "location"
          ]
        },
        {
          "name": "locations",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item",
            "ledger_line",
            "location"
          ]
        },
        {
          "name": "sites",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "site",
            "location"
          ]
        },
        {
          "name": "warehouses",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "location"
          ]
        },
        {
          "name": "catalog",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "supplier_price",
            "item_mpn",
            "item"
          ]
        },
        {
          "name": "glossary",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "glossary_term"
          ]
        },
        {
          "name": "item_mpns",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item_mpn"
          ]
        },
        {
          "name": "item_analogs",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item_analog",
            "item"
          ]
        },
        {
          "name": "analog_of",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item_analog",
            "item"
          ]
        },
        {
          "name": "analog_groups",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item_analog",
            "item"
          ]
        },
        {
          "name": "supplier_prices",
          "params": [
            "item_id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "supplier_price",
            "party",
            "item_mpn"
          ]
        },
        {
          "name": "item_purchase_lines",
          "params": [
            "item_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "po_line",
            "purchase_order",
            "party",
            "po_line_received"
          ]
        },
        {
          "name": "item_sales_lines",
          "params": [
            "item_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "so_line",
            "sales_order",
            "party",
            "so_line_shipped"
          ]
        },
        {
          "name": "find_code",
          "params": [
            "norm"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item",
            "item_mpn",
            "supplier_price",
            "party"
          ]
        },
        {
          "name": "boms",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_line",
            "bom",
            "item"
          ]
        },
        {
          "name": "boms_of_item",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_line",
            "bom",
            "change_order"
          ]
        },
        {
          "name": "bom",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "change_order",
            "bom",
            "item"
          ]
        },
        {
          "name": "bom_lines",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_substitute",
            "item",
            "bom_line"
          ]
        },
        {
          "name": "bom_subsystems",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_line_subsystem",
            "bom_subsystem"
          ]
        },
        {
          "name": "bom_structure",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_line",
            "item",
            "bom_line_subsystem",
            "bom_subsystem"
          ]
        },
        {
          "name": "bom_products",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_line",
            "bom_subsystem",
            "bom_operation",
            "bom_operation_card",
            "bom",
            "item"
          ]
        },
        {
          "name": "bom_pending_analogs",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_line",
            "item_analog",
            "item",
            "bom_substitute"
          ]
        },
        {
          "name": "where_used",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_line",
            "bom",
            "bom_substitute",
            "item"
          ]
        },
        {
          "name": "change_orders",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "item",
            "change_order"
          ]
        },
        {
          "name": "change_order",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "item",
            "change_order"
          ]
        },
        {
          "name": "bom_previous",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom"
          ]
        },
        {
          "name": "bom_versions",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom"
          ]
        },
        {
          "name": "active_boms",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "item"
          ]
        },
        {
          "name": "draft_boms",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "item"
          ]
        },
        {
          "name": "purchase_requests",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "po_line",
            "purchase_order",
            "po_line_received",
            "purchase_request",
            "purchase_request_line"
          ]
        },
        {
          "name": "purchase_request_lines",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "po_line",
            "purchase_order",
            "purchase_request_line",
            "item"
          ]
        },
        {
          "name": "purchase_request",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "purchase_request"
          ]
        },
        {
          "name": "purchase_orders",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "po_line",
            "po_line_received",
            "purchase_order",
            "party"
          ]
        },
        {
          "name": "purchase_order",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "purchase_order",
            "party"
          ]
        },
        {
          "name": "po_lines",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "po_line",
            "item",
            "po_line_received"
          ]
        },
        {
          "name": "delivery_receipts",
          "params": [
            "event_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event"
          ]
        },
        {
          "name": "receipts_for_order",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "event_number",
            "journal_entry",
            "economic_event"
          ]
        },
        {
          "name": "open_advances",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "open_item"
          ]
        },
        {
          "name": "bank_accounts",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_account"
          ]
        },
        {
          "name": "bank_lines",
          "params": [
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_statement_line",
            "bank_account"
          ]
        },
        {
          "name": "parties_for_matching",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party_role",
            "party"
          ]
        },
        {
          "name": "open_documents",
          "params": [
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "open_item",
            "document",
            "economic_event"
          ]
        },
        {
          "name": "bank_feed",
          "params": [
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "bank_statement_line",
            "bank_account",
            "payment_order",
            "bank_line_link"
          ]
        },
        {
          "name": "bank_posted_lines",
          "params": [
            "account",
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_line_link",
            "bank_account",
            "economic_event",
            "journal_entry",
            "journal_line",
            "bank_statement_line"
          ]
        },
        {
          "name": "bank_unreconciled",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "journal_line",
            "bank_statement_line",
            "bank_account",
            "bank_line_link",
            "document",
            "party"
          ]
        },
        {
          "name": "payment_orders",
          "params": [
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_account",
            "ledger_line",
            "bank_statement_line",
            "payment_order",
            "document",
            "journal_entry",
            "party"
          ]
        },
        {
          "name": "payment_order",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_account",
            "ledger_line",
            "bank_statement_line",
            "payment_order",
            "document",
            "journal_entry",
            "party"
          ]
        },
        {
          "name": "payment_batches",
          "params": [
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_order"
          ]
        },
        {
          "name": "outbox",
          "params": [
            "kind",
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_order",
            "outbox"
          ]
        },
        {
          "name": "payment_orders_by_step",
          "params": [
            "key"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_order_step",
            "payment_order"
          ]
        },
        {
          "name": "payment_order_steps",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_order_step"
          ]
        },
        {
          "name": "payables_open",
          "params": [
            "account",
            "measure"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "economic_event",
            "open_item",
            "document",
            "payment_order",
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "payables_by_spec",
          "params": [
            "spec",
            "measure"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "economic_event",
            "journal_entry",
            "payment_order",
            "payment_receiver"
          ]
        },
        {
          "name": "payment_receivers",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_receiver"
          ]
        },
        {
          "name": "party_payment_requisites",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party"
          ]
        },
        {
          "name": "receivers",
          "params": [
            "role"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_identifier",
            "party_role",
            "party"
          ]
        },
        {
          "name": "cash_book",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "ledger_line",
            "journal_entry"
          ]
        },
        {
          "name": "trial_balance_period",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "account"
          ]
        },
        {
          "name": "account_turnovers",
          "params": [
            "from",
            "to",
            "exclude_kinds"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "ledger_line",
            "account"
          ]
        },
        {
          "name": "account_turnovers_of",
          "params": [
            "from",
            "to",
            "exclude_kinds",
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "journal_line",
            "account"
          ]
        },
        {
          "name": "account_party_turnovers",
          "params": [
            "from",
            "to",
            "exclude_kinds"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "ledger_line",
            "account",
            "party"
          ]
        },
        {
          "name": "account_party_turnovers_of",
          "params": [
            "from",
            "to",
            "exclude_kinds",
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "journal_line",
            "account",
            "party"
          ]
        },
        {
          "name": "account_month_turnovers",
          "params": [
            "from",
            "to",
            "exclude_kinds"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "ledger_line"
          ]
        },
        {
          "name": "account_card",
          "params": [
            "account",
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "journal_line",
            "journal_entry",
            "economic_event",
            "party"
          ]
        },
        {
          "name": "account_card_page",
          "params": [
            "account",
            "from",
            "to",
            "limit",
            "offset"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "journal_line",
            "document",
            "economic_event",
            "party"
          ]
        },
        {
          "name": "account_card_sums",
          "params": [
            "account",
            "from",
            "to",
            "offset"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "journal_line"
          ]
        },
        {
          "name": "account_card_pages",
          "params": [
            "account",
            "from",
            "to",
            "size"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "journal_line"
          ]
        },
        {
          "name": "cash_movements",
          "params": [
            "from",
            "to",
            "accounts"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event",
            "ledger_line",
            "document",
            "account",
            "party"
          ]
        },
        {
          "name": "events_in_period",
          "params": [
            "kind",
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "economic_event",
            "party"
          ]
        },
        {
          "name": "financial_statement",
          "params": [
            "form",
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "journal_line",
            "report_map",
            "report_line"
          ]
        },
        {
          "name": "balance_check",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "report_map",
            "report_line"
          ]
        },
        {
          "name": "unmapped_accounts",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "account",
            "report_map"
          ]
        },
        {
          "name": "aging",
          "params": [
            "account",
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "open_item",
            "party"
          ]
        },
        {
          "name": "stock_reconciliation",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "stock_account"
          ]
        },
        {
          "name": "stock_balance_drift",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "stock_balance",
            "journal_line",
            "journal_entry",
            "stock_account",
            "item",
            "location"
          ]
        },
        {
          "name": "reservation_balance_drift",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "reservation_balance",
            "reservation_move",
            "production_order",
            "item"
          ]
        },
        {
          "name": "production_order_made_drift",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "production_order_made",
            "economic_event",
            "journal_entry",
            "production_order"
          ]
        },
        {
          "name": "stock_balance_check",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "stock_balance",
            "journal_line",
            "journal_entry",
            "stock_account",
            "item",
            "location",
            "reservation_balance",
            "reservation_move",
            "production_order",
            "production_order_made",
            "economic_event"
          ]
        },
        {
          "name": "fixed_assets",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "depreciation_run",
            "fixed_asset"
          ]
        },
        {
          "name": "income_expense_balances",
          "params": [
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line"
          ]
        },
        {
          "name": "currency_balances",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line"
          ]
        },
        {
          "name": "rate_on",
          "params": [
            "currency",
            "date"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "exchange_rate"
          ]
        },
        {
          "name": "exchange_rates",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "exchange_rate"
          ]
        },
        {
          "name": "account_balances_by_party",
          "params": [
            "account"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "journal_entry",
            "party"
          ]
        },
        {
          "name": "receipt_lines",
          "params": [
            "event_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "journal_line",
            "stock_account",
            "item",
            "location"
          ]
        },
        {
          "name": "receipt_trace",
          "params": [
            "event_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "journal_line",
            "item",
            "stock_account"
          ]
        },
        {
          "name": "work_centers",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "work_center"
          ]
        },
        {
          "name": "bom_operations",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "bom_operation",
            "work_center"
          ]
        },
        {
          "name": "bom_route",
          "params": [
            "bom_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_operation_instrument",
            "equipment",
            "qc_point",
            "qc_checklist",
            "bom_operation",
            "bom",
            "work_center",
            "bom_operation_card"
          ]
        },
        {
          "name": "instrument_workplaces",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "equipment_card",
            "work_center",
            "work_center_card"
          ]
        },
        {
          "name": "instrument_workplace",
          "params": [
            "work_center_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "work_center",
            "work_center_card"
          ]
        },
        {
          "name": "route_operations",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "bom_operation",
            "bom",
            "item",
            "work_center"
          ]
        },
        {
          "name": "instrument_workplace_operations",
          "params": [
            "work_center_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "bom_operation",
            "bom",
            "item",
            "bom_operation_card"
          ]
        },
        {
          "name": "instrument_workplace_people",
          "params": [
            "work_center_id",
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_register",
          "params": [
            "as_of",
            "work_center_id",
            "kind",
            "state",
            "holder_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_equipment",
          "params": [
            "ref",
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_counts",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "equipment"
          ]
        },
        {
          "name": "instrument_available",
          "params": [
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_custody",
          "params": [
            "equipment_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_custody",
            "equipment",
            "party",
            "work_center"
          ]
        },
        {
          "name": "instrument_held_by",
          "params": [
            "party_id",
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_person_history",
          "params": [
            "party_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_custody",
            "equipment_card"
          ]
        },
        {
          "name": "instrument_employees",
          "params": [
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "party",
            "agreement",
            "party_role"
          ]
        },
        {
          "name": "instrument_person",
          "params": [
            "party_id",
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "agreement",
            "party_role",
            "equipment_custody",
            "party"
          ]
        },
        {
          "name": "instrument_people",
          "params": [
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card",
            "agreement",
            "party",
            "party_role"
          ]
        },
        {
          "name": "instrument_verifications",
          "params": [
            "equipment_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_verification",
            "equipment"
          ]
        },
        {
          "name": "instrument_schedule",
          "params": [
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_due",
          "params": [
            "as_of",
            "days"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_overdue",
          "params": [
            "as_of"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_card"
          ]
        },
        {
          "name": "instrument_maintenance",
          "params": [
            "equipment_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "equipment_maintenance",
            "equipment"
          ]
        },
        {
          "name": "instrument_state_log",
          "params": [
            "equipment_id"
          ],
          "roles": [
            "production",
            "storekeeper",
            "accountant"
          ],
          "tables": [
            "change_log",
            "equipment"
          ]
        },
        {
          "name": "instrument_asset_options",
          "params": [
            "equipment_id"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "fixed_asset",
            "equipment"
          ]
        },
        {
          "name": "production_orders_in_work",
          "params": [
            "date"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "production_order_output",
            "serial_number",
            "production_order",
            "item",
            "bom"
          ]
        },
        {
          "name": "production_orders",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "production_order_output",
            "production_order_need",
            "reservation_held",
            "reservation_move",
            "production_order",
            "item",
            "bom",
            "location"
          ]
        },
        {
          "name": "production_order",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "production_order_output",
            "production_order_need",
            "reservation_held",
            "sales_order",
            "reservation_move",
            "production_order",
            "item",
            "bom",
            "location",
            "stock_pool"
          ]
        },
        {
          "name": "production_order_times",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_operation",
            "bom_operation_card",
            "production_order",
            "item",
            "bom",
            "production_order_output"
          ]
        },
        {
          "name": "order_components",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_substitute",
            "item",
            "production_order",
            "bom_line",
            "production_order_output"
          ]
        },
        {
          "name": "order_pool_stock",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "customer_claim",
            "reservation_held",
            "stock_pool_on_hand",
            "po_line_received",
            "stock_balance",
            "location",
            "stock_pool",
            "po_line",
            "purchase_order",
            "production_order",
            "bom_component_of",
            "item"
          ]
        },
        {
          "name": "order_reservations",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "location",
            "reservation_held",
            "item"
          ]
        },
        {
          "name": "reservation_moves",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "reservation_move",
            "item"
          ]
        },
        {
          "name": "order_component_units",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order",
            "bom_line",
            "item",
            "serial_number"
          ]
        },
        {
          "name": "reservation_moves_of_event",
          "params": [
            "event_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_move",
            "production_order",
            "item"
          ]
        },
        {
          "name": "item_reservations",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "location",
            "reservation_held",
            "production_order",
            "item"
          ]
        },
        {
          "name": "reservations",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "location",
            "reservation_held",
            "production_order",
            "item"
          ]
        },
        {
          "name": "item_availability",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_held",
            "stock_pool_on_hand",
            "stock_reserved",
            "item"
          ]
        },
        {
          "name": "pool_stock",
          "params": [
            "location_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "customer_claim",
            "reservation_held",
            "stock_pool_on_hand",
            "stock_pool"
          ]
        },
        {
          "name": "pool_holds",
          "params": [
            "location_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "stock_pool",
            "reservation_held",
            "production_order"
          ]
        },
        {
          "name": "production_settings",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_setting"
          ]
        },
        {
          "name": "production_plan",
          "params": [
            "from"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "production_order",
            "production_order_output",
            "production_plan",
            "item"
          ]
        },
        {
          "name": "production_outputs",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "event_number",
            "journal_entry",
            "serial_number",
            "economic_event"
          ]
        },
        {
          "name": "mrp_bom_lines",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_line"
          ]
        },
        {
          "name": "mrp_routes",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_operation",
            "bom_operation_card"
          ]
        },
        {
          "name": "promise_routes",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_operation",
            "work_center",
            "bom_operation_card"
          ]
        },
        {
          "name": "promise_lead_days",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "supplier_price"
          ]
        },
        {
          "name": "sale_offer",
          "params": [],
          "roles": [
            "sales",
            "accountant"
          ],
          "tables": [
            "bom_line",
            "bom_operation",
            "item",
            "bom",
            "so_line",
            "sales_order"
          ]
        },
        {
          "name": "mrp_demand",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_output",
            "so_line_shipped",
            "so_line",
            "sales_order",
            "production_order",
            "item"
          ]
        },
        {
          "name": "mrp_supply",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_held",
            "po_line_received",
            "stock_balance",
            "po_line",
            "purchase_order",
            "item"
          ]
        },
        {
          "name": "mrp_analogs",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom",
            "bom_line",
            "bom_substitute",
            "item"
          ]
        },
        {
          "name": "release_rule",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_setting"
          ]
        },
        {
          "name": "plan_open",
          "params": [
            "from"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "production_plan",
            "production_order",
            "production_order_output",
            "item"
          ]
        },
        {
          "name": "production_shortages",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "customer_claim",
            "production_order_need",
            "reservation_held",
            "stock_pool_on_hand",
            "po_line_received",
            "production_order",
            "stock_pool",
            "location",
            "po_line",
            "purchase_order",
            "item"
          ]
        },
        {
          "name": "sequence_last",
          "params": [
            "series",
            "year"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sequence"
          ]
        },
        {
          "name": "serials_in_stock",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "serial_number",
            "item",
            "production_order"
          ]
        },
        {
          "name": "serial_items",
          "params": [
            "date"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "serial_number",
            "item"
          ]
        },
        {
          "name": "serial_items_stock_on",
          "params": [
            "date"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "serial_number",
            "item",
            "journal_line",
            "journal_entry",
            "location",
            "stock_account"
          ]
        },
        {
          "name": "serials",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "serial_number",
            "item",
            "production_order",
            "party"
          ]
        },
        {
          "name": "serial_trace",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "serial_number",
            "item",
            "economic_event",
            "production_order",
            "bom"
          ]
        },
        {
          "name": "qc_waiting",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "stock_balance",
            "qc_checklist",
            "item",
            "qc_unit",
            "serial_number",
            "production_order"
          ]
        },
        {
          "name": "qc_unnumbered",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "stock_balance",
            "qc_checklist",
            "item",
            "serial_number",
            "qc_back_unnamed",
            "document",
            "party"
          ]
        },
        {
          "name": "qc_back_candidates",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_back_unnamed",
            "qc_checklist",
            "serial_number",
            "item",
            "document"
          ]
        },
        {
          "name": "qc_unit",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_unit",
            "serial_number",
            "item",
            "economic_event",
            "production_order",
            "bom",
            "party"
          ]
        },
        {
          "name": "qc_unit_components",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "serial_number",
            "economic_event",
            "item"
          ]
        },
        {
          "name": "qc_protocols_for_serial",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_protocol",
            "qc_protocol_point",
            "qc_checklist"
          ]
        },
        {
          "name": "qc_protocol_by_key",
          "params": [
            "key"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_protocol",
            "qc_checklist"
          ]
        },
        {
          "name": "qc_protocols_recent",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_protocol",
            "serial_number",
            "item",
            "qc_checklist"
          ]
        },
        {
          "name": "qc_results_for_serial",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_protocol",
            "qc_protocol_point"
          ]
        },
        {
          "name": "qc_checklist_active",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_checklist",
            "qc_point",
            "item"
          ]
        },
        {
          "name": "qc_points_for_serial",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_unit",
            "qc_point"
          ]
        },
        {
          "name": "qc_form_points",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_unit",
            "serial_number",
            "qc_point",
            "production_order",
            "bom_operation",
            "bom",
            "work_center",
            "equipment_card"
          ]
        },
        {
          "name": "qc_checklists",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_point",
            "qc_protocol",
            "qc_checklist",
            "item"
          ]
        },
        {
          "name": "qc_checklist",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_point",
            "qc_protocol",
            "qc_checklist",
            "item"
          ]
        },
        {
          "name": "qc_points",
          "params": [
            "checklist_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_point",
            "qc_checklist",
            "equipment"
          ]
        },
        {
          "name": "qc_items",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item",
            "bom",
            "serial_number"
          ]
        },
        {
          "name": "trace_moves",
          "params": [
            "item_id",
            "event_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "document",
            "journal_line",
            "item",
            "economic_event",
            "location",
            "party",
            "stock_account"
          ]
        },
        {
          "name": "trace_move_values",
          "params": [
            "item_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "item",
            "journal_entry",
            "stock_account"
          ]
        },
        {
          "name": "trace_unit",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "serial_number",
            "item",
            "economic_event",
            "production_order",
            "bom",
            "party"
          ]
        },
        {
          "name": "trace_unit_events",
          "params": [
            "serial"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "change_log",
            "serial_number",
            "economic_event",
            "party"
          ]
        },
        {
          "name": "trace_events",
          "params": [
            "from",
            "to",
            "kind",
            "actor",
            "party"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "document",
            "economic_event",
            "incoming_tax_invoice",
            "journal_line",
            "item",
            "party"
          ]
        },
        {
          "name": "trace_event_kinds",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event"
          ]
        },
        {
          "name": "trace_months",
          "params": [
            "actor",
            "party"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event"
          ]
        },
        {
          "name": "trace_actors",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "change_log"
          ]
        },
        {
          "name": "trace_actor_counts",
          "params": [
            "actor"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "change_log"
          ]
        },
        {
          "name": "trace_changes",
          "params": [
            "from",
            "to",
            "actor",
            "table"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party",
            "item",
            "location",
            "site",
            "purchase_request",
            "purchase_order",
            "sales_order",
            "production_order",
            "bom",
            "change_order",
            "agreement",
            "tax_invoice",
            "incoming_tax_invoice",
            "fixed_asset",
            "change_log"
          ]
        },
        {
          "name": "trace_employees",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party_role",
            "party"
          ]
        },
        {
          "name": "trace_payroll_lines",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event"
          ]
        },
        {
          "name": "trace_party_items",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "item",
            "journal_entry",
            "economic_event",
            "stock_account"
          ]
        },
        {
          "name": "trace_documents",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "party"
          ]
        },
        {
          "name": "trace_chain",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "po_line",
            "economic_event",
            "production_order",
            "sales_order",
            "journal_line",
            "journal_entry",
            "document",
            "tax_invoice",
            "incoming_tax_invoice",
            "purchase_request",
            "purchase_order",
            "item",
            "so_line",
            "purchase_request_line",
            "party"
          ]
        },
        {
          "name": "trace_chain_links",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "po_line",
            "economic_event",
            "production_order",
            "sales_order",
            "journal_line",
            "journal_entry",
            "document",
            "tax_invoice",
            "incoming_tax_invoice",
            "purchase_request",
            "purchase_order"
          ]
        },
        {
          "name": "accountable_balances",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "party"
          ]
        },
        {
          "name": "overhead_balance",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line"
          ]
        },
        {
          "name": "presenter_requests",
          "params": [
            "presenter"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "closer"
          ],
          "tables": [
            "document",
            "request_key",
            "economic_event"
          ]
        },
        {
          "name": "install_zone",
          "params": [],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "closer"
          ],
          "tables": [
            "company_setting"
          ]
        },
        {
          "name": "company_settings",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "company_setting"
          ]
        },
        {
          "name": "sales_orders",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "so_line_shipped",
            "so_line",
            "sales_order",
            "party"
          ]
        },
        {
          "name": "sales_order",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "sales_order",
            "party",
            "request_outcome",
            "request"
          ]
        },
        {
          "name": "requests",
          "params": [
            "kind"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "request_line",
            "sales_order",
            "purchase_request",
            "economic_event",
            "event_number",
            "request_outcome",
            "request",
            "party"
          ]
        },
        {
          "name": "request",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "request_line",
            "sales_order",
            "purchase_request",
            "economic_event",
            "event_number",
            "request_outcome",
            "request",
            "party"
          ]
        },
        {
          "name": "request_lines",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "request_line",
            "item"
          ]
        },
        {
          "name": "request_outcomes",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "request_outcome",
            "sales_order",
            "purchase_request",
            "economic_event",
            "event_number",
            "journal_entry"
          ]
        },
        {
          "name": "request_of",
          "params": [
            "kind",
            "ref_id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "request_line",
            "sales_order",
            "purchase_request",
            "economic_event",
            "event_number",
            "request_outcome",
            "request",
            "party"
          ]
        },
        {
          "name": "movements_to_link",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "request_outcome"
          ]
        },
        {
          "name": "deal_parties",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "party",
            "party_role"
          ]
        },
        {
          "name": "deals",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_need",
            "reservation_held",
            "stock_pool_on_hand",
            "customer_claim",
            "so_line_shipped",
            "document",
            "journal_entry",
            "so_line",
            "production_order",
            "serial_number",
            "qc_unit",
            "document_state",
            "open_item",
            "company_setting",
            "agreement",
            "sales_order",
            "party",
            "request_outcome",
            "request"
          ]
        },
        {
          "name": "deal",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_need",
            "reservation_held",
            "stock_pool_on_hand",
            "customer_claim",
            "so_line_shipped",
            "document",
            "journal_entry",
            "so_line",
            "production_order",
            "serial_number",
            "qc_unit",
            "document_state",
            "open_item",
            "company_setting",
            "agreement",
            "sales_order",
            "party",
            "request_outcome",
            "request"
          ]
        },
        {
          "name": "deals_standing",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_need",
            "reservation_held",
            "stock_pool_on_hand",
            "customer_claim",
            "so_line_shipped",
            "document",
            "journal_entry",
            "so_line",
            "production_order",
            "serial_number",
            "qc_unit",
            "document_state",
            "open_item",
            "company_setting",
            "agreement",
            "sales_order",
            "party",
            "request_outcome",
            "request"
          ]
        },
        {
          "name": "deal_log",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "change_log",
            "request_outcome"
          ]
        },
        {
          "name": "deal_needs",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_output",
            "reservation_held",
            "stock_pool_on_hand",
            "customer_claim",
            "so_line_shipped",
            "production_order",
            "bom",
            "so_line",
            "sales_order",
            "item"
          ]
        },
        {
          "name": "deal_production",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_output",
            "production_order_need",
            "reservation_held",
            "production_order_release",
            "production_order",
            "item"
          ]
        },
        {
          "name": "deal_units",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "qc_unit",
            "serial_number",
            "item",
            "production_order"
          ]
        },
        {
          "name": "deal_documents",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "economic_event",
            "tax_invoice",
            "open_item",
            "sales_order",
            "document_state"
          ]
        },
        {
          "name": "papers_open",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "sales_order",
            "party",
            "document_state"
          ]
        },
        {
          "name": "document_steps",
          "params": [
            "document_id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "document_step"
          ]
        },
        {
          "name": "deal_payments",
          "params": [
            "id"
          ],
          "roles": [
            "sales",
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "ledger_line",
            "economic_event"
          ]
        },
        {
          "name": "payment_offer",
          "params": [
            "document_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "open_item",
            "sales_order",
            "document",
            "party"
          ]
        },
        {
          "name": "order_handovers",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "sales_order",
            "production_order",
            "reservation_handover",
            "item"
          ]
        },
        {
          "name": "order_claims_given",
          "params": [
            "order_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_handover",
            "customer_claim",
            "sales_order",
            "item"
          ]
        },
        {
          "name": "handover_offer",
          "params": [
            "order_id",
            "item_id",
            "to_kind",
            "to_id",
            "ask"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_held",
            "sales_order",
            "production_order",
            "item"
          ]
        },
        {
          "name": "customer_claims",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_handover",
            "production_order",
            "customer_claim",
            "item"
          ]
        },
        {
          "name": "so_lines",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "so_line",
            "item",
            "location",
            "so_line_shipped"
          ]
        },
        {
          "name": "sales_order_dated",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order"
          ]
        },
        {
          "name": "stock_available",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "reservation_held",
            "stock_reserved",
            "stock_balance",
            "item"
          ]
        },
        {
          "name": "shipments",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "document",
            "party"
          ]
        },
        {
          "name": "shipment_document",
          "params": [
            "id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "tax_invoice",
            "document"
          ]
        },
        {
          "name": "print_document",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "journal_entry",
            "document",
            "economic_event"
          ]
        },
        {
          "name": "event_number",
          "params": [
            "event_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "event_number"
          ]
        },
        {
          "name": "event_series",
          "params": [],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "event_series"
          ]
        },
        {
          "name": "entry_paper",
          "params": [
            "entry_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "tax_invoice",
            "journal_entry",
            "economic_event",
            "document",
            "event_number"
          ]
        },
        {
          "name": "returned_for_shipment",
          "params": [
            "document_id"
          ],
          "roles": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry"
          ]
        },
        {
          "name": "serials_of_item",
          "params": [
            "item_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "serial_number",
            "party"
          ]
        },
        {
          "name": "serials_for_event",
          "params": [
            "event_id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "serial_number",
            "item"
          ]
        },
        {
          "name": "supplier_payable_open",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line"
          ]
        },
        {
          "name": "supplier_advance_open",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line"
          ]
        },
        {
          "name": "item",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "tables": [
            "item"
          ]
        },
        {
          "name": "items_by_ids",
          "params": [
            "ids"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "item"
          ]
        },
        {
          "name": "company_profile",
          "params": [
            "as_of"
          ],
          "roles": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "company_profile"
          ]
        },
        {
          "name": "company_profile_history",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "company_profile"
          ]
        },
        {
          "name": "parameters",
          "params": [
            "area"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "parameter"
          ]
        },
        {
          "name": "proposals_by_module",
          "params": [
            "module",
            "status"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "proposal"
          ]
        },
        {
          "name": "proposal",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "proposal"
          ]
        },
        {
          "name": "floor_board",
          "params": [
            "as_of"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order",
            "change_log",
            "economic_event",
            "journal_entry",
            "operation_live",
            "bom_operation",
            "item",
            "bom",
            "work_center"
          ]
        },
        {
          "name": "floor_board_then",
          "params": [
            "date",
            "back"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_live",
            "production_order",
            "change_log",
            "economic_event",
            "journal_entry",
            "bom_operation",
            "item",
            "bom",
            "work_center"
          ]
        },
        {
          "name": "floor_open",
          "params": [
            "as_of"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_live",
            "work_center",
            "production_order",
            "item",
            "serial_number",
            "bom_operation",
            "party",
            "change_log"
          ]
        },
        {
          "name": "floor_days",
          "params": [
            "as_of",
            "limit"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_live"
          ]
        },
        {
          "name": "floor_activity",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_live"
          ]
        },
        {
          "name": "floor_internal",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "equipment_maintenance",
            "equipment",
            "equipment_verification"
          ]
        },
        {
          "name": "floor_order_parts",
          "params": [],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_need",
            "reservation_held",
            "qc_unit",
            "item"
          ]
        },
        {
          "name": "floor_check_waiting",
          "params": [
            "date"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "bom_operation",
            "qc_protocol",
            "serial_number",
            "item",
            "production_order",
            "qc_checklist"
          ]
        },
        {
          "name": "floor_assignments",
          "params": [
            "date"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "work_center_assignment",
            "party",
            "work_center"
          ]
        },
        {
          "name": "floor_assignments_between",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "agreement",
            "work_center_assignment",
            "party",
            "work_center"
          ]
        },
        {
          "name": "floor_person_assignments",
          "params": [
            "party_id"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "work_center_assignment",
            "work_center"
          ]
        },
        {
          "name": "floor_leave",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event"
          ]
        },
        {
          "name": "floor_records",
          "params": [
            "party_id",
            "work_center_id",
            "from",
            "to"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "operation_live",
            "work_center",
            "production_order",
            "item",
            "serial_number",
            "bom_operation",
            "party"
          ]
        },
        {
          "name": "floor_outputs",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "operation_live",
            "production_order",
            "item",
            "bom_operation",
            "work_center"
          ]
        },
        {
          "name": "floor_person_documents",
          "params": [
            "party_id",
            "from",
            "to"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "app_user",
            "change_log"
          ]
        },
        {
          "name": "floor_people",
          "params": [
            "date"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "work_center_assignment",
            "work_center",
            "party",
            "agreement"
          ]
        },
        {
          "name": "floor_person",
          "params": [
            "party_id"
          ],
          "roles": [
            "production",
            "accountant"
          ],
          "tables": [
            "party"
          ]
        },
        {
          "name": "floor_plan_orders",
          "params": [],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_progress",
            "economic_event",
            "journal_entry",
            "operation_live",
            "production_order",
            "item",
            "bom_operation",
            "work_center"
          ]
        },
        {
          "name": "floor_plan_lines",
          "params": [
            "from"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "production_order",
            "production_order_output",
            "production_plan",
            "item",
            "bom",
            "bom_operation",
            "work_center"
          ]
        },
        {
          "name": "floor_order",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "production_order_output",
            "operation_progress",
            "economic_event",
            "journal_entry",
            "operation_live",
            "production_order",
            "item",
            "bom_operation",
            "work_center"
          ]
        },
        {
          "name": "floor_order_records",
          "params": [
            "id"
          ],
          "roles": [
            "viewer",
            "shop_worker",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "operation_record",
            "work_center",
            "bom_operation",
            "party",
            "production_order"
          ]
        },
        {
          "name": "deal_trail_examples",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "sales_order",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party"
          ]
        },
        {
          "name": "deal_trail",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "change_log",
            "request"
          ]
        },
        {
          "name": "deal_trail_items",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration"
          ]
        },
        {
          "name": "deal_trail_production",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "change_log",
            "reservation_move",
            "location",
            "production_order_release"
          ]
        },
        {
          "name": "deal_trail_work",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "bom_operation",
            "operation_work",
            "work_center"
          ]
        },
        {
          "name": "deal_trail_units",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "serial_number",
            "qc_protocol"
          ]
        },
        {
          "name": "deal_trail_papers",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "document_step",
            "tax_invoice",
            "bank_statement_line",
            "bank_line_link"
          ]
        },
        {
          "name": "deal_trail_supply",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "change_log",
            "purchase_request",
            "purchase_order"
          ]
        },
        {
          "name": "deal_trail_events",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "incoming_tax_invoice"
          ]
        },
        {
          "name": "deal_trail_ledger",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "account",
            "location"
          ]
        },
        {
          "name": "deal_trail_moves",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration",
            "location"
          ]
        },
        {
          "name": "deal_trail_state",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "sales_order",
            "document",
            "journal_entry",
            "production_order",
            "so_line",
            "request_outcome",
            "journal_line",
            "economic_event",
            "import_declaration_line",
            "item",
            "party",
            "po_line",
            "stock_account",
            "import_declaration"
          ]
        },
        {
          "name": "simulate_offers",
          "params": [],
          "roles": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "tables": [
            "po_line_received",
            "so_line_shipped",
            "stock_balance",
            "item",
            "location",
            "reservation_balance",
            "purchase_order",
            "po_line",
            "party",
            "sales_order",
            "so_line",
            "party_role"
          ]
        },
        {
          "name": "tax_invoices",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "tax_invoice",
            "party"
          ]
        },
        {
          "name": "tax_invoices_waiting",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "tax_invoice"
          ]
        },
        {
          "name": "tax_invoice",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "tax_invoice",
            "economic_event"
          ]
        },
        {
          "name": "vat_events_without_tax_invoice",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "journal_entry",
            "tax_invoice"
          ]
        },
        {
          "name": "vat_summary",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "import_declaration",
            "economic_event",
            "ledger_line",
            "tax_invoice"
          ]
        },
        {
          "name": "vat_declaration",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "tax_invoice",
            "incoming_tax_invoice",
            "import_tax_register",
            "ledger_line",
            "economic_event"
          ]
        },
        {
          "name": "vat_check",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "import_declaration",
            "economic_event",
            "ledger_line",
            "tax_invoice",
            "incoming_tax_invoice",
            "import_tax_register"
          ]
        },
        {
          "name": "month_close_checklist",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "bank_statement_line",
            "economic_event",
            "journal_entry",
            "tax_invoice",
            "fixed_asset",
            "depreciation_run",
            "stock_account",
            "ledger_line"
          ]
        },
        {
          "name": "month_close_more",
          "params": [
            "period",
            "pay_accounts",
            "monetary"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "payment_order",
            "economic_event",
            "journal_entry",
            "agreement",
            "ledger_line",
            "exchange_rate",
            "journal_line",
            "bank_statement_line",
            "bank_account",
            "bank_line_link"
          ]
        },
        {
          "name": "import_receipts_open",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_line",
            "stock_account",
            "economic_event",
            "journal_entry",
            "party",
            "import_declaration"
          ]
        },
        {
          "name": "import_declarations",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "import_declaration",
            "party",
            "journal_entry",
            "import_declaration_line",
            "import_cost_line"
          ]
        },
        {
          "name": "customs_offices",
          "params": [
            "kind"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "import_declaration"
          ]
        },
        {
          "name": "import_declaration_of_event",
          "params": [
            "event_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "import_declaration"
          ]
        },
        {
          "name": "import_declarations_standing",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "import_declaration",
            "party",
            "journal_entry",
            "import_declaration_line",
            "import_cost_line"
          ]
        },
        {
          "name": "import_declaration",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "import_declaration",
            "party",
            "journal_entry",
            "import_declaration_line",
            "import_cost_line"
          ]
        },
        {
          "name": "import_declaration_of_receipt",
          "params": [
            "event_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "document",
            "economic_event",
            "import_declaration",
            "party",
            "journal_entry",
            "import_declaration_line",
            "import_cost_line"
          ]
        },
        {
          "name": "import_declaration_lines",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "import_declaration_line",
            "item",
            "location",
            "import_cost_line"
          ]
        },
        {
          "name": "import_declaration_costs",
          "params": [
            "id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "import_declaration",
            "economic_event",
            "journal_entry",
            "party"
          ]
        },
        {
          "name": "supplier_vat_status",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "party"
          ]
        },
        {
          "name": "tax_invoices_in_period",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "tax_invoice",
            "party"
          ]
        },
        {
          "name": "incoming_tax_invoices_in_period",
          "params": [
            "period"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "incoming_tax_invoice",
            "party"
          ]
        },
        {
          "name": "incoming_tax_invoices",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "incoming_tax_invoice",
            "party"
          ]
        },
        {
          "name": "last_tax_invoice_for_party",
          "params": [
            "party_id"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "tax_invoice"
          ]
        },
        {
          "name": "tax_profile",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event"
          ]
        },
        {
          "name": "tax_profiles",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event"
          ]
        },
        {
          "name": "party_tax",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "party",
            "economic_event"
          ]
        },
        {
          "name": "tax_base",
          "params": [
            "from",
            "to"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "ledger_line",
            "economic_event"
          ]
        },
        {
          "name": "tax_accruals",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "journal_entry",
            "economic_event"
          ]
        },
        {
          "name": "tax_warnings",
          "params": [
            "as_of"
          ],
          "roles": [
            "accountant"
          ],
          "tables": [
            "economic_event",
            "ledger_line",
            "party",
            "document",
            "journal_entry"
          ]
        },
        {
          "name": "month_close_checklist_closing",
          "params": [],
          "roles": [
            "accountant"
          ],
          "tables": [
            "period",
            "bank_statement_line",
            "economic_event",
            "journal_entry",
            "tax_invoice",
            "fixed_asset",
            "depreciation_run",
            "stock_account",
            "ledger_line"
          ]
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/queries' \
      -H 'authorization: Bearer <ключ>'
  2. 2запит company_profile разом947 мс200

    GET /api/v1/q/company_profile?as_of=2026-10-08

    Читає company_profile (company_profile)

    показати запит і відповідь
    GET /api/v1/q/company_profile?as_of=2026-10-08
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "rows": [
        {
          "id": "b6f7fe44-9a92-4274-b446-ddcdb10c82d2",
          "valid_from": "2025-11-03",
          "payload": "{\"legalName\":\"Товариство з обмеженою відповідальністю «Крило і Гвинт»\",\"shortName\":\"ТОВ «Крило і Гвинт»\",\"registrationNumber\":\"99000011\",\"vatNumber\":\"990000113067\",\"legalAddress\":\"79060, м. Львів, вул. Наукова, 7а\",\"iban\":\"UA783999900000002600701045128\",\"bankName\":\"АТ «Перший Прикладний Банк»\",\"directorName\":\"Сидорук Марія Василівна\",\"directorPosition\":\"Директор\",\"accountantName\":\"Луцик Богдан Ігорович\",\"accountantPosition\":\"Головний бухгалтер\",\"phone\":\"+380 32 000 44 10\",\"email\":\"office@krylo-i-hvynt.example\"}",
          "actor_id": "key:4e85ac04-cbc2-4060-bc6b-41006855c12d",
          "created_at": "2026-10-07T18:25:56.542Z"
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/q/company_profile?as_of=2026-10-08' \
      -H 'authorization: Bearer <ключ>'
  3. 3запит dashboard_stats разом1443 мс200

    GET /api/v1/q/dashboard_stats

    Читає dashboard_stats (ledger_line, account)

    показати запит і відповідь
    GET /api/v1/q/dashboard_stats
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "rows": [
        {
          "cash": 1717857678,
          "receivables": 206280000,
          "payables": 37944014,
          "revenue_net": 3149000000,
          "expenses": 3174884968,
          "salaries_payable": 50004492,
          "taxes_payable": -57493595
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/q/dashboard_stats' \
      -H 'authorization: Bearer <ключ>'
  4. 4опис views906 мс200

    GET /api/v1/views

    Подання, які читає цей ключ, з їхніми параметрами і читаннями

    Опис, який API дає про себе. Тримається в памʼяті десять хвилин.

    показати запит і відповідь
    GET /api/v1/views
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "views": [
        {
          "module": "hroshi",
          "name": "tax_receivers",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "people",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "person_terms",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "person_history",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "person_accruals",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "person_leaves",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "person_earnings",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "slip_head",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "slip",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "register",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "months",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "timesheet",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "leaves",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "inputs",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "params",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "sick_scale",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "calendar",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "param_changes",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "param_choices",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "params_state",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "payroll",
          "name": "cpi",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "people",
          "name": "preview",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "people",
          "name": "last_sync",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "prodazh",
          "name": "offer",
          "readers": [
            "sales",
            "accountant"
          ],
          "title": "Що компанія продає: позиції з ціною, податком і сумою за кількість",
          "params": [
            {
              "name": "item",
              "description": "Артикул позиції або її id. Порожньо - усі позиції, що продаються."
            },
            {
              "name": "qty",
              "description": "Кількість, для якої рахувати суму. Порожньо - одна."
            }
          ],
          "rule": "Ціна без податку - з картки позиції, а коли її там немає, з останнього замовлення; рядок каже, звідки ціна. Податок з продажу і суму рахує пакет країни за ставкою позиції, якщо компанія сьогодні його платник.",
          "reads": [
            {
              "query": "sale_offer",
              "tables": [
                "bom_line",
                "bom_operation",
                "item",
                "bom",
                "so_line",
                "sales_order"
              ]
            },
            {
              "query": "tax_profile",
              "tables": [
                "economic_event"
              ]
            }
          ]
        },
        {
          "module": "prodazh",
          "name": "deal_stages",
          "readers": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "about": "The stages of a deal by the rule dealStages. With id: {row: \"deal\"} once, then one {row: \"stage\", stage, state, date, what, n, days, day, of} per stage, left to right. Without id: one {row: \"deal\", ..., stage, state, date, what, ...} per deal that stands, with the first stage something stands in the way of. state: done | now | blocked | wait | stopped. what (null when nothing): not_confirmed | short | components | not_released | unchecked | not_shipped | gift_rule | unsigned | refused | overdue | unsigned_wait | payment_wait; n, days, day and of are its numbers.",
          "title": "Етапи угоди: стан кожного, його день і що заважає",
          "params": [
            {
              "name": "id",
              "description": "Поле id з запиту deals. Порожньо - угоди, що стоять, кожна з етапом, на якому стоїть."
            }
          ],
          "rule": "Правило dealStages (packages/rules/src/deal.ts): етапи рахують із фактів угоди, нічого не зберігають. Стан етапу і те, що йому заважає або чого він чекає, рядок каже кодами, з числами поруч. Без права на суми етап оплати лишається без стану.",
          "reads": [
            {
              "query": "deal",
              "tables": [
                "production_order_need",
                "reservation_held",
                "stock_pool_on_hand",
                "customer_claim",
                "so_line_shipped",
                "document",
                "journal_entry",
                "so_line",
                "production_order",
                "serial_number",
                "qc_unit",
                "document_state",
                "open_item",
                "company_setting",
                "agreement",
                "sales_order",
                "party",
                "request_outcome",
                "request"
              ]
            },
            {
              "query": "deals_standing",
              "tables": [
                "production_order_need",
                "reservation_held",
                "stock_pool_on_hand",
                "customer_claim",
                "so_line_shipped",
                "document",
                "journal_entry",
                "so_line",
                "production_order",
                "serial_number",
                "qc_unit",
                "document_state",
                "open_item",
                "company_setting",
                "agreement",
                "sales_order",
                "party",
                "request_outcome",
                "request"
              ]
            }
          ]
        },
        {
          "module": "dovidnyk",
          "name": "card",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "dovidnyk",
          "name": "glossary",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "dovidnyk",
          "name": "stock_total",
          "readers": [
            "anyone"
          ],
          "fields": {
            "value": [
              "accountant"
            ]
          }
        },
        {
          "module": "dovidnyk",
          "name": "stock",
          "readers": [
            "anyone"
          ],
          "fields": {
            "value": [
              "accountant"
            ]
          }
        },
        {
          "module": "dovidnyk",
          "name": "where_used",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "dovidnyk",
          "name": "spec_versions",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "dovidnyk",
          "name": "purchase_orders",
          "readers": [
            "storekeeper",
            "purchaser",
            "production",
            "accountant"
          ],
          "fields": {
            "price": [
              "purchaser",
              "accountant"
            ]
          }
        },
        {
          "module": "dovidnyk",
          "name": "sales_orders",
          "readers": [
            "storekeeper",
            "sales",
            "accountant"
          ],
          "fields": {
            "price": [
              "sales",
              "accountant"
            ]
          }
        },
        {
          "module": "komora",
          "name": "sites",
          "readers": [
            "anyone"
          ],
          "fields": {
            "reserve_value": [
              "accountant"
            ],
            "work_value": [
              "accountant"
            ]
          }
        },
        {
          "module": "komora",
          "name": "site_stock",
          "readers": [
            "anyone"
          ],
          "fields": {
            "value": [
              "accountant"
            ]
          }
        },
        {
          "module": "zbirka",
          "name": "plan",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "promise",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "title": "Коли можна відвантажити: оцінка терміну для кількості однієї позиції",
          "params": [
            {
              "name": "item",
              "required": true,
              "description": "Артикул позиції або її id."
            },
            {
              "name": "qty",
              "required": true,
              "description": "Кількість, додатне ціле число."
            },
            {
              "name": "needed_by",
              "description": "День, до якого потрібно (РРРР-ММ-ДД). Порожньо - відповідь без порівняння з днем."
            }
          ],
          "rule": "Правило deliveryEstimate (packages/rules/src/promise.ts): план потреби рахують двічі, без цієї кількості і з нею; різниця - що виготовити і що купити. Куповане чекає термін постачальника, виготовлене - чергу і людей робочих місць; дні робочі, з понеділка по пʼятницю.",
          "reads": [
            {
              "query": "mrp_bom_lines",
              "tables": [
                "bom",
                "bom_line"
              ]
            },
            {
              "query": "mrp_demand",
              "tables": [
                "production_order_output",
                "so_line_shipped",
                "so_line",
                "sales_order",
                "production_order",
                "item"
              ]
            },
            {
              "query": "mrp_supply",
              "tables": [
                "reservation_held",
                "po_line_received",
                "stock_balance",
                "po_line",
                "purchase_order",
                "item"
              ]
            },
            {
              "query": "mrp_analogs",
              "tables": [
                "bom",
                "bom_line",
                "bom_substitute",
                "item"
              ]
            },
            {
              "query": "plan_open",
              "tables": [
                "economic_event",
                "journal_entry",
                "production_plan",
                "production_order",
                "production_order_output",
                "item"
              ]
            },
            {
              "query": "promise_routes",
              "tables": [
                "bom",
                "bom_operation",
                "work_center",
                "bom_operation_card"
              ]
            },
            {
              "query": "promise_lead_days",
              "tables": [
                "supplier_price"
              ]
            },
            {
              "query": "floor_plan_orders",
              "tables": [
                "operation_progress",
                "economic_event",
                "journal_entry",
                "operation_live",
                "production_order",
                "item",
                "bom_operation",
                "work_center"
              ]
            },
            {
              "query": "floor_assignments",
              "tables": [
                "work_center_assignment",
                "party",
                "work_center"
              ]
            },
            {
              "query": "item_availability",
              "tables": [
                "reservation_held",
                "stock_pool_on_hand",
                "stock_reserved",
                "item"
              ]
            }
          ]
        },
        {
          "module": "zbirka",
          "name": "order",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ]
        },
        {
          "module": "zbirka",
          "name": "order_cover",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "demand",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "plan_lines",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "plan_holds",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "changes",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "change",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "change_versions",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "change_diff",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "bom_diff",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "products",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "how_head",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "how_totals",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "how_parts",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "how_route",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "plan_time",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "order_time",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zbirka",
          "name": "floor",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "fields": {
            "people": [
              "production",
              "accountant"
            ],
            "people_list": [
              "production",
              "accountant"
            ],
            "shop_line": [
              "viewer",
              "storekeeper",
              "sales",
              "purchaser",
              "production",
              "accountant"
            ],
            "shop_line_status": [
              "viewer",
              "storekeeper",
              "sales",
              "purchaser",
              "production",
              "accountant"
            ]
          }
        },
        {
          "module": "zbirka",
          "name": "floor_line",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "open_work",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ]
        },
        {
          "module": "zbirka",
          "name": "order_operations",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "fields": {
            "who": [
              "production",
              "accountant"
            ]
          }
        },
        {
          "module": "zbirka",
          "name": "order_records",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant",
            "shop_worker"
          ],
          "fields": {
            "person": [
              "production",
              "accountant"
            ],
            "actor_id": [
              "production",
              "accountant"
            ]
          }
        },
        {
          "module": "zbirka",
          "name": "person_log",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "person_day",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "person",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "workplace_log",
          "readers": [
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "people",
          "readers": [
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "assignments",
          "readers": [
            "production",
            "accountant"
          ]
        },
        {
          "module": "zbirka",
          "name": "load",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "yakist",
          "name": "protocol_points",
          "readers": [
            "viewer",
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "register",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "card",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "held_by",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "available",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "assets",
          "readers": [
            "production",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "checks",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "filters",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "custody",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "person_history",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "verifications",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "state_log",
          "readers": [
            "production",
            "storekeeper",
            "accountant"
          ]
        },
        {
          "module": "instrument",
          "name": "workplace_card",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "zvity",
          "name": "reports",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "period",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "periods",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "osv",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "card",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "card_pages",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "card_parties",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "f1",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "f2",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "f3",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "line",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "management",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "cost",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "cost_runs",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "vat",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "vat_check",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "vat_out",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "vat_in",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "profit",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "esv_sections",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "esv_months",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "esv_d1",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "esv_4df",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "checks",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "uncovered",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "month_close",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "zvity",
          "name": "close_months",
          "readers": [
            "accountant"
          ]
        },
        {
          "module": "slid",
          "name": "chronicle",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "chronicle_scope",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "chronicle_kinds",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "chronicle_months",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "chronicle_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "changes",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "items",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_receipts",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_moves",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_on_hand",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_problems",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "item_units",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "units",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "unit",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "unit_components",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "unit_events",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "unit_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "documents",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "document_chain",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "document_loose",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "document_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "people",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_actions",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_counts",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_months",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_agreements",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_payroll",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_equipment",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_operations",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "person_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "parties",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "party",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "party_events",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "party_items",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "party_months",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "party_graph",
          "readers": [
            "anyone"
          ]
        },
        {
          "module": "slid",
          "name": "deal_steps",
          "readers": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "about": "The steps of one deal, oldest first. Parameter: id of a customer order (without it, the first example deal). Rows: {row: \"deal\"} once, then per step {row: \"step\", step, key, stage, kind, date, title, text, who} and its parts by the same `step`: \"record\" (type, id, label), \"move\" (item, place, qty), \"line\" (account, side, amount; minor units), \"link\" (from: the earlier step it stands on, text), \"state\" (stock of the product and key components, what the payer owes, the bank). Ledger lines and sums only for a key with the accountant role."
        },
        {
          "module": "slid",
          "name": "deal_examples",
          "readers": [
            "storekeeper",
            "sales",
            "purchaser",
            "production",
            "accountant"
          ],
          "about": "Finished deals that show the whole way (made from a request, produced, checked, shipped, paid), one per payer; the first is what deal_steps answers without an id."
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/views' \
      -H 'authorization: Bearer <ключ>'
  5. 5подання prodazh/deal_stages разом1445 мс200

    GET /api/v1/v/prodazh/deal_stages

    Етапи угоди: стан кожного, його день і що заважає

    Читає deal (production_order_need, reservation_held, stock_pool_on_hand, customer_claim, so_line_shipped, document, journal_entry, so_line, production_order, serial_number, qc_unit, document_state, open_item, company_setting, agreement, sales_order, party, request_outcome, request), deals_standing (production_order_need, reservation_held, stock_pool_on_hand, customer_claim, so_line_shipped, document, journal_entry, so_line, production_order, serial_number, qc_unit, document_state, open_item, company_setting, agreement, sales_order, party, request_outcome, request)

    Правило

    • Правило dealStages (packages/rules/src/deal.ts): етапи рахують із фактів угоди, нічого не зберігають. Стан етапу і те, що йому заважає або чого він чекає, рядок каже кодами, з числами поруч. Без права на суми етап оплати лишається без стану.
    показати запит і відповідь
    GET /api/v1/v/prodazh/deal_stages
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "rows": [
        {
          "row": "deal",
          "id": "dc696b67-eb0f-4463-bb1d-076a0b5e233e",
          "number": "ЗК-2026-00079",
          "status": "confirmed",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ДУ «Центр повітряного моніторингу»",
          "due_on": "2026-10-14",
          "qty": 228,
          "shipped": 0,
          "stage": "production",
          "state": "blocked",
          "date": "2026-10-02",
          "what": "components",
          "n": 9964,
          "days": null,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "360738bd-c188-4b41-9378-ca39a5537ca6",
          "number": "ЗК-2026-00078",
          "status": "confirmed",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ТОВ «Поле з неба»",
          "due_on": "2026-10-22",
          "qty": 5,
          "shipped": 0,
          "stage": "production",
          "state": "blocked",
          "date": "2026-10-01",
          "what": "components",
          "n": 45,
          "days": null,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "72d60049-ad7f-41fd-af1c-653860657683",
          "number": "ЗК-2026-00077",
          "status": "confirmed",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ТОВ «Обрій Безпека»",
          "due_on": "2026-10-17",
          "qty": 6,
          "shipped": 0,
          "stage": "production",
          "state": "blocked",
          "date": "2026-09-30",
          "what": "components",
          "n": 38,
          "days": null,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "de0861c5-1d4d-4aa8-9338-c547dc51a7ee",
          "number": "ЗК-2026-00071",
          "status": "done",
          "deal": "оплата третьою стороною",
          "deal_kind": "third_party",
          "customer": "БФ «Небо поруч»",
          "due_on": "2026-09-26",
          "qty": 14,
          "shipped": 14,
          "stage": "documents",
          "state": "blocked",
          "date": "2026-09-21",
          "what": "unsigned",
          "n": 1,
          "days": 12,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "9443e19b-f21d-4c09-824d-3dbaab2de1ab",
          "number": "ЗК-2026-00046",
          "status": "done",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ТОВ «Обрій Безпека»",
          "due_on": "2026-06-30",
          "qty": 8,
          "shipped": 8,
          "stage": "documents",
          "state": "blocked",
          "date": "2026-06-25",
          "what": "unsigned",
          "n": 1,
          "days": 73,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "ae5e5b46-b83e-4e2c-a21c-92ab1406522c",
          "number": "ЗК-2026-00039",
          "status": "done",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ТОВ «Обрій Безпека»",
          "due_on": "2026-06-12",
          "qty": 6,
          "shipped": 6,
          "stage": "documents",
          "state": "blocked",
          "date": "2026-06-02",
          "what": "unsigned",
          "n": 1,
          "days": 88,
          "day": null,
          "of": null
        },
        {
          "row": "deal",
          "id": "83694b6b-a67a-4e9c-90ce-9ad69fcea252",
          "number": "ЗК-2026-00033",
          "status": "done",
          "deal": "продаж",
          "deal_kind": "sale",
          "customer": "ТОВ «Обрій Безпека»",
          "due_on": "2026-05-24",
          "qty": 5,
          "shipped": 5,
          "stage": "documents",
          "state": "blocked",
          "date": null,
          "what": "unsigned",
          "n": 1,
          "days": 102,
          "day": null,
          "of": null
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/v/prodazh/deal_stages' \
      -H 'authorization: Bearer <ключ>'
  6. 6подання zvity/month_close разом2455 мс200

    GET /api/v1/v/zvity/month_close

    показати запит і відповідь
    GET /api/v1/v/zvity/month_close
    {
      "headers": {
        "authorization": "Bearer <ключ>"
      }
    }
    {
      "rows": [
        {
          "key": "first_events_without_tax_invoice",
          "period": "2026-10",
          "what": "Відвантаження й аванси без податкової накладної",
          "blocks": 1,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "prodazh",
          "page": "",
          "anchor": "first-events",
          "where": "",
          "where_page": "",
          "where_at": "Продаж: події без податкової накладної",
          "hint": ""
        },
        {
          "key": "tax_invoices_not_registered",
          "period": "2026-10",
          "what": "Податкові накладні, не зареєстровані в строк",
          "blocks": 1,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "prodazh",
          "page": "",
          "anchor": "tax-invoices",
          "where": "",
          "where_page": "",
          "where_at": "Продаж: податкові накладні",
          "hint": ""
        },
        {
          "key": "obligations_difference",
          "period": "2026-10",
          "what": "ПДВ-зобовʼязання: реєстр накладних і книга, різниця",
          "blocks": 1,
          "count": null,
          "amount": 0,
          "shown": "0,00 грн",
          "state": "ok:гаразд",
          "module": "zvity",
          "page": "pdv",
          "anchor": "",
          "where": "",
          "where_page": "Звіти: декларація з ПДВ",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "credit_difference",
          "period": "2026-10",
          "what": "Податковий кредит: реєстр накладних і книга, різниця",
          "blocks": 1,
          "count": null,
          "amount": 0,
          "shown": "0,00 грн",
          "state": "ok:гаразд",
          "module": "zvity",
          "page": "pdv",
          "anchor": "",
          "where": "",
          "where_page": "Звіти: декларація з ПДВ",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "bank_lines_not_posted",
          "period": "2026-10",
          "what": "Рядки виписки без проведення",
          "blocks": 1,
          "count": 1,
          "amount": null,
          "shown": "1",
          "state": "crit:не дає закрити",
          "module": "hroshi",
          "page": "strichka",
          "anchor": "",
          "where": "",
          "where_page": "Гроші: стрічка банку",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "bank_payments_open",
          "period": "2026-10",
          "what": "Платежі по банку без рядка виписки",
          "blocks": 0,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "hroshi",
          "page": "strichka",
          "anchor": "",
          "where": "",
          "where_page": "Гроші: стрічка банку",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "payment_orders_open",
          "period": "2026-10",
          "what": "Платежі, які банк ще не виконав",
          "blocks": 1,
          "count": 3,
          "amount": null,
          "shown": "3",
          "state": "crit:не дає закрити",
          "module": "hroshi",
          "page": "platezhi",
          "anchor": "",
          "where": "",
          "where_page": "Гроші: платежі",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "payroll_not_accrued",
          "period": "2026-10",
          "what": "Зарплату за місяць не нараховано: людей",
          "blocks": 1,
          "count": 17,
          "amount": null,
          "shown": "17",
          "state": "crit:не дає закрити",
          "module": "payroll",
          "page": "",
          "anchor": "",
          "where": "Зарплата",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "pay_owed_people",
          "period": "2026-10",
          "what": "Зарплату не виплачено: людей",
          "blocks": 0,
          "count": 16,
          "amount": null,
          "shown": "16",
          "state": "warn:перегляньте",
          "module": "hroshi",
          "page": "platezhi",
          "anchor": "",
          "where": "",
          "where_page": "Гроші: платежі",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "taxes_not_accrued",
          "period": "2026-10",
          "what": "Податки за місяць не нараховано",
          "blocks": 1,
          "count": 1,
          "amount": null,
          "shown": "1",
          "state": "crit:не дає закрити",
          "module": "podatky",
          "page": "",
          "anchor": "",
          "where": "Податки",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "assets_without_depreciation",
          "period": "2026-10",
          "what": "Основні засоби без амортизації за місяць",
          "blocks": 1,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "aktyvy",
          "page": "",
          "anchor": "",
          "where": "Основні засоби",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "wip_left_on_23",
          "period": "2026-10",
          "what": "Незавершене виробництво: залишок рахунку 23",
          "blocks": 1,
          "count": null,
          "amount": 0,
          "shown": "0,00 грн",
          "state": "ok:гаразд",
          "module": "zbirka",
          "page": "",
          "anchor": "",
          "where": "Виробництво",
          "where_page": "",
          "where_at": "",
          "hint": "На рахунку 23 лежить те, що видано у виробництво і ще не стало готовими виробами. Виробіть запущені замовлення на сторінці «Збірка»: випуск знімає їхню частку з рахунку."
        },
        {
          "key": "overhead_left_on_91",
          "period": "2026-10",
          "what": "Загальновиробничі витрати не розподілено: залишок рахунку 91",
          "blocks": 1,
          "count": null,
          "amount": 0,
          "shown": "0,00 грн",
          "state": "ok:гаразд",
          "module": "aktyvy",
          "page": "",
          "anchor": "",
          "where": "Основні засоби: закрити 91",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "stock_accounts_off",
          "period": "2026-10",
          "what": "Рахунки запасів, що не збігаються зі складом по місцях",
          "blocks": 1,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "komora",
          "page": "",
          "anchor": "",
          "where": "Комора",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "stock_balance_off",
          "period": "2026-10",
          "what": "Збережені залишки запасів, що не збігаються з рухами в книзі",
          "blocks": 1,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "komora",
          "page": "",
          "anchor": "",
          "where": "Комора",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "currency_not_revalued",
          "period": "2026-10",
          "what": "Валютні залишки без переоцінки на кінець місяця",
          "blocks": 1,
          "count": 1,
          "amount": null,
          "shown": "1",
          "state": "crit:не дає закрити",
          "module": "valyuta",
          "page": "",
          "anchor": "",
          "where": "Валюта",
          "where_page": "",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "uncovered_accounts",
          "period": "2026-10",
          "what": "Рахунки із сальдо, яких немає в жодному рядку Форми 1",
          "blocks": 0,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "zvity",
          "page": "perevirky",
          "anchor": "",
          "where": "",
          "where_page": "Звіти: перевірки",
          "where_at": "",
          "hint": ""
        },
        {
          "key": "cash_without_line",
          "period": "2026-10",
          "what": "Види подій, рух грошей яких не має рядка у Формі 3",
          "blocks": 0,
          "count": 0,
          "amount": null,
          "shown": "0",
          "state": "ok:гаразд",
          "module": "zvity",
          "page": "perevirky",
          "anchor": "",
          "where": "",
          "where_page": "Звіти: перевірки",
          "where_at": "",
          "hint": ""
        }
      ]
    }
    curl
    curl 'https://demokrylo.bnp.works/api/v1/v/zvity/month_close' \
      -H 'authorization: Bearer <ключ>'

Як зробити так само

Ця сторінка - окремий Worker без бази. Вона знає адресу ERP і один ключ; усе інше питає через API.