Skip to Content

Virksomhedsafhængigt Felt i Odoo: Funktioner og Anvendelse

En praktisk guide til en af de mest nyttige, men misforståede funktioner i Odoo-datamodellen
6. marts 2026 af
Virksomhedsafhængigt Felt i Odoo: Funktioner og Anvendelse
Dasolo
| Ingen kommentarer endnu

Introduktion


En af de mindre omtalte funktioner i Odoo-datamodellen er det selskabsafhængige felt. Det er en lille attribut, der gør en stor forskel, når du begynder at arbejde med multi-selskabs konfigurationer.


I de fleste Odoo-opsætninger holder et felt på en post en enkelt værdi, som hver bruger i databasen kan se. Men hvad sker der, når to virksomheder deler det samme produktkatalog, og hver virksomhed har brug for sin egen interne referencekode? Eller når forskellige virksomheder har brug for forskellige standardkonti på det samme produkt?


Det er præcis det problem, som company_dependent attributten løser. Uanset om du laver Odoo-udvikling, Odoo-tilpasning eller blot udforsker Odoo-rammen, vil forståelsen af denne felttype give dig en reel fordel i multi-selskabsprojekter.

Hvad er et selskabsafhængigt felt i Odoo


Et firmaafhængigt felt er et felt, der gemmer en separat værdi pr. firma på den samme post. Når en bruger, der tilhører Firma A, læser feltet, ser de deres firmas værdi. Når en bruger fra Firma B læser den samme post, ser de en anden værdi.


Udefra ser det ud og opfører sig som et normalt felt. Brugere interagerer med det på samme måde i Odoo-grænsefladen. Magien sker bag kulisserne i Odoo ORM.


Hvordan det vises i grænsefladen

I Odoo UI ser et firmaafhængigt felt identisk ud med et almindeligt felt. Der er ingen synlig indikator, der fortæller en bruger, at den værdi, de ser, er firma-specifik. Dette er intentionelt: adfærden er gennemsigtig for slutbrugerne.


Fra en udviklers perspektiv er dette en af de Odoo-felttyper, der kan anvendes på mange basistyper: Char, Boolean, Integer, Float, Many2one og andre. Attributten company_dependent=True er det, der aktiverer denne adfærd i Odoo ORM.


I Odoo Studio er nogle firmaafhængige felter allerede eksponeret på standardmodeller (som produktrelaterede felter for konti). Der kan også oprettes brugerdefinerede firmaafhængige felter, selvom Studio-support til denne specifikke attribut er begrænset i nogle Odoo-versioner.

Hvordan feltet fungerer


Under overfladen fungerer firmaafhængige felter meget anderledes end almindelige felter. At forstå mekanismen hjælper med at undgå overraskelser, når man bygger eller fejlfinder Odoo-tilpasninger.


Lagring i ir.property

I Odoo 16 og tidligere gemmes værdierne for firmaafhængige felter ikke i modellens egen databasedatabase. I stedet gemmes de i en separat systemtabel kaldet ir.property.

Hver post i ir.property linker:

  • En specifik post (f.eks. produkt med ID 42)
  • Et specifikt felt (f.eks. property_account_income_id)
  • En specifik virksomhed
  • Den faktiske værdi for den kombination

Dette er grunden til, at værdierne ser gennemsigtige ud for brugerne: ORM'en henter og skriver automatisk til ir.property baseret på den aktuelle virksomhedskontekst.


Ændringer i Odoo 17+

Fra og med Odoo 17 blev lagringsmekanismen omstruktureret. Virksomhedsafhængige felter gemmes nu direkte i modellens tabel ved hjælp af en jsonb kolonne, hvor virksomheds værdier gemmes som et JSON-dictionary. Dette forbedrer ydeevnen betydeligt og forenkler forespørgsler.


Grænsefladen og API'en for udviklere forbliver den samme, men forespørgsler på virksomhedsafhængige felter er nu meget hurtigere i stor skala.


