Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Lajme
  • Elementet e paracaktuara. Shtimi në një konfigurim standard

Elementet e paracaktuara. Shtimi në një konfigurim standard

Të gjithë e dinë ndryshimin midis elementeve të paracaktuar dhe atyre të rregullt: "Elementet e paracaktuar krijohen në modalitetin Konfigurator dhe nuk mund të fshihen në modalitetin 1C: Enterprise." Në modalitetin e përdoruesit, mund të dalloni një element të paracaktuar nga ato të shtuara nga përdoruesit duke përdorur një ikonë të veçantë (shih pamjen e mëposhtme të ekranit).

Në thelb, elementët e paracaktuar krijohen nga zhvilluesit në mënyrë që të lidhin algoritme me to në objekte të ndryshme konfigurimi. Për shembull, në konfigurimin "Manufacturing Enterprise Management" në drejtorinë "Cilësia", zhvilluesit shtuan një element të paracaktuar "I ri".

Ky element përdoret në shumë module konfigurimi. Pra, në dokumentin “Pranimi i mallrave dhe shërbimeve”, kur afishohet në të gjithë regjistrat ku ka dimensionin “Cilësi”, zëvendësohet vlera e një elementi të paracaktuar. Më poshtë është një listë e plotësimit të tabelës së postimeve për regjistrin "Mallrat e Organizatave":

// PRODUKTET NGA REGJISTRIMI ProduktetOrganizatat. MoveSet = Lëviz. Produkte Organizatat; Nëse Lloji i Faturës = Transferta. Llojet e Pranimeve të Mallrave. Në magazinë pastaj // Merrni një tabelë vlerash që përputhet me strukturën e grupit të regjistrave. MotionTable = MotionSet. Shkarko() ; // Plotësoni tabelën e lëvizjes. Qëllimi i përgjithshëm. LoadValueTable (Tabela e produkteve, Tabela e Lëvizjes) ; // Mungojnë fushat. Tabela e Lëvizjes. FillValues ​​(Organizimi, "Organizimi"); Tabela e Lëvizjes. FillValues ​​(E papërcaktuar, "Agjent i Komisionit"); Tabela e Lëvizjes. FillValues(Direktoritë. Cilësia. E re, "Cilësia"); // Plotësoni cilësinë nga një element i paracaktuar

Kështu, karakteristikat e elementeve të paracaktuar dhe qëllimi i tyre janë mjaft të thjeshta. Le të shohim mënyrën se si ato ruhen në tabelat e bazës së të dhënave dhe si ndryshojnë nga elementët e zakonshëm.

Dallimet

Në konfigurimin e testit, u krijua drejtoria "Produkte". Në të është krijuar grupi "Elementet e provës". Ju mund të shihni përmbajtjen e grupit në pamjen e ekranit në fillim të artikullit. Për direktorinë "Produktet", baza e të dhënave SQL ka një tabelë përkatëse "_Reference37" me strukturën e mëposhtme:

Por si mund të përcaktojmë nëse detajet korrespondojnë me pemën e konfigurimit dhe fushat në tabelën SQL?

Ne do të përdorim metodën standarde të kontekstit global "GetDatabaseStorageStructure()", e cila do të na kthejë një tabelë vlerash me një përshkrim të strukturës së tabelës.

Në tabelën e vlerave "Fushat", shohim korrespondencën midis fushave të tabelës SQL dhe detajeve të objektit në pemën e meta të dhënave. Në shembullin tonë, ne kemi parasysh strukturën e drejtorisë "Produkte". Të gjitha drejtoritë kanë një atribut standard "Predefinuar" të tipit Boolean, i cili është vendosur në TRUE për elementët e paracaktuar:

Bazuar në tabelën me strukturën e ruajtjes së direktoriumit në bazën e të dhënave, mund të themi padyshim se fusha “Predefined” korrespondon me fushën “IsMetadata”. Nëse shikojmë përmbajtjen e tabelës "_Reference37" në bazën e të dhënave SQL, do të shohim sa vijon:

Në hyrjen për elementin e paracaktuar, vlera e fushës "IsMetadata" vendoset në "0x01", e cila korrespondon me flamurin TRUE. Për elementët normalë vlera është vendosur në "0x00". Ky është ndryshimi kryesor midis elementeve të paracaktuar dhe atyre të zakonshëm. Të gjitha fushat e tjera ruhen në bazën e të dhënave në të njëjtën mënyrë si fushat në artikujt e rregullt të shtuar nga përdoruesit.

