Każde wydanie z magazynu zostawia w systemie zapis. Zapisuje się w nim, co wyszło z magazynu i w jakiej ilości, a następnie skąd i na jakiej podstawie. Zbiór takich zapisów tworzy ewidencję wydań, czyli rejestr zdarzeń, w których towar fizycznie opuszcza strefę magazynową. Proces zaczyna się od zlecenia wydania, którym bywa zamówienie klienta albo wewnętrzna dyspozycja produkcyjna, a kończy w chwili, gdy towar opuszcza strefę i system rejestruje to zdarzenie.

Do prowadzenia ewidencji stosuje się różne metody, od dokumentów papierowych po systemy klasy Warehouse Management System. Ten tekst skupia się na samym rejestrze: zawartości wpisu, sposobie zapisu na terminalu, doborze metody identyfikacji i analizie danych. Skutki wydań dla ilości w kartotekach opisuje strona o stanach magazynowych.

Zawartość pojedynczego wpisu w ewidencji wydań

Pojedynczy wpis zawiera nazwę i indeks towaru (SKU) oraz ilość w jednostce magazynowej. Wskazuje też lokalizację, z której towar pobrano, numer dokumentu źródłowego i pracownika, który wykonał operację. Dochodzą do tego data i godzina zdarzenia oraz odbiorca wraz z podstawą wydania.

Pole wpisuRola w ewidencji
SKU i nazwa towaruJednoznacznie wskazuje, co opuściło magazyn.
Ilość w jednostce magazynowejPodstawa do zmniejszenia stanu i rozliczenia z odbiorcą.
Lokalizacja źródłowaPozwala odtworzyć, skąd pobrano towar.
Numer dokumentu źródłowegoŁączy wydanie z zamówieniem albo dyspozycją.
Identyfikator pracownikaWskazuje osobę odpowiedzialną za operację.
Data i godzina zdarzeniaUmożliwia analizę obciążenia zmian.
Odbiorca i podstawa wydaniaRozstrzyga sprawy sporne przy reklamacji.
Pola, które powinien zawierać wpis w ewidencji wydań.

Taki zestaw danych tworzy pełny ślad audytowy. Można do niego wrócić podczas kontroli wewnętrznej albo weryfikacji reklamacji zgłoszonej przez odbiorcę. Ślad pozwala ustalić, jaki produkt trafił do którego klienta i w jakim terminie, co ma znaczenie przy wycofaniu partii z rynku. Im dokładniejszy zapis, tym mniej czasu zajmuje później wyjaśnienie rozbieżności.

-- przykładowy schemat rejestru wydań, nie struktura produktu
CREATE TABLE dbo.WydanieZapis (
    ZapisId        BIGINT IDENTITY PRIMARY KEY,
    DokumentId     INT           NOT NULL,
    Sku            NVARCHAR(40)  NOT NULL,
    Ilosc          DECIMAL(18,3) NOT NULL,
    LokalizacjaId  INT           NOT NULL,
    PracownikId    INT           NOT NULL,
    Zarejestrowano DATETIME2(0)  NOT NULL DEFAULT SYSDATETIME()
);

CREATE INDEX IX_WydanieZapis_Sku_Czas
    ON dbo.WydanieZapis (Sku, Zarejestrowano)
    INCLUDE (Ilosc, DokumentId);

W przykładzie rejestr jest tylko dopisywany, a pomyłkę koryguje nowy zapis, nie edycja starego. Taki model upraszcza audyt, bo historia każdego SKU wynika wprost z kolejności wierszy.

Źródła wydania i dokumenty w ewidencji

Towar można wydać bezpośrednio na podstawie zamówienia, a wtedy wydanie potwierdza dokument WZ, czyli wydanie zewnętrzne odbiorcy spoza firmy. Możliwa jest też droga pośrednia: zlecenie wydania (ZWZ) po skompletowaniu towaru zamienia się w dokument właściwy. Oba warianty opisuje osobny artykuł o dokumentach WZ i ZWZ w ewidencji wydań.

Stan można obniżać także innymi dokumentami, na przykład rozchodem wewnętrznym (RW) albo przesunięciem międzymagazynowym (MM). Rozróżnienie ma znaczenie przy rozliczaniu zapasów, ponieważ każdy typ dokumentu inaczej wpływa na ewidencję księgową. Dobrą praktyką jest równoległa ewidencja nośników, na których towar przemieszcza się między strefami, co omawia strona o ewidencji palet.

