Shkruani emrin e tipit 1s. Përdorimi i Llojeve të Përcaktuara

Sistemi i tipitështë një sistem i veçantë me të cilin organizohen të dhënat e përdorura nga zgjidhjet aplikative. Sistemi i tipit ju lejon të paraqisni informacione të botës reale në terma që janë "të kuptueshëm" për 1C: Enterprise 8.

Sistemi i tipit ofron mundësi të shumta si për përshkrimin e drejtpërdrejtë të logjikës së biznesit të zgjidhjeve të aplikimit ashtu edhe për kryerjen e detyrave të ndërmjetme të përpunimit të të dhënave.

Një përshkrim i sistemit të tipit gjendet në asistentin e sintaksës, në ndihmën e integruar dhe në dokumentacion.

Tipari kryesor i sistemit të tipit është se ka lloje që ekzistojnë në çdo zgjidhje aplikimi. Vetë këto lloje janë të përcaktuara në nivelin e platformës dhe janë gjithmonë të pranishme, pavarësisht nga veprimet e zhvilluesit. Së bashku me to, në një zgjidhje specifike aplikimi, mund të ketë lloje të ndryshme të të dhënave të natyrshme në këtë zgjidhje të veçantë aplikimi. Për lloje të tilla të dhënash, në nivel platforme përcaktohen vetëm rregullat e përgjithshme për krijimin dhe shabllonet e tyre. Dhe lloje specifike të të dhënave krijohen nga platforma bazuar në mënyrën se si zhvilluesi formon dhe modifikon strukturën e zgjidhjes së aplikacionit.

Llojet e të dhënave të përcaktuara në nivel platforme

Grupi i llojeve me të cilat mund të funksionojnë zgjidhjet e aplikacionit është mjaft i larmishëm. Kjo ju lejon të zgjidhni si problemet e përpunimit të të dhënave, ashtu edhe detyrat e paraqitjes së këtyre të dhënave te përdoruesi dhe punës në mënyrë interaktive me të. Ekzistojnë disa kategori kryesore të llojeve të të dhënave.

Llojet primitive

Llojet primitive të të dhënave janë lloje të tilla si Linjë, Numri, datë, Boolean dhe të tjerët. Këto lloje nuk janë diçka e veçantë për 1C:Enterprise 8. Si rregull, lloje të tilla të dhënash ekzistojnë në sisteme të tjera softuerike.

Vlerat e llojeve primitive janë vlera të thjeshta të pandashme në të cilat nuk mund të dallohen përbërësit individualë. Për shembull, vlerat si Numri mund të jetë 1, 8, 15, etj. Për të krijuar një vlerë të një lloji primitiv, duhet ta specifikoni atë në tekstin e programit fjalë për fjalë- identifikues simbolik i vlerës.

Koleksionet e Vlerave Gjenerike

Ekzistojnë gjithashtu lloje të dhënash më komplekse. Për shembull, platforma mbështet një numër llojesh, të cilat janë koleksione të përgjithshme vlerash: Array, Struktura, ListVlerat dhe të tjerët.

Llojet e zakonshme

Për më tepër, platforma zbaton lloje specifike të të dhënave që zbatojnë një ose një tjetër funksionalitet të zgjidhjeve të aplikacionit: Dokument teksti, Dokument tabelor, Vlerat e ruajtjes, Ndërtues i pyetjeve dhe të tjerët.

Quhen edhe llojet e përgjithshme objekte të përbashkëta. Vlerat e këtyre llojeve, ndryshe nga vlerat e llojeve primitive, janë një koleksion vlerash të vetive individuale të një objekti. Prandaj quhen raste të objekteve.

Instancat e objekteve krijohen duke përdorur një operator të veçantë gjuhësor të integruar - I ri.

Llojet e ndërfaqes

Llojet e ndërfaqes ju lejojnë të organizoni ndërveprimin vizual të një zgjidhjeje aplikacioni me përdoruesin. Këto janë kryesisht lloje që lidhen me funksionimin e formave dhe elementeve të tyre.

Llojet e të dhënave të krijuara në një zgjidhje aplikimi

Megjithatë, përveç llojeve të të dhënave që përcaktohen në nivelin e platformës, një zgjidhje specifike aplikacioni mund të përdorë lloje unike të të dhënave që ekzistojnë vetëm në atë zgjidhje specifike të aplikacionit. Për më tepër, platforma do të mbështesë plotësisht punën me këto lloje të dhënash në të njëjtën mënyrë si me llojet që përcaktohen në nivelin e vetë platformës.

Si rregull, shfaqja e llojeve të reja të të dhënave në një zgjidhje aplikacioni shoqërohet me përdorimin e objekteve të konfigurimit të aplikacionit. Prandaj quhen edhe këto lloje llojet e aplikacioneve ose objektet e aplikuara.

Në nivelin e platformës, mbështeten disa klasa (shabllone) të objekteve të aplikacionit, të cilat vetë nuk mund të përdoren në një zgjidhje specifike aplikacioni. Për shembull, mund të listoni klasat e objekteve të aplikacionit si p.sh Drejtoritë, Dokumentacioni, Regjistrat e informacionit, Planet e tipit karakteristik etj.

Për secilën klasë të objekteve të aplikacionit, përcaktohet funksionaliteti bazë që i përgjigjet: llojet e tabelave të bazës së të dhënave që duhet të krijohen për të ruajtur të dhënat, formularët standardë, objektet e gjuhës standarde, grupet e të drejtave, etj.

Një zhvillues, kur krijon një zgjidhje aplikacioni, nuk ka mundësinë t'i përdorë këto klasa drejtpërdrejt, por mund të shtojë në zgjidhjen e tij të aplikacionit një objekt të ri konfigurimi që trashëgon të gjithë funksionalitetin e një klase të caktuar:

Për shembull, një zhvillues mund të shtojë një libër të ri referimi në zgjidhjen e tij të aplikimit Nomenklatura Drejtoritë, ose një dokument të ri Raporti i parave të gatshme, i cili do të trashëgojë funksionalitetin e klasës Dokumentacioni.

