Skip to Content

Rhifau dogfen Odoo 19 o ragddodiad, blwyddyn a chownter – modiwl document_number_prefix_year a'r trap wrth greu ar yr un pryd

3 Tachwedd 2026 | Odoo 19 Community | Datblygiad mewnol
3 Tachwedd 2026 by
Rhifau dogfen Odoo 19 o ragddodiad, blwyddyn a chownter – modiwl document_number_prefix_year a'r trap wrth greu ar yr un pryd

Modiwl Odoo 19 document_number_prefix_year: rhifau dogfen o ragddodiad, blwyddyn a chownter

Mae “AN26000001” yn dweud mwy na “S00001”: Dyfynbris ydyw, mae'n dod o 2026, a dyma'r cyntaf. Mae llawer o gwmnïau, yn enwedig y rhai sy'n symud o hen system i Odoo, eisiau cadw eu rhifau dogfen yn union fel hyn. Mae Odoo ei hun yn rhifo dyfynbrisiau, archebion a nodiadau dosbarthu gyda'i ddilyniannau ei hun (S00001, WH/OUT/00001, P00001) ac anfonebau gyda rhagddodiad y dyddiadur a'r flwyddyn (INV/2026/00001).

Ar gyfer hynny rydym wedi ysgrifennu'r modiwl Document Numbering by Prefix and Year (document_number_prefix_year) ar gyfer Odoo 19. Mae ar gael fel meddalwedd rydd o dan y drwydded LGPL-3 ar GitHub:

github.com/Alex0176/odoo-document-number-prefix-year

Gwerthusiad gonest ymlaen llaw: Nid ydym yn defnyddio'r modiwl yn Biricon IT Services. Rydym yn ei gyhoeddi oherwydd ei fod yn barod, wedi'i ddogfennu ac â phrofion, ac y gall arbed gwaith i eraill. Dylai pwy bynnag sy'n ei ddefnyddio ddarllen yr adran Cyfyngiadau a Profion yn ofalus.

Y cynllun rhifo

Mae pob rhif yn cynnwys tair rhan: rhagddodiad ar gyfer pob math o ddogfen, y flwyddyn a chownter gyda nifer sefydlog o ddigidau. Rydych chi'n gosod y rhagddodiad, fformat y flwyddyn (26 neu 2026) a nifer y digidau ar gyfer pob cwmni o dan Gosodiadau → Rhifo dogfennau.

Strwythur rhif y ddogfen AN26000001 o ragddodiad, blwyddyn a chownter, gyda thabl o'r mathau o ddogfennau

Ymdrinnir â dyfynbrisiau, archebion cwsmeriaid, anfonebau cwsmeriaid a nodiadau credyd, nodiadau dosbarthu, derbyniadau nwyddau ac archebion prynu. Dim ond enghreifftiau yw'r rhagddodiaid yn y ddelwedd: AN, AU, RE, GU, LI, WE, BE. Pwy bynnag sy'n gadael rhagddodiad yn wag, mae'n cadw rhifo safonol Odoo ar gyfer y math hwnnw o ddogfen. Felly nid yw'r modiwl yn gwneud dim nes i chi ei osod.

Sut mae'r rhifau'n ymddwyn

  • Newydd bob blwyddyn. Mae'r cownter yn dechrau eto o 1 gyda throad y flwyddyn.
  • Parhau ar ôl rhifau a fewnforiwyd. Mae'r modiwl yn chwilio am y rhif uchaf presennol o'r un rhagddodiad a blwyddyn, ni waeth pa mor hir ydyw. Os yw AN26119 o'r hen system yn y gronfa ddata, y dyfynbris nesaf fydd AN26000120. Dyma pam mae'r modiwl yn addas ar gyfer newid system: Mae hen ddogfennau'n cael eu mewnforio gyda'u rhifau gwreiddiol, ac mae dogfennau newydd yn parhau'n ddi-dor.
  • Rhif archeb newydd wrth gadarnhau. Os dymunir, mae dyfynbris wedi'i gadarnhau yn cael rhif o gyfres yr archebion. Mae rhif y dyfynbris yn aros yn y maes Rhif dyfynbris ar yr archeb ac yn weladwy yn y ffurflen, y rhestr a'r chwiliad.
  • Anfonebau wrth gofnodi. Mae anfonebau cwsmeriaid a nodiadau credyd yn cael eu rhif dim ond wrth gofnodi, nid wrth greu. Felly nid yw drafftiau a ddilëir yn gadael bwlch. Daw'r flwyddyn o'r dyddiad anfoneb: Mae anfoneb dyddiedig 30.12.2025 a gofnodir ar 2.1.2026 yn cael yr enw RE25….
  • Mae popeth arall yn aros. Mae anfonebau cyflenwyr, taliadau, cofnodion cyfrifyddu ac archebion gweithgynhyrchu yn cadw dilyniannau safonol Odoo. Ni chaiff enwau presennol byth eu hailysgrifennu, hyd yn oed os byddwch yn diffodd y modiwl eto.

