Skip to Content

Felt Avhengig Av Selskap I Odoo: Slik Fungerer Det Og Når Du Bør Bruke Det

En praktisk guide til en av de mest nyttige, men misforståtte funksjonene i Odoo-datamodellen
6. mars 2026 etter
Felt Avhengig Av Selskap I Odoo: Slik Fungerer Det Og Når Du Bør Bruke Det
Dasolo
| No comments yet

Introduksjon


En av de mindre omtalte funksjonene i Odoo-datamodellen er selskapsavhengig felt. Det er en liten attributt som gjør en stor forskjell når du begynner å jobbe med multi-selskapskonfigurasjoner.


I de fleste Odoo-oppsett holder et felt på en post en enkelt verdi som hver bruker i databasen kan se. Men hva skjer når to selskaper deler det samme produktkataloget, og hvert selskap trenger sin egen interne referansekode? Eller når forskjellige selskaper trenger forskjellige standardkontoer på det samme produktet?


Det er akkurat dette problemet company_dependent attributtet løser. Enten du driver med Odoo-utvikling, Odoo-tilpasning, eller bare utforsker Odoo-rammeverket, vil forståelsen av denne felttypen gi deg en reell fordel i multi-selskapsprosjekter.

Hva er et selskapsavhengig felt i Odoo


Et firmaavhengig felt er et felt som lagrer en egen verdi per selskap, på samme post. Når en bruker som tilhører Selskap A leser feltet, ser de verdien til sitt selskap. Når en bruker fra Selskap B leser den samme posten, ser de en annen verdi.


Fra utsiden ser det ut og oppfører seg som et normalt felt. Brukere interagerer med det på samme måte i Odoo-grensesnittet. Magien skjer bak kulissene i Odoo ORM.


Hvordan det vises i grensesnittet

I Odoo UI ser et firmaavhengig felt identisk ut som et vanlig felt. Det er ingen synlig indikator som forteller en bruker at verdien de ser er selskaps-spesifikk. Dette er med vilje: oppførselen er gjennomsiktig for sluttbrukerne.


Fra et utviklerperspektiv er dette en av Odoo-felttypene som kan brukes på mange basetyper: Char, Boolean, Integer, Float, Many2one, og andre. Attributtet company_dependent=True er det som aktiverer denne oppførselen i Odoo ORM.


I Odoo Studio er noen firmaavhengige felt allerede eksponert på standardmodeller (som produktrelaterte felt for kontoer). Egne firmaavhengige felt kan også opprettes, selv om Studio-støtten for denne spesifikke attributten er begrenset i noen Odoo-versjoner.

Hvordan feltet fungerer


Under panseret fungerer firmaavhengige felt veldig annerledes enn vanlige felt. Å forstå mekanismen hjelper med å unngå overraskelser når man bygger eller feilsøker Odoo-tilpasninger.


Lagring i ir.property

I Odoo 16 og tidligere lagres verdiene for firmaavhengige felt ikke i modellens egen databasetabell. I stedet lagres de i en egen systemtabell kalt ir.property.

Hver post i ir.property kobler:

  • En spesifikk post (f.eks. produkt med ID 42)
  • Et spesifikt felt (f.eks. property_account_income_id)
  • Et spesifikt selskap
  • Den faktiske verdien for den kombinasjonen

Dette er grunnen til at verdiene ser gjennomsiktige ut for brukerne: ORM henter og skriver til ir.property automatisk basert på den nåværende selskapskonteksten.


Endringer i Odoo 17+

Fra og med Odoo 17 ble lagringsmekanismen omstrukturert. Selskapsavhengige felt lagres nå direkte i modellens tabell ved hjelp av en jsonb-kolonne, med selskapsverdier lagret som et JSON-dictionary. Dette forbedrer ytelsen betydelig og forenkler forespørslene.


Grensesnittet og API-et for utviklere forblir det samme, men forespørslene på selskapsavhengige felt er nå mye raskere i stor skala.


