9. januar 2022

Versjon 9.10 og senere

Historisk lager i Visma Business

For to år siden skrev jeg om historisk lager; om det faktum at det i VBus ikke er mulig å se hva som var på lager ved siste årsskifte eller tidligere. Visma har åpenbart ikke til hensikt å gjøre noe med dette i min levetid. Så i romjulen satte jeg opp en løsning for dette. For så vidt nok en gang. Jeg har jobbet hos flere Vismapartnere og laget løsning for beregning av lagerverdier bakover i tid flere ganger. Men det som er laget hos en arbeidsgiver, forblir hos denne. Forrige gang funderte jeg på om jeg skulle benytte DME, men jeg tenkte da at det ikke var så mange som hadde lisens for DME. Nå er dette inkludert i standard og DME representerer ikke noe ekstra kostnader. Jeg har skrevet det før, og skriver det igjen: Med DME er det bare fantasien som begrenser hva du kan få til. Så denne gangen har jeg tatt med alt som jeg tenker hører med.

En viktig forskjell fra tidligere, er at når historisk lager beregnes for (utløpet av) en periode, så beholdes varepartier og lagersaldi for andre perioder. I praksis betyr dette at vi for et produkt eller en lagersaldo, enkelt kan vise lagersaldo over tid. Dette var ikke målet for løsningen, men et biprodukt som kan ha sin egen verdi. En annen forskjell er håndtering av telleresultater. Standard VBus tar vare på Forrige telledato, Forrige telt antall og Forrige telt avlagersaldo. Fra og med versjon 16.10 finner du tilsvarende felt på Vareparti. Men ved neste telling blir de overskrevet. Jeg har derfor opprettet egne tabeller for lagertelling (på lagersaldo) og partitelling (på Vareparti). Hver gang historisk lager beregnes for en periode, tar jeg vare på telleresultatene som er registrert på lagersaldo og fra versjon 16.10 også fra Vareparti. Samtidig har jeg åpnet for å etter-registrere telleresultater fra tidligere tellinger. På denne måten blir det mulig å etterleve Bokførings­forskriftens § 6-1 krav om at tilgang og avgang fra opptellingstidspunktet til regnskapsårets slutt kan dokumenteres på tilfredsstillende måte dersom man har benyttet seg om anledningen til å foreta opptelling i løpet av året. Jeg skrev om rullerende lagertelling som noen kaller det, rett før jul i fjor.

Det er med løsninger og applikasjoner, som med hus: Du må ha bygget noen, før det blir bra.

I VBus er det (etter noens mening for) mange lagerbegrep:

På lager nå; det du forhåpentligvis finner ved lagertelling (det som blir til Tellbart antall ved overføring til lagertelling)

+   Ferdigmeldt, men ikke fakturert på salgsordre og hverken tilbakelevert eller kassert på utlåns- og utleieordre

=   Fysisk beholdning

–   Urealisert lagerøkning; varer mottatt, men ikke realisert

=   Realisert beholdning

 

Hvis du ikke har satt opp bokføring av midlertidig lagerverdi, så er det verdien av Realisert beholdning du skal avstemme mot balansen, men det er viktig at du bruker Realisert lagerverdi fra Vareparti eller Aggregert vareparti, ikke fra Lagersaldo. I standard VBus beregnes også verdien av Fysisk beholdning; Fysisk lagerverdi samt altså verdien av Realisert beholdning; Realisert lagerverdi. I mitt hode er det en svakhet at det ikke beregnes verdien av På lager nå, Ferdigmeldt eller Urealisert lagerøkning. Så når jeg har satt opp en løsning for Historisk lager har jeg tatt med beregning av disse verdiene. På lagersaldo vil Ferdigmeldt ikke bare omfatte det som er ferdigmeldt (men ikke fakturert) på salgsordre; det som er Utleid eller Utlånt (men ikke tilbakelevert eller kassert). I Historisk lager har jeg tatt med verdien også av disse størrelsene. Husk at Urealisert lagerøkning ikke bare gjelder innkjøp, men også produksjon og kredit salgsordre (retur fra kunde).

