Skip to Content

Rhifau dogfennau Odoo 19 o ragddodiad, blwyddyn a rhifydd – modiwl document_number_prefix_year a’r broblem wrth greu ar yr un pryd

3 Tachwedd 2026 | Odoo 19 Community | Datblygiad mewnol
3 Tachwedd 2026 by
Rhifau dogfennau Odoo 19 o ragddodiad, blwyddyn a rhifydd – modiwl document_number_prefix_year a’r broblem wrth greu ar yr un pryd

Modiwl Odoo 19 document_number_prefix_year: rhifau dogfennau o ragddodiad, blwyddyn a rhifydd

Mae “AN26000001” yn dweud mwy na “S00001”: dyfynbris ydyw, mae’n dyddio o 2026, a hwn yw’r cyntaf. Mae llawer o fusnesau, yn enwedig y rhai sy’n symud o system hŷn i Odoo, am gadw rhifau eu dogfennau yn yr union ffurf honno. Mae Odoo ei hun yn rhifo dyfynbrisiau, archebion a nodiadau dosbarthu gan ddefnyddio ei ddilyniannau ei hun (S00001, WH/OUT/00001, P00001), ac anfonebau gan ddefnyddio rhagddodiad y dyddlyfr a’r flwyddyn (INV/2026/00001).

Rydym wedi ysgrifennu’r modiwl Document Numbering by Prefix and Year (document_number_prefix_year) ar gyfer Odoo 19 at y diben hwn. Mae ar gael fel meddalwedd rydd o dan drwydded LGPL-3 ar GitHub:

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

Gair gonest i ddechrau: Nid ydym yn defnyddio’r modiwl yn Biricon IT Services. Rydym yn ei gyhoeddi am ei fod yn gyflawn, wedi’i ddogfennu ac yn cynnwys profion, ac y gall arbed gwaith i eraill. Dylai unrhyw un sy’n ei ddefnyddio ddarllen yr adrannau Cyfyngiadau a Profion .

Y cynllun rhifo

Mae pob rhif yn cynnwys tair rhan: rhagddodiad ar gyfer pob math o ddogfen, y flwyddyn a rhifydd â nifer sefydlog o ddigidau. Gallwch osod 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 rhifydd, gyda thabl o’r mathau o ddogfennau

Mae’r modiwl yn ymdrin â dyfynbrisiau, archebion gwerthu, anfonebau cwsmeriaid a nodiadau credyd, nodiadau dosbarthu, derbyniadau nwyddau ac archebion prynu. Enghreifftiau yn unig yw’r rhagddodiaid yn y llun: AN, AU, RE, GU, LI, WE, BE. Os gadewch ragddodiad yn wag, cedwir trefn rifo safonol Odoo ar gyfer y math hwnnw o ddogfen. Felly nid yw’r modiwl yn gwneud dim nes i chi ei ffurfweddu.

Sut mae’r rhifau’n gweithio

  • Dechrau o’r newydd bob blwyddyn. Mae’r rhifydd yn ailddechrau o 1 ar droad y flwyddyn.
  • Parhau ar ôl rhifau a fewnforiwyd. Mae’r modiwl yn chwilio am y rhif uchaf sydd eisoes yn bodoli gyda’r un rhagddodiad a blwyddyn, waeth beth fo’i hyd. Os yw AN26119 o’r hen system yn y gronfa ddata, AN26000120 fydd rhif y dyfynbris nesaf. Dyna pam mae’r modiwl yn addas ar gyfer symud rhwng systemau: mewnforir hen ddogfennau gyda’u rhifau gwreiddiol, ac mae dogfennau newydd yn parhau’n ddi-dor o’r fan honno.
  • Rhif archeb newydd wrth gadarnhau. Os dymunwch, mae dyfynbris a gadarnheir yn cael rhif o ddilyniant yr archebion. Cedwir rhif y dyfynbris ym maes Rhif y dyfynbris ar yr archeb, ac mae’n weladwy yn y ffurflen, y rhestr a’r chwiliad.
  • Anfonebau wrth eu postio. Dim ond wrth eu postio y mae anfonebau cwsmeriaid a nodiadau credyd yn cael eu rhif, nid wrth eu creu. Felly nid yw drafftiau a ddilëir yn gadael bwlch. Daw’r flwyddyn o Ddyddiad yr anfoneb: bydd anfoneb â’r dyddiad 30.12.2025 a bostir ar 2.1.2026 yn cael y rhif RE25….
  • Mae popeth arall yn aros fel y mae. Mae anfonebau cyflenwyr, taliadau, cofnodion dyddlyfr ac archebion gweithgynhyrchu yn cadw dilyniannau safonol Odoo. Ni chaiff enwau presennol byth eu hailysgrifennu, hyd yn oed os diffoddwch y modiwl eto.

