Studio WMS.net nie zapisuje stanu magazynowego jako jednej liczby przy indeksie. Stan jest zbiorem rekordów, z których każdy ma przypisaną lokalizację i partię oraz termin ważności. Z tego zbioru system składa sumę dla całej firmy albo ilość na jednym miejscu paletowym.
Spis treści
- Z czego składa się stan magazynowy
- Stan zmienia dokument, nie edycja pola
- Stan na wybrany dzień
- Stan fizyczny, zarezerwowany i dostępny
- Progi zapasu i powiadomienia
- Kolejność wydania: FIFO i FEFO
- Gdy stan w systemie nie zgadza się z półką
- Stany a inwentaryzacja ciągła
- Dane historyczne w planowaniu zakupów
- Wiele magazynów i spójność z ERP
- Pytania i odpowiedzi o stany magazynowe
- Glosariusz pojęć związanych ze stanami magazynowymi
Z czego składa się stan magazynowy
Ewidencja jest ilościowa i prowadzona z dokładnością do miejsca składowania. Użytkownik wybiera konkretny magazyn albo sprawdza wszystkie naraz. Dla artykułów z kontrolą partii system dopisuje numer partii lub numer seryjny oraz datę ważności.
| Wymiar stanu | Co zapisuje system | Do czego służy |
|---|---|---|
| Magazyn | wskazanie magazynu ze skorowidzu magazynów | rozdzielenie zapasów kilku obiektów |
| Lokalizacja | adres miejsca paletowego | znalezienie towaru bez szukania |
| Partia lub numer seryjny | identyfikator dostawy albo sztuki | wycofanie partii z rynku |
| Data ważności | termin, po którym towaru nie wolno wydać | kolejność wydań i kontrola przeterminowań |
| Cechy artykułu | własne atrybuty z kartoteki | sortowanie i filtrowanie zestawień |
Stany można prezentować w ujęciu zagregowanym, na przykład jako łączną liczbę sztuk w magazynie. Można je też rozbić według lokalizacji i magazynów albo według cech artykułu i atrybutów partii. Ten sam zestaw danych obsługuje kierownika, który chce znać sumę, i magazyniera, który szuka jednej palety.
Stan zmienia dokument, nie edycja pola
Każda operacja magazynowa jest rejestrowana w centralnej bazie przez skan na kolektorze z Androidem. Dotyczy to przyjęcia i odłożenia oraz kompletacji i wydania. Aplikacja prowadzi pracownika po zadaniach i wymusza potwierdzenie każdej czynności skanem etykiety, więc operator potwierdza lokalizację i towar przy każdej operacji.
Reguła: ilość w kartotece nie podlega ręcznej edycji. Pole ILOŚĆ i pole INDEKS są zablokowane, a stan zmienia wyłącznie dokument magazynowy. Pomyłkę poprawia się dokumentem korygującym albo wynikiem inwentaryzacji, a nie nadpisaniem liczby.
Takie rozwiązanie daje pełny ślad zmian. Każdy ruch ma dokument oraz operatora z czasem operacji, więc różnicę między ewidencją a półką da się przypisać do konkretnej operacji. Proces opisują strony o dokumentach magazynowych i o aplikacji WMS na Androida.
Stan na wybrany dzień
System odtwarza stany magazynowe na dowolnie wskazaną datę z historii obrotów. Funkcja przydaje się przy rozliczeniach i audytach oraz w sporach z kontrahentami, bo pozwala wykazać, ile towaru leżało w magazynie w konkretnym dniu. Nie trzeba w tym celu pamiętać o zamrożeniu stanu na koniec miesiąca.
Stan na dzień jako suma obrotów
Mechanizm można zilustrować zapytaniem T-SQL. Poniższy przykład nie pokazuje kodu produktu. Każdy dokument przychodowy dodaje ilość, a każdy rozchodowy odejmuje, więc stan na dzień to suma obrotów z datą do końca wskazanego dnia.
DECLARE @Dzien date = '2026-09-30';
SELECT IndeksId, SUM(Ilosc * Znak) AS StanNaDzien
FROM dbo.Obroty
WHERE DataOperacji < DATEADD(DAY, 1, @Dzien)
GROUP BY IndeksId
HAVING SUM(Ilosc * Znak) <> 0;
Kolumna Znak ma wartość 1 dla przyjęć i minus 1 dla wydań. Zapytanie jest szybkie tylko wtedy, gdy istnieje indeks po DataOperacji z dołączonymi kolumnami zapytania, bo inaczej silnik czyta całą historię obrotów. Plan wykonania pokazuje, czy użyto Index Seek, a opis planów jest w dokumentacji planów wykonania.
Dwa stany z różnych dni dają bilans okresu. Stan końcowy powinien równać się stanowi początkowemu powiększonemu o przyjęcia i pomniejszonemu o wydania. Jeśli bilans się nie zgadza, w danych tego okresu jest błąd, który trzeba odnaleźć w dokumentach.
Spójny odczyt raportu w trakcie pracy magazynu
Raport stanów trwa kilka sekund, a w tym czasie operatorzy nadal skanują. Przy domyślnym poziomie READ COMMITTED paleta przesunięta w trakcie odczytu może zostać policzona dwa razy albo pominięta. Poziom SNAPSHOT daje raportowi widok bazy z chwili rozpoczęcia transakcji, bez blokowania zapisów skanera.
ALTER DATABASE Magazyn SET ALLOW_SNAPSHOT_ISOLATION ON;
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
BEGIN TRAN;
SELECT LokalizacjaId, IndeksId, SUM(Ilosc) AS Stan
FROM dbo.StanyLokalizacji
GROUP BY LokalizacjaId, IndeksId;
COMMIT;
- Odczyt bez blokad. Raport nie czeka na zapisy skanera i nie wstrzymuje przyjęć.
- Spójność w transakcji. Wszystkie zapytania raportu widzą ten sam stan bazy, więc sumy się zgadzają.
- Koszt wersjonowania. Silnik przechowuje poprzednie wersje wierszy w bazie tempdb, więc intensywne raportowanie zwiększa jej rozmiar.
- Stan z początku transakcji. Raport nie pokazuje operacji zatwierdzonych po jej starcie, co przy długim raporcie trzeba uwzględnić w opisie.
Poziomy izolacji opisuje dokumentacja SET TRANSACTION ISOLATION LEVEL, a wersjonowanie wierszy przewodnik po blokadach i wersjonowaniu wierszy.
Stan fizyczny, zarezerwowany i dostępny
Zlecenie wydania rezerwuje towar na podstawie danych z kartoteki i przyjętej zasady rotacji. Zarezerwowana paleta nadal stoi w regale, więc stan fizyczny się nie zmienia, ale dla kolejnego zlecenia jest już niedostępna. Dopiero potwierdzenie pobrania skanem zdejmuje ją ze stanu.
Rozróżnienie ma znaczenie przy sprzedaży. Dział handlowy obiecuje klientowi towar na podstawie stanu dostępnego, a nie fizycznego, bo ten drugi zawiera palety czekające na wysyłkę. Gdy oba stany zlewają się w jedną liczbę, system sprzedaje ten sam towar dwa razy.
Progi zapasu i powiadomienia
Dla każdego artykułu można zdefiniować minimalny i maksymalny próg zapasu. Gdy poziom zbliża się do minimum, program wysyła powiadomienie do działu zakupów i zapobiega przerwie w sprzedaży. Progi i domyślną lokację ustawia się w zakładce danych uzupełniających kartoteki.
Ta sama zakładka zawiera wymiary i pakowanie oraz reguły składowania, więc dane o stanie łączą się tu z danymi o opakowaniu. Przeliczenie liczby sztuk na palety zależy od pola ilości na palecie, a nie od samej ilości w ewidencji.