Standardværdier

Virksomhedsafhængige felter understøtter virksomhedsspecifikke standardværdier. Når der ikke er blevet eksplicit angivet en værdi for en given virksomhed, falder feltet tilbage til den standard, der er defineret på selve feltet. Denne standard kan også indstilles pr. virksomhed gennem ir.property modellen (Odoo 16 og tidligere) eller direkte på modellen (Odoo 17+).


Interaktion med ORM'en

I odoo orm-konteksten respekterer adgangen til et virksomhedsafhængigt felt altid den aktuelle virksomhed i miljøet (self.env.company). Dette betyder:

  • At læse feltet returnerer værdien for den aktive virksomhed
  • At skrive til feltet opdaterer kun værdien for den aktive virksomhed
  • Skift virksomhedskontekst (record.with_company(company)) lader dig læse eller skrive værdier for en specifik virksomhed

Forretningsbrugssager


Det virksomhedsafhængige felt er ikke bare en teknisk nysgerrighed. Det løser reelle, dagligdags problemer i multi-virksomheds Odoo opsætninger. Her er fem almindelige scenarier, hvor det virkelig fortjener sin plads.


1. Regnskab: Virksomhedsspecifikke indtægts- og udgiftskonti

Dette er det mest almindelige eksempel i Odoo lige ud af boksen. Felterne property_account_income_id og property_account_expense_id på produkter er virksomhedsafhængige.


I praksis: Virksomhed A sælger det samme produkt som virksomhed B, men hver virksomhed har et forskelligt kontoplan. I stedet for at duplikere produktposten konfigurerer hver virksomhed blot sine egne regnskabslinjer. Produktet deles; den regnskabsmæssige logik gør ikke.


2. Salg og CRM: Virksomhedsspecifikke prislist

I en gruppe, der driver flere salgsenheder, kan hver virksomhed bruge forskellige prissætningsstrategier. Med et virksomhedsafhængigt prislistfelt kan en delt kundepost bære forskellige standardprislist afhængigt af, hvilken virksomhed der behandler salget.


Dette holder CRM-dataene centraliserede, mens hver virksomhed kan anvende sine egne kommercielle regler.


3. Lager: Virksomhedsspecifik lager-vurderingsmetode

Nogle grupper driver lagre på tværs af flere juridiske enheder med forskellige lokale regler. Et produkt kan kræve FIFO-omkostninger i ét land og gennemsnitsomkostninger i et andet. Ved at bruge virksomhedsafhængige felter på produktet eller kategorien undgår man at duplikere hele produktkataloget.


4. Produktion: Virksomhedsspecifik standardleverandør

Når et delt produkt købes fra forskellige leverandører afhængigt af virksomheden, kan et virksomhedsafhængigt many2one-felt, der peger på res.partner, indeholde den foretrukne leverandør pr. enhed. Hver virksomhed ser sin egen foretrukne leverandør uden nogen konflikt.


5. Tilpassede felter til reguleringsdata

Grupper, der opererer på tværs af flere lande, har ofte brug for at gemme landespecifikke overholdelsesreferencer på delte poster. For eksempel kan et produkt have brug for en anden HS-kode eller skatteklassifikation pr. jurisdiktion. Et virksomhedsafhængigt Char-felt er en ren, lav-overhead måde at håndtere dette på uden at oprette modelvarianter.

Oprettelse eller tilpasning af feltet


Der er to hovedmetoder til at oprette virksomhedsafhængige felter i Odoo: ved at bruge Odoo Studio eller ved at skrive Python-kode direkte.


Brug af Odoo Studio

Odoo Studio giver dig mulighed for at oprette felter uden nogen kode. Dog eksponerer Studio ikke en dedikeret vælger for company_dependent i alle versioner. I Odoo 16 og 17 er muligheden tilgængelig for nogle felttyper, når der oprettes nye felter på standardmodeller.