Elementet e paracaktuara mund të kenë përdorime shumë interesante. Me ndihmën e tyre, ju mund të parandaloni që grupet e elementeve të fshihen/shënohen për fshirje në drejtori dhe objekte të tjera ku mund të shtohen. Nëse përpiqemi të fshijmë ose shënojmë për fshirje grupin "Elementet e testit". atëherë marrim gabimet e mëposhtme:

Kështu, elementët e paracaktuar e bëjnë grupin në të cilin vendosen edhe të "paracaktuar".

Përfundimi

Elementet e paracaktuara janë pjesë përbërëse e shumicës së konfigurimeve. Përdorimi i tyre thjeshton zhvillimin dhe e bën ndërtimin e funksionalitetit logjikisht më "harmonik" dhe integral.

Kujdes! Ky është një version hyrës i mësimit, materialet e të cilit mund të jenë të paplota.

Hyni në sit si student

Identifikohu si student për të aksesuar materialet shkollore

Gjuha e pyetjes 1C 8.3 për programuesit fillestar: Funksioni VALUE

Funksioni KUPTIMI të destinuara për qarkullim në organin e kërkesës te vlerat e numërimit të sistemit Dhe të dhëna të paracaktuara.

Çfarë tjetër janë këto numërime dhe të dhëna të paracaktuara, pyesni ju. Le të flasim për gjithçka në rregull.

Transfertat

Transfertat- ky është një objekt aplikimi (ju kujtohet se ka gjithashtu Drejtoritë Dhe Dokumentacioni). Pse kishte nevojë për të?

Çështja është se një numërim është një objekt i veçantë. Ndryshe nga librat dhe dokumentet e referencës të gjitha vlerat e mundshme të numërimit specifikohen në fazën e konfigurimit dhe nuk mund të ndryshohet më tej në modalitetin e përdoruesit.

Pandryshueshmëria është atuti i tyre kryesor. Këto janë konstante të llojit të bazës së të dhënave.

Dhe nëse programuesi në modalitetin e konfigurimit krijoi një numërim me emrin Kati dhe kuptimet Mashkull Dhe Femër, atëherë kur shkruan një program ai mund të jetë i sigurt se vlerat e këtij numërimi nuk do të ndryshojnë në të ardhmen. Prandaj, ai mund t'i qaset me siguri këto vlera nga kodi.

Imagjinoni çfarë do të ndodhë nëse ai përpiqet të përdorë drejtorinë për këto qëllime?

Së pari, një përdorues do ta marrë atë dhe do të shtojë një lloj "dyshemeje marsiane".

Së dyti, një përdorues tjetër do të shkojë përpara dhe do të fshijë një nga gjinitë ekzistuese ose do të ndryshojë emrin e tij.

Dhe programi do të prishet për shkak të kësaj, sepse që ai të funksionojë është e nevojshme që të jenë saktësisht dy gjini dhe pikërisht me emrat "Mashkull" dhe "Femër".

Pikërisht për raste të tilla ekzistojnë numërimet: të përcaktohen në mënyrë të ngurtë të gjitha variantet e mundshme të vlerave një herë (në fazën e konfigurimit) dhe më pas t'i përdorin ato në kodin e programit.

Le të shohim një shembull të një numërimi të tillë në bazën tonë të të dhënave "Gastronom". Po lexoni një version provë të mësimit, mësimet e plota janë të disponueshme.

Këtu është numërimi ynë me emrin Kati. Çfarë vlerash mund të marrë?

Ka vetëm dy kuptime. Me emrat “Mashkull” dhe “Femër”. Vetëm ajo që na nevojitet.

Ku mund ta përdorim këtë numërim në të ardhmen? Epo, sigurisht, në drejtori Klientët. Ju lutemi vini re se në listën e tij është shfaqur një mbështetëse e re me emrin Kati dhe lloji Numërimi.Gjinia:

Kështu, kur plotësoni një kartë klienti tashmë në modalitetin e përdoruesit, ne do të jemi në gjendje të zgjedhim vetëm dy vlera si gjininë e klientit: Mashkull dhe Femër:

Tani le të krijojmë një pyetje që zgjedh klientët dhe gjininë e tyre nga baza e të dhënave:

Tani le të ndryshojmë pyetjen që të mbeten vetëm burra. Nëse përpiqemi të shkruajmë diçka të tillë:

atëherë nuk marrim asgjë:

Sepse vlerat e numërimit nuk mund të aksesohen në këtë mënyrë. Ata duhet të aksesohen duke përdorur funksionin KUPTIMI:

Pra, një nga detyrat e funksionit KUPTIMI- përdorimi i vlerave të numërimit në pyetje.

Të dhëna të paracaktuara

Më mirë do të tregoja me një shembull se cilat janë të dhënat e paracaktuara për drejtoritë. Po lexoni një version provë të mësimit, mësimet e plota janë të disponueshme.

Në bazën tonë të të dhënave "Gastronom" (në modalitetin e përdoruesit), hapni drejtorinë "Njësitë e matjes":

Shikoni më nga afër elementët e tij. Shihni rrathët e verdhë pranë disa elementeve? Këto elemente (që kanë rrathë) janë të dhëna të paracaktuara.

Në përgjithësi, nëse ndonjë element i drejtorisë është i paracaktuar (d.m.th., ka një rreth të verdhë mbi të), atëherë ky është një element i veçantë.

Së pari, kjo do të thotë që elementi është krijuar në fazën e konfigurimit nga programuesi (në rastin tonë, këto janë elementë me kodet 1, 2 dhe 3).

Dhe, së dyti, kjo do të thotë se ky element është shumë i rëndësishëm për funksionimin e programit. Që disa kode në bazën e të dhënave është i lidhur me të (ose më mirë me emrin e tij të paracaktuar).

Kjo është arsyeja pse thjesht fshirja e një elementi të tillë nuk do të funksionojë. Provoni ta shënoni për fshirje:

Le të shkojmë tani në modalitetin e konfigurimit dhe të shohim se ku krijohen këta elementë të paracaktuar (në këtë rast për drejtorinë e Njësive të Matjes):

Këtu janë të gjithë elementët tanë të paracaktuar për librin referues të Njësisë së Matjes. Ju lutemi vini re se të gjithë elementët e paracaktuar kanë një emër të veçantë që nuk shfaqet në modalitetin e përdoruesit.

Për një element me kodin 1 ky emër është Ton, me kodin 2 - Gram e kështu me radhë. Ky emër quhet emri i elementit të paracaktuar dhe është me këtë emër që ju mund ta aksesoni atë nga kodi (ose nga kërkesa në rastin tonë).

Ju mund të pyesni pse nuk ishte e mundur që njësitë matëse të bëheshin thjesht një listë me elementët Ton, Gram dhe Pack? Dhe gjithçka sepse në këtë rast është e rëndësishme për ne që libri referues i njësisë matëse të përmbajë gjithmonë disa elementë specifikë (ton, gram dhe paketë), por në të njëjtën kohë ne nuk duam ta ndalojmë përdoruesin të shtojë disa nga të tyret. elemente (kilogram, copë e kështu me radhë). Po lexoni një version provë të mësimit, mësimet e plota janë të disponueshme.

Prandaj, elementët e paracaktuar janë padyshim më të përshtatshëm këtu sesa numërimet.

Dhe ne mund të aksesojmë elementët tanë të paracaktuar nga kërkesa duke përdorur një funksion tashmë të njohur për ne KUPTIMI:

Merrni testin

Filloni testin

1. Janë vendosur vlerat e numërimit

2. Për të ruajtur një listë magazinash në një kompani, lloji

3. Për të ruajtur një listë të njësive matëse në një magazinë, lloji

4. Për të ruajtur normat tatimore, lista e të cilave nuk duhet të ndryshohet nga përdoruesi, lloji

5. Për të hyrë në vlerën e numërimit në një kërkesë, përdorni funksionin

6. Për të ruajtur normat tatimore, lista e të cilave do të ndryshohet nga përdoruesi, lloji

7. Të dhënat e paracaktuara vijnë me

Diten e mire.

Sot do të flasim për inovacionin në platformën 8.3 në lidhje me elementët e paracaktuar.

Prezantimi

Më lejoni t'ju kujtoj se më herët në praktikë, shumë shpesh doja të shikoja një element drejtorie për të gjetur emrin e tij të paracaktuar. Për shembull, keni krijuar dy palë të paracaktuara dhe i keni emëruar ato IPSidorov dhe OOOMeteor. Dhe ata qepën disa logjikë mbi to.