Y rhan anodd: dau ddefnyddiwr ar yr un pryd

Mae creu eich trefn rifo eich hun yn edrych yn syml: chwilio am y rhif uchaf ac ychwanegu un. Nid yw mor syml pan fydd dau ddefnyddiwr yn creu dyfynbris ar yr un foment. Mae’r ddau’n darllen “rhif uchaf = 0”, ac mae’r ddau’n neilltuo AN26000001. Mae Odoo yn defnyddio dilyniannau cronfa ddata ar gyfer ei ddilyniannau ei hun. Nid yw hynny ar gael gyda rhif rydych wedi’i lunio eich hun, ac ar ben hynny nid oes gwiriad unigrywiaeth ar yr enw yn Odoo ar gyfer dyfynbrisiau ac archebion prynu: caiff dwy ddogfen â’r un rhif eu cadw heb wrthwynebiad.

Y mesur diogelu amlwg yw clo. Mae’r modiwl yn cymryd clo cronfa ddata (PostgreSQL Advisory Lock) ar gyfer pob cyfuniad o gwmni, rhagddodiad a blwyddyn, ac mae’r clo’n para tan ddiwedd y trafodiad. Mae’r ail ddefnyddiwr yn aros nes bod y cyntaf wedi gorffen. Ond nid yw hynny’n ddigon, a daethom i wybod hyn drwy arbrawf ar gopi o’r gronfa ddata gynhyrchu:

Llinell amser dau ddefnyddiwr: heb ail ddarlleniad, mae’r ddau’n neilltuo’r un rhif; gydag ail ddarlleniad, mae’r ail ddefnyddiwr yn cael y rhif nesaf

Mae Odoo yn gweithio ar y lefel ynysu REPEATABLE READ. Caiff cyflwr y gronfa ddata y mae trafodiad yn ei weld ei rewi wrth ei ymholiad cyntaf. Mae defnyddiwr B eisoes wedi cael y cyflwr hwn cyn i A orffen. Os yw B wedyn yn aros am y clo ac yn ei gael, mae’n darllen “rhif uchaf = 0” o’i hen gyflwr ac yn neilltuo’r rhif am yr ail dro. Mae’r clo wedi rheoli’r drefn, ond nid yw wedi diweddaru’r wybodaeth.

Yr ateb yw ail ddarlleniad drwy gysylltiad cronfa ddata byrhoedlog ar wahân, sy’n gweld pob rhes sydd eisoes wedi’i chadarnhau. Defnyddir yr uchaf o’r ddau werth. Mae angen y darlleniad cyntaf o hyd, oherwydd dim ond hwnnw sy’n gwybod am rifau y mae’r un trafodiad eisoes wedi’u neilltuo ond heb eu cadarnhau eto, er enghraifft wrth fewnforio sawl dogfen ar yr un pryd.

Gwnaethom brofi hyn gyda dau drafodiad lle’r oedd modd dangos bod yr ail wedi cael ei giplun cyn i’r cyntaf gadarnhau ei newidiadau, ac yna wedi aros am y clo. Heb yr ail ddarlleniad, cafodd y ddwy archeb yr un rhif; gydag ef, cawsant y rhifau 1 a 2.

Pwynt pwysig i’w gadw mewn cof: Gwiriad â llaw yw’r arbrawf hwn. Nid yw’n rhan o’r profion awtomataidd, oherwydd mae angen dau gysylltiad cronfa ddata go iawn arno, ac nid yw amgylchedd profi Odoo (un trafodiad fesul prawf) yn darparu hynny.

Gweithrediad technegol