Historisk lager viser ikke bare verdiene på lagersaldo, men bryter det ned på vareparti og videre ned på transaksjoner. Dermed har du en dokumentasjon av alle de syv beholdningstallene med tilhørende verdier. Og samtidig en dokumentasjon av tilgang og avgang etter siste telling om du teller gjennom året – enten du teller på lagersaldo eller vareparti. Og da jeg var i gang tok jeg like gjerne med bevegelse fra balansedato til beholdning nå.

Løsningen forutsetter at du i Ordrebehandling har krysset av for:

·        Ta vare på ferdigmeldt antall i lagersaldotabellen

·        Ikke beregn "produkter til utlån" i tellbart antall

·         Ikke ta med utleid i tellbart antall

I tillegg må VBus være på versjon 9.10 eller senere. Det er vel ingen som har eldre versjoner enn det. Har du utleie eller utlån av flere enn én lagerført enhet på den enkelte ordrelinje, forutsettes det at all tilbakelevering (for den enkelte ordreline) skjer samtidig og tilsvarende at all kassering skjer samtidig. Hvis noe blir tilbakelevert, mens resten blir kassert, så kan det skje på forskjellige datoer. Årsaken til dette er at kilden for historisk lager i hovedsak er Produkttransaksjon og denne blir ikke splittet ved delvis tilbakelevering. Jeg tenker at de aller fleste som bruker utlån og utleie, normalt får tilbake (eller kasserer) alt når leietiden er over. Og så må du ha valgt Hovedbokstransaksjoner pr. faktura og Hovedbokstrans. pr. ordre ved postering fra produkttrans. i Regnskapsbehandl. Historisk lager vil neppe være korrekt lenger tilbake, enn til det tidspunkt hvor alle transer i beholdningen var bokført på denne måten.

Hvis du har inkonsistens i lager; f.eks. at Fysisk beholdning, Urealisert lagerøkning, Ferdigmeldt, På lager nå, Utleid eller Utlånt er negativ – eller at summen av beholdningstallene på Vareparti ikke stemmer med Lagersaldo, må du rydde opp i dette først. Historisk lager er ikke en løsning for å rette opp det som er feil. Og om du ikke har helgardert i Bokføringstilfeller, må du bokføre kostnader «manuelt» (se Bokfør kostnaderProdukttransaksjon) før du beregner lagerbeholdningen for en tidligere periode. Har du bunter med Opprinnelse 9 [Ordrebehandling], 23 [Inngående faktura], 16 [Bokføring av kostnader] eller 40 [Korrigerte kostnader], må du oppdatere disse buntene først.

Hvis det etter at historisk lager er beregnet for en periode, blir behandlet noe i logistikken med tilbakedatering til denne periode – f.eks. fakturamottak hvor valuteringdato settes til en dato i eller før denne perioden, så må historisk lager beregnes på nytt. Er man usikker, vil jeg anbefale å foreta en ny beregning når sperredatoen endres og perioden sperres.

Uten at det er noen forutsetning, så anbefaler jeg følgende:

·        Eventuell frakt, toll og kostprispåslag, bokføres ved innkjøp – jeg har skrevet om inngående frakt tidligere.

·        Ved bokføring av midlertidig lagerverdi, ta med frakt, toll og kostprispåslag, se Transp.avt.behandl. i Bedriftsopplysninger eller A. og b. behandl. i Avgifts- og bokføringsopplysninger.

·        Nærmest helgardering i Bokføringstilfeller, se kontrollsporet.

Åpningsvinduet i løsningen viser Regnskapsperioder på venstre side med to klapper; Beregn og Detaljer. Kolonnen Lagerstatus er blank inntil beregning har skjedd. Hvor lang tid beregningen tar er selvfølgelig avhengig av antall transer, men det går dramatisk raskere enn å regenerere lagersaldo. Første beregning tar lenger tid enn neste og jo nærmere perioden er dags dato, jo raskere går beregningen.

Et bilde som inneholder bord

Automatisk generert beskrivelse

 

Neste fane viser hvordan lagersaldo var:

Et bilde som inneholder bord

Automatisk generert beskrivelse

 

Tilsvarende for Vareparti. I fanen Lagertelling kan man legge inn tidligere telleresultater i egne tabeller; én for lagersaldo og én for vareparti:

 

Klikker du på knappen Detaljer (øverst til venstre i vinduet), kommer du til et nytt vindu, hvor alle beholdningstall i historisk vareparti er dokumentert med hvilke transaksjoner som inngår i hvert enkelt beholdningstall:

Et bilde som inneholder tekst, innendørs, skjermbilde

Automatisk generert beskrivelse 

I dette eksempelet ser vi at det ble innkjøpt 39 stk. som ble varemottatt 30.06.2020 med en opprinnelig kostpris på 1.151,16 kroner (som egentlig er 120 USD x opprinnelig valutakurs på 8,7209 (som blir 1.046,51 kroner) pluss 10% frakt) og en opprinnelig lagerverdi på 44.895,16 kroner. Så ble det 10.07.2020 solgt til sammen 18 stk. med denne kostpris og en bokført midlertidig varekost på 20.720,84 kroner. Deretter ble fakturamottaket gjennomført, men da med 6,1618 som valutakurs, som reduserte verdien av innkjøpet til 31.720,88 kroner. Solgte varers kost på de 18 ble korrigert med til sammen 6.080,43 kroner. Dato for denne korreksjonen er hentet fra ValuteringdatoRealisasjonsjournallinje. De to siste salgene har skjedd med den endelige kostpris på 813,36. Vi kjenner igjen Realisert beholdning som summen av Lagerbevegelse og Realisert lagerverdi som summen av Lagerkostnad (kr).

Realisert beholdning (og tilhørende verdi) kan være negativ. Det skjer om man mottar varer som selges før den inngående fakturaen mottas. Dette er på ingen måte feil at Realisert beholdning er negativ.

Et bilde som inneholder tekst, innendørs, skjermbilde

Automatisk generert beskrivelse

I den løpende driften er det nødvendig å ferdigmelde før realisering kan skje. Det er ikke mulig å foreta fakturamottak på noe som ikke er varemottatt og det er heller ikke mulig å fakturere (på normalordre) noe som ikke er ferdigmeldt. Samtidig er det mulig å sette fakturadato tidligere enn ferdigmeldt dato, både på kjøp og salg. La oss tenke oss at vi mottar varer 3. januar som selges umiddelbart, men fakturaen dateres 31. desember året før. Og likeså med den inngående faktura. Da blir det slik:

Et bilde som inneholder bord

Automatisk generert beskrivelse

Realisert beholdning og tilhørende verdi per 31. desember er for så vidt korrekt; 7 stk. med en samlet verdi på 15.108,96. På lager 31. desember er også korrekt; null. Det var ikke noe på lager ved årsskiftet og heller ikke noe å telle. Konsekvensen av slik tilbakedatering er at Urealisert lagerøkning, fysisk beholdning og ferdigmeldt blir negative. Pr. 31. desember har vi realisert 10 som ikke er varemottatt og fakturert 3 som ikke er ferdigmeldt. Merk at Realisert dato hentes fra Hovedbokstransaksjon; det er i godkjenningsdialogen anledning til å velge en annen Valuteringsdato enn Fakturadato, både i fakturamottaket og ved fakturering.

I den løpende driften er det feil om Urealisert lagerøkning, Fysisk beholdning, Ferdigmeldt eller På lager nå blir negativ. Det må korrigeres før historisk lager beregnes. Men når inngående eller utgående faktura tilbakedateres i forhold til ferdigmeldt, vil man få negative verdier – som for så vidt er korrekt nok.

Når det gjelder utleie og utlån av lagerhåndterte produkter, så påvirkes ikke Lagerbevegelse hverken av ferdigmelding eller fakturering. Heller ikke av tilbakelevering. Men ved kassering oppdateres Lagerbevegelse. Merk at Realisert dato ikke er når det utleide blir utfakturert, men når det eventuelt blir kassert. Her er et eksempel hvor en golf-bil blir innkjøpt og varemottatt 13. juli 2020 og utleid to dager senere. Fakturaen for innkjøpet er datert i august og den utleide bilen blir ikke tilbakelevert før i januar 2022. Så UB juli 2020 er slik:

Et bilde som inneholder bord

Automatisk generert beskrivelse

Realisert beholdning er null, siden innkjøpet først realiseres i august 2020 og den utleide bilen ikke er kassert. Urealisert lagerøkning er 1 siden vi har mottatt bilen, men ikke fakturaen for den. Fysisk beholdning er også 1 fordi vi faktisk eier bilen, selv om den er utleid. På lager er null, siden den er utleid og ikke tilbakelevert før en tid etter balansedato (her 31.07.2020).

I neste hovedfane ser du historisk lagersaldo brutt ned på de underliggende varepartier:

Et bilde som inneholder bord

Automatisk generert beskrivelse

 

Neste fane viser Bevegelse etter telling. Dette er for å tilfredsstille Bokførings­forskriftens § 6-1 krav om at tilgang og avgang fra opptellingstidspunktet til regnskapsårets slutt kan dokumenteres på tilfredsstillende måte dersom man har foretatt opptelling i løpet av året. Historisk lager viser siste telling på eller før balansedato og viser bevegelsene fra forrige telledato:

Et bilde som inneholder tekst, skjermbilde, innendørs

Automatisk generert beskrivelse

 

For den som er interessert i bevegelsene fra balansedato til dags dato, viser neste fane nettopp det:

Et bilde som inneholder bord

Automatisk generert beskrivelse

 

For de som bruker produksjon viser neste fane verdien av varer i arbeid, her med et eksempel på produksjon som spenner over flere perioder:

Det som er «varer i arbeid», er vareforbruket. På venstre side ser vi at produksjonen nå er ferdig; de siste to ble ferdigmeldt etter balansedato, mens vareforbruket på høyre side knytter seg til de 24 som ble ferdigmeldt 20.06.2020.

 

Siste fane er Avstemming mot hovedbok. Merk konti som brukes til realiserte verdier med verdien 4 i Gr12 og urealiserte verdier, samt varer i arbeid med 5 i Gr12. Da kan det se slik ut:

Et bilde som inneholder tekst

Automatisk generert beskrivelse

Her har jeg satt opp egne konti i balansen for hver Avgifts- og bokføringsgruppe og separate konti for urealisert lagerøkning, ferdigmeldt ikke fakturert, etc. De fem første radene i Hovedbokssaldo er realiserte verdier. Vi kjenner igjen disse verdiene i kolonnen Realisert lagerverdi i historisk lagersaldo. Merk at verdien av det som er utlånt også inngår i Fysisk lagerverdi (normalt Realisert, men kan være urealisert lagerverdi).

I dette oppsettet er det valgt bokføring av midlertidig lagerverdi for kjøp, produksjon og salg alle Avgifts- og bokføringsgrupper bortsett fra 3 [Handelsvarer over lager]. Dermed finner vi igjen verdien av urealisert lagerverdi som «varer mottatt, venter faktura» eller «Egenprod. varer, venter realisering» på alle A&B-grupper bortsett fra 3 [Handelsvarer over lager]. Tilsvarende for det som er ferdigmeldt; dette kommer til fradrag balanseverdiene; vi finner dem igjen i nærheten av kundefordringene. Merk at Ferdigmeldt verdi inkluderer Utleid og Utlånt verdi. Årsaken til at A&B-gruppe 3 ikke er satt opp med bokføring av midlertidig lagerverdi er at dette blokkerer for å trekke ferdigmelding tilbake, noe som mange opplever som sterkt begrensende, se det jeg har skrevet om kontrollsporet tidligere.

Med bokføring av midlertidig lagerverdi på produksjon blir varer i arbeid i balansen fordelt mellom «Varer under tilvirkning» og «Egenproduserte varer som ikke er realisert». Jeg har beskrevet konteringsoppsettet for produksjon tidligere.

Selv om jeg ikke har lagt opp til det her, er det mulig å beregne historisk lager for andre datoer enn utgangen av en periode. Hvis man har mange lagersaldorader or/eller partier med beholdning, kan det være smart å regne på hvor store tabellene Historisk lagersaldo og Historisk vareparti vil bli. Og så gir avstemming mot hovedbok ikke menig. Men det kan være nyttig for statistikk og måling av kapitalbinding over tid. Slik beregning kan skje daglig eller ukentlig og kan i tilfelle settes opp som en bakgrunnsjobb på SQL-server.

 

Gi beskjed om du er lei av å vente på at Visma tar dette inn i standard VBus, så kan du få dette oppsettet installert hos deg.

 

Resten av min blogg kan du lese her: frode.antun.no/VBus/blogg 

 

frode@antun.no