Kur gjithçka u korrigjua dhe u përpunua, doli që detyra u shtrua në të kundërt dhe logjika për sipërmarrësin individual ishte e nevojshme për SH.PK-në, dhe logjika e SH.PK-së ishte e nevojshme për sipërmarrësin individual. "Nuk ka problem", themi ne dhe në modalitetin e ndërmarrjes i riemërtojmë elementët. Në fund të fundit, futja në kod është shumë më e vështirë. Kalon një vit dhe ju jepet një detyrë e re: të vendosni një logjikë më shumë për IP Sidorov. Hyni në konfigurues, shkruani logjikën, filloni të kontrolloni dhe asgjë nuk funksionon, sepse ... në konfiguruesin IPSidorov, dhe në ndërmarrje - OOOMeteor. Truri është i prishur dhe unë dua ta shkatërroj këtë grabujë. Gjëja më e thjeshtë dhe më e dukshme është të shfaqni emrin e një elementi të paracaktuar në formën e një liste. Këtu është kapja: ju mund të merrni vetëm emrin e një të paracaktuar në 8.2 duke përdorur metodën. Por metoda ka shqetësimet e veta; ajo nuk mund të merret në një kërkesë. Ato. Shqetësimi i parë është të merrni emrin e atij të paracaktuar nga një referencë në drejtori.

Shqetësimi i dytë është kur ne tashmë kemi një element drejtorie dhe duhet ta bëjmë atë të paracaktuar. Ne krijojmë një element të paracaktuar dhe marrim dy elementë në drejtori. Njëra është e paracaktuar, tjetra është operacionale, e cila është referuar në të gjitha dokumentet tona. Zëvendësimi i lidhjeve sigurisht që ndihmon, por nëse baza e të dhënave është e madhe, atëherë është e vështirë.

Tani tek pika

E para është se direktoria tani ka veçorinë "Përditësimi i të dhënave të paracaktuara".

Çfarë na jep kjo fushë? Nëse është vendosur në "Mos përditëso automatikisht", atëherë duke shtuar një element të paracaktuar, nuk do ta shohim menjëherë në drejtori. Ato. meta të dhënat nuk kanë asnjë lidhje me të dhënat. Dhe nëse nuk e krijoni atë në drejtori, atëherë qasja në të me emrin e tij përmes menaxherit të drejtorisë do të shkaktojë një gabim sintaksor.

Shumë interesante, por pse? Si mund të krijojmë një element në drejtori? Mund ta krijoni si të dëshironi, ose mund ta lidhni me një ekzistues. Tani drejtoria ka atributin "Emri i të dhënave të paracaktuara". Ne krijojmë një element drejtorie në mënyrë programore si zakonisht përmes “Directories.Contractors.CreateElement()” dhe plotësojmë atributin e tij “PredefinedDataName” të barabartë me emrin e elementit të paracaktuar. Ose nëse elementi ekziston tashmë, marrim objektin e tij dhe përsëri plotësojmë "Emri i të dhënave të paracaktuara". Të gjitha.

Dhe në fund pak shurup

Ky atribut i ri nuk është vetëm i lexueshëm dhe i shkruhet, por është gjithashtu i disponueshëm në kërkesa. Në këtë mënyrë ju mund t'i vendosni kushte në pyetje, të përcaktoni nëse është i paracaktuar apo jo.

Faleminderit per vemendjen.

Kur punoni në platformën 1C:Enterprise 8.x, shpesh ekziston nevoja për t'u lidhur në kodin e programit me elementë të zakonshëm (jo të paracaktuar) të drejtorisë. Për shembull, një organizatë mund të ketë pesë lloje çmimesh që përdoren pothuajse në të gjithë mekanizmat. Në këtë rast, qasja programatike në një çmim specifik, në rastin më të mirë, kryhet ose duke kërcitur me kod në drejtori, ose me emrin e elementit, në rastin më të keq.

Kam parë sesi në raporte, për të marrë çmimin e kërkuar, është përdorur përzgjedhja sipas llojit të çmimit në një kërkesë me emrin e saj (shih pamjen e mëposhtme të ekranit).

Si rezultat, marrim një raport të paqëndrueshëm që do të ndalojë së punuari nëse ndryshohet emri i llojit të çmimit. Nëse jeni i lidhur me kodin e elementit, atëherë ekziston gjithmonë mundësia për ta ndryshuar atë. Për shembull, për shkak të shkeljes së unike të kodeve të drejtorisë, administratori mund të fillojë të rinumëroj objektet, gjë që do të çojë në ndryshime në kodet e elementeve dhe raporti do të ndalojë së punuari si duhet.

Përveç kësaj, nëse lidhni me emrin ose kodin e elementeve të drejtorisë, atëherë kur merrni një lidhje me një element, një kërkim do të kryhet gjithmonë në tabelën e drejtorive. Përkundër faktit se detajet standarde të sistemit indeksohen nga DBMS, kërkimi i tyre në disa raste mund të marrë burime të konsiderueshme. Për më tepër, do të ishte më racionale të mos kryeni një pyetje kërkimi duke përdorur tabelën e referencës nëse, le të themi, lidhja me elementin është tashmë "e njohur paraprakisht".