Y rhan dyner: Dau ddefnyddiwr ar yr un pryd

Mae rhifo personol yn edrych yn syml: dod o hyd i'r rhif uchaf, ychwanegu un. Nid yw'n syml cyn gynted ag y bydd dau ddefnyddiwr yn creu dyfynbris ar yr un eiliad. Mae'r ddau yn darllen “rhif uchaf = 0”, ac mae'r ddau yn rhoi AN26000001. Mae gan Odoo ddilyniannau cronfa ddata ar gyfer ei ddilyniannau ei hun. Nid oes hynny ar gael gyda rhif a adeiladwyd â llaw, ac ar gyfer dyfynbrisiau ac archebion prynu nid oes gan Odoo ychwaith unrhyw wiriad unigrywiaeth ar yr enw: caiff dwy ddogfen sydd â'r un rhif eu cadw'n syml.

Y diogelwch amlwg yw clo. Mae'r modiwl yn cymryd clo cronfa ddata (PostgreSQL Advisory Lock) ar gyfer pob cwmni, rhagddodiad a blwyddyn, sy'n para tan ddiwedd y trafodyn. Mae'r ail ddefnyddiwr yn aros nes bod y cyntaf wedi gorffen. Ond nid yw hynny'n ddigon, a daethom o hyd i hynny trwy arbrawf ar gopi o'r gronfa ddata gynhyrchu:

Dilyniant amser dau ddefnyddiwr: heb ail ddarlleniad mae'r ddau yn rhoi'r un rhif; gydag ail ddarlleniad mae'r ail yn cael y rhif nesaf

Mae Odoo yn gweithio gyda lefel ynysu REPEATABLE READ. Caiff cyflwr y gronfa ddata a welir gan drafodyn ei rewi ar ei ymholiad cyntaf. Mae gan ddefnyddiwr B y cyflwr hwn eisoes cyn i A orffen. Os bydd B wedyn yn aros am y clo ac yn ei gael, mae'n darllen “rhif uchaf = 0” gyda'i hen gyflwr ac yn rhoi'r rhif am yr eildro. Mae'r clo wedi rheoli'r drefn, ond heb ddiweddaru'r wybodaeth.

Yr ateb yw ail ddarlleniad trwy gysylltiad cronfa ddata ar wahân, byrhoedlog, sy'n gweld pob rhes sydd eisoes wedi'i chadarnhau. Mae'r mwyaf o'r ddau werth yn ennill. Mae'r darlleniad cyntaf yn dal yn angenrheidiol, oherwydd dim ond ef sy'n gwybod am rifau y mae'r un trafodyn eisoes wedi'u rhoi ond heb eu cadarnhau eto, er enghraifft wrth fewnforio sawl dogfen ar un tro.

Rydym wedi profi hyn gyda dau drafodyn lle'r oedd yr ail, yn ôl pob prawf, eisoes wedi cymryd ei gyflwr cyn commit y cyntaf ac yna wedi aros am y clo. Heb yr ail ddarlleniad cafodd y ddau archeb yr un rhif; gydag ef cawsant y rhifau 1 a 2.

Pwysig ar gyfer y dehongliad: Prawf â llaw yw'r arbrawf hwn. Nid yw'n rhan o'r profion awtomatig, oherwydd mae angen dau gysylltiad cronfa ddata go iawn ar ei gyfer, nad yw amgylchedd prawf Odoo (un trafodyn yn unig fesul prawf) yn eu darparu.

Gweithredu technegol