Hvis du har brug for fuld kontrol over denne attribut, er teknisk udvikling den mere pålidelige tilgang. Studio er et godt udgangspunkt for enklere tilfælde, men det har begrænsninger, når det kommer til avancerede Odoo-tilpasningsscenarier.


Teknisk tilgang: Python-felter

I et tilpasset Odoo-modul er det ligetil at erklære et virksomhedsafhængigt felt. Dette er den standardmønster, der bruges i Odoo Python-felter udvikling:

from odoo import fields, models

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

    x_internal_ref = fields.Char(
        string='Intern reference (pr. virksomhed)',
        company_dependent=True,
    )

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

At tilføje company_dependent=True til enhver feltdeklaration er alt, hvad der skal til. ORM'en håndterer resten automatisk.


Indstilling af standardværdier pr. virksomhed

I Odoo 16 og tidligere kan du indstille en virksomhedsniveau standard via ir.property-modellen. Dette er nyttigt, når du ønsker en fornuftig standard for alle poster i en virksomhed, uden at skulle indstille 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+ gemmes standardværdien gemt direkte på modelposten og er også tilgængelig via feltdefinitionen.


Odoo Studio Felter og Begrænsninger

Når du arbejder med odoo studio felter, skal du huske, at x_ præfikset er påkrævet for brugerdefinerede felter. Den virksomhedafhængige adfærd er måske ikke synlig i Studio UI, men den kan stadig konfigureres fra den tekniske menu under Indstillinger, hvis udviklermode er aktiv.

Bedste praksis


At arbejde med virksomhedafhængige felter er ligetil, når du kender mønstrene. Her er de praksisser, der vil spare dig tid og forhindre hovedpine.


1. Brug det kun, når værdierne virkelig adskiller sig pr. virksomhed

Virksomhedafhængige felter tilføjer kompleksitet. Hvis værdien er den samme på tværs af alle virksomheder, skal du bruge et almindeligt felt. Forbehold company_dependent=True til felter, hvor forskellige virksomheder virkelig har brug for forskellige værdier på delte poster.


2. Test altid i multi-virksomhedssammenhæng

Når du bygger eller tester funktioner, der involverer virksomhedafhængige felter, skal du altid teste med mindst to aktive virksomheder. Det er let at overse problemer i en enkelt virksomhed opsætning, som straks vil dukke op i produktionen.


3. Brug with_company() til tvær-virksomhedsoperationer

Hvis din kode skal læse eller skrive virksomhedafhængige feltværdier for en virksomhed, der ikke er den aktuelle, skal du bruge record.with_company(target_company). Undgå manuelt at skifte miljøvirksomhed uden at gendanne den.


4. Vær forsigtig med eksport og import

Når du eksporterer poster, der indeholder virksomhedafhængige felter, afspejler de eksporterede værdier den virksomhed, som brugeren, der udfører eksporten, tilhører. Importering af den samme fil under en anden virksomheds kontekst vil indstille værdierne for den virksomhed. Dette er ofte den korrekte adfærd, men vær eksplicit omkring det i migrations- og dataimportarbejdsgange.


5. Dokumenter Hvilke Felter Der Er Virksomhedafhængige

Slutbrugere ved sjældent, hvilke felter der er virksomhedafhængige. En kort note i din interne Odoo-dokumentation eller onboarding-materialer gør en stor forskel. Det forhindrer forvirring, når en bruger skifter virksomhed og ser forskellige værdier på den samme post.


6. Foretræk Many2one Fremfor Char til Strukturerede Data

Når værdien pr. virksomhed er en reference til en anden post (konto, prisliste, partner), skal du bruge et Many2one virksomhedafhængigt felt i stedet for at gemme et navn som tekst. Dette holder datamodellen ren og gør rapportering mere pålidelig.


Almindelige faldgruber


Selv erfarne Odoo-udviklere støder på problemer med virksomhedafhængige felter. At vide, hvad man skal være opmærksom på, vil forhindre spildt debugging-tid.


