Konsernavstemming (intercompany)¶
Konsernavstemming brukes til å avstemme par av konti der to selskaper (eller to interne konti i samme selskap) skal speile hverandre — typisk en mellomværende-konto i selskap A mot tilsvarende konto i selskap B. Startflaten er et dashboard som gir deg umiddelbar oversikt over alle aktive par, avvik og periodemessig status. Du åpner ett par av gangen for detaljert matching.
Funksjonen ligger under Bankavstemming → Konsernavstemming (/bank-reconciliation/intercompany).
Tilgang¶
| Hvem | Hva trengs |
|---|---|
| Rolle | Pålogget bruker som har tilgang til Bankavstemming-modulen (ModuleGuard på alle ruter) |
| Modul | Bankavstemming, moduleId: 42 |
| Parutvalg | Brukeren ser kun par der hen har tilgang til begge underliggende konti via wv_BankAccountAccess |
| Adminrettighet | Bare siden "Bankkontotilganger" (/bank-reconciliation/access) er markert requiresAdmin: true i menyen. Selve konsern-sidene har ingen ekstra admin-sjekk i UI-laget. |
Det finnes ingen egen "Konsern-tilgang"-rettighet. Hvem som ser hvilke par styres av modul-tilgang og
wv_BankAccountAccesspå de underliggende kontiene — begge sider må være tilgjengelige for at paret skal vises.
Hva sidene faktisk er¶
Konsernavstemming består av fire Angular-ruter:
| Rute | Hva den gjør |
|---|---|
/bank-reconciliation/intercompany |
Dashboard — oversikt over alle aktive par med KPI-kort, periodevelger og paroversikt |
/bank-reconciliation/intercompany/manage |
Administrer par — liste for å opprette, redigere, aktivere/deaktivere og slette par |
/bank-reconciliation/intercompany/reconcile/:linkId |
Arbeidsbenk for ett par: side A og side B side-om-side, matching, periodebekreftelse |
/bank-reconciliation/intercompany/consolidated |
Videresender til dashboardet (omdirigering) |
Initialisering av et par¶
Et konsernpar må initialiseres før det kan avstemmes — på samme måte som en bankkonto må det (se Initialisere bankkonto). Du fastsetter hvilken dato paret er avstemt til og med, og saldoen på hver side per den datoen.
Uten dette har avstemmingen ikke noe utgangspunkt å måle mot: «A mot B» blir da ikke en saldo, men summen av et tilfeldig tidsvindu — og den endrer seg hver gang vinduet endrer seg.
Alle eksisterende par er uinitialiserte. Det finnes ingen datamigrering som setter en cutoff for par som er opprettet tidligere, fordi det ikke fantes noen lagret sannhet å konvertere fra — vinduet ble regnet ut på nytt ved hver lesing. Etter utrulling må en administrator initialisere hvert enkelt par, ellers avstemmes det ikke.
Hva "avstemt til og med" betyr¶
Feltet ReconciledThroughDate på wv_IntercompanyLink styrer hvor det ordinære avstemmingsvinduet begynner. Betydningen er nøyaktig den samme konvensjonen som på banksiden ("konvensjon B"):
- Datoen du oppgir ER avstemt. Den er den siste dagen som allerede regnes som ferdig avstemt — ikke starten på noe uavstemt.
- Åpningssaldoene er saldoene PÅ denne datoen.
OpeningBalance_AogOpeningBalance_Ber saldoen ved dagens slutt på cutoff-datoen, ikke dagen før. - Vinduet åpner dagen ETTER cutoff. Lastevinduet regnes ut som cutoff + 1 dag, så en post datert nøyaktig på cutoff-datoen regnes ikke som ny — den ligger allerede inne i åpningssaldoen (
BankReconciliationService.cs,GetIntercompanyLoadStartDateAsync).
Eksempel: skal du avstemme april¶
Skal du starte avstemming av april måned, setter du 31.03 som avstemt til og med — ikke 01.04.
-
- mars er den siste dagen som regnes som ferdig avstemt fra før.
- Åpningssaldoene du oppgir er saldoen på hver side ved utgangen av 31. mars.
- April sine posteringer (fra og med 01.04) faller innenfor det ordinære vinduet og lastes/matches som normalt.
Tommelfingerregel: datoen du oppgir er alltid siste dag i forrige periode, ikke første dag i perioden du skal avstemme.
Åpningsposter¶
En åpningspost er en post som er utestående per cutoff-datoen: den er allerede bokført på sin egen side (og ligger derfor inne i den sidens åpningssaldo), men motparten har ikke bokført den ennå. Typisk eksempel er en faktura selskap A har bokført i mars, som selskap B først bokfører i april.
Registrer en åpningspost når differansen mellom de to sidenes åpningssaldoer skyldes en konkret post du kan navngi. Gjør du ikke det, framstår den samme differansen som en uforklart skjevhet i åpningssaldoen som ingen kan matche bort.
Konsernsiden har ingen lokal postlagring — poster leses live fra regnskapssystemet ved hver forespørsel — så åpningsposter lagres i sin egen tabell (wv_IntercompanyOpeningItem) og flettes inn i den live strømmen når paret lastes. Se datamodellen for bankavstemming.
Reglene for en åpningspost (BankReconciliationRepository.cs, ValidateIntercompanyOpeningItems):
| Regel | Feilmelding hvis brutt |
|---|---|
Siden må være A eller B |
"Ugyldig side '…' på åpningspost. Bruk A eller B." |
| Datoen kan ikke ligge etter cutoff | "Åpningspost datert … kan ikke ligge etter avstemt-til-og-med-datoen …. Posten er en vanlig bilagslinje og kommer med i perioden." |
| Beløpet kan ikke være null | "Åpningspost må ha et beløp forskjellig fra null." |
Hvor en åpningspost teller — dette er kjernen i modellen, og de to reglene er bevisst forskjellige (IntercompanySnapshotComputer.cs):
| Sammenheng | Åpningspost | Hvorfor |
|---|---|---|
| Saldo (Sum A / Sum B, netto differanse) | Ekskludert | Beløpet ligger allerede inne i sidens egen åpningssaldo. Å summere raden i tillegg ville dobbeltelle den. Saldoen er derfor åpningssaldo + sum av vinduets poster som IKKE er åpningsposter. |
| Arbeidsmengde (postlister, matching, antall åpne poster) | Inkludert | Hele poenget med å lagre en åpningspost er at den skal kunne matches mot motposten sin. Den er utestående i matche-forstand, ikke i saldo-forstand. |
Åpningssaldoene er beløp i sidens egen hjemvaluta, og bokføres derfor på hjemvalutaen i valutafordelingen — ellers ville totalen og valutavisningen vist ulike tall.
Slik initialiserer du et par¶
Krever godkjenningstilgang. Initialisering krever
approve-tilgang på parets kontoer — samme nivå som å bekrefte perioder — fordi en re-initialisering sletter matchgrupper, også bekreftede. Pågår en auto-match-kjøring på paret, avvises initialiseringen med beskjed om å vente til den er ferdig.
- Gå til Bankavstemming → Konsernavstemming → Administrer par (
/bank-reconciliation/intercompany/manage). - Klikk Initialiser-knappen i Status-kolonnen på raden for paret — samme plassering som i bankkontolisten. Er paret allerede initialisert, viser kolonnen i stedet en klikkbar dato-badge («Avstemt til og med …») som åpner dialogen forhåndsutfylt med lagrede verdier.
- Fyll ut Avstemt til og med. Hjelpeteksten i dialogen sier det samme som denne siden: «Paret er avstemt til og med denne datoen. Inngående saldoer gjelder per datoen, og avstemmingsperioden starter dagen etter.»
- Klikk Hent saldoer for å hente saldo for begge sider automatisk fra regnskapssystemet per den valgte datoen, eller fyll inn Inngående saldo A / Inngående saldo B manuelt. Finner ikke systemet en saldo for en side, sies det eksplisitt i stedet for å vise 0. Et differansemerke viser avviket mellom de to sidene.
- Registrer kjente utestående poster under Åpningsposter — én rad per post med side (A/B), dato, beskrivelse, beløp og referanse. Nye rader får cutoff-datoen som standarddato, og en rad datert etter cutoff merkes før du rekker å lagre.
- Lagre. Cutoff, begge åpningssaldoer og åpningspostene skrives i én transaksjon, sammen med et stempel for hvem som verifiserte saldoene og når.
Bak dialogen ligger tre endepunkter på BankReconciliation-kontrolleren (BankReconciliationController.cs):
| Endepunkt | Rolle i flyten |
|---|---|
GET GetIntercompanyOpeningBalances |
Henter foreslått saldo for begge sider per en valgt dato, direkte fra regnskapssystemet. Begge sider leses sekvensielt, så svaret kan ta tid på par med lang historikk. |
POST InitializeIntercompanyLink |
Lagrer cutoff-dato, begge åpningssaldoer og eventuelle åpningsposter i én transaksjon. |
GET GetIntercompanyOpeningItems |
Leser tilbake de lagrede åpningspostene for paret. |
Re-initialisering er destruktiv¶
Å initialisere et par som allerede er initialisert er ikke en ren oppdatering. Fordi den forrige cutoff-datoen kan ha vært feil, kan matchinger gjort mot de gamle åpningspostene ikke stå igjen — de ville pekt på poster som ikke lenger finnes. Én transaksjon fjerner derfor (BankReconciliationRepository.cs, IntercompanyOpeningItemCleanupSql):
- hele matchgrupper som refererer en åpningspost på paret — også motposten i gruppen, ikke bare åpningsposten,
- parets åpningsposter, og
- parets lagrede saldo-snapshots.
Revisjonsloggen slettes aldri — hver fjernet matchgruppe får en MatchDeleted-oppføring som navngir gruppen som ble slettet, og de fjernede åpningspostene får en OpeningItemsReplaced-oppføring med antall og sum per side. Begge i tråd med oppbevaringskravet i bokføringsloven. Vær likevel klar over at matcharbeid går tapt: re-initialiser bevisst, ikke for å «prøve en annen dato».
Dialogen gjør re-initialisering visuelt tydelig: en rød varselblokk lister nøyaktig hva som slettes, og lagre-knappen skifter til rød Initialiser på nytt — den ordinære mørke Initialiser-knappen vises bare for et par som aldri har vært initialisert.
I tillegg må du skrive inn parets navn i feltet under varselblokken før den røde knappen blir aktiv. Det er samme sperre som ved permanent sletting av en bankkonto, og den er der fordi den røde knappen viser at noe er alvorlig, men ikke hvilket par du står i. Førstegangsinitialisering har ingen slik sperre — den sletter ingenting.
Et uinitialisert par blokkerer¶
Et par uten ReconciledThroughDate stopper med en feilmelding i stedet for å laste noe som helst:
Konsernparet er ikke initialisert. Sett en avstemt-til-og-med-dato og inngående saldo før du avstemmer.
Dette er en bevisst innstramming. Tidligere fant paret på et vindu selv når cutoff manglet, og leste da rullerende 30 dager. Konsekvensen var at alt eldre var usynlig: en post som faktisk var åpen fra før vinduet forsvant i stedet for å vises som åpen, og paret så avstemt ut — fordi det eneste som ble summert var de siste 30 dagene. Et tall du ikke kan se er ikke til å skille fra et riktig tall, så funksjonen feiler nå høylytt i stedet for stille.
Dashboard¶
Dashboardet er startflaten og gir deg et samlet bilde av konsernavstemmingen for en valgt periode.
Periodevelger¶
Øverst på dashboardet velger du Til dato — perioden som brukes som referanseperiode for alle par og KPI-kort. Periodevelgeren viser måned og t.o.m.-dato (f.eks. «August 2026 · t.o.m. 31.08») i stedet for kun et rått datofelt, siden en avstemmingsperiode alltid er en hel måned — samme visning som bankavstemmingsdashboardet. I tillegg finnes en avansert filter der du kan sette eksplisitt Fra-dato og Til-dato for å begrense rapporten til et bestemt tidsvindu.
KPI-kort¶
Fire klikkbare kort viser nøkkeltall for valgt periode, med de handlingsdrivende først. Klikk på et kort for å filtrere paroversikten til relevante par.
| Kort | Hva det viser |
|---|---|
| Par med avvik | Antall par der netto differanse overstiger toleransen eller det finnes åpne poster |
| Netto differanse | Sum av netto differanse på tvers av par med avvik |
| Aktive par | Totalt antall aktive intercompany-par |
| Bekreftede par | Antall par med status Bekreftet for perioden |
Fargen på kortets ikon følger verdien, ikke hva kortet heter: «Par med avvik: 0» er en god tilstand og vises ikke som en advarsel.
Åpne poster telles per par i kolonnene Åpne A og Åpne B. De har ikke egne KPI-kort, fordi en sum av «side A» på tvers av par som ikke har noe med hverandre å gjøre ikke gir et meningsfullt tall.
Paroversikt¶
Under KPI-kortene vises paroversikten. Den er en smart-grid, så du kan sortere ved å klikke en overskrift, filtrere per kolonne, søke i fritekst over alle kolonner, bla i sider og selv velge hvilke kolonner du vil se. Ctrl+F åpner filterraden når fokus står i tabellen. Parnavnet står låst til venstre når du ruller sidelengs.
Én rad per par:
| Kolonne | Beskrivelse |
|---|---|
| Parnavn | Navn på intercompany-paret |
| Selskap A / B | Regnskapsklientene på hver side |
| Periodestatus | Arbeidsstatusen for paret i valgt periode (se tabell nedenfor) |
| Sum A / Sum B | Saldo hentet fra snapshotet — vises umiddelbart uten å vente på live-henting |
| Netto differanse | Retningskorrigert differanse: SumA + SumB ved motsatt fortegn (Opposite), SumA − SumB ved likt fortegn (Same) |
| Åpne poster A / B | Antall uavstemte poster per side |
| Sist oppdatert | Tidspunkt for siste snapshot-oppdatering |
| Snapshotstatus | Tilstand på saldogrunnlaget (se tabell nedenfor) |
| Handling | Knapp Åpne avstemming — tar deg til arbeidsbenken for paret |
Periodestatus¶
| Status | Betydning |
|---|---|
| Ikke startet | Ingen matching er utført for paret i perioden |
| Har avvik | Nettodifferansen overstiger toleransen, eller det finnes åpne poster på minst én side |
| Klar til bekreftelse | Paret er i balanse innenfor toleranse og alle poster er matchet — klart for periodebekreftelse |
| Bekreftet | Perioden er manuelt bekreftet av en bruker |
| Feilet | En feil oppstod ved henting av data for paret; se snapshotstatus for detaljer |
Snapshotstatus¶
| Status | Betydning |
|---|---|
| Oppdatert | Snapshotet er friskt og reflekterer faktisk saldo |
| Utdatert | Snapshotet er eldre enn forventet oppdateringsintervall; bruk Oppdater grunnlag |
| Mangler | Ingen snapshot er lagret for paret og perioden ennå. Beløpskolonnene viser da «ikke beregnet» framfor 0,00 — et par uten grunnlag ser altså ikke ut som et par i balanse |
| Feil | En feil oppstod sist snapshotet ble forsøkt oppdatert |
| Oppdaterer | Snapshot-jobb kjører akkurat nå |
Batch auto-match¶
Knappen Kjør auto-match kjører auto-matching over flere par i én operasjon. Hva den omfatter avhenger av hva du har gjort:
- Har du merket par i avkrysningskolonnen, kjøres bare de merkede. Knappen viser antallet.
- Har du ikke merket noe, kjøres alle par som er synlige etter filteret. Knappen viser det antallet i stedet.
Fordi filteret dermed styrer omfanget, viser filter-knappen nå tydelig når et filter er satt.
Du får en bekreftelsesdialog før kjøringen starter, og den navngir omfanget eksplisitt — «N valgte par» eller «alle N synlige par». Les den. Auto-matching oppretter matchgrupper, og det er ikke noe du angrer med ett klikk.
På mobil vises ikke avkrysningskolonnen. Batch auto-match omfatter da alle synlige par, og bekreftelsesdialogen sier det.
Oppdater grunnlag¶
Knappen Oppdater grunnlag (tilgjengelig per rad og/eller øverst på dashboardet) utløser en eksplisitt POST til backend som henter ny saldo fra regnskapssystemet og lagrer et nytt snapshot for paret. Bruk denne når snapshotstatusen er Mangler eller Utdatert og du trenger ferske tall uten å vente på den planlagte bakgrunnsjobben.
Selve arbeidsbenken per par bruker alltid live data — snapshotet er utelukkende for dashboardvisningen.
Automatisk avstemming (planlagt)¶
Knappen Automatisk avstemming ligger i Mer-menyen i topplinjen (sammen med Administrer par) og åpner planleggingssiden som deles med bankavstemmingen (/bank-reconciliation/schedule). Der kan en administrator slå på Automatisk konsernmatching: den planlagte kjøringen kjører da auto-match for alle aktive konsernpar i samme runde som bankimport og bankmatching, med nøyaktig samme matchelogikk som knappen Kjør auto-match (BankReconciliationService.cs, ProcessScheduledIntercompanyAutoMatchAsync → RunIntercompanyAutoMatchForLinkAsync).
Konsernmatchingen hoppes over for hele runden dersom noen av bankimportene i samme kjøring feilet (ShouldRunScheduledIntercompanyMatch) — matching mot et ufullstendig datagrunnlag ville gitt falske kryssmatcher. Kjører en manuell auto-match på et par samtidig, hopper den planlagte kjøringen over akkurat det paret (per-par-lås) i stedet for å feile.
Slik gjør du — periodeoversikt og avvikshåndtering¶
Forutsetning: paret må være initialisert. Er det ikke det, stopper trinn 5 og 6 med feilmeldingen «Konsernparet er ikke initialisert» — se Initialisering av et par. Nye par, og alle par som fantes før denne funksjonen kom, er uinitialiserte.
1. Åpne dashboardet¶
Naviger til Bankavstemming → Konsernavstemming. Dashboardet (/bank-reconciliation/intercompany) åpnes automatisk.
2. Velg periode¶
Sett Til dato øverst til perioden du vil se, f.eks. siste dag i måneden. Bruk avansert filter for å angi eksplisitt Fra-dato dersom du vil begrense visningen.
3. Les KPI-kortene¶
Kortene øverst oppsummerer situasjonen. Klikk på Par med avvik for å filtrere tabellen til kun par som trenger oppfølging.
4. Sjekk snapshotstatus¶
Hvis et par viser Mangler eller Utdatert i Snapshotstatus-kolonnen, klikk Oppdater grunnlag på raden. Vent til status endres til Oppdatert (siden kan trenge en manuell oppdatering etter at jobben er ferdig).
5. Åpne arbeidsbenken for ett par¶
Klikk Åpne avstemming på raden for det paret du vil jobbe med. Arbeidsbenken åpnes på /bank-reconciliation/intercompany/reconcile/:linkId med live data.
6. Matcher og bekreft¶
Følg trinnene i Matche transaksjoner:
- Sett Fra-dato og Til-dato og klikk Last transaksjoner.
- Kjør eventuelt Automatisk matching.
- Håndter resterende poster manuelt.
- Klikk Bekreft periode når statusbaren viser at sidene er i balanse.
Etter bekreftelse vil paret i dashboardet vise Bekreftet som periodestatus.
Administrer par¶
Administrasjon av par (opprette, redigere, aktivere/deaktivere, slette) er flyttet til /bank-reconciliation/intercompany/manage — klikk Administrer par i topplinjen på dashboardet.
Opprette eller redigere et par¶
Klikk Nytt par (eller Rediger på en eksisterende rad). Skjemaet åpnes i en skuff fra høyre kant (samme mønster som banksidens kontoskjema) med tre seksjoner: Grunnleggende info, Selskap A og Selskap B side ved side, og Matcheregler. Aktiv-bryteren øverst i skuffen styrer om paret er aktivt, og Avbryt/Lagre ligger fast nederst — hele skjemaet er synlig uten scrolling.
Grunnleggende info¶
| Felt | Beskrivelse | Standard / regler |
|---|---|---|
| Parnavn * | Fritt navn på paret | Påkrevd ved lagring |
| Matchretning | Motsatt fortegn (standard) eller Samme fortegn |
Standard: Opposite |
| Matchtype | Mellom selskaper (intercompany) eller Innen samme selskap (intracompany) |
Ved Intracompany settes selskap B automatisk lik selskap A og selskapsvalget for B låses |
| Beskrivelse | Fritekst | Valgfri |
Selskap A og Selskap B¶
For hver side velger du:
- Selskap — fra nedtrekk over konfigurerte regnskapsklienter
- Ledger-type —
GL(hovedbokskonto),Customer(kundereskontro) ellerSupplier(leverandørreskontro) - Hovedbokskonto (når Ledger-type = GL) — søk i nedtrekk
- Motpart (partyNo) (når Ledger-type = Customer/Supplier) — søk i nedtrekk
Matcheregler¶
Toleranse, valuta og tekstsamsvar er samlet i én seksjon:
| Felt | Beskrivelse | Standard |
|---|---|---|
| Beløpstoleranse | Tillatt differanse i beløp ved auto-match (min=0, step=0.01) |
Som lagret på paret |
| Dagstoleranse | Tillatt antall dagers forskjell mellom A- og B-bilag ved auto-match (min=0, step=1) |
Som lagret på paret |
| Forventet valuta (ISO-3, valgfri) | Hvis satt må begge sider matche koden | Tom |
| Krev lik valuta på begge sider | Avviser matcher der valuta A ≠ valuta B. Anbefales på | På |
| Bruk tekstsamsvar ved uklare treff | Velger post med høyest tekstlikhet på Txt/Txt2 som tiebreaker ved like beløp og dato |
Av |
Aktiv-bryteren øverst i skuffen styrer om paret er aktivt; nye par opprettes som aktive.
Handlinger per par (administrasjonslisten)¶
- Initialiser / Initialiser på nytt — ligger i Status-kolonnen (ikke i handlingsknappene): et aktivt, uinitialisert par viser en egen Initialiser-knapp, et initialisert par viser en klikkbar dato-badge «Avstemt til og med …». Samme mønster som initialisering i bankkontolisten.
- Åpne avstemming — åpner arbeidsbenken
- Rediger — åpner modalen forhåndsutfylt
- Deaktiver / Aktiver — soft-delete-flyt; spør om begrunnelse og bevarer matchhistorikk
- Slett — hard sletting; backend nekter sletting hvis paret har matchhistorikk
Arbeidsbenk for ett par¶
Klikk Åpne avstemming fra dashboard eller administrasjonsliste. Arbeidsbenken viser:
Topplinje¶
- Parnavn og beskrivelse
- Periodestatus-badge
- Fra-dato / Til-dato — to date-input-felter som styrer hvilken periode som lastes
- Last transaksjoner — laster posteringer for valgt periode
- Automatisk matching — åpner modal for auto-match med toleranser
- Knappegruppe Bekreft periode / Gjenåpne periode
- Nedtrekk Logger — åpner modal for avstemminger (matchgrupper) eller revisjonslogg
- Nedtrekk Rapporter — åpner rapport-modal eller eksporterer til PDF/Excel
Statusbar¶
Viser fire metrikker: Differanse, Selskap A (sum), Selskap B (sum) og Uavstemte (antall per side).
Side A og Side B¶
To kort vises ved siden av hverandre. Hvert kort har:
- Kontonummer/-navn (eller
ledgerKind-badge + partyNo/navn for reskontro), antall transaksjoner og gjeldende saldo - Søkefelt og statusfilter (
Alle/Uavstemte/Avstemte) - Sortering på Bilag, Dato, Beløp og Beskrivelse
- Avhukingsboks per rad for uavstemte transaksjoner; matchede rader er grønne
- Klikk på "lag"-badge åpner detaljlinjer i en utfellingsrad
- Footer viser Valgt: N og Sum: … for valgt utvalg
Listene viser 200 rader om gangen; finnes det flere, ligger en Vis flere-knapp nederst som viser neste 200. Antall, saldoer og «velg alle» dekker alltid hele utvalget — også rader som ikke er vist ennå. Bytte av filter eller søk starter på de første 200 igjen, mens sortering beholder det utvidede vinduet.
Match-handlingsfelt¶
Når du har valgt minst én rad på én side, vises et felt nederst med:
- Summer per side, antall valgte og Differanse
- Fritekstfelt Kommentar...
- Knappen Avstem — kobler de valgte radene som én matchgruppe. Paringsregel: like mange på begge sider, eller kun én post på én side
- Knappen Fjern utvalg
Opphev en matching¶
I "Avstemminger"-modalen klikker du papirkurv-ikonet på en matchgruppe. Du må bekrefte i modal og kan oppgi begrunnelse (maks 500 tegn). Bekreftelse fjerner matchingen og legger en oppføring i revisjonsloggen.
Hva som skjer avhenger av gruppens status:
- Bekreftet gruppe settes tilbake til ubekreftet og består. Revisjonsloggen får en
MatchReversed-oppføring som fortsatt peker på gruppen. - Ubekreftet eller gjenåpnet gruppe slettes. Revisjonsloggen får en
MatchDeleted-oppføring; siden gruppen er borte, står gruppekolonnen tom, og gruppens identitet ligger i oppføringens gammel-verdi. Oppføringen slettes aldri — oppbevaringskravet i bokføringsloven § 13.
Vanlige problemer¶
"Konsernparet er ikke initialisert. Sett en avstemt-til-og-med-dato og inngående saldo før du avstemmer."¶
Paret mangler ReconciledThroughDate, og da finnes det ingen dato å regne lastevinduet fra. Initialiser paret — se Initialisering av et par. Meldingen er forventet på alle par som ble opprettet før initialisering ble innført; det finnes ingen datamigrering som setter datoen for deg.
Et par så avstemt ut, men hadde gamle åpne poster¶
Dette var symptomet på feilen initialiseringen retter. Et par uten cutoff leste tidligere rullerende 30 dager, så eldre poster ble aldri lastet og aldri summert — paret så derfor ut til å balansere. Etter initialisering regnes saldoen som åpningssaldo pluss vinduets poster, og poster fra før cutoff registreres som åpningsposter i stedet for å forsvinne. Sett cutoff til en dato du faktisk har avstemt til, og registrer de kjente utestående postene.
Snapshotstatus viser "Mangler" eller "Utdatert"¶
Dashboardet viser saldo fra et persistert snapshot. Hvis ingen oppdatering er kjørt ennå, eller den er eldre enn forventet intervall, viser kolonnen Mangler eller Utdatert. Klikk Oppdater grunnlag på raden for å hente ny saldo umiddelbart. Bakgrunnsjobben oppdaterer alle par automatisk etter en fast plan.
Snapshotstatus viser "Feil"¶
Noe gikk galt sist snapshotet ble forsøkt oppdatert. Klikk Oppdater grunnlag for å prøve på nytt. Vedvarer feilen, kontakt support med parnavnet og tidspunktet.
"Parnavn er påkrevd" / "Velg begge selskaper" / "Selskapene må være ulike"¶
Validering ved lagring i skuffen for nytt/endre par. Fyll inn parnavn, velg selskap A (og B for Intercompany), og pass på at A og B er forskjellige når Matchtype er Intercompany.
"Par kan ikke slettes — det har eksisterende matchhistorikk. Deaktiver paret i stedet."¶
Hard sletting blokkeres av backend så snart paret har vært brukt til en matching. Bruk Deaktiver-knappen i stedet — den skjuler paret fra dashboardet og blokkerer nye matcher, men bevarer historikken.
"Ved manuell N:M-avstemming må du velge like mange på begge sider, eller kun én post på én side."¶
Match-knappen gir denne feilen hvis utvalget ikke følger paringsregelen. Velg enten 1:1, N:N (like mange) eller N:0 / 0:N (én post på én side mot ingen på den andre).
"Kunne ikke bekrefte periode"¶
Knappen Bekreft periode krever at en Til-dato er satt. Velg gyldig periode og forsøk igjen.
Et par vises ikke i dashboardet¶
Brukeren ser kun par der hen har tilgang til begge underliggende konti. Be administrator sjekke wv_BankAccountAccess for begge kontiene på paret.
Teknisk grunnlag¶
Dashboardet og dataflyten er forankret i følgende kildekode (for etterprøving):
- Dashboard-komponent og rute: intercompany-consolidated.component.ts, rutet via bank-reconciliation-routing.module.ts.
- Read-only oversikt, refresh og batch auto-match (endepunkter): BankReconciliationController.cs —
GetIntercompanyOverview,RefreshIntercompanyOverview,RunIntercompanyAutoMatchBatch. - Snapshot-beregning og auto-match-algoritme: BankReconciliationService.cs —
RunIntercompanyAutoMatchForLinkAsync,RefreshIntercompanyBalanceSnapshotAsync. - Saldo-snapshot (read model): Migration_20261016900001.cs — tabellen
wv_IntercompanyBalanceSnapshot. - Initialiseringslagring: Migration_20261016900111.cs — de seks kolonnene på
wv_IntercompanyLink, tabellenwv_IntercompanyOpeningItemog prosedyrenwv_VismaBusiness_SubledgerPartyBalance_Get. - Lastevindu og fail-closed: BankReconciliationService.cs —
GetIntercompanyLoadStartDateAsync, som kaster IntercompanyNotInitializedException.cs når cutoff mangler. - De to predikatene (saldo vs. arbeidsmengde): IntercompanySnapshotComputer.cs.
- Initialisering, validering og destruktiv re-initialisering: BankReconciliationRepository.cs —
InitializeIntercompanyLinkAsync,ValidateIntercompanyOpeningItems,IntercompanyOpeningItemCleanupSql. - Saldo per dato for reskontroside: IBankDataProvider.cs —
GetSubledgerPartyBalanceAsync, implementert for både Visma Business og Visma Business NXT.
Relaterte sider¶
- Initialisere bankkonto — samme initialiseringsmodell på banksiden
- Datamodell — bankavstemming — tabellene bak par, åpningsposter og saldo-snapshot
- Matche transaksjoner — ordinær bankavstemming per konto
- Manuell matching — manuelle teknikker som også brukes i intercompany-arbeidsbenken
- Importere bankutdrag — datagrunnlag når bankkonti er involvert
- Generere rapport — rapport for én konto
- Feilsøking — Bankavstemming
- Visma Business NXT — kilde for kryssreferanser når NXT brukes som regnskapssystem
- For administratorer