Standardverdier

Selskapsavhengige felt støtter selskaps-spesifikke standardverdier. Når ingen verdi har blitt eksplisitt satt for et gitt selskap, faller feltet tilbake til standardverdien definert på selve feltet. Denne standarden kan også settes per selskap gjennom ir.property-modellen (Odoo 16 og tidligere) eller direkte på modellen (Odoo 17+).


Interaksjon med ORM

I odoo orm-konteksten respekterer tilgang til et selskapsavhengig felt alltid det nåværende selskapet i miljøet (self.env.company). Dette betyr:

  • Å lese feltet returnerer verdien for det aktive selskapet
  • Å skrive til feltet oppdaterer kun verdien for det aktive selskapet
  • Bytte selskapskontekst (record.with_company(company)) lar deg lese eller skrive verdier for et spesifikt selskap

Forretningsbrukstilfeller


Det selskapsavhengige feltet er ikke bare en teknisk kuriositet. Det løser reelle, hverdagslige problemer i multi-selskap Odoo-oppsett. Her er fem vanlige scenarier hvor det virkelig fortjener sin plass.


1. Regnskap: Per-selskap inntekts- og utgiftskontoer

Dette er det vanligste eksemplet i Odoo rett ut av boksen. Feltene property_account_income_id og property_account_expense_id på produkter er selskapsavhengige.


I praksis: Selskap A selger det samme produktet som selskap B, men hvert selskap har en annen kontoplan. I stedet for å duplisere produktposten, konfigurerer hvert selskap sine egne regnskapslinjer. Produktet er delt; regnskapslogikken er ikke.


2. Salg og CRM: Per-selskap prislister

I en gruppe som driver flere salgsenheter, kan hvert selskap bruke forskjellige prissettingsstrategier. Med et selskapsavhengig prislistefelt kan en delt kundepost bære forskjellige standardprislister avhengig av hvilket selskap som behandler salget.


Dette holder CRM-dataene sentraliserte samtidig som hvert selskap kan anvende sine egne kommersielle regler.


3. Lager: Per-selskap lagerverdimetode

Noen grupper driver lager på tvers av flere juridiske enheter med forskjellige lokale forskrifter. Et produkt kan kreve FIFO-kostnad i ett land og gjennomsnittlig kostnad i et annet. Å bruke selskapsavhengige felt på produktet eller kategorien unngår duplisering av hele produktkatalogen.


4. Produksjon: Per-selskap standardleverandør

Når et delt produkt kjøpes fra forskjellige leverandører avhengig av selskapet, kan et selskapsavhengig many2one-felt som peker til res.partner holde den foretrukne leverandøren per enhet. Hvert selskap ser sin egen foretrukne leverandør uten noen konflikt.


5. Tilpassede felt for regulatoriske data

Grupper som opererer på tvers av flere land må ofte lagre lands spesifikke samsvarsreferanser på delte poster. For eksempel kan et produkt ha behov for en annen HS-kode eller skatteklassifisering per jurisdiksjon. Et selskapsavhengig Char-felt er en ren, lav-overhead måte å håndtere dette på uten å lage modellvarianter.

Opprette eller tilpasse feltet


Det er to hovedmåter å opprette selskapsavhengige felt i Odoo: ved å bruke Odoo Studio eller ved å skrive Python-kode direkte.


Bruke Odoo Studio

Odoo Studio lar deg opprette felt uten noe kode. Imidlertid eksponerer Studio ikke en dedikert bryter for company_dependent i alle versjoner. I Odoo 16 og 17 er alternativet tilgjengelig på noen felttyper når du oppretter nye felt på standardmodeller.


Hvis du trenger full kontroll over denne attributten, er teknisk utvikling den mer pålitelige tilnærmingen. Studio er et godt utgangspunkt for enklere tilfeller, men det har begrensninger når det gjelder avanserte Odoo-tilpassingsscenarier.