Si rrugëdalje, mund të ruani një lidhje me secilin element të përdorur shpesh të drejtorisë "Llojet e çmimeve të artikujve" në konstante të veçanta dhe të merrni vlera prej tyre në kërkesë. Sidoqoftë, në këtë rast zhvilluesi do të duhet të shtojë një konstante të veçantë për secilin element të tillë. Situata do të bëhet dukshëm më e ndërlikuar nëse elementë të tillë nuk janë vetëm në drejtorinë "Llojet e çmimeve të artikujve", por edhe në drejtoritë e tjera ("Kategoritë e objekteve", "Cilësia", "Nomenklatura" dhe të tjerët). Atëherë numri i konstantave në sistem mund të rritet disa herë!

Natyrisht, do të ishte e mundur të shtoni elemente të paracaktuara në secilën prej drejtorive dhe qasja në to do të bëhej shumë më e lehtë. Megjithatë, ndryshimi i objekteve të paracaktuar do ta bënte më të vështirë përditësimin e konfigurimit nga paketat e shitësve.

Ekziston një qasje më optimale si në drejtim të zhvillimit të strukturës së meta të dhënave të konfigurimit ashtu edhe në aspektin e performancës së sistemit. Kjo është ajo për të cilën do të flasim sot.

Zgjidhje universale

Thelbi i zgjidhjes universale do të jetë si më poshtë: do të krijohet një drejtori në të cilën zhvilluesi do të shtojë elementë të paracaktuar. Atributi "Vlera" është shtuar në kërkim, lloji i të cilit varet nga vlerat për të cilat do të krijohet korrespondenca "Elementi i kërkimit të paracaktuar -> Vlera e lidhur". Struktura e meta të dhënave të drejtorisë duket kështu (shih pamjen e mëposhtme të ekranit).

Për të marrë një element të paracaktuar, alternativa më e mirë është të përdorni metodën globale "Vlera e paracaktuar(<Имя>)" . Rruga e plotë drejt elementit të paracaktuar kalohet si parametër në metodë. Sintaksa është e ngjashme me funksionin e gjuhës së pyetjes VALUE().

Për lehtësinë e zhvillimit, unë rekomandoj vendosjen e funksionit për marrjen e vlerës së lidhur me një element të paracaktuar në një modul të përbashkët. Në konfigurimin e provës, i disponueshëm për shkarkim përmes lidhjes në fund të artikullit, u krijua një modul i përbashkët "Vlerat e elementeve të paracaktuara" me një funksion eksporti. "GetValue of PredefinedElement(<ИмяПредопределенногоЭлемента>)" . Kodi i programit të funksionit merr një referencë për një element të paracaktuar, më pas merr vlerat e atributit "Vlera" duke përdorur një kërkesë. Pamja e mëposhtme e ekranit tregon listën e plotë të funksioneve.

Siç mund ta shohim, funksioni gjeneron një kërkesë për atributin "Vlera" të elementit të paracaktuar të kaluar si parametër. Parametri i funksionit është një varg me emrin e një elementi të paracaktuar.
Që mekanizmi i krijuar të funksionojë siç duhet, duhet të lidhni një element të paracaktuar në modalitetin e përdoruesit me një element të rregullt direktoriumi duke zgjedhur elementin përkatës në atributin "Vlera". Le të kalojmë te çështja e ndikimit në performancë.

Ndikimi i performancës

Kam kryer një test shpejtësie për të dy opsionet e kërkimit: me emër dhe me lidhje nga një element i paracaktuar. Kërkimi u bë në drejtorinë "Produkte" me 20,000 hyrje. Gjatë kryerjes së testeve në një bazë të dhënash skedari, u morën rezultatet e mëposhtme:

Rezultatet treguan se për versionin e skedarit të punës, përdorimi i elementeve të paracaktuar për të marrë elementë të përdorur shpesh të drejtorive të tjera është pothuajse 4 herë më i ngadalshëm!

Në versionin e punës klient-server, rezultatet e testimit tregojnë një pamje krejtësisht të ndryshme. Shpejtësia e marrjes së një lidhjeje me elementin e dëshiruar nuk është ulur ndjeshëm (një nga testet tregoi 0,002 sekonda për kërkimin me emër dhe 0,0008 sekonda kur punoni përmes një elementi të paracaktuar), por besueshmëria e programit është rritur ndjeshëm!

konkluzionet