DogfenPwynt integreiddio
Dyfynbrissale.order.create, pan fo’r enw’n wag, yn / neu’n New
Archeb cwsmersale.order.action_confirm, cyn y cadarnhad safonol
Anfoneb, nodyn credydaccount.move._set_next_sequence, a elwir wrth bostio
Nodyn dosbarthu, derbyn nwyddaustock.picking.create yn ôl y math o weithrediad
Archeb brynupurchase.order.create
  • Rhifydd. Mae mynegiad rheolaidd (^<Stamm>([0-9]{1,15})$, gyda nodau arbennig y bôn wedi’u dianc) yn canfod y rhif uchaf ar gyfer pob cwmni, gan gynnwys enwau heb gwmni.
  • Anfonebau. Mae _set_next_sequence yn ysgrifennu’r enw ac yn galw _compute_split_sequence fel bod rhesymeg dilyniannau Odoo (rhagddodiad, rhif, adnabod y flwyddyn ar gyfer anfoneb nesaf y dyddlyfr) yn aros yn gyson.
  • Gosodiadau. Mae meysydd y cwmni document_number_* yn cael eu hadlewyrchu yn res.config.settings. Mae’r gosodiadau’n gwrthod rhagddodiaid sy’n cynnwys bylchau neu’n gorffen â digid.
  • Cyfieithiad. Mae cyfieithiad Almaeneg wedi’i gynnwys.

Gosod a ffurfweddu

  1. Rhowch y ffolder document_number_prefix_year yn y llwybr ychwanegion.
  2. Diweddarwch y rhestr apiau a gosodwch y modiwl. Mae angen Gwerthu, Prynu, Stoc a Cyfrifyddu.
  3. Rhowch y rhagddodiaid, fformat y flwyddyn a nifer y digidau o dan Gosodiadau → Rhifo dogfennau.
  4. Rhowch gynnig arno ar gopi yn gyntaf. Ni ellir dadwneud rhif dogfen yn awtomatig wedyn, ac yn achos anfonebau mae’r rhif yn gysylltiedig â’r gofynion cadw cofnodion ac archwilio.

Cyfyngiadau

Chwe chyfyngiad ar y modiwl: basgedi siopa, fformat y flwyddyn, un gyfres i bob cwmni, rheolau rhagddodiaid, ychydig o brofion, dim ond y dogfennau a restrir

  • Caiff dyfynbrisiau eu rhifo wrth eu creu. Mae dyfynbrisiau sy’n cael eu dileu neu eu canslo 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 â’r statws Dyfynbris ac mae pob un yn defnyddio rhif. Dim ond anfonebau a nodiadau credyd sydd heb fylchau, gan eu bod yn cael eu rhifo wrth eu postio.
  • Peidiwch â newid fformat y flwyddyn tra bo’r system ar waith. Gyda’r bôn AN26, mae’r modiwl yn darllen AN2026000001 sydd eisoes yn bodoli fel rhifydd 26000001. Pennwch y fformat cyn creu’r ddogfen gyntaf.
  • Uchafswm o 15 digid i’r rhifydd. Anwybyddir llinynnau hirach o ddigidau ar ôl y bôn wrth chwilio am y rhif uchaf.
  • Dim cyfresi ar wahân i bob dyddlyfr neu warws. Mae’r rhifydd yn berthnasol i bob cyfuniad o gwmni, rhagddodiad a blwyddyn. Mae sawl dyddlyfr gwerthu yn rhannu’r un rhifydd anfonebau.
  • Ni chaiff rhagddodiaid gynnwys bylchau na gorffen â digid, neu ni fydd modd gwahanu’r rhagddodiad, y flwyddyn a’r rhifydd.
  • Dim ond y mathau o ddogfennau a restrir sy’n cael eu trin.

Profion

Mae’r modiwl yn cynnwys deg prawf awtomatig. Maent yn gwirio:

  • Dyfynbris a chadarnhad: rhifau’r dyfynbris a’r archeb, cadw rhif y dyfynbris
  • Parhau i gyfrif ar ôl rhif wedi’i fewnforio (AN26119 → AN26000120)
  • nad yw dogfennau presennol yn cael eu hailrifo wedyn
  • Anfoneb, nodyn credyd a newid blwyddyn yn ôl dyddiad yr anfoneb
  • Archeb brynu a nodiadau dosbarthu
  • rhagddodiad gwag: cedwir rhif safonol Odoo
  • blwyddyn pedwar digid
  • rhagddodiad â nodau arbennig
  • sawl rhif mewn un trafodiad
  • bod llinynnau hir iawn o ddigidau yn cael eu hanwybyddu