Zanim dokument trafi na halę, zwykle przechodzi krótką weryfikację formalną w biurze magazynu. Pracownik sprawdza zgodność zamówienia z dostępnymi zapasami oraz blokady na koncie kontrahenta, po czym zatwierdza dokument do wydruku albo przekazania na terminal. Ten krok ogranicza ryzyko wydania towaru w złej ilości lub do niewłaściwego odbiorcy, zwłaszcza w firmach obsługujących wielu stałych klientów jednocześnie.

Rejestracja wydania na terminalu radiowym

Terminal radiowy z oprogramowaniem magazynowym jest podstawowym narzędziem magazyniera przy realizacji wydań. Praca z nim polega na serii potwierdzeń kolejnych nośników zapisanych w dokumencie WZ, który wcześniej przygotował pracownik biura. Urządzenia i łączność opisuje strona o terminalu radiowym w magazynie.

  1. Numer dokumentu - magazynier skanuje numer WZ albo wpisuje go z klawiatury urządzenia.
  2. Numer nośnika - po odszukaniu dokumentu program oczekuje numeru palety lub pojemnika, który podaje się skanem z karty paletowej albo ręcznie.
  3. Podgląd zawartości - terminal pokazuje, co znajduje się na nośniku i gdzie jest on aktualnie składowany.
  4. Akceptacja - przycisk akceptacji potwierdza pobranie palety z miejsca składowania.
Dłonie trzymające przemysłowy terminal radiowy z ekranem dotykowym na tle regałów magazynowych
Terminal radiowy w dłoni magazyniera, na którym potwierdza się kolejne nośniki z dokumentu WZ.

Reguła: zapis wydania powstaje w chwili potwierdzenia pobrania nośnika na terminalu, a nie w chwili wydruku dokumentu.

Reguła oddziela intencję od faktu. Wydrukowany dokument oznacza tylko, że wydanie zaplanowano, natomiast dopiero potwierdzenie na urządzeniu mówi, że palety faktycznie zniknęły z lokalizacji. Wybór samych urządzeń, na przykład kolektora danych z Androidem, zależy od środowiska pracy i zasięgu sieci.

Zapis wydania jako transakcja

Potwierdzenie na terminalu uruchamia w bazie kilka zmian naraz: zmniejszenie ilości w lokalizacji, dopisanie wiersza do rejestru i aktualizację postępu dokumentu. Wszystkie muszą się udać razem albo wcale, dlatego obejmuje je jedna transakcja. Częściowy zapis, w którym ilość spadła, ale wiersz rejestru nie powstał, zostawiłby stan bez śladu w ewidencji.

Drugim zagrożeniem jest wyścig dwóch operatorów o ostatnie sztuki. Przy domyślnym poziomie izolacji READ COMMITTED oba odczyty mogą zobaczyć tę samą ilość, zanim którykolwiek zapisze zmianę. Wskazówka UPDLOCK przy odczycie zakłada blokadę aktualizacji na wierszu, więc drugi operator poczeka na zakończenie pierwszej transakcji i zobaczy już zmniejszony stan.

-- szkic procedury potwierdzającej pobranie (przykład)
CREATE PROCEDURE dbo.PotwierdzWydanie
    @DokumentId INT, @Sku NVARCHAR(40), @LokalizacjaId INT,
    @Ilosc DECIMAL(18,3), @PracownikId INT
AS
BEGIN
    SET NOCOUNT ON;
    SET XACT_ABORT ON;
    DECLARE @Dostepne DECIMAL(18,3);

    BEGIN TRANSACTION;
        SELECT @Dostepne = Ilosc
          FROM dbo.StanLokalizacji WITH (UPDLOCK, ROWLOCK)
         WHERE LokalizacjaId = @LokalizacjaId AND Sku = @Sku;

        IF @Dostepne IS NULL OR @Dostepne < @Ilosc
            THROW 50002, N'Za mało towaru w lokalizacji.', 1;

        UPDATE dbo.StanLokalizacji
           SET Ilosc = Ilosc - @Ilosc
         WHERE LokalizacjaId = @LokalizacjaId AND Sku = @Sku;

        INSERT dbo.WydanieZapis (DokumentId, Sku, Ilosc, LokalizacjaId, PracownikId)
        VALUES (@DokumentId, @Sku, @Ilosc, @LokalizacjaId, @PracownikId);
    COMMIT TRANSACTION;