Në rastet kur është shpesh e nevojshme të lidheni me elementë të zakonshëm të drejtorisë, unë rekomandoj të mos përdorni lidhje me kod ose emër. Kjo qasje zvogëlon besueshmërinë dhe performancën e sistemit.

Gjatë kohës që punoja me platformën, më shumë se një herë kam hasur në situata ku, pas ndryshimit të emrit, për shembull, elementi i drejtorisë "Llojet e nomenklaturës së çmimeve", puna e shumicës së raporteve jo standarde dështoi.

Sa më shumë algoritme të lidhen me elementët e direktorisë së zakonshme përmes një kodi ose emri, aq më pak i qëndrueshëm është sistemi.

Për më tepër, kjo qasje do t'ju lejojë të mos ndryshoni objektet standarde të konfigurimit nëse keni nevojë të shtoni një element të paracaktuar në to. Kjo do ta bëjë procesin e përditësimit të konfigurimit disi më të lehtë në të ardhmen.

Skedarët për shkarkim:

  1. Ngarkimi i një baze të dhënash testimi me shembuj nga artikulli.

Vetë ideja e punës programatike me elementë të paracaktuar, për mendimin tim, është shumë e saktë. Ka thjesht nuanca që duhet të merren parasysh kur punoni.

Së pari, ju duhet të kuptoni qartë vetë se ka elementë të paracaktuar në konfigurim dhe ka elementë të paracaktuar në bazën e informacionit (IS). Teknikisht, elementët e paracaktuar të sigurisë së informacionit janë elementët më të zakonshëm të drejtorive, në të cilat atributi "Emri i të dhënave të paracaktuara" tregon se cilit element konfigurimi të paracaktuar korrespondojnë. Ata nuk ndryshojnë nga elementët e zakonshëm. Prandaj, çdo element i zakonshëm i sigurisë së informacionit mund të bëhet i paracaktuar, çdo element i paracaktuar mund të bëhet i zakonshëm. Për ta bërë këtë, thjesht futni vlerën e dëshiruar në atribut "Emri i të Dhënave të Paracaktuara".

Herë pas here, kjo veti përmban një vlerë që nuk është ajo që ka menduar zhvilluesi. Si rezultat, ndodhin gabime në funksionimin e 1C. Nga kritike, në të cilën puna është në thelb e pamundur, në jokritike, në të cilën logjika e algoritmeve është e prishur.

Me kusht mund të dallojmë tre lloje gabimesh:
1. "Elementi i paracaktuar nuk është në të dhëna";

3. Specifikimi i gabuar i një elementi të paracaktuar;

1. "Elementi i paracaktuar nuk është në të dhëna" - o mungesa e një elementi të paracaktuar të përshkruar në konfigurimin në të dhënat e sigurisë së informacionit.

Ky është lloji më i lehtë i gabimit për të korrigjuar dhe korrigjuar. Thjeshtësia e saj është se platforma raporton mjaft saktë këtë situatë "Elementi i paracaktuar mungon në të dhëna" dhe është mjaft e qartë se si ta rregullojmë atë.

Kur aksesoni një element që mungon në kodin "Directories.Llojet e Informacionit të Kontaktit. Emaili i Personit të Kontaktit" shfaqet një mesazh

Kur qaseni në një element në kërkesën "VALUE (Direktori. Llojet e Informacionit të Kontaktit. Email i personit të kontaktit)" shfaqet mesazhi i mëposhtëm:

Ky gabim ndodh nëse një element përshkruhet në konfigurim, por elementi nuk shoqërohet me të në bazën e të dhënave.

Për të filluar, le të sqarojmë se kjo situatë nuk është gjithmonë e gabuar. Është mjaft e mundur të përdoren të dhëna të paracaktuara në një lloj logjike programi, e cila për shumicën e përdoruesve mund të mos përdoret. Në këtë rast, për të mos ngatërruar direktoriumin për të gjithë përdoruesit e konfigurimit, është logjike të përcaktohen elementë të paracaktuar në konfigurim, por jo të krijohen ato në të gjitha sistemet e sigurisë së informacionit, por vetëm për ato sisteme të sigurisë së informacionit në të cilat përdoret logjika e kërkuar e konfigurimit. Në këtë rast, programuesi mund të specifikojë veçorinë "Mos përditëso të dhënat e paracaktuara" për direktorinë dhe të krijojë elemente në mënyrë programore kur hyn në funksionalitetin e modulit. Ose lejoni përdoruesin të lidhë në mënyrë të pavarur elementet e paracaktuara të modulit me elementët ekzistues të rregullt.