Gorchymyn:

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 thrafodiadau arferol. Nid ydynt yn cynnwys yr ymddygiad pan fydd dau ddefnyddiwr yn creu cofnodion ar yr un pryd; profwyd hynny â llaw ar gopi o’r gronfa ddata fel y disgrifir uchod. Dylai unrhyw un sy’n defnyddio’r modiwl mewn system â llawer o ddefnyddwyr cydamserol ailadrodd yr arbrawf hwn ar ei gronfa ddata ei hun.

Nodyn cyfreithiol ar rifau anfonebau

Yn ôl § 11 UStG, rhaid i anfonebau gynnwys rhif dilyniannol a neilltuir unwaith yn unig er mwyn adnabod yr anfoneb. Mae’r modiwl yn rhifo anfonebau wrth eu postio, gyda rhifydd ar wahân i bob rhagddodiad a blwyddyn, sy’n cyd-fynd â hyn. Rhaid i chi drafod â’ch cynghorydd treth a yw eich gosodiadau 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 wnewch chi addasu dilyniannau Odoo yn syml?

Ar gyfer anfonebau, gellir gwneud hynny drwy ragddodiad y dyddlyfr. Ond ar gyfer dyfynbrisiau, archebion cwsmeriaid, nodiadau dosbarthu ac archebion prynu, nid oes cynllun cyffredin sy’n cyfuno rhagddodiad, blwyddyn a rhifydd ac yn trin newid blwyddyn, ac nid yw’r rhifydd yn adnabod hen rifau wedi’u mewnforio. Dyna lle mae’r modiwl yn helpu.

A gaiff y rhifo presennol ei drosysgrifo?

Na chaiff. Dim ond rhifau newydd y mae’r modiwl yn eu neilltuo. Mae enwau sydd eisoes wedi’u cadw yn aros yr un fath, hyd yn oed ar ôl ei ddiffodd.

Sut mae ei ddiffodd eto?

Cliriwch ragddodiad y math o ddogfen. Yna bydd Odoo yn ei rifo ei hun eto. Nid yw dadosod y modiwl yn newid unrhyw rifau sydd eisoes wedi’u neilltuo chwaith.

Ydych chi’n ei ddefnyddio eich hunain?

Nac ydym. Rydym yn defnyddio rhifau safonol Odoo. Rydym wedi gwirio’r modiwl gyda’r profion awtomatig a’r arbrawf llaw a ddisgrifir, ond nid mewn system fyw â llawer o ddefnyddwyr.

A yw’n gweithio gydag Odoo 17 neu 18?

Dim ond gydag Odoo 19.0 Community yr ydym wedi’i brofi. Gallai fod yn addas ar gyfer fersiynau eraill neu beidio; nid ydym wedi gwirio hynny.

O dan ba drwydded y mae ar gael?

O dan LGPL-3. Mae croeso i adroddiadau am wallau ac awgrymiadau am welliannau fel materion yn yr ystorfa GitHub .

Cymorth gan Biricon IT Services

Rydym yn gofalu am osodiadau Odoo ar gyfer busnesau bach a chanolig: o’u cyflwyno, drwy addasiadau a mudo, i’w gweithredu o ddydd i ddydd. Os ydych am gadw eich rhifau dogfennau wrth newid system, cael profi neilltuo rhifau dan lwyth neu gyflwyno modiwl fel hwn yn ddiogel i’ch amgylchedd cynhyrchu, byddwn yn falch o helpu. Datblygiadau mewnol eraill: Cofrestr gwmnïau a gwirio cyfeiriadau ar gyfer cwsmeriaid o Awstria, Setiau cynhyrchion fel adran yn y dyfynbris a Web RBL, y rhestr rwystro ar gyfer traffig ymosodol.

Cysylltwch nawr

Diweddarwyd: 3 Tachwedd 2026. Fersiwn y modiwl: 19.0.1.0.0. Mae’r holl rifau yn yr enghreifftiau a’r delweddau wedi’u dewis at ddibenion enghreifftiol.