1. Inwentaryzacja w ST. Stan obecny
2. Rozbudowa procedur inwentaryzacji (koncepcja)
3. Specyfikacja funkcjonalna rozbudowy inwentaryzacji
4. Tematy powiązane
(AsystentAI)
1. Inwentaryzacja w ST. Stan obecny
Jak użytkownik Trawersu może przeprowadzić inwentaryzację srodków trwałych ?
W Trawersie inwentaryzację środków trwałych prowadzi się w systemie ST,
a nie standardowym procesem inwentaryzacji zapasów w MI.
Dokumentacja przewiduje spis z natury na arkuszu ASN, ustalenie różnic,
a następnie ich rozliczenie w systemie ST.
Kolejne kroki
1. Przygotuj kartotekę przed spisem.
Warto sprawdzić, czy środki mają prawidłowo wpisane numery inwentarzowe,
lokalizacje, osoby odpowiedzialne oraz ewentualne kody kreskowe.
Lokalizacje definiuje się w `ST > Tabele > Lokalizacje ST [ST_TLO10]`.
Karta ST może zawierać również kod kreskowy, osobę odpowiedzialną,
użytkownika i liczbę składników danego środka.
2. Wydrukuj arkusz spisu z natury ASN:
`ST > Środki trwałe > Kartoteka ST > Wydruk > Arkusz spisowy ASN [ST_KST50]`.
Środki na arkuszu można uporządkować według numerów inwentarzowych, nazw,
grup środków trwałych albo osób odpowiedzialnych.
Arkusz zawiera m.in. numer inwentarzowy, grupę, nazwę, lokalizację, ilość i miejsce na uwagi.
3. Przeprowadź fizyczny spis.
Komisja sprawdza, czy środek faktycznie istnieje, gdzie się znajduje i w jakiej ilości.
Wyniki wpisuje się na ASN. Trawers przewiduje również wykorzystanie kodów kreskowych -
można oznaczyć nimi zarówno środki trwałe, jak i lokalizacje;
podczas spisu mogą być odczytywane kolektorem lub bezpośrednio w programie.
4. Porównaj spis z ewidencją ST i ustal różnice.
Kroki:
| przygotowanie instrukcji -> arkusze ASN -> spis fizyczny -> ustalenie niedoborów/nadwyżek
| -> rozliczenie i wprowadzenie odpowiednich korekt.
Pomocniczo można użyć także `ST > Środki trwałe > Środki trwałe. Tabelarycznie [ST_ZDO40]`;
zestawienie można zapisać do CSV i analizować np. w Excelu.
Zawiera ono m.in. numer inwentarzowy, osobę odpowiedzialną, użytkownika, lokalizację,
ilość i wartości środka.
5. Rozlicz zatwierdzone różnice odpowiednimi operacjami ST.
Jeżeli brakujący środek ma zostać formalnie zlikwidowany/rozchodowany,
służy do tego `ST > Rozchody > Dopisywanie [ST_DRO10]`.
Jeżeli ujawniono środek, który powinien znaleźć się w ewidencji, najpierw zakłada się
kartę `ST_KST10`, a następnie dokument przychodu `ST_DPR10`.
Korekty wartości wykonuje się przez `ST_DKW10` - zwiększenie albo `ST_DKM10` - zmniejszenie.
Dostępne są również korekty umorzenia.
Dokumenty ST aktualizują ewidencję i tworzą odpowiednie polecenia księgowania
zgodnie z tabelami dekretacji.
6. Po rozliczeniu warto wykonać weryfikację danych ST.
Trawers posiada funkcję weryfikacji, która sprawdza zgodność dokumentów z kartoteką KSOST
i kartoteką środków trwałych; dostępny jest wariant bez poprawiania i z automatycznym
poprawianiem danych.
W praktyce schemat wygląda więc tak:
| wydruk ASN -> spis fizyczny -> porównanie z kartoteką -> protokół różnic
| -> dokumenty PR/RO/korekty w ST -> księgowanie i weryfikacja.
Warto zwrócić uwagę, że w ST nie ma automatycznego procesu:
'oznacz -> spisz -> wygeneruj różnice' analogicznego do inwentaryzacji magazynu w MI.
Dla ST opisany mechanizm opiera się przede wszystkim na ASN i późniejszym rozliczeniu
różnic dokumentami systemu ST.
2. Rozbudowa procedur inwentaryzacji (koncepcja)
Czy i jak można rozbudować procedurę inwentaryzacji aby była podobna (zbliżona)
do rozwiązania w MI ?
Można rozbudować, przenosząc do ST praktycznie cały 'szkielet' procesu znany z MI,
ale dostosowując go do specyfiki środków trwałych.
Dokumentacja MI pokazuje pełny cykl: oznaczenie pozycji, spis, rejestrację wyników,
aktualizację, raport różnic, zwolnienie i zamknięcie inwentaryzacji.
W ST obecnie opisany jest znacznie prostszy model:
ASN -> spis fizyczny -> ustalenie różnic -> ręczne rozliczenie korekt.
Najbardziej naturalna rozbudowa wyglądałaby tak:
1. Utworzenie 'sesji inwentaryzacji ST'.
Użytkownik zakładałby inwentaryzację z numerem, datą, komisją, opisem,
zakresem oraz statusem.
Zakres można byłoby określić przez lokalizacje, grupy KŚT, osoby odpowiedzialne,
użytkowników albo Query. To odpowiadałoby etapowi 'oznaczania pozycji do spisu' w MI,
gdzie system wskazuje dokładnie, które kartoteki biorą udział w inwentaryzacji.
2. Oznaczenie kart ST jako będących w inwentaryzacji.
Na karcie można byłoby prowadzić wskaźnik podobny do MI, np. `1-Ozna`, `2-SpisC`, `3-SpisZ`,
`4-RozlC`, `5-RozlZ`. W MI taki mechanizm pozwala kontrolować,
na jakim etapie znajduje się każda pozycja.
W ST miałoby to dodatkową zaletę: system mógłby ostrzegać lub blokować zmianę lokalizacji,
osoby odpowiedzialnej albo rozchód środka objętego spisem.
3. Automatyczne utworzenie 'kart spisu ST'.
Po oznaczeniu środków program zapisywałby stan ewidencyjny na moment rozpoczęcia inwentaryzacji:
numer inwentarzowy, kod kreskowy, grupa, nazwa, lokalizacja, osoba odpowiedzialna, użytkownik,
liczba składników i ewentualnie wartość.
ST już przechowuje lokalizację, osobę odpowiedzialną, użytkownika oraz liczbę składników,
więc baza danych do takiego rozwiązania w dużej części już istnieje.
4. Spis w trzech trybach: papier, on-line i import.
Można zachować obecny ASN, ale dodać funkcję rejestracji wyniku spisu analogiczną do MI:
ręcznie z arkusza, bezpośrednio czytnikiem kodów kreskowych albo przez import pliku z kolektora.
MI obsługuje właśnie takie warianty: ręczny zapis, skaner on-line i import CSV.
W przypadku ST szczególnie przydatny byłby schemat: najpierw skan kodu lokalizacji,
następnie kolejne kody środków znajdujących się w tej lokalizacji.
Dokumentacja ST już przewiduje kody kreskowe lokalizacji i wskazuje możliwość spisywania
środków w kolejnych lokalizacjach kolektorem lub on-line.
5. Automatyczne porównanie 'ewidencja <--> spis'.
Program powinien tworzyć różnice nie tylko ilościowe. Dla środków trwałych warto
wyróżnić co najmniej: `zgodny`, `brak/niedobór`, `nadwyżka/środek nieujęty w ewidencji`,
`inna lokalizacja`, `inna osoba odpowiedzialna`, `inny użytkownik`, `inna liczba składników`.
To byłaby ważna różnica względem MI: w ST 'różnicą' bardzo często nie jest brak środka,
lecz znalezienie go w innym pokoju lub u innego użytkownika.
6. Etap wyjaśniania różnic przed rozliczeniem.
Każda różnica mogłaby mieć status np. `do wyjaśnienia`, `potwierdzona`, `zmiana lokalizacji`,
`likwidacja`, `ujawnienie`, `błąd danych`.
Komisja mogłaby dopisać komentarz i sposób rozliczenia. Dopiero zatwierdzone różnice
przechodziłyby do aktualizacji.
To byłoby odpowiednikiem kontroli różnic przed aktualizacją stanów w MI.
7. Automatyczne rozliczenie wybranych różnic.
Tu należałoby zachować większą ostrożność niż w MI. Dokumenty ST po rejestracji mają
status zatwierdzony i nie można ich później swobodnie poprawiać ani usuwać,
dlatego generowanie dokumentów powinno nastąpić dopiero po akceptacji wyników.
Dla potwierdzonych niedoborów system mógłby przygotować dokument RO, dla ujawnionych
środków kartę + PR, a dla zmian wartości odpowiednie W1/W2.
Dokumentacja ST przewiduje dokumenty PR, RO, W1/W2 oraz U1/U2.
Dla samej zmiany lokalizacji czy osoby odpowiedzialnej należałoby raczej zastosować
zmianę danych organizacyjnych, a nie dokument wartościowy.
8. Raport aktualizacji i protokół różnic.
Podobnie jak MI generuje raport aktualizacji oraz zestawienie różnic ilościowo-wartościowych,
ST mógłby tworzyć 'Protokół rozliczenia inwentaryzacji ST': stan ewidencyjny, stan spisany,
różnica, sposób wyjaśnienia, dokument rozliczający i osoba zatwierdzająca.
MI ma osobny raport aktualizacji i zestawienie różnic po aktualizacji.
9. Zamknięcie inwentaryzacji.
Przy zamknięciu system powinien kontrolować, czy wszystkie środki oznaczone do spisu
zostały spisane, wszystkie różnice wyjaśniono, wszystkie zatwierdzone korekty rozliczono
i nie pozostały pozycje ze statusem pośrednim.
Dokładnie taką rolę pełni funkcja zamknięcia inwentaryzacji w MI:
kontroluje kompletność wykonania kolejnych etapów.
10. Historia inwentaryzacji.
Warto dodać datę ostatniego spisu do karty ST oraz raport 'środki nieinwentaryzowane od...'.
MI posiada zarówno funkcję 'Poprzednia inwentaryzacja', jak i propozycję kolejnego spisu.
To pozwoliłoby także prowadzić inwentaryzację ciągłą, np. co miesiąc dla kolejnych lokalizacji.
W efekcie menu mogłoby wyglądać mniej więcej tak:
| `ST > Inwentaryzacja > Oznacz środki do spisu > Arkusze ASN > Rejestracja spisu > Spis on-line
| > Import z kolektora > Porównanie stanów > Różnice > Rozliczenie różnic > Raport aktualizacji
| > Zwolnienie środków > Zamknięcie inwentaryzacji > Historia spisów`.
Najważniejsze jest to, że duża część danych potrzebnych do takiej funkcjonalności już jest w ST:
numer inwentarzowy, lokalizacja z kodem kreskowym, osoba odpowiedzialna, użytkownik,
liczba składników oraz ASN.
Nie trzeba więc kopiować mechanizmu MI 1:1. Najbardziej wartościowe byłoby przeniesienie z MI jego
workflow, statusów, kontroli kompletności, rejestracji on-line i automatycznego porównania,
natomiast rozliczenie różnic należałoby zaprojektować specjalnie dla ST.
Poniżej jest konkretna specyfikacja zmian do Trawersa:
* nowe funkcje `ST_PIN10`, `ST_DIN20`, `ST_DIN30...`,
* proponowane zbiory/pola,
* statusy
* logikę każdej funkcji
Specyfikacja w formie materiału dla programisty Trawersa.
Poniżej jest opis w formie specyfikacji funkcjonalnej rozbudowy modułu ST,
którą można już przekazać do analizy programistycznej.
Nazwy nowych procesów i zbiorów są robocze - zachowano konwencję Trawersa,
ale ich identyfikatory trzeba sprawdzić pod kątem wolnych numerów.
Inwentaryzacja środków trwałych ST specyfikacja rozbudowy1. Cel zmiany
Celem jest rozbudowanie systemu ST Środki Trwałe o pełny proces inwentaryzacyjny
zbliżony organizacyjnie do rozwiązania stosowanego w MI Inwentaryzacja, ale dostosowany
do specyfiki środków trwałych.
Obecnie ST wspiera przede wszystkim przygotowanie arkusza ASN, fizyczny spis, ustalenie różnic
oraz późniejsze wprowadzenie korekt. Arkusz ASN może być drukowany z
`ST > Środki trwałe > Kartoteka ST > Wydruk > Arkusz spisowy ASN [ST_KST50]`.
W MI proces jest bardziej kontrolowany: pozycje są oznaczane do spisu, otrzymują statusy
kolejnych etapów, są blokowane, rejestruje się ilości spisane, wykonuje aktualizację,
zwolnienie oraz kontrolowane zamknięcie inwentaryzacji.
Projektowana funkcjonalność ST powinna przenieść przede wszystkim ten
workflow i mechanizmy kontrolne, a nie magazynową logikę ilościowo-wartościową MI.
2. Dane ST już dostępne do wykorzystania
Karta środka trwałego posiada dane pozwalające na zbudowanie procesu spisu: numer inwentarzowy,
osobę odpowiedzialną, lokalizację oraz liczbę składników. Lokalizacja wybierana jest z tabeli
`ST > Tabele > Lokalizacje ST [ST_TLO10]`, w której może być również zapisany kod lokalizacji
używany jako kod kreskowy.
Dokumentacja ST wprost wskazuje możliwość odczytywania podczas inwentaryzacji kodów kreskowych
środków znajdujących się w kolejnych lokalizacjach. Obsługiwana jest również sytuacja,
gdy jedna karta reprezentuje wiele składników, np. 12 krzeseł posiadających ten sam kod;
podczas spisu można wtedy podać ilość 12.
Oznacza to, że projekt nie wymaga tworzenia od podstaw systemu identyfikacji ST.
Należy przede wszystkim dobudować warstwę organizacji spisu, zapis wyników i rozliczenie różnic.
3. Proponowane menu
Proponuję utworzyć osobną gałąź:
```
ST
o-Inwentaryzacja
o-Karty inwentaryzacji
| o-Dopisanie........................ ST_KIN10
| o-Korekta.......................... ST_KIN20
| o-Przeglądanie..................... ST_KIN40
|
o-Oznaczenie środków do spisu........ ST_PIN10
o-Arkusze spisowe ASN................ ST_ZIN20
|
o-Rejestracja spisu
| o-Z arkuszy ASN.................... ST_DIN10
| o-Spis on-line..................... ST_DIW10
| o-Import z kolektora............... ST_DIM10
|
o-Sumowanie spisu.................... ST_PIN40
o-Różnice inwentaryzacyjne........... ST_ZIN50
o-Wyjaśnienie różnic................. ST_DIN50
o-Rozliczenie różnic................. ST_PIN60
|
o-Raport z rozliczenia............... ST_ZIN65
o-Zwolnienie środków................. ST_PIN70
o-Zamknięcie inwentaryzacji.......... ST_PIN71
|
o-Poprzednia inwentaryzacja.......... ST_ZIN85
o-Propozycja następnego spisu........ ST_ZIN95
```
Identyfikatory są propozycją. W szczególności istniejący `ST_KST50` można zachować
jako silnik wydruku ASN i jedynie rozszerzyć go o parametr numeru inwentaryzacji.
Układ odpowiada logice stosowanej w MI:
| karta spisu -> spis -> sumowanie -> aktualizacja/rozliczenie -> zwolnienie -> zamknięcie -> historia.
MI posiada m.in. kartę spisu on-line, sumowanie stanów, aktualizację, zwolnienie
oraz historię wcześniejszych inwentaryzacji.
4. Karta inwentaryzacji
ST_KIN10 - Dopisanie karty inwentaryzacji
Każdy spis powinien rozpoczynać się od utworzenia nagłówka inwentaryzacji.
Proponowane dane:
| Pole | Znaczenie |
| -------------------- | ---------------------------------------------- |
| Numer inwentaryzacji | np. ST/2026/001 |
| Data utworzenia | data rozpoczęcia procesu |
| Data spisu | dzień/dni wykonywania spisu |
| Rodzaj | roczna, okresowa, wyrywkowa, zdawczo-odbiorcza |
| Metoda | ASN / on-line / kolektor / mieszana |
| Oddział | opcjonalny zakres |
| Lokalizacja | opcjonalny zakres |
| Grupa ST | opcjonalny zakres |
| Osoba odpowiedzialna | opcjonalny zakres |
| Query | dodatkowy warunek wyboru kart |
| Komisja | osoby wykonujące spis |
| Przewodniczący | osoba zatwierdzająca |
| Opis | informacje dodatkowe |
| Status | etap całej inwentaryzacji |
| Operator | zakładający kartę |
| Data/czas utworzenia | ślad kontrolny |
Numer inwentaryzacji powinien być unikalny.
Status karty inwentaryzacji
Proponuję:
| Status | Znaczenie |
| -------- | ------------------------------------------- |
| `0-Rob` | przygotowanie |
| `1-Otw` | środki oznaczone, inwentaryzacja rozpoczęta |
| `2-Spis` | trwa rejestracja spisu |
| `3-Wyja` | ustalanie i wyjaśnianie różnic |
| `4-Rozl` | rozliczanie zatwierdzonych różnic |
| `5-Zamk` | inwentaryzacja zamknięta |
Karty zamkniętej nie można już poprawiać. Korekta wymagałaby odpowiedniej operacji
kontrolnej albo ponownego spisu.
5. Oznaczenie środków do spisu
ST_PIN10 - Oznaczenie środków
Funkcja wybiera środki należące do zakresu inwentaryzacji i zapisuje ich
stan ewidencyjny na moment rozpoczęcia spisu.
To odpowiednik mechanizmu MI, gdzie wybrane pozycje są oznaczane do inwentaryzacji,
a ich stan nie może zmienić się do czasu zwolnienia.
MI prowadzi m.in. statusy `1-Ozna`, `2-SpisC`, `3-SpisZ`, `4-AktuC`, `5-AktuZ`.
Dla ST proponuję analogiczne statusy, lecz końcowe etapy należy nazwać 'rozliczeniem',
a nie 'aktualizacją stanu magazynowego':
| Status pozycji | Znaczenie |
| -------------- | ---------------------------- |
| pusty | karta poza inwentaryzacją |
| `1-Ozna` | oznaczona do spisu |
| `2-SpisC` | spis rozpoczęty |
| `3-SpisZ` | spis zakończony |
| `4-RozlC` | różnica częściowo rozliczona |
| `5-RozlZ` | proces dla środka zakończony |
Snapshot danych
W momencie oznaczenia należy zapisać kopię istotnych danych karty:
```
Nr inwentarzowy
Nazwa
Grupa ST
Kod kreskowy
Lokalizacja
Kod lokalizacji
Osoba odpowiedzialna
Użytkownik
Liczba składników
Oddział
Jednostka organizacyjna
Komórka organizacyjna
Status eksploatacji
Wartość bilansowa
Wartość podatkowa
Data oznaczenia
Operator
```
Dane są zapisywane jako stan przed inwentaryzacją.
Dzięki temu późniejszy raport nie zależy od zmian wykonanych w kartotece.
6. Blokowanie zmian podczas spisu
W MI oznaczona pozycja magazynowa jest blokowana przed zmianą stanu do czasu jej zwolnienia.
W ST blokowanie powinno być bardziej selektywne.
Podczas aktywnej inwentaryzacji program powinien blokować lub przynajmniej wymagać
specjalnego potwierdzenia dla zmian:
```
numer inwentarzowy
kod kreskowy
lokalizacja
osoba odpowiedzialna
użytkownik
liczba składników
rozchód środka
usunięcie karty
```
Naliczanie amortyzacji nie powinno być blokowane, ponieważ nie zmienia fizycznego istnienia środka.
Korekty wartości mogą być wykonywane, ale do raportu inwentaryzacyjnego należy wtedy stosować
wartość zapamiętaną w snapshotcie na dzień rozpoczęcia spisu.
Rozchód środka znajdującego się w aktywnej inwentaryzacji powinien zostać zablokowany komunikatem:
```
Środek jest objęty inwentaryzacją ST/2026/001.
Przed wykonaniem rozchodu należy zakończyć lub zwolnić pozycję.
```
7. Arkusz spisowy ASN
Istniejący wydruk `ST_KST50` należy rozszerzyć o możliwość wskazania numeru inwentaryzacji.
Obecny ASN zawiera m.in. numer inwentarzowy, grupę, nazwę, lokalizację, ilość oraz uwagi.
Proponowany ASN:
```
Numer inwentaryzacji
Data
Komisja
Lokalizacja
Osoba odpowiedzialna
Lp
Nr inwentarzowy
Kod kreskowy
Nazwa
Lokalizacja ewidencyjna
Ilość ewidencyjna
Ilość spisana
Lokalizacja rzeczywista
Uwagi
Podpis
```
W parametrach powinien być przełącznik:
```
[ ] Pokazuj ilość ewidencyjną
```
Pozwala to wykonać tzw. spis ślepy, w którym komisja nie zna ilości wynikającej z ewidencji.
8. Rejestracja z arkuszy
ST_DIN10 - Rejestracja spisu ASN
Operator wybiera:
```
Numer inwentaryzacji
Numer arkusza
Lokalizację
Operatora / członka komisji
```
Następnie dla kolejnych pozycji podaje:
```
Nr inwentarzowy / kod kreskowy
Ilość rzeczywistą
Lokalizację rzeczywistą
Opcjonalnie osobę odpowiedzialną
Uwagi
```
Pozycja może być wpisana więcej niż jeden raz, np. gdy część składników jednego środka
występuje w dwóch pomieszczeniach. Sumowanie wykonuje osobna funkcja.
9. Spis on-line
ST_DIW10 -Inwentaryzacja on-line
Mechanizm powinien wykorzystywać rozwiązanie opisane już w dokumentacji ST:
najpierw odczytywana jest lokalizacja, następnie kody środków znajdujących się w tej lokalizacji.
Przebieg:
```
1. Operator wybiera numer inwentaryzacji.
2. Skanuje kod lokalizacji.
3. Program identyfikuje lokalizację.
4. Operator skanuje kod środka.
5. Program odnajduje kartę ST.
6. Dla środka jednostkowego przyjmuje ilość 1.
7. Dla środka wieloskładnikowego operator podaje ilość.
8. Program zapisuje operatora, datę, godzinę i lokalizację.
9. Operator skanuje następny środek.
```
MI już wspiera spis poprzez arkusze, skanery kodów oraz bezpośrednią rejestrację on-line.
Kontrola kodu
Po zeskanowaniu system powinien zwrócić jeden z komunikatów:
```
OK - środek objęty tym spisem
UWAGA - środek istnieje, ale nie został oznaczony
UWAGA - środek przypisany do innej lokalizacji
BŁĄD - kod nie istnieje w kartotece ST
BŁĄD - kod jest niejednoznaczny
UWAGA - środek był już zeskanowany
```
10. Środek znaleziony, ale nieujęty w spisie
Nie należy odrzucać takiego odczytu.
Program powinien zapisać go jako:
```
Pozycja nieplanowana
```
Jeżeli kod istnieje w ST, pozycję można powiązać z istniejącą kartą.
Jeżeli kod nie istnieje, należy ją zapisać jako:
```
Niezidentyfikowany składnik majątku
```
i umożliwić późniejsze:
```
powiązanie z istniejącą kartą
lub
oznaczenie jako propozycja utworzenia nowej karty ST
```
Nie należy automatycznie zakładać nowej karty środka trwałego tylko na podstawie skanu.
11. Import z kolektora
ST_DIM10 - Import spisu
Minimalny format CSV:
```
INWENTARYZACJA;
LOKALIZACJA;
KOD_ST;
ILOSC;
DATA;
CZAS;
OPERATOR;
UWAGI
```
Przykład:
```
ST/2026/001;MAG01;5901234567001;1;2026-12-10;10:15:31;JK;
ST/2026/001;POK101;5901234567002;12;2026-12-10;10:17:44;JK;
```
Import powinien najpierw wykonać walidację, a dopiero potem zapis.
Błędne rekordy powinny otrzymywać opis przyczyny i nie mogą powodować przerwania
importu poprawnych pozycji.
12. Sumowanie spisu
ST_PIN40 - Sumowanie
Jedna karta może być skanowana wielokrotnie. Program powinien zsumować zapisy według:
```
numer inwentaryzacji
nr inwentarzowy
lokalizacja rzeczywista
```
Przykład:
```
ST 000145
Lokalizacja A 5 szt.
Lokalizacja B 7 szt.
Razem 12 szt.
```
Dzięki temu można wykryć zarówno zgodność ilościową, jak i niezgodność lokalizacji.
MI stosuje podobną zasadę: w ramach jednej karty spisu może istnieć wiele dokumentów
ze stanami spisanymi, które są następnie sumowane.
13. Automatyczne ustalenie różnic
ST_ZIN50 - Różnice inwentaryzacyjne
Po zakończeniu spisu program porównuje snapshot ze stanem rzeczywistym.
Proponowane typy różnic:
| Kod | Rodzaj |
| ----- | -------------------------------------- |
| `ZG` | zgodny |
| `BR` | brak środka |
| `IL-` | niedobór liczby składników |
| `IL+` | nadwyżka liczby składników |
| `LO` | inna lokalizacja |
| `OD` | inna osoba odpowiedzialna |
| `UZ` | inny użytkownik |
| `NP` | środek znaleziony, ale nieplanowany |
| `NN` | niezidentyfikowany środek |
| `WL` | środek występuje w wielu lokalizacjach |
| `MX` | kilka jednoczesnych różnic |
Przykład:
```
Nr ST Ewidencja Spis Różnica
--------------------------------------------------------------------
000101 Pokój 101 / 1 Pokój 101 / 1 ZG
000102 Pokój 101 / 1 brak BR
000103 Pokój 101 / 12 Pokój 101 / 10 IL- 2
000104 Pokój 101 / 1 Pokój 204 / 1 LO
000105 Kowalski Nowak OD
```
To jest istotna różnica względem MI. W magazynie podstawową różnicą jest ilość.
W ST zgodna ilość nie oznacza jeszcze prawidłowej inwentaryzacji - środek może
znajdować się w niewłaściwej lokalizacji lub u innej osoby.
14. Wyjaśnianie różnic
ST_DIN50 - Wyjaśnianie
Każda różnica powinna otrzymać decyzję komisji.
Proponowane decyzje:
| Decyzja | Znaczenie |
| ------- | ---------------------------------- |
| `OK` | brak korekty |
| `LO` | zmienić lokalizację |
| `OD` | zmienić osobę odpowiedzialną |
| `UZ` | zmienić użytkownika |
| `RO` | przygotować rozchód |
| `PR` | przygotować przychód / nowy ST |
| `IL` | poprawić liczbę składników |
| `BL` | błąd spisu wykonać ponowny spis |
| `WY` | pozostawić do dalszego wyjaśnienia |
Dodatkowo:
```
Opis wyjaśnienia
Decyzja komisji
Osoba zatwierdzająca
Data zatwierdzenia
Nr protokołu
Uwagi
```
Dopóki istnieje pozycja `WY`, inwentaryzacji nie można zamknąć.
15. Ponowny spis
Dla pozycji oznaczonej `BL - do ponownego spisu` program powinien umożliwić
utworzenie drugiego arkusza.
Pierwszego wyniku nie należy usuwać.
Należy zapisać:
```
Spis 1
Spis 2
Wynik przyjęty przez komisję
```
Zapewnia to pełną historię kontroli.
16. Rozliczenie różnic
ST_PIN60 Rozliczenie
Rozliczenie powinno odbywać się dopiero po zatwierdzeniu różnic.
Jest to szczególnie ważne, ponieważ dokumentacja ST wskazuje,
że dokumenty ST po wpisaniu otrzymują status Zatwierdzone
i nie można ich później poprawiać ani usuwać.
Dlatego system nie powinien automatycznie tworzyć dokumentu RO lub PR
w chwili wykrycia różnicy.
Najpierw powinien powstać bufor:
```
Propozycje rozliczenia inwentaryzacji
```
Dopiero operator z odpowiednim prawem uruchamia:
```
Utwórz dokumenty
```
Sposób rozliczenia
| Różnica | Proponowana operacja |
| ------------------------- | ---------------------------------------------- |
| inna lokalizacja | zmiana lokalizacji karty |
| inna osoba odpowiedzialna | zmiana osoby odpowiedzialnej |
| inny użytkownik | zmiana użytkownika |
| brak środka | propozycja dokumentu RO |
| ujawniony istniejący ST | włączenie do ewidencji/spisu zgodnie z decyzją |
| niezarejestrowany ST | propozycja założenia karty + PR |
| zmiana liczby składników | zatwierdzona zmiana liczby składników |
| różnica wartości | W1/W2, jeśli decyzja komisji tego wymaga |
System ST posiada dokumenty `PR`, `RO`, `W1`, `W2`, `U1`, `U2`.
Dokumenty przychodu i rozchodu zmieniają stan środków, a korekty wartości odpowiednio ich wartość.
Rozchód ST dokumentuje m.in. likwidację środka i powoduje utworzenie poleceń księgowania.
17. Aktualizacja danych organizacyjnych
Zmiany:
```
lokalizacji
osoby odpowiedzialnej
użytkownika
```
nie powinny generować dokumentu wartościowego ST.
Powinien natomiast powstawać zapis historii:
```
Nr ST
Pole
Wartość przed
Wartość po
Nr inwentaryzacji
Data
Operator
Nr protokołu
```
Przykład:
```
000125
Lokalizacja
POK101 -> POK203
ST/2026/001
17.12.2026
ADAM
```
Daje to możliwość późniejszego wykazania, dlaczego karta została zmieniona.
18. Raport rozliczenia
ST_ZIN65 - Raport z inwentaryzacji
Raport powinien zawierać co najmniej:
```
Liczba środków oznaczonych
Liczba środków spisanych
Liczba zgodnych
Liczba braków
Liczba nadwyżek
Liczba zmian lokalizacji
Liczba zmian osób odpowiedzialnych
Liczba pozycji nierozliczonych
Liczba utworzonych dokumentów RO
Liczba przygotowanych/przyjętych PR
```
Następnie szczegóły:
```
Nr ST
Nazwa
Stan przed
Stan spisany
Rodzaj różnicy
Decyzja
Sposób rozliczenia
Numer dokumentu
Operator
```
MI posiada analogiczny raport aktualizacji oraz wydruk różnic pozycji po aktualizacji.
19. Zwolnienie środków
ST_PIN70
Po pełnym rozliczeniu pozycji jej status zmienia się na:
```
5-RozlZ
```
i zostaje usunięta blokada inwentaryzacyjna.
Można zwalniać środki sukcesywnie, bez konieczności oczekiwania na zakończenie całej inwentaryzacji.
Takie rozwiązanie odpowiada MI, gdzie po zwolnieniu zaktualizowanych pozycji można ponownie
wykonywać na nich operacje.
20. Zamknięcie inwentaryzacji
ST_PIN71
Funkcja ma mieć charakter kontrolny, tak jak zamknięcie inwentaryzacji MI.
Dokumentacja MI wskazuje, że funkcja sprawdza, czy wszystkie kolejne kroki procesu zostały prawidłowo wykonane.
ST_PIN71 powinien odmówić zamknięcia, jeśli występuje przynajmniej jeden z przypadków:
```
środek oznaczony, ale niespisany
niezamknięty arkusz spisowy
pozycja do ponownego spisu
różnica bez decyzji
różnica zaakceptowana, ale nierozliczona
niezidentyfikowany kod
propozycja RO/PR bez decyzji
niezwolniony środek
```
Program wyświetla:
```
Pozycje do zakończenia inwentaryzacji
```
z możliwością przejścia bezpośrednio do problematycznej pozycji.
Po poprawnym zamknięciu:
```
status inwentaryzacji = 5-Zamk
data zakończenia = bieżąca
operator zamykający = ...
```
i dalsza edycja spisu jest blokowana.
21. Historia inwentaryzacji
Dla każdego ST należy zapisać:
```
Data ostatniej inwentaryzacji
Numer ostatniej inwentaryzacji
Wynik ostatniej inwentaryzacji
Operator
```
ST_ZIN85 - Poprzednia inwentaryzacja
Przykładowe pytanie:
```
Pokaż środki, których nie inwentaryzowano od 31.12.2024.
```
MI posiada analogiczną funkcję wskazującą pozycje inwentaryzowane przed określonym dniem,
co pozwala planować następny spis.
ST_ZIN95 - Propozycja kolejnego spisu
Można ustawić okres spisu, np.:
```
Grupa ST 4xx co 12 miesięcy
Grupa ST 6xx co 24 miesiące
Lokalizacja MAG co 12 miesięcy
```
Program proponuje środki wymagające kolejnego spisu.
22. Proponowane zbiory danych
Nazwy są robocze.
STINH - nagłówki inwentaryzacji
```
JD: patrz .prg
23. Kontrole integralności
Program powinien kontrolować, aby jeden środek nie znajdował się jednocześnie
w dwóch aktywnych inwentaryzacjach.
Nie należy pozwalać oznaczyć karty:
```
wycofanej przed datą spisu
usuniętej
objętej innym niezakończonym spisem
```
Po zamknięciu spisu suma:
```
ZG + różnice rozliczone
```
musi odpowiadać liczbie pozycji objętych inwentaryzacją, z uwzględnieniem
dodatkowych pozycji ujawnionych podczas spisu.
24. Uprawnienia
Warto rozdzielić prawa operatorów:
| Prawo | Zakres |
| -------------- | --------------------------- |
| ST_INV_CREATE | tworzenie inwentaryzacji |
| ST_INV_MARK | oznaczanie ST |
| ST_INV_COUNT | rejestracja spisu |
| ST_INV_EXPLAIN | wyjaśnianie różnic |
| ST_INV_APPROVE | zatwierdzanie decyzji |
| ST_INV_SETTLE | tworzenie dokumentów/korekt |
| ST_INV_CLOSE | zamykanie inwentaryzacji |
Osoba wykonująca spis nie musi mieć prawa do jego rozliczenia.
25. Ślad audytowy
Każdy zapis powinien przechowywać:
```
operatora
datę
czas
numer inwentaryzacji
rodzaj operacji
wartość przed
wartość po
```
Pozycje zatwierdzone nie powinny być fizycznie kasowane.
Błędny zapis należy korygować kolejnym zapisem, dzięki czemu możliwe jest
odtworzenie historii procesu.
26. Przykład pełnego procesu
```
ST/2026/001
1. Zakładamy kartę inwentaryzacji.
2. Zakres: lokalizacja BIURO.
3. Program znajduje 347 kart ST.
4. 347 kart otrzymuje status 1-Ozna.
5. Drukujemy ASN lub rozpoczynamy spis on-line.
6. Komisja skanuje kolejne lokalizacje i środki.
7. Program zapisuje wyniki.
8. Sumowanie:
oznaczone 347
spisane 346
dodatkowe 2
9. Program ustala:
zgodne 330
brak 1
inna lokalizacja 10
inna osoba 3
różnica ilości 2
dodatkowe 2
10. Komisja wyjaśnia 18 pozycji.
11. Kierownik zatwierdza decyzje.
12. Program:
zmienia 10 lokalizacji,
zmienia 3 osoby odpowiedzialne,
przygotowuje 1 RO,
przygotowuje 1 propozycję nowej karty + PR,
aktualizuje liczbę składników w 2 kartach.
13. Po rozliczeniu środki są zwalniane.
14. ST_PIN71 kontroluje kompletność.
15. Inwentaryzacja otrzymuje status 5-Zamk.
```
27. Etapowanie wdrożenia
Najbezpieczniej podzielić realizację na trzy etapy.
Etap 1 - MVP
Karta inwentaryzacji, oznaczanie kart, snapshot, ASN, ręczne wprowadzanie wyników,
ustalenie różnic, wyjaśnianie, raport, zwolnienie i zamknięcie.
Etap 2 - automatyzacja spisu
Kody lokalizacji, skaner on-line, kolektor, import CSV, kontrola powtórnych skanów
i obsługa pozycji nieplanowanych.
Etap 3 - automatyzacja rozliczenia
Bufor decyzji, zmiany lokalizacji/osób/użytkowników, propozycje dokumentów RO i PR,
pełna historia, poprzednia inwentaryzacja oraz planowanie następnego spisu.
28. Najważniejsza zasada projektowa
MI powinno być wzorem organizacji procesu, ale ST nie powinno kopiować magazynowej
aktualizacji ilości 1:1.
W MI ustalona różnica prowadzi m.in. do dokumentów `K1` - korekta nadwyżki
i `K2` - korekta niedoboru, które zmieniają stan magazynowy.
W ST wynik spisu powinien najpierw określić rodzaj niezgodności, a następnie sposób jej rozliczenia:
```
brak środka -> decyzja -> ewentualnie RO
inna lokalizacja -> zmiana danych organizacyjnych
inna osoba -> zmiana odpowiedzialności
inna liczba składników-> korekta danych po zatwierdzeniu
ujawniony środek -> wyjaśnienie -> ewentualnie KST + PR
zgodny -> tylko zapis daty inwentaryzacji
```
Dzięki temu rozwiązanie będzie podobne użytkowo do MI, ale prawidłowe dla charakteru ewidencji środków trwałych.
Najbardziej naturalnym następnym krokiem byłoby przygotowanie makiet ekranów
Trawersa dla każdej z tych funkcji, np. dokładnie jak miałby wyglądać `ST_KIN10`,
ekran skanowania `ST_DIW10` oraz ekran Różnice inwentaryzacyjne z polami i klawiszami funkcyjnymi.