Menjëherë pas një shtimi të tillë, lloje të reja të dhënash bëhen të disponueshme për zhvilluesin, përbërja e të cilave përcaktohet nga përkatësia e objektit të konfigurimit në një klasë të caktuar të objekteve të aplikacionit.

Për shembull, pas krijimit të një drejtorie të re Nomenklatura, llojet e mëposhtme të të dhënave bëhen të disponueshme:

  • DirectoryManager.Nomenklatura,
  • DirectoryLink.Nomenklatura,
  • DirectoryObject.Nomenklatura,
  • DirectorySelection.Nomenklatura,
  • Lista e Drejtorive.Nomenklatura.

Sistemi i tipit përshkruan vetëm "strukturën" e përgjithshme të këtij lloji, rregullat me të cilat do të formohen objektet e këtij lloji. Emri specifik i llojit, përbërja e vetive dhe metodave të objektit do të varet nga ajo që zhvilluesi e emërton objektin e konfigurimit dhe cilat, për shembull, detajet dhe pjesët e tabelës i shton atij.

Në të njëjtën kohë, pas krijimit të një regjistri të ri akumulimi Kompania e Shitjes, përbërja e llojeve të reja të të dhënave do të jetë e ndryshme:

  • Menaxheri i shitjeve të Regjistrit të Akumulimit të Kompanisë,
  • RegisterAccumulationSelection.SalesCompany,
  • Regjistrohu Akumulimi List.Kompania e Shitjeve,
  • RegisterAccumulationSetRecords.SalesCompany,
  • Regjistri i Akumulimit Regjistrimi. Shitjet e Kompanisë,
  • Regjistri i Akumulimit Regjistrimi Çelësi.Shitjet e Kompanisë.

Duhet të theksohet përsëri se këto lloje të të dhënave nuk mbështeten në mënyrë origjinale nga platforma dhe ekzistojnë vetëm në një zgjidhje specifike aplikacioni.

Një pikë tjetër që duhet theksuar është më e lehtë për t'u demonstruar me një shembull.

Le të themi se dy drejtori të reja janë krijuar në një zgjidhje aplikacioni: Nomenklatura Dhe Çmimet. Edhe pse të dyja këto objekte trashëgojnë funksionalitetin e klasës përkatëse Drejtoritë, dhe për ta në zgjidhjen e aplikacionit u krijua i njëjti grup i llojeve të të dhënave, tipat "të njëjtë" të të dhënave do të jenë lloje të ndryshme të të dhënave. Për shembull, DirectoryObject.Nomenklatura Lloji i të dhënave.

Hyni në sit si student

Identifikohu si student për të hyrë në materialet shkollore

Gjuha e brendshme e programimit 1C 8.3 për programuesit fillestar: llojet e të dhënave në 1C

Tani ne e dimë se si ta detyrojmë kompjuterin të ekzekutojë komandat tona (duke përdorur si shembull komandën "Raport") dhe si t'u kalojmë disa parametra komandave (teksti i mesazhit që vijon në kllapa pas "Raporto"). Kuptuam gjithashtu se të gjitha komandat janë të ndara me pikëpresje.

Llojet e të dhënave

Një nga detyrat kryesore të programimit është përpunimi i të dhënave, kështu që le të kuptojmë se cilat janë llojet kryesore të të dhënave në gjuhën 1C:

  • Linjë. Një shembull i shkëlqyer i të dhënave të tilla është një citim nga një poezi "Stuhia mbulon qiellin me errësirë". Ju lutemi vini re se të dhënat e tipit String janë gjithmonë të mbyllura thonjëza të dyfishta.
  • Numri. Të gjithë jemi të njohur me llojin e të dhënave. Ne shpesh merremi me të në jetën reale: në punë në ditën e pagesës, dhe më pas në dyqan. Numrat, siç e dini sigurisht, mund të jenë e tërë Dhe thyesore. Një shembull i një numri të plotë: 1000000 dhe një thyese: 3.14. Pjesa thyesore ndahet nga e gjithë pjesa pika. Numrat gjithashtu kanë një shenjë: plus ose minus.
  • datë. Data juaj e lindjes është një shembull i këtij lloji të të dhënave. Ai përfshin vitin, muajin dhe ditën. Për shembull, fluturimi i parë hapësinor me njerëz u zhvillua më 12 prill 1961. Në gjuhën e kompjuterit, këto të dhëna do të duken kështu: " 19610412 ". Mundohuni ta kuptoni vetë pse është kështu. Data është gjithmonë citate të vetme ().

Detyra nr. 6. Shkruani në format kompjuterik (duke përdorur llojin e duhur të të dhënave) përgjigjet për pyetjet e mëposhtme:

  1. Kur u lëshua sateliti i parë artificial?
  2. Cili ishte emri i kozmonautit të parë?
  3. Sa planetë ka në sistemin diellor?

Kontrolloni veten

Bazuar në rezultatet e detyrës nr. 7, mund të nxirret një përfundim interesant: jo vetëm vargjet, por edhe të dhënat e çdo lloji tjetër mund të kalojnë si parametër në komandën Report.

Përpunimin e të dhënave

Tani, më në fund, le t'i përpunojmë këto të dhëna! Çfarë operacionesh mund të kryejmë mbi të dhënat? Varet nga lloji i tyre.

Për shembull, ne mund të lidhim vargjet njëra me tjetrën duke përdorur shenjën e shtimit:

Për shprehje aritmetike më komplekse, përdorni kllapat:

Detyra nr 8. Ekzekutoni shembujt e mëposhtëm në kompjuterin tuaj.

Ky artikull vazhdon serinë e artikujve "Hapat e parë në zhvillimin e 1C". Do të flasë për llojet primitive të të dhënave dhe funksionet më të zakonshme kur punoni me to. Pas leximit të materialit, do të mësoni:

  • Cilat lloje të të dhënave janë primitive?
  • Si mund të punoni me vargje dhe cilat veçori duhet të merren parasysh?
  • Cilat janë hollësitë e punës me shprehjet numerike?
  • Si të përshkruani një datë me një vlerë specifike? Si të vendosni një datë të zbrazët?
  • Si funksionon konvertimi i tipit?
  • Nul dhe i papërcaktuar - cilat janë ato dhe cilat janë ndryshimet?
  • Si të përcaktohet se çfarë lloji është një objekt/ndryshore?