Teknisk tilnærming: Python-felt

I et tilpasset Odoo-modul er det enkelt å erklære et selskapsavhengig felt. Dette er den standardmønsteret som brukes i Odoo Python-feltutvikling:

from odoo import fields, models

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    x_internal_ref = fields.Char(
        string='Intern referanse (per selskap)',
        company_dependent=True,
    )

    x_preferred_carrier_id = fields.Many2one(
        comodel_name='res.partner',
        string='Foretrukket transportør',
        company_dependent=True,
    )

Å legge til company_dependent=True til enhver felt-erklæring er alt som trengs. ORM håndterer resten automatisk.


Innstilling av standardverdier per selskap

I Odoo 16 og tidligere kan du sette en selskapsnivå standard via ir.property-modellen. Dette er nyttig når du ønsker en fornuftig standard for alle poster i et selskap, uten å sette det post for post:

self.env['ir.property']._set_default(
    'x_internal_ref',
    'product.template',
    'DEFAULT-VALUE',
    company_id=self.env.company.id,
)

I Odoo 17+ lagres standardverdien direkte på modellposten og er også tilgjengelig via feltdefinisjonen.


Odoo Studio-felt og begrensninger

Når du arbeider med Odoo Studio-felt, husk at x_-prefikset er påkrevd for tilpassede felt. Den selskapsavhengige oppførselen er kanskje ikke synlig i Studio UI, men den kan fortsatt konfigureres fra den tekniske menyen under Innstillinger hvis utviklermodus er aktiv.

Beste praksis


Å jobbe med selskapsavhengige felt er enkelt når du kjenner mønstrene. Her er praksisene som vil spare deg for tid og forhindre hodepine.


1. Bruk det kun når verdiene faktisk varierer per selskap

Selskapsavhengige felt legger til kompleksitet. Hvis verdien er den samme på tvers av alle selskaper, bruk et vanlig felt. Reserver company_dependent=True for felt der forskjellige selskaper faktisk trenger forskjellige verdier på delte poster.


2. Test alltid i flerselskapskontekst

Når du bygger eller tester funksjoner som involverer selskapsavhengige felt, test alltid med minst to aktive selskaper. Det er lett å gå glipp av problemer i en enkelt selskapsoppsett som vil dukke opp umiddelbart i produksjon.


3. Bruk with_company() for tverrselskapsoperasjoner

Hvis koden din trenger å lese eller skrive selskapsavhengige feltverdier for et selskap annet enn det nåværende, bruk record.with_company(target_company). Unngå å bytte miljøselskapet manuelt uten å gjenopprette det.


4. Vær forsiktig med eksport og import

Når du eksporterer poster som inneholder selskapsavhengige felt, reflekterer de eksporterte verdiene selskapet til brukeren som utfører eksporten. Å importere den samme filen under en annen selskapskontekst vil sette verdiene for det selskapet. Dette er ofte den riktige oppførselen, men vær eksplisitt om det i migrasjons- og dataimportarbeidsflyter.


5. Dokumenter Hvilke Felt Som Er Selskapsavhengige

Sluttbrukere vet sjelden hvilke felt som er selskapsavhengige. En kort merknad i din interne Odoo-dokumentasjon eller onboarding-materiale går langt. Det forhindrer forvirring når en bruker bytter selskap og ser forskjellige verdier på den samme posten.


6. Foretrekk Many2one Fremfor Char for Strukturerte Data

Når verdien per selskap er en referanse til en annen post (konto, prisliste, partner), bruk et Many2one selskapsavhengig felt i stedet for å lagre et navn som tekst. Dette holder datamodellen ren og gjør rapportering mer pålitelig.


Vanlige fallgruver


Selv erfarne Odoo-utviklere støter på problemer med selskapsavhengige felt. Å vite hva man skal se etter vil forhindre bortkastet feilsøkingstid.