Gjithashtu, krijimi automatik i elementeve të paracaktuar nuk përdoret kur punoni në modalitetin RIB. Meqenëse elementët e rinj duhet të transferohen nga baza qendrore e të dhënave, dhe jo të krijohen në nyje me UID të ndryshëm.

Ato. Ndonjëherë gabimi është referenca për një element të pakrahasueshëm, jo ​​prania e vetë një elementi të tillë.

Është e nevojshme të analizohet pse elementi nuk u krijua. Ndoshta duhet të krijohet kur ekzekutohet një mënyrë programi. Për shembull, pas përfundimit të një shkëmbimi në RIB. Ose ndoshta është fshirë aksidentalisht.

Nëse logjika parashikon plotësimin e elementeve të paracaktuar jo automatikisht, por në një mënyrë të veçantë, atëherë përpara se të përdorni aksesin me emër " Drejtoritë.Llojet e Informacionit të Kontaktit.Email-i i Personit të Kontaktit"Për të parandaluar një situatë të jashtëzakonshme, këshillohet të kontrolloni që elementi është tashmë në bazën e të dhënave. Nëse elementi mungon, atëherë informoni përdoruesin për këtë dhe shpjegoni se çfarë modaliteti duhet të kryejë për të mbushur elementin. Për një kontroll të tillë , mund të ekzekutoni një pyetje të të dhënave.

Kërkesë = Kërkesë e re; Kërkesë.Text = "ZGJIDH | Llojet e informacionit të kontaktit. Lidhje | NGA | Drejtoria. Llojet e informacionit të kontaktit SI Llojet e informacionit të kontaktit | KU | Llojet e informacionit të kontaktit. Emri i të dhënave të paracaktuara = "" EmailPerson Kontakti"""; Item Is MissingInData = Query.Execute().Empty();

Nëse ky është ende një gabim në të dhënat e bazës së të dhënave, atëherë është e nevojshme të lidheni me një element të paracaktuar të elementit të sigurisë së informacionit. Ato. është e nevojshme t'i shpjegohet sistemit se në cilin element të sigurisë së informacionit duhet të hyjë kodi i programit me këtë emër. Teknikisht, një lidhje është thjesht specifikimi i emrit të një elementi të paracaktuar në pronën "Emri i të Dhënave të paracaktuara" të elementit IS. Për ta instaluar, thjesht ekzekutoni kodin:

2. "Elementi i paracaktuar nuk është unik" - h elementë të dyfishtë të paracaktuar:

Kjo situatë është se disa elementë të sigurisë së informacionit janë bashkangjitur në një element të paracaktuar. Në këtë rast, kur aksesoni një emër të paracaktuar, elementi do të zgjidhet rastësisht. Kjo situatë është gjithmonë e gabuar. Vështirësia e saj është se platforma nuk e raporton atë në asnjë mënyrë. Algoritmet thjesht fillojnë të punojnë gabimisht.

Platforma do të raportojë gabimin "Elementi i paracaktuar nuk është unik" vetëm kur përpiqeni të redaktoni një element dublikatë.

Për sa kohë që askush nuk ka nevojë të modifikojë elementin, askush nuk do të dijë për gabimin.

Dublikata të tilla mund të krijohen, për shembull, nëse RIB përdoret për drejtorinë dhe modaliteti "Përditëso automatikisht" është specifikuar në vetitë për të dhënat e paracaktuara. Në këtë rast, kur kryeni një shkëmbim, një shembull i të dhënave të paracaktuara do të krijohet kur konfigurimi të përditësohet. Një shembull i dytë i elementeve të paracaktuara me të njëjtin emër do të transferohet nga baza e të dhënave qendrore gjatë shkëmbimit.

Gjithashtu, këto dublikatë do të lindin kur përdorni përpunimin e shkëmbimit midis konfigurimeve nëse elementë të ndryshëm të sigurisë së informacionit korrespondojnë me elementë të paracaktuar në baza të ndryshme të dhënash. Në këtë rast, një kopje e të dhënave të paracaktuara ekziston tashmë në bazën e të dhënave, e dyta do të vijë kur ngarkoni të dhënat me një UID të ndryshëm. Nëse jeni duke kryer transferime të dhënash, duhet të vendosni se cilët elementë të bazës së të dhënave konsiderohen parësore dhe t'i përdorni ato në bazën e të dhënave vartëse. Në bazën e të dhënave vartëse, është e nevojshme të zëvendësohet përdorimi i elementeve të vjetër me elementë të bazës së të dhënave kryesore.

Gabime të tilla në bazën e të dhënave mund të identifikohen me një pyetje si:

ZGJIDH Llojet e informacionit të kontaktit. Emri i të dhënave të paracaktuara, sasia (lloje të ndryshme të informacionit të kontaktit. Lidhja) AS numri i të dhënave të paracaktuara nga drejtoria. (Lloje të NDRYSHME kontakti pa Informacion. Lidhje) > 1

Ky pyetje do të kthejë një listë të elementeve të paracaktuara me të cilat shoqërohen më shumë se një element i sigurisë së informacionit.

Nëse elementë të tillë janë të pranishëm, është e nevojshme të hiqni lidhjen me atë të paracaktuar për njërin prej tyre. Ato. Është e nevojshme të përcaktohet pa mëdyshje për sistemin se cilit element të sigurisë së informacionit duhet t'i referohet kodi i programit kur përdoret ky emër. Për ta bërë këtë, thjesht ekzekutoni kodin.

3. Specifikimi i gabuar i një elementi të paracaktuar.

Gabimi është se elementi i paracaktuar korrespondon me një element që nuk ofrohet nga logjika e programit. Gabime të tilla janë më të vështirat për t'u diagnostikuar. Ndryshe nga dy llojet e para, konfigurimi nuk mund të kontrollohet automatikisht për këto gabime. Ato mund të identifikohen vetëm duke analizuar logjikën e punës. Nëse keni dyshime, mund të kontrolloni nëse është duke u përdorur elementi i duhur.

Për ta bërë këtë, thjesht ekzekutoni një nga komandat.

//Përcaktimi i një elementi të sigurisë së informacionit që është i lidhur me Njoftimin e dëshiruar të paracaktuar (Direktoritë. Llojet e Informacionit të Kontaktit. Email i Kontaktit) //Përcaktimi i një elementi të paracaktuar të cilit i është bashkangjitur Njoftimi i përzgjedhur (Lidhja me Elementin. Emri i të dhënave të paracaktuara )

Nëse identifikohen gabime të tilla, është e nevojshme të hiqni lidhjen e gabuar me elementin e vjetër dhe të shtoni një lidhje me elementin e ri. Kodi i funksionimit është i ngjashëm me kodin për korrigjimin e dy llojeve të para të gabimeve.

Epo, shkurtimisht për gabimet gjatë punës së programit ose në modalitetin e konfiguruesit:

“Elementi i paracaktuar nuk i përket<Имя справочника>" - ndodh një gabim kur përpiqeni të shkruani një element të paracaktuar me një emër që nuk përputhet me emrin në konfigurues.

"Objektet jo të paracaktuara nuk mund të kenë rekorde të paracaktuara të pamjes nën-konto" - ndodh një gabim kur përpiqeni të bëni të papërcaktuar një element të një plani llogarish të paracaktuar. Për të eliminuar gabimet, është e nevojshme të hiqni flamurin "Parapërcaktuar" nga çdo linjë nënkontakti elementi.

"Objektet jo të paracaktuara nuk mund të kenë regjistrime të paracaktuara të llojeve kryesore të llogaritjes"- ndodh një gabim kur përpiqemi të bëjmë të padefinuar një element të paracaktuar të planit të llojeve të llogaritjes. Për të eliminuar gabimet, është e nevojshme të hiqni kutinë e zgjedhjes "Të paracaktuara" për çdo rresht të llojit kryesor të llogaritjes së elementit.

"Elementët e paracaktuar nuk janë unikë"- gjenerohet një gabim në konfigurues kur përditësohet baza e informacionit për një lëshim konfigurimi pa modalitetin e përputhshmërisë me 8.3.4. Është e nevojshme të kontrolloni për dublikatë dhe t'i eliminoni ato përpara se të përditësoni.

"Emri i elementit të paracaktuar nuk është unik" - gabimi ndodh kur ka disa elementë të paracaktuar me të njëjtin emër në konfigurim kur përditësohet në platformë8.3.6.2332 dhe më lart. Është e nevojshme të eliminohen dublikatat në konfigurim.

Për të punuar me të dhëna të paracaktuara, unë rekomandoj përpunimin. Mund të kryejë çdo veprim me të dhëna të paracaktuara, dhe gjithashtu mund të kontrollojë konfigurimin në tërësi për praninë e gabimeve të dy llojeve të para (elementë të dyfishuar dhe që mungojnë) në të gjitha objektet e sigurisë së informacionit (drejtoritë, grafikët e llogarive, PVC, PVR) .

Artikujt më të mirë mbi këtë temë