END;

Rejestr i stan zmieniają się w tej samej transakcji, więc raport rotacji i stan lokalizacji nigdy się nie rozjeżdżają. Szczegóły blokad i wersjonowania wierszy opisuje przewodnik Microsoft Learn po blokowaniu i wersjonowaniu wierszy.

Wydania częściowe i korekty w rejestrze

Rzeczywistość rzadko zgadza się ze zleceniem. Magazynier może pobrać mniej, niż zapisano w dokumencie, bo w lokalizacji jest mniej sztuk albo część towaru okazała się uszkodzona. Rejestr zapisuje wtedy ilość faktycznie wydaną, a dokument pozostaje otwarty do czasu uzupełnienia albo decyzji o zamknięciu z brakiem.

SytuacjaZapis w rejestrzeSkutek dla dokumentu
Pobranie w pełnej ilościWiersz z ilością ze zleceniaRealizacja kolejnej pozycji lub zamknięcie
Pobranie części ilościWiersz z ilością faktycznąDokument otwarty z brakiem
Brak towaru w lokalizacjiBrak wiersza, zgłoszenie rozbieżnościPozycja wstrzymana do wyjaśnienia
Zwrot od odbiorcyOsobny zapis przyjęcia zwrotuWydanie pozostaje w historii bez edycji
Pomyłka w ilościZapis korygującyOba zapisy zostają w historii
Typowe sytuacje przy wydaniu i ich odzwierciedlenie w rejestrze.

Zwrot towaru od odbiorcy nie cofa wydania. Powstaje osobny dokument przyjęcia, a pierwotny zapis zostaje w rejestrze jako część historii. Taka zasada pasuje do śladu audytowego i pozwala rozliczyć reklamację z uwzględnieniem dat wydania i zwrotu oraz stanu towaru po powrocie.

Braki wykryte przy pobraniu warto zgłaszać jako osobne zdarzenie. Dzięki temu inwentaryzacja wybranej lokalizacji może je sprawdzić od razu, zamiast czekać na pełny spis.

Metody zapisu wydań i ich skala

Wybór metody zależy od wielkości magazynu, liczby wydań na dobę i budżetu wdrożenia. Poniższe zestawienie porównuje trzy najczęściej spotykane podejścia w czterech wymiarach.

KryteriumEwidencja manualnaKody kreskowe i QRRFID
Szybkość rejestracjiNiskaWysokaBardzo wysoka
Ryzyko błędówWysokieNiskieBardzo niskie
Koszt wdrożeniaMinimalnyUmiarkowanyWyższy
Zalecana skala magazynuBardzo małyMały i średniŚredni i duży
Porównanie metod zapisu wydań pod względem szybkości i kosztu.

Ewidencja manualna opiera się na formularzach papierowych albo arkuszach kalkulacyjnych. Sprawdza się w niewielkich magazynach, ale jest czasochłonna i podatna na pomyłki przy przepisywaniu. Wraz ze wzrostem liczby wydań ręczny zapis przestaje nadążać za tempem pracy.

Karton na regale z etykietą zawierającą kod QR i kod kreskowy liniowy
Etykieta z kodem QR i kodem liniowym pozwala zapisać wydanie jednym skanem.

Skanery kodów kreskowych i QR wprowadzają dane do systemu w chwili wydania, więc stan aktualizuje się od razu. Standard etykiet logistycznych opisuje artykuł o etykiecie GS1. W tym standardzie numer partii albo datę ważności koduje się w identyfikatorach zastosowania, a skaner zwykle sprawdza cyfrę kontrolną numeru GTIN. Błędny odczyt jest więc odrzucany, zanim trafi do rejestru.

Technologia RFID pozwala odczytywać wiele znaczników bez skanowania każdej sztuki osobno, na przykład gdy nośnik przejeżdża przez bramkę z czytnikiem. Odczyt zbiorczy ma jednak swoją cenę: sąsiednie palety mogą zostać odczytane jednocześnie, więc bramkę trzeba skonfigurować tak, żeby przypisywała odczyt do właściwego dokumentu wydania.

