Ewidencja pokazuje jedną liczbę sztuk, a na regale da się doliczyć inną. Ta różnica nie znika sama, a każda kolejna operacja na tym indeksie dokłada do niej własne pomyłki. Inwentaryzacja magazynowa jest procedurą, która porównuje stan zapisany w systemie z tym, co faktycznie stoi na lokalizacjach, i rozlicza rozbieżność dokumentem.
Tekst opisuje tę procedurę od strony organizacyjnej i informatycznej. Omawia rodzaje spisu oraz kolejność czynności, a przy każdym kroku pokazuje, co robi system WMS. Sam stan, który spis weryfikuje, omawia strona o stanach magazynowych, a skutki nieaktualnych danych w kolejnych ruchach opisuje artykuł o operacjach magazynowych.
Inwentaryzacja magazynowa jako porównanie ewidencji z rzeczywistością
Inwentaryzacja magazynowa polega na ustaleniu, ile towaru rzeczywiście znajduje się na lokalizacjach, i zestawieniu tej ilości ze stanem z ewidencji. Fizyczne ustalenie oznacza przeliczenie sztuk albo zważenie towaru na regałach, w strefach składowania i na paletach. Wynik zestawia się z zapisami, które firma prowadzi na bieżąco w programie magazynowym.
Rozbieżność między tymi dwiema liczbami nazywa się różnicą inwentaryzacyjną. Jest ona punktem wyjścia do działań księgowych i organizacyjnych, a nie ich końcem. Poniższa tabela porządkuje pojęcia, którymi posługuje się cała procedura.
| Pojęcie | Znaczenie | Skutek w ewidencji |
|---|---|---|
| Stan ewidencyjny | Ilość wynikająca z dokumentów i zapisów systemu w chwili rozpoczęcia spisu | Punkt odniesienia, z którym porównuje się wynik liczenia |
| Stan spisany | Ilość stwierdzona fizycznie przez zespół spisowy | Podstawa do wyliczenia różnicy |
| Nadwyżka | Stan spisany większy od ewidencyjnego | Dokument korygujący zwiększający stan po wyjaśnieniu przyczyny |
| Niedobór | Stan spisany mniejszy od ewidencyjnego | Dokument korygujący zmniejszający stan i rozliczenie osoby odpowiedzialnej |
Procedura pełni dwie odrębne funkcje. Pierwsza wynika z przepisów o rachunkowości: jednostka prowadząca księgi musi okresowo potwierdzić rzeczywisty stan aktywów. Druga ma charakter operacyjny, bo wiarygodne dane o zapasach napędzają decyzje zakupowe oraz terminy dostaw obiecywane klientom. Bez regularnej weryfikacji nawet dobrze zaprojektowana ewidencja zaczyna odbiegać od rzeczywistości, a odchylenie rośnie z każdą operacją od kompletacji po wysyłkę.
Obowiązek spisu z natury i jego terminy
Obowiązek przeprowadzania inwentaryzacji wynika w Polsce z ustawy o rachunkowości. Kierownik jednostki odpowiada za weryfikację rzeczywistego stanu aktywów drogą spisu z natury. Dotyczy to między innymi rzeczowych składników majątku obrotowego oraz środków trwałych, do których dostęp jest łatwy.
Terminy zależą od rodzaju składnika i sposobu jego przechowywania. Towary i materiały w magazynie strzeżonym, objęte ewidencją ilościowo-wartościową, mogą być spisywane nie rzadziej niż raz na 2 lata. Pozostałe składniki weryfikuje się na ostatni dzień roku obrotowego. Warunki, od których zależy dłuższy termin, określa tekst ustawy, więc rezygnację z corocznego spisu trzeba wcześniej potwierdzić z księgowością.
Reguła: zakres spisu oraz skład komisji ustala się przed rozpoczęciem liczenia, a nie po ujawnieniu różnic. Korekta bez zatwierdzonego wyniku spisu nie ma podstawy dokumentowej.
Ustawa reguluje także sposób dokumentowania. Wyniki spisu zapisuje się na arkuszach spisowych, które po ponumerowaniu i opieczętowaniu stają się drukami ścisłego zarachowania. Kierownik powołuje zespół spisowy albo komisję inwentaryzacyjną, a rozliczenie różnic wymaga potwierdzenia zgodnie z wewnętrzną procedurą. Wiele firm robi pełny spis co roku niezależnie od minimum ustawowego, traktując go jako element kontroli wewnętrznej. Dokumenty, które powstają przy korekcie stanów, opisuje strona o dokumentach magazynowych.
Rodzaje inwentaryzacji w magazynie
Modele spisu różnią się częstotliwością i zakresem oraz wpływem na bieżącą pracę. Wybór zależy od wielkości magazynu i asortymentu oraz tego, czy firma może wstrzymać operacje na czas liczenia.
Inwentaryzacja okresowa
Pełny spis całego magazynu przeprowadza się jednorazowo, zwykle raz w roku, najczęściej na przełomie grudnia i stycznia. Wymaga większego zespołu w krótkim czasie i w wielu firmach oznacza wstrzymanie przyjęć oraz wydań. Zaletą jest kompletność: w jednym momencie powstaje spójny obraz całego magazynu, co ułatwia zamknięcie roku obrotowego.
Inwentaryzacja ciągła
Liczenie rozkłada się na cały rok. Lokalizacje albo grupy asortymentowe sprawdza się sukcesywnie według harmonogramu, bez zamykania magazynu. Blokowana jest tylko liczona w danej chwili lokalizacja, a reszta operacji toczy się normalnie. Częstotliwość liczenia często ustala się klasyfikacją ABC: indeksy o wysokim obrocie liczy się częściej niż te, które rzadko opuszczają regał. Szczegóły tego modelu opisuje strona o inwentaryzacji ciągłej w magazynie.
Inwentaryzacja wyrywkowa
Spis obejmuje wybrane lokalizacje lub indeksy i odbywa się poza harmonogramem. Uruchamia go podejrzenie rozbieżności, zdarzenie losowe, na przykład awaria albo włamanie, lub rutynowa kontrola jakości danych. Nie zastępuje spisu okresowego ani ciągłego, ale pozwala szybko zweryfikować jeden problem bez angażowania całego zespołu. Porównanie metod od strony narzędzi znajduje się w artykule o metodach inwentaryzacji magazynu.
| Model | Częstotliwość | Wpływ na pracę magazynu | Kiedy się sprawdza |
|---|---|---|---|
| Okresowa | Zwykle raz w roku | Wstrzymanie przyjęć i wydań na czas spisu | Mały asortyment, wyraźna przerwa w pracy |
| Ciągła | Sukcesywnie przez cały rok | Blokada tylko liczonej lokalizacji | Duży obrót i wiele indeksów |
| Wyrywkowa | Nieregularnie, według potrzeb | Minimalny, dotyczy pojedynczych lokalizacji | Podejrzenie rozbieżności po zdarzeniu |

Przebieg spisu od przygotowania do zamknięcia
Niezależnie od modelu inwentaryzacja składa się z tych samych, powtarzalnych etapów. Tabela wskazuje, co dzieje się na każdym z nich i jaki ślad po sobie zostawia.
| Etap | Czynności | Wynik |
|---|---|---|
| Przygotowanie | Termin, zakres, uporządkowanie lokalizacji, decyzja o wstrzymaniu ruchów | Harmonogram i zakres spisu |
| Powołanie komisji | Wskazanie osób odpowiedzialnych za liczenie i rozliczenie | Zarządzenie kierownika jednostki |
| Spis z natury | Przeliczenie lub zważenie towaru, zapis na arkuszu albo w kolektorze | Arkusze spisowe lub skany |
| Porównanie | Zestawienie wyniku ze stanem ewidencyjnym | Różnice inwentaryzacyjne |
| Wyjaśnienie | Analiza przyczyn nadwyżek i niedoborów | Wyjaśnienia z opisem przyczyny |
| Zatwierdzenie | Decyzja kierownika, wystawienie dokumentów korygujących | Skorygowane stany |
| Zamknięcie | Archiwizacja arkuszy, zamknięcie dokumentu inwentaryzacji, raport dla księgowości | Zamknięty spis |
Formalny podział na etapy chroni przed sytuacją, w której korekty stanów wprowadza się ręcznie i bez śladu audytowego. To jeden z częstszych powodów, dla których dane w arkuszach kalkulacyjnych i dane księgowe zaczynają się rozjeżdżać.
Zamrożenie stanu odniesienia
Różnicę da się policzyć tylko wtedy, gdy stan ewidencyjny został zapisany w chwili rozpoczęcia liczenia. Gdy ruchy trwają, stan zmienia się w trakcie spisu i wynik jest nieaktualny już w momencie zapisania. Rozwiązanie jest dwuczęściowe: migawka stanu trafia do osobnej tabeli, a liczone lokalizacje dostają status blokady, więc żadna operacja nie zmienia ich zawartości. Oba kroki wykonuje się w jednej transakcji, żeby nie powstała migawka bez blokady albo odwrotnie.
-- przykładowa migawka stanu ewidencyjnego zapisana przy otwarciu inwentaryzacji
DECLARE @IdInw int = 42; -- wartość przykładowa
BEGIN TRANSACTION;
INSERT INTO dbo.InwPozycja (IdInw, KodLokalizacji, Indeks, IloscEwid)
SELECT @IdInw, s.KodLokalizacji, s.Indeks, SUM(s.Ilosc)
FROM dbo.Stan AS s
WHERE s.KodStrefy = 'A'
GROUP BY s.KodLokalizacji, s.Indeks;
UPDATE dbo.Lokalizacja
SET Status = 'W_INWENTARYZACJI'
WHERE KodStrefy = 'A';
COMMIT TRANSACTION;
Semantykę transakcji, w tym wycofanie zmian przy błędzie, opisuje dokumentacja instrukcji BEGIN TRANSACTION w Microsoft Learn.
Wyliczenie różnic
Po zakończeniu liczenia migawkę porównuje się z sumą zeskanowanych ilości. Do porównania nadaje się FULL OUTER JOIN, bo obsługuje obie odwrotne sytuacje: lokalizację policzoną, której nie było w migawce, oraz pozycję z migawki, której nikt nie zeskanował. Wynik pierwszej sytuacji to nadwyżka, wynik drugiej to niedobór równy całej ilości ewidencyjnej.
-- przykładowe wyliczenie różnic: migawka porównana z sumą zeskanowanych ilości
SELECT COALESCE(p.KodLokalizacji, k.KodLokalizacji) AS KodLokalizacji,
COALESCE(p.Indeks, k.Indeks) AS Indeks,
ISNULL(p.IloscEwid, 0) AS IloscEwid,
ISNULL(k.IloscSpis, 0) AS IloscSpis,
ISNULL(k.IloscSpis, 0) - ISNULL(p.IloscEwid, 0) AS Roznica
FROM dbo.InwPozycja AS p
FULL OUTER JOIN (
SELECT IdInw, KodLokalizacji, Indeks, SUM(Ilosc) AS IloscSpis
FROM dbo.InwSkan
WHERE IdInw = 42
GROUP BY IdInw, KodLokalizacji, Indeks
) AS k
ON k.IdInw = p.IdInw AND k.KodLokalizacji = p.KodLokalizacji AND k.Indeks = p.Indeks
WHERE COALESCE(p.IdInw, k.IdInw) = 42
AND ISNULL(k.IloscSpis, 0) <> ISNULL(p.IloscEwid, 0);
Brak skanu nie jest jednak dowodem, że towaru nie ma. Może oznaczać pominięcie lokalizacji. Procedura wymaga więc potwierdzenia pustej lokalizacji skanem jej kodu i zapisem zera, a wyniki bez takiego potwierdzenia trafiają do ponownego liczenia przez inną osobę.
Jak system WMS wspiera inwentaryzację
System WMS.net zastępuje papierowe arkusze i ręczne przepisywanie danych elektronicznym obiegiem informacji. Spis zaczyna się od zaplanowania w systemie: operator wskazuje zakres, czyli cały magazyn, wybrane strefy albo konkretne indeksy, a system generuje listę pozycji do policzenia wraz z ich stanem ewidencyjnym. Jeżeli procedura wymaga liczenia bez podpowiedzi, przy ocenie systemu warto sprawdzić, czy zadanie da się ustawić tak, żeby lista dla liczącego nie zawierała stanu ewidencyjnego.
Fizyczne liczenie odbywa się na kolektorach danych z systemem Android. Pracownik skanuje kod kreskowy albo tag RFID lokalizacji i towaru, a następnie wpisuje policzoną ilość. Dane trafiają do serwera w czasie rzeczywistym lub po zakończeniu obchodu, a system od razu porównuje je ze stanem systemowym. Identyfikację tagami opisuje artykuł o identyfikacji pojemników i sprzętu RFID.

W modelu ciągłym WMS blokuje wyłącznie lokalizację liczoną w danej chwili, więc pozostała część magazynu pracuje bez przestoju. To odróżnia go od spisu papierowego, który zwykle wymaga zamknięcia całego obiektu. Po zakończeniu liczenia system wylicza różnice i przygotowuje raport rozbieżności, bez ręcznego zestawiania danych w arkuszu. Kierownik magazynu przegląda nadwyżki i niedobory, zatwierdza korekty, a WMS wystawia dokumenty korygujące i aktualizuje stany.
Cały proces od zaplanowania po zamknięcie zostaje w jednym systemie i zachowuje ślad audytowy: kto wprowadził wartość i kiedy. Funkcje modułu inwentaryzacji prezentuje serwis produktowy Studio WMS.net, a porównanie z arkuszem znajduje się w artykule o programach do inwentaryzacji.
Wskazówka wdrożeniowa: przy pierwszym wdrożeniu warto zacząć od inwentaryzacji ciągłej na wybranym fragmencie magazynu. Procedury i zespół sprawdza się wtedy bez ryzyka zatrzymania całości operacji.
Rozliczenie różnic inwentaryzacyjnych
Zatwierdzenie korekty bez ustalenia przyczyny zamyka tylko liczby, a nie problem. Przyczyny różnic grupują się w cztery obszary:
- Błąd dokumentacyjny - pomyłka w dokumencie przyjęcia lub wydania, na przykład zamieniony indeks albo zła jednostka miary.
- Pomyłka przy wydaniu - pobranie towaru o podobnym oznaczeniu, wykryte dopiero przy spisie obu pozycji.
- Ubytek naturalny - strata masy lub objętości towaru sypkiego albo wrażliwego na wilgoć.
- Zdarzenie losowe - uszkodzenie albo kradzież potwierdzone protokołem.
Dopiero po zaklasyfikowaniu różnicy kierownik zatwierdza korektę. Dokument korygujący i zmiana stanu muszą powstać razem, bo w przeciwnym razie ślad audytowy i ilość w kartotece mogą się rozejść. W bazie SQL Server zapewnia to jedna transakcja z obsługą błędu, jak w poniższym przykładzie.
-- przykładowe zatwierdzenie korekty: dokument i zmiana stanu w jednej transakcji
DECLARE @IdInw int = 42, @Uzytkownik nvarchar(50) = N'kierownik.magazynu';
BEGIN TRY
BEGIN TRANSACTION;
INSERT INTO dbo.DokumentKorygujacy (IdInw, KodLokalizacji, Indeks, Roznica, Uzytkownik, DataZatwierdzenia)
SELECT r.IdInw, r.KodLokalizacji, r.Indeks, r.Roznica, @Uzytkownik, SYSDATETIME()
FROM dbo.InwRoznica AS r
WHERE r.IdInw = @IdInw AND r.Zatwierdzona = 1;
-- lokalizacje bez wiersza w dbo.Stan wymagają osobnego INSERT
UPDATE s
SET s.Ilosc = s.Ilosc + r.Roznica
FROM dbo.Stan AS s
JOIN dbo.InwRoznica AS r
ON r.KodLokalizacji = s.KodLokalizacji AND r.Indeks = s.Indeks
WHERE r.IdInw = @IdInw AND r.Zatwierdzona = 1;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
THROW;
END CATCH;
Osoba zatwierdzająca zapisuje się przy każdej korekcie, a zakres jej uprawnień wynika z roli w systemie. Podział ról opisuje artykuł o rolach i użytkownikach w systemie WMS. Jednoznaczne wskazanie osoby materialnie odpowiedzialnej za lokalizację ułatwia rozliczenie i ustalenie przyczyny.
Błędy podczas inwentaryzacji i sposoby ich uniknięcia
Nawet przy dobrym systemie spis bywa obciążony błędami organizacyjnymi. Cztery z nich powtarzają się najczęściej:
- Brak uporządkowania magazynu - towar w niewłaściwych lokalizacjach lub bez oznaczeń wydłuża spis i zwiększa ryzyko pominięcia pozycji.
- Liczenie równolegle z wydaniami - bez blokady, choćby tylko liczonej lokalizacji, stan zmienia się w trakcie spisu.
- Ręczne przepisywanie wyników - przenoszenie danych z arkuszy do systemu wprowadza pomyłki, których nie ma przy zapisie bezpośrednio z kolektora.
- Zatwierdzanie bez wyjaśnienia przyczyn - korekta bez ustalenia źródła różnicy uniemożliwia usunięcie problemu u podstaw.
Do tego dochodzi zbyt rzadkie liczenie cząstkowe. Poleganie wyłącznie na spisie rocznym oznacza, że błędy kumulują się przez wiele miesięcy, zanim zostaną wykryte. Cykl liczenia dobrany do klasyfikacji ABC skraca ten czas dla indeksów o największym obrocie. Wskazówki dotyczące nadzoru nad całą procedurą zawiera artykuł o kontroli procesu inwentaryzacji magazynu, a przestrzenną stronę oznaczania lokalizacji opisuje tekst o miejscach składowania.