Zbatueshmëria

Artikulli është shkruar për versionin 8.3.4.496 të platformës 1C, kështu që informacioni është gjithashtu i rëndësishëm për versionin aktual të platformës. Sidoqoftë, duhet të theksohet se në versionin 8.3.6.1977 u shtuan funksione të reja për të punuar me vargje. Prandaj, kur përsëritni hapat nga artikulli, mos u habitni nëse në seksionin përkatës të Asistentit të sintaksës shihni disa funksione që nuk shfaqen në pamjen tonë të ekranit. Ne ju rekomandojmë gjithashtu që të njiheni me metodën e re StringWithNumber() të shtuar në platformën 8.3.10.

Llojet primitive të të dhënave dhe disa nga funksionet e tyre

Dallohen llojet e mëposhtme primitive të të dhënave:

Konstantet e vargut

Lloji primitiv i të dhënave Linjë(konstanta e vargut) përbëhet nga karaktere të ndryshme. Linjëështë gjithmonë i rrethuar me thonjëza. Shembull i një konstante të vargut:

Message.Text = “Ka të dhëna bosh”;

ato. atributit i caktohet rreshti "Ka të dhëna bosh". Teksti Objekt Mesazh. Çdo gjë e rrethuar me thonjëza konsiderohet një varg.

Vargu mund të përbëhet nga çdo karakter. Vargjet mund të jenë me shumë rreshta. Në këtë rast, çdo rresht i ri duhet të përcaktohet në thonjëza. Për shembull:

Teksti = "Të dhënat e pavlefshme janë plotësuar"
“Është e pamundur të postosh dokumentin”;

Pikëpresja vendoset vetëm në fund të rreshtit të fundit.

Ekziston një mënyrë tjetër - të kornizoni të gjithë tekstin vetëm me një thonjëza, por çdo rresht i ri duhet të fillojë me një shirit vertikal.

Kjo sintaksë përdoret më shpesh në konfigurime tipike. Në veçanti, në gjuhën e pyetjes. Për shembull:

Kërkesa.Teksti =
"ZGJIDH
| Punonjësit. Emri AS Punonjës,
| Punonjësit.Data e ditëlindjes AS Datalindja
|NGA
| Drejtoria.Punonjësit SI Punonjësit
| KU
| JO punonjës Ky është një Grup”;

Duhet të theksohet se operacioni i mbledhjes është përcaktuar për vargjet. Ky nuk është një veprim aritmetik, ai quhet një operacion bashkimi.

ato. ju duhet të kombinoni, për shembull, dy rreshta, me një shenjë shtesë "+" midis rreshtave:

Tekst = “Të dhënat janë plotësuar gabimisht” + “Është e pamundur të postosh dokumentin”;

Kështu, linjat janë bashkuar. Operacioni i lidhjes është, natyrisht, i zbatueshëm për më shumë vargje. Veprimet e tjera (zbritje, shumëzim, pjesëtim) ​​nuk lejohen për vargjet.

Nëse një fjalë brenda një vargu duhet të mbyllet në thonjëza, atëherë thonjëza brenda vargut duhet të përcaktohet me një thonjëza të dyfishtë. Për shembull:

Teksti = “Gabim në modulin “Moduli i Përgjithshëm1””;

Në këtë shembull, citati i parë fillon vargun. Thonjëzat e dyta dhe të treta pranë njëri-tjetrit tregojnë një thonjëza.

Dhe në fund ka tre thonjëza: thonjëza e fundit mbyll rreshtin, dy të mëparshmet tregojnë thonjëzën.

Operacione të ndryshme të konvertimit të vargut janë të mundshme në vargje, duke përcaktuar karakteret e para të majta, duke përcaktuar disa karaktere djathtas, duke kërkuar për një nënvarg brenda një vargu, etj.

Të gjitha këto funksione janë të disponueshme kudo në konfigurim.

Në asistentin e sintaksës ata janë në seksion Përshkrimi i përgjithshëm i gjuhës së integruarFunksionet e integruaraFunksionet për të punuar me vlera të llojit String.

Ka një numër mjaft të madh funksionesh dhe ato zakonisht janë të mjaftueshme për të punuar me konstante vargu.

Le të shohim një shembull të zgjidhjes së një problemi duke përdorur funksionet e vargut.

Detyrë:

Duhet të zhvillohet një funksion. Një varg arbitrar i kalohet funksionit si parametër. Karakteret në rresht mund të jenë gjithashtu numra.

Një sekuencë shifrash (një ose më shumë), të ndara nga karakteret e tjera me hapësira, përbën një numër të plotë pozitiv.

Për shembull, vargu “72 ABC 6AP 31 54f -22” përmban dy numra të plotë pozitivë: 72 dhe 31. Përveç hapësirave, karaktere të tjera të parëndësishme (si skedat, kthimet e transportit) nuk përdoren. Funksioni duhet të kthejë numrin e numrave të plotë pozitivë.

Ai duhet të jetë i vendosur në një modul aplikacioni të menaxhuar. Është e nevojshme të sigurohet që të thirret pas fillimit të sistemit. Përcaktoni një varg duke përdorur një ndryshore.

Pra, le të hapim modulin e aplikacionit të menaxhuar dhe të zgjedhim nga lista në fushën e përzgjedhjes në panelin e konfiguruesit Moduli mbajtës standard AtSystemStart().

Brenda mbajtësit ne përcaktojmë një variabël Linjë, Për shembull:

Rreshti = “72 ABC 6AP 31 54f -22”;

Sasia = Numri i Numrave Integer (String);

Le të dërgojmë një mesazh për numrin e numrave të plotë:

Raport ("Rreshti përmban " + Numri + " numra të plotë");

Në këtë rast, ndryshorja sasi do të konvertohet në mënyrë implicite në tip Konstante e vargut. Pastaj operacioni i lidhjes do të kryhet në tre vargjet dhe mesazhi do të transmetohet.

Le të përcaktojmë fillimin dhe fundin (d.m.th. shabllonin) e funksionit Numri i numrave të plotë (varg).

Tani le të shohim një nga opsionet e mundshme për zhvillimin e një funksioni Numri i numrave të plotë (varg). Në të njëjtën kohë, do të njihemi me disa funksione të integruara të krijuara për të punuar me vargje.

Para së gjithash, duhet të njiheni me funksionin Kodi i simboleve. Ky funksion merr kodin e karakterit të vendosur në vargun e kaluar në pozicionin me numrin e specifikuar.

Sintaksë:

Kodi i karakterit (,)

Opsione:

(e nevojshme)

(opsionale) - ky është numri i karakterit në rresht, kodi i të cilit dëshironi të merrni. Numërimi i karaktereve në një rresht fillon nga 1.

Vlera e kthimit:
Kodi i karakterit të transmetuar. Kodi kthehet sipas kodimit Unicode.

Ju lutemi vini re se parametri ka një vlerë të paracaktuar prej 1.

Një varg gjithashtu mund të përbëhet nga një karakter. Kështu, është e mundur të përcaktohet kodi 0 dhe kodi 9, dhe kodet e të gjitha shifrave të tjera janë, siç dihet, në intervalin midis tyre.

Le të përcaktojmë variablat përkatëse dhe vlerat e tyre:

Kodi0 = Kodi i Karakterit (“0”);
Kodi9 = Kodi i Karakterit (“9”);

Për të zgjidhur problemin, ne zgjedhim skemën e mëposhtme:

  1. Nëse linja përmban hapësira kryesore ose pasuese në çfarëdo sasie, atëherë do t'i heqim qafe ato me një funksion të veçantë. Më pas do të na interesojnë grupet e personazheve midis hapësirave të brendshme. Nëse grupi përbëhet vetëm nga shifra, atëherë ai është një numër i plotë. Ekziston një funksion i veçantë që mund të përdoret për të përcaktuar pozicionin e hapësirës së parë.
  2. Pasi të keni pozicionin e hapësirës së parë, mund të përdorni një funksion tjetër për të marrë grupin e karaktereve (nënstring) në të majtë të hapësirës.
  3. Le të analizojmë personazhet që përbëjnë grupin dhe të përcaktojmë nëse është një numër i plotë. Numrat e plotë të identifikuar do të përmblidhen në një variabël të veçantë.
  4. Le të shkurtojmë vijën fillestare duke zgjedhur, duke përdorur një funksion tjetër, të gjitha karakteret tani në të djathtë të hapësirës. Kjo hapësirë ​​mund të jetë jo vetëm një, por një seri e tërë hapësirash në një rresht, kështu që në rreshtin e mbetur, përdorni një funksion të veçantë për të hequr qafe të gjitha hapësirat majtas (në një rresht) dhe për t'u kthyer në pikën 2. Ne do të përsërisim hapat nga pika 2 në pikën 4 derisa të arrijmë kushtin që të mos ketë hapësira në rresht. Në këtë rast, vargu i shkurtuar do të përbëjë grupin e fundit të karaktereve të analizuara.

Tani le të shohim funksionet që na duhen për të zgjidhur problemin.

AbbrLP
Sintaksa: AbbrLP()
Opsione: (kërkohet).
Shkurt hapësirat (karakteret jo të rëndësishme) në të majtë të karakterit të parë domethënës në varg dhe në të djathtë të karakterit të fundit domethënës në varg.

Gjej
Sintaksa: Gjej(,)
Opsione: (kërkohet), (kërkohet).
Rikthen pozicionin e karakterit të parë të një nënvargu të gjetur.
Numërimi i karaktereve në një varg fillon nga 1. Nëse vargu nuk përmban nënvargun e specifikuar, atëherë në rastin tonë do të përdorim një hapësirë ​​(“ ”) si nënvarg.

nje luan
Sintaksa: Lev(,)
Opsione: (kërkohet), (kërkohet).
Zgjedh karakteret e para majtas të një vargu. Duke përdorur këtë funksion do të përcaktojmë grupe karakteresh për analizë (nga e majta në hapësirën e parë).

Fortësia
Sintaksa: StrLength ()
Opsione: (kërkohet).
Merr numrin e karaktereve në varg. Ne do ta përdorim atë për të përcaktuar gjatësinë e një vargu.
Funksioni Kodi i simboleve, të cilin do ta përdorim për të identifikuar grupet e karaktereve që janë numra të plotë, u përshkrua më herët.

E drejta
Sintaksa: Djathtas(,)
Opsione: (kërkohet), (kërkohet).
Zgjedh karakteret më të djathta në një varg. Duke përdorur këtë funksion, ne do të zgjedhim pjesën ende të papërpunuar të vargut.

AbbrL
Sintaksa: Shkurtesa ()
Opsione: (kërkohet).
Shkurt hapësirat (karakteret jo të rëndësishme) në të majtë të karakterit të parë domethënës në varg. Ne e përdorim këtë funksion për të hequr hapësirat e mundshme në anën e majtë të pjesës tjetër të vargut.

Më poshtë është një algoritëm i mundshëm për funksionin me komente.

Shprehje numerike

Variablat e moduleve dhe detajet e objekteve të bazës së të dhënave mund të jenë numerike.
Ekziston një kufi shifror për një numër. Për detaje numerike, gjatësia e pjesës së plotë nuk mund të kalojë 32 karaktere.

Saktësia e pjesës fraksionale nuk mund të kalojë 10 shifra. Kur përshkruhet një variabël dhe i caktohet një vlerë numerike, thellësia e bitit të saj nuk regjistrohet askund. Megjithatë, ka edhe kufizime për variablat.

Ndihmësi i sintaksës thotë se thellësia maksimale e lejuar e bitit për një numër është 38 karaktere. Një kufizim i tillë nuk pengon zgjidhjen e asnjë problemi ekonomik, d.m.th. Çdo vlerë monetare mund të përshkruhet duke përdorur këta numra.

Sidoqoftë, nëse ende duhet të përshkruani sasi të mëdha për të zgjidhur disa probleme matematikore, atëherë në teorinë e programimit ekzistojnë algoritme që ju lejojnë të përshkruani numra me çdo dimension bazuar në kufizimet ekzistuese.

Operacionet e aplikueshme për numrat:

  • veprimet e zakonshme aritmetike (-, +, *, /). Shumëzimi dhe pjesëtimi kanë përparësi ndaj mbledhjes dhe zbritjes. Prioritetin më të lartë e kanë kllapat. Ka edhe operatorë unarë + dhe -, përparësia e të cilëve vjen menjëherë pas kllapave;
  • operacioni “mbetja e ndarjes” (%). Për shembull, 12%5=2;
  • funksionet matematikore që mund të përdoren për numrat (funksionet trigonometrike, fuqizimi, rrënja katrore, rrumbullakimi në një vendvlerë të caktuar, zgjedhja e pjesës së plotë të një numri)

Nëse flasim për saktësinë e vlerave numerike, për sa i përket detajeve të bazës së të dhënave, atëherë ka kufizime të natyrshme.

Por përsa i përket variablave, këtu ka një veçanti. Në fakt, mund të operoni me numra shumë të mëdhenj në variabla, por vlerat me një gjatësi të pjesës së plotë prej jo më shumë se 32 karaktere do të ruhen në bazën e informacionit.

Vlerat Boolean

Sa i përket llojit të të dhënave Boolean, ekzistojnë vetëm dy vlera, True dhe False, të cilat mund të merren në mënyra të ndryshme.

Për shembull, mund të përdorni operacione krahasimi midis numrave ose datave. Si rezultat, do të merret një vlerë e caktuar Boolean, e cila në të ardhmen përdoret më shpesh në deklaratat e kushtëzuara dhe operatorët e ciklit.

Literale të tipit Date

Ka dy mënyra për të përshkruar një datë. Njëri prej tyre është përdorimi i një literal. Literalja shkruhet në thonjëza të vetme.

Fillimisht shkruhet viti, pastaj muaji dhe më pas dita.

Nëse është e nevojshme, mund të specifikoni edhe kohën, sepse në sistemin 1C: Enterprise 8, çdo datë përmban datën dhe kohën. Për shembull:

DocumentDate = '20140315121020';

Nëse koha nuk është e specifikuar, parazgjedhja është zero. Ju mund të përdorni çdo ndarës në përshkrimin e datës. Për shembull:

DocumentDate = '15.03.2014';

Mënyra e dytë për të përcaktuar datën është përdorimi i funksionit të kontekstit global Data e (). Në këtë rast, ne kalojmë të njëjtën gjë si parametra në këtë funksion: vit, muaj, ditë të ndara me presje.

Ju gjithashtu mund të specifikoni kohën. Nëse nuk e specifikoni, atëherë do të jetë si parazgjedhje në fillim të ditës.

Në sistemin 1C:Enterprise 8, një datë bosh është fillimi i kalendarit. Opsionet e regjistrimit:

EmptyDate = '00010101';
EmptyDate = Data (1,1,1);

Të dy hyrjet do të japin të njëjtin rezultat dhe kjo datë do të konsiderohet bosh.

Komoditeti i funksionit Data e ()Çështja është se ne mund të kalojmë në të jo vlera specifike, por disa variabla. Kjo do të thotë, ndonjëherë ne ndërtojmë një datë duke mbledhur variabla të ndryshëm.

Operacioni i shtimit është i zbatueshëm deri në datën. Operacioni i shtimit i shton datës numrin e caktuar të sekondave.

Konvertimet primitive të tipit të të dhënave

Në një deklaratë caktimi ku përmblidhen shumë variabla (për shembull, Variabla = A + B + C), konvertimi i llojeve primitive të të dhënave është i mundur. Konvertimi i tipit të të dhënave kryhet në vlerën e tipit të parë të të dhënave.

Kështu, nëse lloji i parë i të dhënave është një varg, atëherë sistemi do të përpiqet ta bëjë të gjithë shprehjen një varg. Nëse lloji i parë i të dhënave është një numër, atëherë sistemi do të përpiqet të marrë një lloj të dhënash numerike.

Dhe kështu, varg + numër = varg. Ndonjëherë një numër mund t'i shtohet një vargu, nëse një vlerë numerike mund të nxirret nga vargu (për shembull, 123 + "456").

Për llojin e të dhënave logjike, zbatohen shprehjet e mëposhtme:

E vërtetë DHE 1 = E vërtetë;
E vërtetë DHE 0 = E gabuar.

Çdo numër më i madh se zero konvertohet në True, 0 konvertohet në False.

Data mund, siç u përmend më herët, t'i shtohet numrit. Datat gjithashtu mund të shtohen në llojin e të dhënave Boolean.

Në këtë rast, e vërtetë konvertohet në 1 dhe e gabuar në 0.

Përveç konvertimit të tipit në operatorë, konvertimi i qartë i tipit është i mundur duke përdorur funksionet e duhura: String (), Numri (), Data (), Boolean ().

TE Linjëçdo lloj të dhënash konvertohet.

Numri mund të merret nga një varg ose nga një Boolean. Konvertimet Boolean: True në 1, False në 0.

Mund të hedhësh një varg te Data nëse përmban një vlerë datë. Për shembull, Data ("20140315"). Siç u përmend më herët, është e mundur të konvertohet sipas pozicionit:

Data e (,).

Mund ta konvertoni numrin dhe vetë vlerën Boolean në Boolean.

Këto funksione mund të përdoren në kodin e programit për të kryer konvertimin e qartë të tipit.

Llojet primitive të të dhënave Number, String, Date dhe Boolean mund të veprojnë si fusha të bazës së të dhënave.

Vlerat null dhe të papërcaktuara

NULL është fjalë për fjalë. Përdoret, si rregull, në pyetjet e bazës së të dhënave kur bashkohen dy ose më shumë tabela.

Janë shënimet që mungojnë në tabelën e dytë që plotësohen me një vlerë NULL. ato. është një lloj vlere që mungon.

Në të ardhmen, gjatë përpunimit të rezultatit që rezulton, kjo duhet të merret parasysh, pasi NULL nuk është zero, por lloji përkatës i të dhënave.

Në mënyrë që një vlerë të përpunohet, NULL duhet të hidhet në një lloj të rregullt të dhënash që mund të nxirret ose përdoret në operacionet aritmetike.

Një vlerë e tipit NULL mund të merret edhe në gjuhën e integruar. Ju mund të përcaktoni një variabël dhe t'i caktoni të njëjtën vlerë NULL. Sidoqoftë, një detyrë e tillë pothuajse nuk përdoret kurrë në kodin e programit.

ato. NULL është me të vërtetë lloji i të dhënave që merret kur punohet me pyetje. Vlera NULL në gjuhën e pyetjes duhet të trajtohet në një mënyrë të veçantë.

Gjegjësisht, krahasimi A=NULL nuk do të funksionojë në nivelin e pyetjes. Megjithatë, në gjuhën e integruar, krahasimi me vlerën NULL do të trajtohet në mënyrë korrekte.

Lloji i të dhënave i papërcaktuar është një vlerë jo bosh e një atributi.

Për shembull, nëse një atribut i drejtorisë ka një lidhje me një direktori tjetër si lloj të dhënash, atëherë vlera e zbrazët e këtij atributi nuk do të jetë e barabartë me të Padefinuar.

Ky lloj (I papërcaktuar) shfaqet, së pari, nëse kemi një variabël të caktuar dhe ai nuk është i inicializuar (lloji i të dhënave nuk është i përcaktuar).

Shembulli i dytë: Lloji i të dhënave të papërcaktuar kthehet nga shumë funksione gjuhësore të integruara nëse veprimi nuk mund të kryhet.

Për shembull, kërkimi i një elementi të drejtorisë sipas emrit nëse një direktori nuk ka një emër të tillë elementi. Metoda FindByName do të kthejë vlerën E papërcaktuar.

Ku E papërcaktuarështë një fjalë kyçe, është e theksuar me të kuqe. Kjo është gjithashtu një fjalë për fjalë, për të shkruar E papërcaktuar nuk ka nevojë të përdorni thonjëza, presje, kllapa, etj.

Nëse ekziston një listë dokumentesh dhe kjo listë është bosh (prandaj nuk ka rreshta në të), atëherë rreshti aktual do të marrë vlerën E papërcaktuar.

Nëse baza e informacionit ka një atribut me një lloj të dhënash të përbërë, atëherë vlera e zbrazët e këtij atributi do të jetë e barabartë me E papërcaktuar.

Por nëse lloji i të dhënave nuk është i përbërë, atëherë vlera e zbrazët do të korrespondojë me vlerën boshe të këtij lloji (për një datë, kjo është sekonda e parë e orës së parë të ditës së parë të muajit të parë të vitit të parë).

NULL dhe të Papërcaktuara janë të dyja llojet dhe vlerat e të dhënave në këto lloje, dhe një dhe vetëm një. Për NULL është vlera NULL, për Padefinuar është e Papërcaktuar.

Lloji i të dhënave Lloji

Përdorimi kryesor i këtij lloji të të dhënave është të krahasojë vlerën e një variabli të caktuar ose atributit të bazës së të dhënave me një lloj specifik.

ato. Në algoritëm, duhet të kuptoni se çfarë lloji është një objekt i caktuar.

Veçanërisht, ky lloj i të dhënave nuk ka një fjalë për fjalë. Nuk mund ta shkruajmë si NULL ose të Padefinuar, por mund ta marrim vlerën e këtij lloji duke përdorur dy funksione Lloji Dhe LlojiVlera.

Për të marrë llojin e ndonjë objekti (mund të jetë një ndryshore, ose një atribut i bazës së të dhënave, ose një atribut i formës), përdoret funksioni LlojiVlera.

Ky funksion i kalon objektit për të cilin dëshironi të merrni llojin e të dhënave.

Ky funksion kthen saktësisht llojin e tipit si vlerën e tij të kthimit.

Në të ardhmen, duhet të krahasohet me çdo lloj interesi. Për shembull:

Nëse TypeValue(Element) = Type (“DirectoryLink.Nomenklature”) Pastaj
Raporti ("Ky është një produkt");
fundNëse;

Si përfundim, le të përmbledhim të gjithë materialin e mbuluar.

Ne shikuam strukturat bazë të gjuhës së integruar 1C, mësuam se si të përdorim variablat dhe operatorët dhe kuptuam pse dhe si të përdorim procedurat dhe funksionet. Vini re se në thelb i gjithë kodi ynë i programit deri në këtë pikë ishte i vetë-mjaftueshëm - ne shkruam gjithçka vetë nga e para dhe përdorëm disa objekte konfigurimi ose gjuhë të integruar në minimum.

Ne do t'i eksplorojmë këto objekte në mënyrë më të detajuar në artikullin vijues, ndaj qëndroni të sintonizuar! ;)

Ne vazhdojmë njohjen tonë me funksionalitetin e ri të 1C: Enterprise, të cilin e filluam në artikullin e mëparshëm të serisë. Pas studimit të materialeve në këtë artikull, do të mësoni:

  • Cilat janë llojet e përcaktuara dhe si t'i përdorim ato?
  • Për çfarë përdoret vetia e konfigurimit "Rolet kryesore"?
  • Si të përdorni ndihmësin për të krijuar mbajtës të ngjarjeve të klientit për një formular?
  • Si dhe pse përdoret ngarkimi i konfigurimit në skedarët XML?

Zbatueshmëria

Artikulli diskuton versionin 8.3.4.437 të platformës 1C:Enterprise, por materialet e tij mund të jenë gjithashtu të dobishme për ata që punojnë në versione më të vjetra.

Si ta bëni më të lehtë zhvillimin në 1C: Enterprise 8.3

Ne vazhdojmë të shqyrtojmë risitë në platformën 1C:Enterprise 8 që synojnë lehtësimin e konfigurimit.

Llojet e përcaktuara

Në platformën 8.3, një objekt i ri është shtuar në degën e konfigurimit "Të përgjithshme" - Llojet e përcaktuara.

Ky është një objekt i veçantë konfigurimi që është krijuar për të përcaktuar një lloj të dhënash që përshkruan një entitet të përdorur shpesh ose ka të ngjarë të ndryshojë kur zbatohet një zgjidhje aplikimi.

Për shembull, merrni parasysh një lloj të përbërë që përfshin një lidhje me drejtoritë "Kundërpalët" dhe "Individët".

Dhe ky lloj, në disa konfigurime të zhvilluara, përdoret shpesh si dimension në regjistrin e informacionit që përshkruan informacionin e kontaktit, si një detaj në dokumentin "Urdhër marrje në dorë", etj.

Gjatë zbatimit të një konfigurimi të tillë, përbërja e këtij lloji mund të ndryshojë - mund të shtohen objekte të reja në të, dhe gjithashtu anasjelltas - llojet e panevojshme mund të përjashtohen.

Nëse në vend të "llopit tonë të përcaktuar" të ri përdorim një tip të përbërë në çdo vend ku përdoret një entitet i tillë, atëherë do të duhet të ndryshojmë përbërjen e llojeve kudo. Është e gjatë, e vështirë, kërkon punë intensive dhe ka mundësi të harrosh disa rekuizita.

Nëse përdorni një lloj të përcaktuar, atëherë gjatë procesit të finalizimit të zgjidhjes së aplikacionit, do të duhet të ndryshohet vetëm përkufizimi i këtij lloji (dhe kodi i programit që përpunon fusha të tilla).

Të gjitha detajet për të cilat lloji i përcaktuar është specifikuar si lloj do të ndryshohen automatikisht.

Këtu është një shembull tjetër i përdorimit të një lloji të përcaktuar.

Për disa detaje ekziston një standard shtypjeje brenda konfigurimit. Për shembull, ne përcaktojmë një sasi si një numër gjatësie 15 me një saktësi prej 3, dhe një shumë si një numër gjatësie 15 me një saktësi prej 2.

Supozoni se një ndërmarrje duhej të mbante regjistrime të mallrave të shtrenjta me saktësi të lartë të peshës së tyre.

Prandaj, na duhej të rrisnim saktësinë e detajeve për të llogaritur sasinë në 4 shifra dhjetore. Këto ndryshime duhet të bëhen njëkohësisht në të gjitha detajet e dokumentit dhe burimet e regjistrit.

Kjo nuk është një detyrë e vështirë, por është shumë punë intensive dhe kërkon kujdes dhe këmbëngulje të madhe të zhvilluesit.

Kur krijoni një lloj të ri të përcaktuar, ju duhet vetëm të specifikoni llojin e tij. Pastaj, kur krijoni detajet e dokumentit dhe regjistroni burimet, mund të zgjidhni një lidhje me llojin e krijuar të përcaktuar.

Kjo qasje na lejon të garantojmë të njëjtin lloj të dhënash (të njëjtën gjatësi, saktësi, të njëjtën përbërje për fushat e një lloji të përbërë, etj.) në të gjitha vendet ku përdoret.

Pastaj, nëse duhet të ndryshoni llojin e të dhënave të të gjitha detajeve, nuk keni nevojë të korrigjoni manualisht secilin atribut veç e veç, mjafton të bëni ndryshime në llojin e përcaktuar përkatës.

Një tip i përcaktuar mund të krijohet si një tip i përbërë. Megjithatë, ka kufizime në përdorimin e këtij objekti konfigurimi. Kështu, lloji që përcaktohet nuk mund të jetë pjesë e llojit të vlerës së planit tip karakteristik, dhe gjithashtu nuk mund të jetë pjesë e tipit të të dhënave të përbëra të një atributi tjetër.

Vini re se në versionin e platformës 8.3.5, mundësitë për përdorimin e llojeve të përcaktuara u rritën duke zgjeruar grupin e llojeve që mund të jenë pjesë e një lloji të përcaktuar.

Nuk pati ndryshime të mëtejshme në punën me llojin e përcaktuar deri në versionet aktuale të platformës 8.3.10/8.3.11.

Vetia e konfigurimit "Rolet kryesore"

Në platformën 8.2, elementi i konfigurimit të rrënjës kishte veçorinë "Roli primar", në të cilën zhvilluesi përcaktoi rolin që do të përdorej nëse nuk do të kishte përdorues në bazën e informacionit.

Në platformën 8.3, u bë e mundur të specifikohen role të shumta që do të përdoren për të përcaktuar të drejtat e aksesit kur lista e përdoruesve është bosh. Në përputhje me rrethanat, prona u riemërua "Rolet kryesore".

Për ta zmadhuar, klikoni në imazh.

Krijimi i mbajtësve të ngjarjeve të klientit të formularit

Kur konfiguroni një aplikacion të menaxhuar, zhvilluesi duhet të monitorojë me kujdes kontekstin e ekzekutimit të kodit duke përdorur direktivat e duhura të paraprocesorit.

Për shkak se një grup i kufizuar i llojeve dhe metodave të të dhënave disponohen te klienti, zhvilluesi shpesh duhet të krijojë një procedurë klienti nga e cila do të transferojë kontrollin te serveri.

Në platformën 8.3, u shfaq një asistent për krijimin e mbajtësve për ngjarjet e formës së klientit.

Për ta zmadhuar, klikoni në imazh.

Tani zhvilluesi nuk ka nevojë të krijojë manualisht një metodë serveri dhe të specifikojë thirrjen e tij brenda një procedure klienti, por mund të përqendrohet tërësisht në zbatimin e logjikës së aplikimit të sistemit.

Ngarkimi i konfigurimit në skedarë

Një tjetër risi e platformës 8.3 është aftësia për të ngarkuar të gjithë konfigurimin në disk në formën e një grupi skedarësh të një strukture të caktuar.

Konfigurimi ngarkohet gjithmonë në tërësi, pa mundësinë e filtrimit të objekteve të ngarkuara.

Për të ngarkuar konfigurimin në skedarë, duhet të zgjidhni Konfigurimi – Ngarko konfigurimin në skedarë në meny dhe në dialogun që hapet, zgjidhni direktorinë në të cilën do të ruhen skedarët.

Objektet e konfigurimit ngarkohen si një grup skedarësh XML. Modulet dhe paraqitjet e tekstit ruhen si skedarë TXT. Fotografitë nga konfigurimi ruhen si skedarë imazhi (BMP, PNG, etj.). Informacioni i ndihmës ngarkohet në skedarët HTML.

Për ta zmadhuar, klikoni në imazh.

Siç mund ta shihni, skedarët që rezultojnë kanë përdorur zakonisht formate universale. Ekziston një numër i madh i produkteve të ndryshme softuerike për redaktimin e tyre.

Ju gjithashtu mund të përdorni sisteme të kontrollit të versioneve të palëve të treta. Ato ju lejojnë të ruani disa versione të të njëjtit dokument, të ktheheni në versionet e mëparshme nëse është e nevojshme dhe të përcaktoni se kush bëri një ndryshim të veçantë dhe kur.

Skedarët e redaktuar mund të ngarkohen përsëri në konfigurim duke përdorur artikullin e menysë Konfigurimi – Ngarkoni konfigurimin nga skedarët.

Puna me funksionalitetin e ri të ngarkimit/shkarkimit është gjithashtu e disponueshme duke përdorur parametrat e linjës së komandës LoadConfigFromFiles dhe DumpConfigToFiles. Për shembull, si kjo:

"c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe" DESIGNER /F "X:\Platform8Demo" /N "Administrator" /DumpConfigToFiles "X:\1\"

Më parë, në platformën 8.2, ekzistonte një mekanizëm për ngarkimin/shkarkimin e skedarëve të konfigurimit, i cili lejonte ngarkimin/shkarkimin selektiv të disa vetive të objekteve të konfigurimit (modulet, paraqitjet dhe informacionet e referencës).

U vu re se si parazgjedhje komandat "Ngarko skedarët e konfigurimit" dhe "Ngarko skedarët e konfigurimit" përjashtohen nga konfiguruesi në platformën 8.3.

Megjithatë, duke personalizuar menunë kryesore, mund t'i shfaqni këto komanda në meny dhe t'i përdorni ato.

Mekanizmi i ri për ngarkimin e konfigurimeve në skedarë ngarkon gjithmonë të gjitha të dhënat e konfigurimit, aftësia për të konfiguruar objektet për ngarkim nuk ofrohet, duke siguruar kështu integritetin e konfigurimit.

Format dhe ndërfaqet e rregullta ngarkohen në formë binare (të brendshme) dhe nuk mund të modifikohen. Konfigurimi i ofruesit gjithashtu nuk synohet të modifikohet.

Objektet e mbetura ngarkohen në skedarë të formateve universale. Në thelb, mekanizmi është i fokusuar në aplikacionin e menaxhuar.

Mekanizmi i ri i siguron zhvilluesit mundësinë për të përpunuar automatikisht konfigurimin duke e nisur konfiguruesin në modalitetin e grupit.

Gjithashtu tani konfigurimi mund të modifikohet nga softuer i jashtëm duke përdorur, për shembull, formatin XML.

Gjatë shkarkimit, kryhet përpunim shtesë i konfigurimit: lidhjet e ngrira fshihen, informacioni i papërdorur gjithashtu nuk shkarkohet (për shembull, ndihmë për një gjuhë që nuk ekziston).

Dhe kur ngarkoni një konfigurim, kontrollohet integriteti i tij, nuk lejohet ngarkimi i skedarëve me identifikues jo unik, objekte meta të dhënash, emra të pasaktë të tipit të të dhënave, etj.

Vini re se që nga versioni 8.3.7, është shfaqur një format i ri i ngarkimit, i cili quhet "hierarkik". Formati i vjetër u bë i njohur si "linear". Zgjedhja e formatit është e disponueshme në dritaren e ngarkimit të skedarit:

Duke filluar me versionin 8.3.11, formati "hierarkik" u bë i vetmi i disponueshëm për përzgjedhje gjatë ngarkimit interaktiv:

Nëse përdorni këtë funksionalitet, ju rekomandojmë:

  • së pari, përdorni një format ngarkimi "hierarkik";
  • së dyti, përdorni një platformë jo më të ulët se versioni 8.3.8+, sepse duke filluar me të, shpejtësia e ngarkimit/ngarkimit të skedarëve XML është rritur ndjeshëm.

Në versionin 8.3.10, filloi të mbështetej ngarkimi i pjesshëm i konfigurimit në skedarët XML. Si rezultat i kësaj, u bë e mundur përdorimi i ngarkimit të konfigurimit në XML në lidhje me Git.

Llojet e përcaktuara janë një objekt i ri i meta të dhënave 1C që u shfaq në versionin 8.3 të platformës. Objekti është i natyrës ndihmëse. Le të shqyrtojmë se cilat janë llojet e përcaktuara dhe detyrat që mund të zgjidhë ky objekt.

Të përcaktuara janë llojet e reja të të dhënave, grupi i të cilave përcaktohet nga zhvilluesi i zgjidhjes së aplikacionit. Ai përbëhet nga disa lloje të vlefshme. Ky lloj i të dhënave mund të jetë lloji i çdo atributi të konfigurimit, përveç vetë llojit të përcaktuar dhe objektit " ".

Merrni 267 mësime video në 1C falas:

Cilësimet

Nuk ka shumë cilësime për këtë objekt:

ato. Përveç emrit dhe sinonimit në 1C, llojet e përcaktuara kanë vetëm një grup llojesh objektesh.

Një shembull i përdorimit të llojeve të përcaktuara në 1C 8.3

Një larmi e madhe aplikacionesh mund të gjenden për këtë objekt.

Shembuj të përdorimit:

  • mund të përshkruani në detajet e konfigurimit që i referohen të dhënave që do të përcaktohen kur fragmenti të jetë i ngulitur në një konfigurim specifik;
  • caktoni një lloj të dhënash të përcaktuara për një grup të caktuar të abonimeve të ngjarjeve, kur grupi i llojeve ndryshon, burimi do të ndryshojë në mënyrë dinamike për të gjitha abonimet;
  • përdorni si një alternativë ndaj planit të tipave të karakteristikave

edhe me shume.

Nëse po filloni të mësoni programimin 1C, ju rekomandojmë kursin tonë falas (mos harroni