Ewidencja wydań w różnych modelach magazynu

Sposób prowadzenia ewidencji zależy od charakteru zamówień. Poniższe cztery modele różnią się przede wszystkim liczbą i wielkością wydań.

  • E-commerce - duża liczba niewielkich wydań wymaga szybkiej rejestracji pojedynczych paczek i powiązania wydania z numerem zamówienia oraz przewoźnikiem.
  • Produkcja - wydania materiałów na linię rozlicza dokument RW, a zapis wymaga precyzyjnego powiązania ze zleceniem produkcyjnym.
  • Magazyn wysokiego składowania - integracja z zarządzaniem lokalizacjami pozwala kontrolować obciążenie stref, jak w opisie aplikacji dla magazynów wysokiego składowania.
  • Dystrybucja i logistyka kontraktowa - obsługa wielu odbiorców wymaga przypisania każdego wydania do zamówienia i dokumentu WZ, co dotyczy także kontraktowej logistyki magazynowej.

Analiza danych z ewidencji wydań

Zgromadzone wydania mają wartość zarządczą wykraczającą poza obsługę bieżących zamówień. Raport rotacji wskazuje towary wolno rotujące, które zajmują cenną przestrzeń, oraz te o wysokim obrocie, dla których warto podnieść zapas bezpieczeństwa. Liczba dokumentów wydania w danym miesiącu jest też dobrym wskaźnikiem obciążenia magazynu w kolejnych sezonach, co pomaga planować obsadę.

-- rotacja SKU z ostatnich trzech miesięcy (przykład)
SELECT Sku,
       SUM(Ilosc)                AS Wydano,
       COUNT(DISTINCT DokumentId) AS LiczbaDokumentow
FROM dbo.WydanieZapis
WHERE Zarejestrowano >= DATEADD(MONTH, -3, SYSDATETIME())
GROUP BY Sku
ORDER BY Wydano DESC;

Sama suma ilości bywa myląca, bo towary mają różne jednostki i gabaryty. Z tego powodu raport rotacji zestawia się zwykle z liczbą pozycji i wartością wydań, a wyniki grupuje po klasach, na przykład według analizy ABC. Towary klasy A wymagają wtedy innego poziomu zapasu bezpieczeństwa niż towary klasy C.

Zapytanie korzysta z indeksu z poprzedniego przykładu, bo filtruje po dacie, a kolumny Ilosc i DokumentId są w klauzuli INCLUDE. Zasady budowy indeksów opisuje dokumentacja Microsoft Learn o indeksach w SQL Server.

Prognozowanie zapotrzebowania

Część wdrożeń łączy rejestr wydań z modelami prognostycznymi, które na podstawie historii przewidują zapotrzebowanie na poszczególne indeksy. Ogólne podejście do takich rozwiązań opisuje strona o sztucznej inteligencji w firmie. Jakość prognozy zależy jednak od kompletności zapisu, więc każde wydanie poza systemem obniża jej wartość. Dotyczy to zwłaszcza towarów sezonowych, gdzie brakujące miesiące zafałszowują wzorzec popytu.

Zgodność ewidencji ze stanem i inwentaryzacją

Elektroniczna ewidencja zwiększa bezpieczeństwo obrotu, ponieważ każda transakcja jest zapisana i możliwa do prześledzenia wstecz. Szybko widać nieprawidłowości i ogranicza się straty wynikające z pomyłek albo nadużyć. Dokładna dokumentacja wydań jest też podstawą do wiarygodnego rozliczania się z klientami przy wystawianiu faktur.

Dane o wydaniach są od razu widoczne dla osób odpowiedzialnych za inwentaryzację magazynu. Rozbieżność między stanem systemowym a fizycznym wychwytuje się szybciej, bo punktem odniesienia jest zawsze bieżący zapis operacji, a nie dane odtwarzane z papierowych dokumentów. Spójność ewidencji pozostaje wtedy niezależna od liczby osób obsługujących wydania.

Pełny opis modułu zarządzania magazynem, w którym rejestr wydań jest jedną z funkcji, znajduje się na stronie systemu zarządzania magazynem WMS.