DogfenPwynt bachu
Dyfynbrissale.order.create, pan fo'r enw yn wag, yn / neu'n New
Archeb cwsmersale.order.action_confirm, cyn y cadarnhad safonol
Anfoneb, nodyn credydaccount.move._set_next_sequence, a elwir wrth gofnodi
Nodyn dosbarthu, derbyn nwyddaustock.picking.create yn ôl y math o weithrediad
Archeb brynupurchase.order.create
  • Cownter. Mynegiant rheolaidd (^<Stamm>([0-9]{1,15})$, caiff y gwreiddyn ei ddianc) sy'n dod o hyd i'r rhif uchaf, fesul cwmni, gan gynnwys enwau heb gwmni.
  • Anfonebau. Mae _set_next_sequence yn ysgrifennu'r enw ac yn galw _compute_split_sequence, fel bod rhesymeg dilyniant Odoo (rhagddodiad, rhif, adnabod blwyddyn ar gyfer anfoneb nesaf y dyddlyfr) yn aros yn gyson.
  • Gosodiadau. Caiff meysydd cwmni document_number_* eu hadlewyrchu yn res.config.settings. Mae'r gosodiadau'n gwrthod rhagddodiaid â bwlch neu â digid ar y diwedd.
  • Cyfieithiad. Mae cyfieithiad Almaeneg wedi'i gynnwys.

Gosod a sefydlu

  1. Rhowch y ffolder document_number_prefix_year yn llwybr yr addons.
  2. Diweddarwch restr yr apiau a gosodwch y modiwl. Y rhagofynion yw Gwerthu, Prynu, Stoc a Chyfrifeg.
  3. O dan Gosodiadau → Rhifo dogfennau nodwch y rhagddodiaid, fformat y flwyddyn a nifer y digidau.
  4. Rhowch gynnig arno ar gopi yn gyntaf. Ni ellir dadwneud rhif dogfen yn awtomatig yn nes ymlaen, ac ar anfonebau mae'r dyletswyddau cadw ac archwilio ynghlwm wrth y rhif.

Cyfyngiadau

Chwe therfyn y modiwl: basgedi siopa, fformat y flwyddyn, un gyfres fesul cwmni, rheolau rhagddodiad, ychydig o brofion, dim ond y dogfennau a enwir

  • Caiff dyfynbrisiau eu rhifo wrth eu creu. Mae dyfynbrisiau a ddilëwyd neu a ganslwyd yn gadael bylchau. Mae'r un peth yn wir am bob archeb cwsmer a grëir gan fodiwl arall: mae basgedi siopa'r siop we (website_sale) yn archebion yn y statws Dyfynbris ac yn defnyddio un rhif yr un. Dim ond anfonebau a nodiadau credyd sydd heb fylchau, am eu bod yn cael eu rhifo wrth gofnodi.
  • Peidiwch â newid fformat y flwyddyn yn ystod gweithrediad. Gyda'r gwreiddyn AN26 mae'r modiwl yn darllen AN2026000001 sy'n bodoli eisoes fel cownter 26000001. Pennwch y fformat cyn y ddogfen gyntaf.
  • Cownter o 15 digid ar y mwyaf. Caiff dilyniannau digidau hirach ar ôl y gwreiddyn eu hanwybyddu wrth chwilio am y rhif uchaf.
  • Dim cyfresi ar wahân fesul dyddlyfr na warws. Mae'r cownter yn gymwys fesul cwmni, rhagddodiad a blwyddyn. Mae sawl dyddlyfr gwerthu yn rhannu'r cownter anfonebau.
  • Ni chaiff rhagddodiaid gynnwys bwlch na gorffen ar ddigid, fel arall ni ellir gwahanu rhagddodiad, blwyddyn a chownter mwyach.
  • Dim ond y mathau o ddogfen a enwir a gaiff eu trin.

Profion

Daw'r modiwl â deg prawf awtomatig. Maent yn gwirio:

  • Dyfynbris a chadarnhad: rhif y dyfynbris a rhif yr archeb, cadw rhif y dyfynbris
  • Parhau i gyfrif ar ôl rhif a fewnforiwyd (AN26119 → AN26000120)
  • dim ailrifo ôl-weithredol ar ddogfennau sy'n bodoli eisoes
  • Anfoneb, nodyn credyd a newid blwyddyn yn ôl dyddiad yr anfoneb
  • Archeb brynu a nodiadau dosbarthu
  • rhagddodiad gwag: mae rhif safonol Odoo yn aros
  • blwyddyn pedwar digid
  • rhagddodiad ag nodau arbennig
  • sawl rhif mewn un trafodyn
  • caiff dilyniannau digidau hir iawn eu hanwybyddu