Felle 1: Glemme Selskapskonteksten i Automatiserte Handlinger

Planlagte handlinger og serverhandlinger kjører ofte i en kontekst der selskapet er det første selskapet i databasen, ikke nødvendigvis det du forventer. Hvis din automatiserte handling leser eller skriver et selskapsavhengig felt, verifiser selskapskonteksten eksplisitt. Bruk with_company() for å være sikker.


Felle 2: Anta at Feltet Oppfører Seg Som Et Beregnet Felt

Selskapsavhengige felt er ikke beregnede felt. De har ikke en compute-metode. Variasjonen per selskap kommer fra lagring, ikke beregning. Å prøve å legge til compute= sammen med company_dependent=True vil ikke fungere som forventet og kan forårsake feil i Odoo-rammeverket.


Felle 3: Søke På Tvers Av Selskaper

Standard ORM-søk på selskapsavhengige felt returnerer kun resultater som samsvarer med den nåværende selskapskonteksten. Hvis du trenger å søke på tvers av alle selskaper, må du spørre ir.property direkte (Odoo 16 og tidligere) eller håndtere jsonb-kolonnen nøye (Odoo 17+). Dette er en vanlig kilde til forvirring i rapportering og datauttrekksarbeid.


Felle 4: Ikke sette standardverdier for alle selskaper

Når du introduserer et selskapsavhengig felt i et aktivt system, vil eksisterende poster returnere False eller None for ethvert selskap som ikke eksplisitt har satt en verdi. Hvis forretningslogikken din forventer en standard, sett den proaktivt for alle relevante selskaper ved hjelp av et datamigreringsskript.


Felle 5: Forveksle det med tilgangsrettigheter

Selskapsavhengige felt kontrollerer hvilken verdi som vises, ikke om brukeren kan se feltet i det hele tatt. Hvis du trenger å skjule et felt helt fra visse selskaper eller brukere, er det en oppgave for registreringsregler eller tilgangsrettigheter på felt-nivå, ikke company_dependent.

Konklusjon


Det selskapsavhengige feltet er en av de funksjonene i Odoo som føles usynlig inntil du trenger det, og deretter blir uunnværlig. Det er det rette verktøyet for enhver situasjon der den samme posten må bære forskjellige verdier på tvers av selskaper: regnskapskonfigurasjoner, prisregler, regulatoriske referanser, eller enhver forretningsspesifikk attributt som varierer etter juridisk enhet.


Å forstå hvordan det fungerer på ORM-nivå, hvilken versjon av Odoo som endret lagringsmodellen, og hvilke feller du bør unngå, vil spare deg for betydelig tid på prosjekter med flere selskaper. Enten du møter det i en standard Odoo utviklerguide eller oppdager det mens du feilsøker et aktivt system, er det å kjenne denne felttypen et kjennetegn på ekte Odoo-ekspertise.


Hvis du bygger på Odoo-rammeverket og trenger å håndtere selskapsdata på en ryddig måte, er company_dependent=True svaret du har lett etter.

Trenger du hjelp med Odoo-implementeringen din?


Hos Dasolo hjelper vi selskaper med å implementere, tilpasse og optimalisere Odoo på tvers av alle skalaer og konfigurasjoner, inkludert komplekse oppsett med flere selskaper. Enten du trenger en skreddersydd datamodell, en tilpasset feltstrategi, eller en full Odoo-utrulling, har teamet vårt den tekniske og funksjonelle dybden til å få det riktig.


Hvis du har spørsmål om selskapsavhengige felt eller noen annen aspekt av din Odoo-implementering, er vi glade for å hjelpe. Ta kontakt med oss og la oss snakke om hva du bygger.

Felt Avhengig Av Selskap I Odoo: Slik Fungerer Det Og Når Du Bør Bruke Det
Dasolo 6. mars 2026
Share this post
Logg inn to leave a comment