Fælde 1: Glemme Virksomhedens Kontekst i Automatiserede Handlinger

Planlagte handlinger og serverhandlinger kører ofte i en kontekst, hvor virksomheden er den første virksomhed i databasen, ikke nødvendigvis den, du forventer. Hvis din automatiserede handling læser eller skriver et virksomhedafhængigt felt, skal du eksplicit verificere virksomhedens kontekst. Brug with_company() for at være sikker.


Fælde 2: Antage At Feltet Opfører Sig Som Et Beregnet Felt

Virksomhedafhængige felter er ikke beregnede felter. De har ikke en compute-metode. Variationerne pr. virksomhed kommer fra opbevaring, ikke beregning. At forsøge at tilføje compute= sammen med company_dependent=True vil ikke fungere som forventet og kan forårsage fejl i Odoo-rammen.


Fælde 3: Søge På Tværs Af Virksomheder

Standard ORM-søgninger på virksomhedafhængige felter returnerer kun resultater, der matcher den aktuelle virksomhedskontekst. Hvis du har brug for at søge på tværs af alle virksomheder, skal du forespørge ir.property direkte (Odoo 16 og tidligere) eller håndtere jsonb-kolonnen omhyggeligt (Odoo 17+). Dette er en almindelig kilde til forvirring i rapportering og dataudtrækningsarbejde.


Fælde 4: Ikke at sætte standarder for alle virksomheder

Når du introducerer et virksomhedsafhængigt felt i et live system, vil eksisterende poster returnere False eller None for enhver virksomhed, der ikke eksplicit har sat en værdi. Hvis din forretningslogik forventer en standard, så sæt den proaktivt for alle relevante virksomheder ved hjælp af et datamigrationsscript.


Fælde 5: Forveksle det med adgangsrettigheder

Virksomhedsafhængige felter kontrollerer, hvilken værdi der vises, ikke om brugeren overhovedet kan se feltet. Hvis du har brug for at skjule et felt helt for visse virksomheder eller brugere, er det en opgave for registreringsregler eller adgangsrettigheder på felt-niveau, ikke company_dependent.

Konklusion


Det virksomhedsafhængige felt er en af de funktioner i Odoo, der føles usynlig, indtil du har brug for det, og så bliver det uundgåeligt. Det er det rigtige værktøj til enhver situation, hvor den samme post skal bære forskellige værdier på tværs af virksomheder: regnskabskonfigurationer, prisregler, reguleringsreferencer eller enhver forretningsspecifik attribut, der varierer efter juridisk enhed.


At forstå, hvordan det fungerer på ORM-niveau, hvilken version af Odoo der ændrede lagermodellen, og hvilke faldgruber man skal undgå, vil spare dig for betydelig tid på multi-virksomhedsprojekter. Uanset om du støder på det i en standard Odoo udviklerguide eller opdager det, mens du fejlfinder et live system, er det at kende denne felttype et tegn på ægte Odoo-ekspertise.


Hvis du bygger på Odoo-rammen og har brug for at håndtere per-virksomhedsdata på en ren måde, er company_dependent=True svaret, du har ledt efter.

Har du brug for hjælp med din Odoo-implementering?


Hos Dasolo hjælper vi virksomheder med at implementere, tilpasse og optimere Odoo på tværs af alle skalaer og konfigurationer, herunder komplekse multi-virksomhedsopsætninger. Uanset om du har brug for en skræddersyet datamodel, en tilpasset feltstrategi eller en fuld Odoo-udrulning, har vores team den tekniske og funktionelle dybde til at få det rigtigt.


Hvis du har spørgsmål om virksomhedsafhængige felter eller andre aspekter af din Odoo-implementering, er vi glade for at hjælpe. Kontakt os og lad os tale om, hvad du bygger.

Virksomhedsafhængigt Felt i Odoo: Funktioner og Anvendelse
Dasolo 6. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar