---
title: "Art. 18 UoR — Zestawienie obrotów i sald"
description: "Zestawienie obrotów i sald (ZOiS) — obowiązkowe miesięczne podsumowanie kont księgi głównej, zgodność z obrotami dziennika, zestawienie sald kont ksiąg pomocniczych na dzień zamknięcia ksiąg."
url: https://numifyai.com/docs/zgodnosc-z-prawem/ustawa-o-rachunkowosci/art-18-trial-balance
review_status: internal
updated: 2026-04-16
---


<PolishTerm pl="Zestawienie obrotów i sald" en="Trial balance">Zestawienie
obrotów i sald</PolishTerm> (<PolishTerm pl="ZOiS" en="Trial balance">ZOiS</PolishTerm>)
to tabelaryczne podsumowanie stanu wszystkich kont księgi głównej na
dany moment. Jest punktem kontrolnym ksiąg — jeśli ZOiS się nie
zbilansuje, ksiegi są błędne.

<ComplianceDisclaimer />

## Definicja — art. 18 ust. 1 [#definicja--art-18-ust-1]

> Na podstawie zapisów na kontach księgi głównej sporządza się na
> koniec każdego okresu sprawozdawczego, **nie rzadziej niż na koniec
> miesiąca**, zestawienie obrotów i sald, zawierające:
>
> 1. symbole lub nazwy kont;
> 2. salda kont na dzień otwarcia ksiąg rachunkowych, obroty za okres
>    sprawozdawczy i narastająco od początku roku obrotowego oraz salda
>    na koniec okresu sprawozdawczego;
> 3. sumę sald na dzień otwarcia ksiąg rachunkowych, obrotów za okres
>    sprawozdawczy i narastająco od początku roku obrotowego oraz sald
>    na koniec okresu sprawozdawczego.
>
> Obroty tego zestawienia powinny być zgodne z obrotami dziennika lub
> obrotami zestawienia obrotów dzienników częściowych.

Trzy kluczowe wymogi:

### 1. Częstotliwość — co najmniej miesięcznie [#1-częstotliwość--co-najmniej-miesięcznie]

ZOiS musi być sporządzane **co najmniej na koniec każdego miesiąca**.
Słowo „co najmniej" pozwala sporządzać je częściej (np. tygodniowo dla
celów kontrolnych), ale nie pozwala robić rzadziej (np. tylko
kwartalnie).

### 2. Obowiązkowa zawartość [#2-obowiązkowa-zawartość]

ZOiS musi zawierać dla każdego konta:

| Kolumna               | Opis                                              |
| --------------------- | ------------------------------------------------- |
| Symbol / nazwa konta  | Kod z planu kont (np. 202) i jego nazwa           |
| Saldo BO              | Saldo na dzień otwarcia ksiąg (początek roku)     |
| Obroty miesiąca Dt    | Suma debetów w danym miesiącu                     |
| Obroty miesiąca Ct    | Suma kredytów w danym miesiącu                    |
| Obroty narastająco Dt | Suma debetów od początku roku                     |
| Obroty narastająco Ct | Suma kredytów od początku roku                    |
| Saldo BZ Dt           | Saldo końcowe po stronie debetu (jeśli dodatnie)  |
| Saldo BZ Ct           | Saldo końcowe po stronie kredytu (jeśli dodatnie) |

Konto może mieć saldo BZ tylko po jednej stronie w danym momencie —
salda debetowe i kredytowe są wykluczające.

### 3. Zgodność z dziennikiem [#3-zgodność-z-dziennikiem]

Obroty dziennika (suma kolejnych zapisów) muszą być równe obrotom
ZOiS (suma Dt wszystkich kont = suma Ct wszystkich kont = suma obrotów
dziennika). Jest to **kontrola dziennikowa** — podstawowy test
spójności wynikający z podwójnego zapisu (<LegalRef act="UoR" art="15" />).

## Zestawienie sald kont ksiąg pomocniczych — art. 18 ust. 2 [#zestawienie-sald-kont-ksiąg-pomocniczych--art-18-ust-2]

> Co najmniej na dzień zamknięcia ksiąg rachunkowych sporządza się
> zestawienia sald wszystkich kont ksiąg pomocniczych, a na dzień
> inwentaryzacji — zestawienia sald inwentaryzowanej grupy składników
> aktywów.

Dwa dodatkowe zestawienia:

1. **Na dzień zamknięcia ksiąg** (koniec roku obrotowego, z reguły
   31 grudnia) — zestawienie sald **wszystkich** kont ksiąg
   pomocniczych. Ma za zadanie pokazać stan analityki odpowiadający
   stanom syntetycznym z bilansu.
2. **Na dzień inwentaryzacji** — zestawienie sald konkretnej
   inwentaryzowanej grupy (np. środków trwałych), żeby móc porównać
   z rzeczywistym stanem (inwentaryzacja jest z kolei regulowana
   <LegalRef act="UoR" art="26" /> – <LegalRef act="UoR" art="27" />).

## Jak Numify realizuje art. 18 [#jak-numify-realizuje-art-18]

### Generowanie ZOiS [#generowanie-zois]

Funkcja `generateTrialBalance` w
<ServiceRef path="src/lib/services/trial-balance.ts">trial-balance.ts</ServiceRef>
realizuje wymogi art. 18 ust. 1:

1. Pobiera wszystkie aktywne konta z `chart_accounts`.
2. Liczy salda otwarcia (obroty przed `startDate`).
3. Liczy obroty okresu (debet i kredyt między `startDate` i `endDate`).
4. Buduje saldo BZ = BO + obroty Dt – obroty Ct, rozdzielone na stronę
   debetową i kredytową.
5. Sumuje totals i sprawdza `isBalanced`:
   ```
   totals.periodDebit === totals.periodCredit
   && totals.openingDebit === totals.openingCredit
   && totals.closingDebit === totals.closingCredit
   ```

Jeśli `isBalanced = false`, aplikacja sygnalizuje rozjazd — to błąd
ksiąg wymagający interwencji (najczęściej konsekwencja ręcznej
modyfikacji bazy, co jest zabronione przez
<LegalRef act="UoR" art="25" />).

### Widok `/trial-balance` [#widok-trial-balance]

Ekran `/trial-balance` pokazuje ZOiS za wybrany okres (miesiąc /
kwartał / rok). Można:

* Zmienić zakres dat.
* Wyeksportować do PDF / XLSX (endpoint
  `/api/financial-reports/export/trial-balance`).
* Drillnąć z pozycji konta do jego księgi (ekran `/general-ledger`).

### Zestawienie sald kont ksiąg pomocniczych (ust. 2) [#zestawienie-sald-kont-ksiąg-pomocniczych-ust-2]

Dla kontrahentów — `getContractorLedgerSummary` w
<ServiceRef path="src/lib/services/subsidiary-ledger.ts">subsidiary-ledger.ts</ServiceRef>
daje listę sald per kontrahent. Dla środków trwałych — per karta
(`getFixedAssetLedger`). Oba są wymagane na dzień zamknięcia ksiąg
rocznych.

Zamknięcie roku w Numify (ekran `/fiscal-periods`) generuje zapis
przeksięgowań rocznych (<AccountRef code="860" /> → kapitały), blokuje
wszystkie 12 okresów miesięcznych oraz tworzy **bilans otwarcia**
kolejnego roku — wymogi <LegalRef act="UoR" art="12" /> (otwarcie ksiąg
i kontynuacja BO). Implementacja w
<ServiceRef path="src/lib/services/year-end-close.ts">year-end-close.ts</ServiceRef>
oraz <ServiceRef path="src/lib/services/opening-balance.ts">opening-balance.ts</ServiceRef>.

## Częste błędy [#częste-błędy]

* **„Moja suma Dt ≠ Ct"** — najczęściej oznacza ręczną zmianę w bazie,
  pominięcie wiersza przy imporcie, albo storno, które nie zostało
  skompletowane. Każdy zapis w dzienniku musi być samoważący.
* **„ZOiS nie zgadza się z bilansem"** — prawie zawsze błąd w
  znacznikach `balanceSheetTag` na kontach (zespół 0 Środki trwałe
  musi być zmapowany na `AKT_A_II`, amortyzacja skumulowana 070 na
  ten sam tag po stronie ujemnej itd.).
* **„ZOiS się zgadza co do grosza, ale raport mówi że nie"** — błąd
  zaokrągleń przy walutach obcych. Numify przechowuje wszystko w
  groszach (integer), ale jeśli ktoś zaimportował dane z systemu
  przechowującego w `decimal`, mogą być rozjazdy ±1 grosz per wiersz.

<ChangeHistory>
  <ChangeEntry date="2026-04-16" act="Phase 3a">
    Pierwsza wersja — oparta na aktualnym tekście art. 18 UoR (Dz.U.
    2023 poz. 120) oraz implementacji `generateTrialBalance` i
    `getContractorLedgerSummary` w `src/lib/services/`.
  </ChangeEntry>
</ChangeHistory>