Galwad:

odoo-bin -d <Testdatenbank> -i document_number_prefix_year --test-enable --test-tags=/document_number_prefix_year --stop-after-init

Mae'r profion yn rhedeg gyda thrafodion cyffredin. Nid yw'r ymddygiad pan fydd dau ddefnyddiwr yn creu ar yr un pryd yn rhan ohonynt; fe'i profwyd â llaw ar gopi o'r gronfa ddata fel y disgrifir uchod. Dylai pwy bynnag sy'n defnyddio'r modiwl mewn system â llawer o ddefnyddwyr ar yr un pryd ailadrodd yr arbrawf hwn ar ei gronfa ddata ei hun.

Hysbysiad cyfreithiol ynghylch rhif yr anfoneb

Rhaid i anfonebau yn ôl § 11 UStG gario rhif cyfresol a roddir yn unigryw i adnabod yr anfoneb. Mae'r modiwl yn rhifo anfonebau wrth gofnodi a chyda'i gownter ei hun fesul rhagddodiad a blwyddyn, sy'n cyd-fynd â hynny. Rhaid i chi egluro gyda'ch cynghorydd treth a yw eich gosodiad penodol (sawl dyddlyfr, nodiadau credyd â'u rhagddodiad eu hunain, newid blwyddyn) yn bodloni ei ofynion. Nid cyngor cyfreithiol yw'r erthygl hon.

Cwestiynau cyffredin

Pam na allwn addasu dilyniannau Odoo yn unig?

Ar gyfer anfonebau mae hynny'n bosibl trwy ragddodiad y dyddlyfr. Ond ar gyfer dyfynbrisiau, archebion, nodiadau dosbarthu ac archebion prynu nid oes cynllun cyffredin o ragddodiad, blwyddyn a chownter gyda newid blwyddyn, ac nid yw'r cownter yn gwybod am hen rifau a fewnforiwyd. Dyna lle mae'r modiwl yn ymyrryd.

A yw'r rhifo presennol yn cael ei drosysgrifo?

Nac ydy. Mae'r modiwl yn rhoi rhifau newydd yn unig. Mae enwau sydd eisoes wedi'u cadw yn aros heb newid, hefyd wrth ei ddiffodd.

Sut mae ei ddiffodd eto?

Gwagiwch ragddodiad y math o ddogfen. Yna mae Odoo yn ei rifo ei hun eto. Nid yw dadosod chwaith yn newid unrhyw rifau a roddwyd.

A ydych chi'n ei ddefnyddio eich hunain?

Nac ydym. Gyda ni mae rhifau safonol Odoo yn rhedeg. Rydym wedi profi'r modiwl gyda'r profion awtomatig a'r arbrawf â llaw a ddisgrifir, ond nid mewn gweithrediad byw gyda llawer o ddefnyddwyr.

A yw'n rhedeg gydag Odoo 17 neu 18?

Dim ond gydag Odoo 19.0 Community yr ydym wedi'i brofi. Ar gyfer fersiynau eraill gall fod yn addas neu beidio; nid ydym wedi'i wirio.

O dan ba drwydded y mae?

O dan y drwydded LGPL-3. Croesewir gwallau a gwelliannau fel Issue yn yr ystorfa GitHub .

Cymorth gan Biricon IT Services

Rydym yn gofalu am osodiadau Odoo ar gyfer busnesau bach a chanolig: o'r cyflwyno trwy addasiadau a mudo hyd at weithrediad parhaus. Os ydych am gadw eich rhifau dogfennau wrth newid, am gael gwirio'r rhifo dan lwyth, neu am ddod â modiwl fel hwn yn ddiogel i'ch enghraifft gynhyrchu, rydym yn hapus i helpu. Datblygiadau eraill ein hunain: Firmenbuch a gwirio cyfeiriadau ar gyfer cwsmeriaid Awstriaidd, Setiau cynnyrch yn y dyfynbris fel adran a Web RBL, y rhestr rwystro ar gyfer traffig ymosod.

Cysylltwch â ni nawr

Dyddiad: 3 Tachwedd 2026. Fersiwn y modiwl 19.0.1.0.0. Mae pob rhif yn yr enghreifftiau a'r darluniau wedi'u dewis yn rhydd.