Kolejność wydania: FIFO i FEFO
System zarządza kolejnością pobierania towaru według przyjętej zasady rotacji. FIFO wydaje najpierw towar przyjęty najwcześniej, a FEFO towar o najkrótszym terminie ważności. Operator dostaje wskazanie konkretnej lokalizacji, więc ryzyko wydania przeterminowanej partii maleje.
| Zasada | Kryterium kolejności | Dane potrzebne w kartotece i dokumentach |
|---|---|---|
| FIFO | data przyjęcia do magazynu | data przyjęcia zapisana w dokumencie PZ |
| FEFO | data ważności towaru | włączona opcja Wymagana data ważności |
Opcje Wymagana seria i Wymagana data ważności włącza się w kartotece osobnymi polami. FEFO jest standardem w branży spożywczej i farmaceutycznej. Towary, które mimo zasad kolejności nie schodzą ze stanu, opisuje strona o rotacji i zaleganiu.
Gdy stan w systemie nie zgadza się z półką
Rozbieżność ma zwykle konkretną przyczynę, którą można odnaleźć w historii operacji. Nadwyżka oznacza, że na półce leży więcej towaru niż w systemie. Niedobór oznacza odwrotną sytuację. Obie różnice rozliczane są przy zamknięciu dokumentu inwentaryzacyjnego.
| Objaw | Typowa przyczyna | Gdzie szukać |
|---|---|---|
| Nadwyżka | pomyłka przy wprowadzaniu danych albo dostawa jeszcze niezaksięgowana | dokumenty przyjęć w statusie otwartym |
| Nadwyżka | niedokończony dokument magazynowy | rejestr dokumentów z danego dnia |
| Niedobór | pomyłka przy kompletacji zamówienia | dokumenty wydań i historia lokalizacji |
| Niedobór | uszkodzenie albo strata towaru | protokoły i dokumenty rozchodu wewnętrznego |
Wyjaśnianie zaczyna się od historii konkretnej lokalizacji. Dokumenty wskazują operatora i czas, więc często da się ustalić operację, po której ilość przestała się zgadzać.
Stany a inwentaryzacja ciągła
Precyzyjna ewidencja pozwala liczyć wybrane lokalizacje bez zatrzymywania magazynu. Każda zliczona lokalizacja jest porównywana ze stanem systemowym, a różnica trafia do dokumentu inwentaryzacji. Cykl takiego liczenia opisuje strona o inwentaryzacji w Studio WMS.net.
Jakość odczytów kodów, od których zależy dokładność stanów, mierzy panel opisany na stronie o wskaźnikach skanowania Auto ID. Niska skuteczność skanowania przekłada się na rozbieżności w stanach.
Dane historyczne w planowaniu zakupów
Historia obrotów pokazuje, które produkty rotują wolno. Dla takich indeksów obniża się poziom zamówień albo planuje wyprzedaż, żeby zwolnić miejsce w strefie. Dla indeksów o stałym popycie podnosi się próg minimalny, aby powiadomienie dotarło do działu zakupów z odpowiednim wyprzedzeniem.
Wartość zapasów wymaga osobnych danych. Ceny zakupu i ewidencyjne są zapisane w trzeciej zakładce kartoteki, więc zestawienia mogą pokazywać wartość obok ilości. Pola kartoteki opisuje strona o kartotekach magazynowych.
Wiele magazynów i spójność z ERP
Z jednej aplikacji można kontrolować stany w kilku magazynach i porównywać dane między nimi. Transfery wewnętrzne między magazynami obsługuje się z poziomu tej samej aplikacji. Zarządzanie kilkoma obiektami opisuje strona o zarządzaniu magazynem.
Integracja z systemem ERP sprawia, że stan widoczny w WMS jest zgodny z danymi w module sprzedaży. Rozbieżności między działami znikają, bo oba systemy opierają się na tych samych danych o stanie. Wydanie towaru i jego wpływ na stan opisuje strona o wydaniu z magazynu.
Pytania i odpowiedzi o stany magazynowe
Tak. System odtwarza stany na dowolnie wskazany dzień na podstawie historii obrotów. Funkcja pomaga przy rozliczeniach i audytach oraz w sporach z kontrahentami, kiedy trzeba wykazać, ile towaru leżało w magazynie w danym dniu.
Tak. Ewidencja jest ilościowa i prowadzona z dokładnością do miejsca składowania, a dla artykułów z kontrolą partii także do numeru partii lub serii i daty ważności. Stan można oglądać w ujęciu zagregowanym albo rozbitym na lokalizacje.
Pole ILOŚĆ jest zablokowane, żeby każda zmiana stanu miała dokument, operatora i czas. Pomyłkę koryguje się dokumentem magazynowym albo wynikiem inwentaryzacji, a nie nadpisaniem liczby.
Dla artykułu definiuje się próg minimalny i maksymalny zapasu. Gdy stan zbliża się do minimum, program wysyła powiadomienie do działu zakupów, zanim zabraknie towaru do sprzedaży.
Nie musi. Przy poziomie SNAPSHOT raport czyta wersje wierszy z chwili startu transakcji i nie blokuje zapisów skanera. Należy tylko pamiętać, że pokazuje stan z początku odczytu.
Glosariusz pojęć związanych ze stanami magazynowymi
- Stan magazynowy
- Ilość towaru zapisana w systemie dla magazynu, lokalizacji, partii i terminu ważności na wskazany moment.
- Obrót magazynowy
- Zapis ruchu towaru wynikający z dokumentu, taki jak przyjęcie albo wydanie. Suma obrotów daje stan na dzień.
- FIFO
- Zasada wydawania towaru w kolejności przyjęcia, od partii najstarszej.
- FEFO
- Zasada wydawania towaru według terminu ważności, od partii, która straci ważność najwcześniej.
- Próg zapasu
- Minimalny lub maksymalny poziom stanu zdefiniowany dla artykułu, którego przekroczenie wywołuje powiadomienie.
- Poziom SNAPSHOT
- Poziom izolacji SQL Server, w którym transakcja czyta wersje wierszy z chwili swojego startu i nie blokuje zapisów.
- READ COMMITTED
- Domyślny poziom izolacji SQL Server, w którym odczyt widzi tylko zatwierdzone zmiany, ale nie gwarantuje spójności całego raportu.
- Inwentaryzacja ciągła
- Cykliczne liczenie wybranych lokalizacji bez zatrzymywania pracy magazynu, w odróżnieniu od spisu rocznego.