Shpejt. Drejtoritë vartëse. Shpejt Si të krijoni një drejtori vartëse 1c

Klyuev V.V.

http://prof1c.kklab.ru

Drejtoritë vartëse

Me shumë mundësi, tashmë keni vënë re në mënyrë të përsëritur në konfigurimet e zakonshme tipike që drejtoritë janë të ndërlidhura, kur kur zgjidhni një element drejtorie (disaksioni 1), vlera e një drejtorie tjetër (disaksioni 2) "filtrohet" nga kjo vlerë - domethënë vlerat janë zgjedhur që i përkasin vetëm elementit aktual të drejtorisë; për shembull, kjo është Drejtoria "Division", pronari i së cilës është Drejtoria "Organizimi".

Për të kuptuar menjëherë thelbin e asaj që po ndodh, le të shohim se çfarë ndodh në praktikë. Për ta bërë këtë, mund të krijoni një konfigurim bosh nga e para, ose të shkoni te çdo kopje ekzistuese e bazës së informacionit dhe të krijoni 2 drejtori në konfigurues.

Drejtoria1 dhe Drejtoria2. Në direktorinë2, shkoni te skeda "Pronarët" dhe zgjidhni pronarin - "Directory1", shihni siç tregohet në figurë.

Tani, kur krijoni elementë në "Directory2", sistemi do t'ju kërkojë të futni pronarin e direktoriumit1. Ekziston një opsion - Përdorimi i vartësisë - kur vartësia vendoset në Elemente, grupe ose grupe dhe elemente.

Duket se gjithçka është e thjeshtë, por lindin probleme për përdoruesit. Kur hapni "Directory 2", përdoruesi i sheh të gjithë elementët në një rend krejtësisht të pakuptueshëm, dhe përveç kësaj, nëse keni punuar me konfigurime standarde, mund të keni vënë re se direkt në drejtorinë "Divisions" nuk e specifikoni askund pronarin, por kur hapni drejtorinë, mund të zgjidhni organizatën dhe, në varësi të kësaj, të merrni elementë në varësi të një ose një organizate tjetër; Për më tepër, kur krijoni një artikull të drejtorisë "Ndarjet", si parazgjedhje do të merrni pronarin që keni zgjedhur në formën e listës së ndarjeve.
Pra, le të fillojmë dhe të krijojmë një "Formular Listë" për "Directory2" tonë, tani për tani sigurojeni këtë në 1C pa bërë asnjë ndryshim, më vonë ne do të rregullojmë formën e krijuar nga projektuesi.
Në "Directory2" shkoni te skeda Forms dhe shtoni (+) një Formular të ri Lista e Drejtorive dhe klikoni Finish.

Le të krijojmë një atribut të formës me llojin e të dhënave "Directory1.Link", me emrin "SelectionDirectory1" dhe tërhiqni këtë atribut në formë, vendosim titullin "Directory1".


Tani, në mënyrë që "kjo mrekulli" të funksionojë, ju duhet të shkruani kodin që do të kryejë një përzgjedhje kur zgjidhni një Element të Drejtorisë1.

8.2, 8.3 Format e menaxhuara

Për të shfaqur në formën e një liste direktorie vetëm elementet që na nevojiten për elementin e zgjedhur të Directory1, duhet të bëjmë një përzgjedhje në mënyrë programore - sipas elementit të zgjedhur. Për ta bërë këtë, do të përdorim procedurën e paracaktuar të kontrollit SelectionDirectory1. dhe shkruani kodin që kryen detyrën e specifikuar.
Në krye, zgjidhni "Selection Directory1", kliko me të djathtën dhe zgjidhni "Properties", në dritaren që shfaqet, gjeni pronën "OnChange" dhe klikoni në xham zmadhues, duke shkuar në modulin e formularit; krijohet automatikisht procedura “Selection Directory1OnChange(Element)”.

Në procedurë, shkruani tekstin e mëposhtëm:

& Në listën e drejtorisë së përzgjedhjes së procedurës së klientit1OnChange(Element). Përzgjedhja. Elementet. Qartë() ; // Elementi i përzgjedhjes = Lista. Përzgjedhja. Elementet. Shto(Lloji(" Përzgjedhja e elementit të të dhënave Layout" ) ); Elementi i përzgjedhjes. LeftValue = Fusha e re e përbërjes së të dhënave (" Pronari "); Elementi i përzgjedhjes. Pamja e krahasimit = Pamja e krahasimit të përbërjes së të dhënave. E barabartë; Elementi i përzgjedhjes. Përdorimi = i vërtetë; Elementi i përzgjedhjes. RightValue = Drejtoria e përzgjedhjes1; Elementi i përzgjedhjes. Mënyra e shfaqjes = Elementi i modalitetit të shfaqjes ndërtimDataComposition.I padisponueshëm;EndProcedure

8.2 Forma të rregullta


Kur ndërtoni formularë, gjithçka është e njëjtë, vetëm format duhet të krijohen si të rregullt; format e menaxhuara nuk funksionojnë në një aplikacion të rregullt.
Dallimi do të jetë në procedurën e përzgjedhjes për elementin në formularin e listës dhe krijimin e rekuizitave.
Për të shtuar detaje në një formular të rregullt, klikoni butonin

Procedura Referenca1OnChange(Element)This Form. Përzgjedhja. Pronari. Vlera = Drejtoria1. Lidhje; Ky Formular. Përzgjedhja. Pronari. Përdorimi = E vërtetë; Ky Formular. Elementet e formës. Lista e Drejtorive. Cilësimet e përzgjedhjes. Pronari. Disponueshmëria = E rreme ; //(?) Procedura e Fundit

Rreshti i parafundit(?) - ne ndalojmë ndryshimin e përzgjedhjes kur përdoruesi hap parametrat e përzgjedhjes - vetëm përmes elementit të kontrollit!

Video (pa zë - gjithçka është e qartë pa zë)

Cilat janë drejtoritë 1C dhe çfarë roli luajnë ato në 1C - për këtë dhe shumë më tepër në artikullin tonë të ri.

Drejtoritë në 1C krijohen për të ruajtur informacionin që do të përdoret për të punuar në dokumente të tjera në 1C, për shembull, raporte. Rezulton se puna në sistemin 1C kryhet sipas librave të referencës, dhe i gjithë informacioni që ruhet në to quhet normativ dhe referencë.

Për çfarë synohen drejtoritë 1C?

Çdo produkt do të shërbejë si një shembull i qartë për shpjegim. Për lëvizjen e tij në ndërmarrje (blerje, ruajtje në depo, instalim, shitje, etj.), Përpilohen dokumente të veçanta, për shembull, formularë, fatura, etj. Në një situatë normale, të gjitha këto dokumente do të plotësohen manualisht, por nëse përdoret një sistem i automatizuar, kjo jo vetëm që do të kursejë kohë, por do të parandalojë edhe shumë gabime që të ndodhin.

Një sistem i automatizuar ju lejon të krijoni një listë një herë, e cila më pas përfshin pikërisht këtë produkt. Nëse është e nevojshme, gjithmonë mund të tregoni të dhënat, karakteristikat dhe informacionet e tjera të nevojshme në përshkrim. Rezulton se drejtoritë 1C janë lista të gatshme me të dhëna për produktet, klientët, shërbimet, etj. Nëse është e nevojshme, listat mund të ndryshohen dhe plotësohen.

Ku ndodhen drejtoritë 1C?

Në mënyrë tipike, ndërfaqja për të punuar në 1C Enterprise zhvillohet nga një programues, që do të thotë se drejtori të ndryshme mund të vendosen në menu krejtësisht të ndryshme.

Në klientin e trashë, një përdorues me të drejta administratori është në gjendje të hapë çdo dokument 1C dhe ka qasje në çdo drejtori. Për ta bërë këtë, duhet të hapni menunë "operacionet", klikoni në "drejtoritë" dhe zgjidhni atë që ju nevojitet nga lista e dhënë.


Nëse shikoni në klientin e hollë, ekziston gjithashtu një menu e ngjashme atje. Quhet "të gjitha funksionet". Për sa i përket funksionimit të tij, është i ngjashëm me menunë "operacione".

Në modalitetin e konfiguruesit, qasja në të gjitha drejtoritë është e disponueshme përmes degës së konfigurimit. Nga atje mund të punoni me çdo drejtori, të personalizoni shabllonin e tij, ta ndryshoni atë, etj. Për të filluar, klikoni dy herë mbi të me miun.

Çfarë lloji të drejtorive 1C duken ato?

Kur hapni drejtorinë 1C 8, një formular në formën e një liste hapet para jush. Për lehtësi, listat mund të grupohen sipas karakteristikave dhe karakteristikave të caktuara.


Kur hapni një grup, një listë me të gjithë elementët shfaqet para jush. Dhe pasi të klikoni në vetë elementin, do të bëhet i disponueshëm një formular drejtorie, fushat në të cilat mund të plotësohen dhe ndryshohen.

Më shpesh në 1C Enterprise ekzistojnë dy fusha të nevojshme për drejtoritë:

    Emri i drejtorisë.

Ato janë krijuar për të ndihmuar në dallimin e një elementi nga një tjetër. Ndonjëherë programuesit i çaktivizojnë këto opsione, por kjo ndodh jashtëzakonisht rrallë.


Fusha "kodi" mbyllet më shpesh nga redaktimi nga përdoruesit (kërkohen të drejta të veçanta aksesi) dhe vlera e saj gjenerohet automatikisht.

Nomenklatura në 1C 8.3 nënkupton materiale, produkte gjysëm të gatshme, pajisje, shërbime, paketim të kthyeshëm, veshje pune, etj. Të gjitha këto të dhëna ruhen në drejtorinë e Nomenklaturës. Ju mund ta arrini atë nga seksioni "Direktoritë", nënseksioni "Mallrat dhe Shërbimet", artikulli "Nomenklatura"

Do të shihni një listë të pozicioneve të drejtorisë që ka një strukturë hierarkike me shumë nivele.

Në këtë artikull do të hedhim një vështrim hap pas hapi në të gjitha udhëzimet për plotësimin fillimisht të artikujve në 1C 8.3 duke përdorur një shembull

Për lehtësinë e përdorimit të këtij libri referimi, Kontabiliteti 1C përdor grupe (dosje). Ata kombinojnë nomenklaturën që ka karakteristika të përbashkëta. Në secilin grup, nga ana tjetër, është e mundur të krijohen nëngrupe (të ngjashme me sistemin e skedarëve në një kompjuter). Numri i niveleve të hierarkisë përcaktohet nga programuesi, por fillimisht nuk ka kufizime.

Le të krijojmë një grup të ri. Në formën e listës së drejtorisë "Nomenklatura", klikoni në butonin "Krijo grup".

Specifikoni emrin e grupit që do të krijohet. Mund të plotësoni edhe llojin e tij, por nuk është e nevojshme.

Siç mund ta shihni në figurën më poshtë, grupi që krijuam u vendos në "Materiale". Nëse duhet ta zhvendosni në një grup tjetër ose në rrënjë, hapni menunë e kontekstit dhe zgjidhni "Lëviz në grup". Do të hapet një dritare ku do t'ju duhet të specifikoni një vendndodhje të re.

Krijimi i një artikulli të ri

Le të kalojmë në shtimin e vetë nomenklaturës. Për ta bërë këtë, në formën e listës së drejtorive, klikoni në butonin "Krijo". Një kartë e artikullit të ri do të hapet para jush.

Plotësoni fushën "Emri". Vlera në fushën "Emri i plotë" do të futet automatikisht. Ju lutemi vini re se emri i plotë shfaqet në raporte, format e printuara të dokumenteve, etiketat e çmimeve, etj. Fusha "Emri" përdoret për kërkim të përshtatshëm të artikujve në program.

Nëse është e nevojshme, plotësoni detajet e mbetura:

  • Fushat "Lloji i artikullit" dhe "Përfshirë në grup" plotësohen automatikisht nga të dhënat e grupit në të cilin është krijuar artikulli i ri. Ato mund të ndryshohen nëse është e nevojshme.
  • Vlera në fushën "Njësi" është njësia e ruajtjes për bilancet e këtij artikulli.
  • Shkalla e taksës e specifikuar në detajet “% TVSH” mund të ndryshohet, nëse është e nevojshme, gjatë krijimit të dokumenteve.
  • "Çmimi i shitjes" tregohet si parazgjedhje në dokumentet e shitjes. Ky cilësim mund të ndryshohet duke klikuar mbi lidhjen "?" pranë kësaj fushe.
  • Në seksionin "Prodhimi", mund të tregoni artikullin e kostos për një artikull të caktuar dhe specifikimin e tij (për produktet e gatshme), me fjalë të tjera, përbërjen.
  • Në varësi të specifikave të nomenklaturës, plotësohen seksionet e mbetura, si "Produktet e alkoolit" dhe "Mallrat e importuara".

Pasi të keni plotësuar kartën për artikullin që po krijoni, duhet ta shkruani atë.

Cili është lloji i artikullit në 1C 8.3 dhe si t'i konfiguroni ato

Për të konfiguruar llojet e nomenklaturës, klikoni në lidhjen përkatëse në formën e listës së drejtorisë "Nomenklatura".

Llojet e nomenklaturës janë të nevojshme për të ndarë artikujt. Çdo lloj mund të caktohet i veti. Është shumë e rëndësishme të shmangni praninë e dublikatave në këtë direktori, të cilat mund të çojnë në funksionim të gabuar të llogarive të kontabilitetit të artikujve.

Kur instaloni një konfigurim standard nga furnizuesi, kjo direktori do të plotësohet tashmë me llojet kryesore të artikujve. Nëse lloji i artikullit është shërbim, mos harroni të vendosni flamurin e duhur gjatë krijimit të tij.

Llogaritë e kontabilitetit të zërave në 1C 8.3

Për të gjeneruar regjistrime kontabël, duhet të konfiguroni llogaritë e kontabilitetit. Kjo mund të bëhet nga forma e listës së drejtorisë "Nomenklatura" duke klikuar në lidhjen "Llogaritë e Kontabilitetit të Artikujve".

Në konfigurimin standard të 1C Accounting 3.0, ky regjistër tashmë është i mbushur. Por nëse është e nevojshme, mund të rregullohet me dorë.

Llogaritë e kontabilitetit mund të konfigurohen:

  • sipas një artikulli specifik të nomenklaturës;
  • sipas grupit të nomenklaturës;
  • sipas llojit të nomenklaturës;
  • sipas depove;
  • sipas llojit të magazinës;
  • sipas organizatës;
  • në të gjithë nomenklaturën, duke specifikuar një lidhje boshe si vlerë.

Nëse llogari të ndryshme kontabël janë konfiguruar për një artikull specifik dhe për të, atëherë llogaria do të merret nga artikulli. Në raste të tilla, llogaritë e konsoliduara kanë përparësi më të ulët.

Vendosja e çmimeve të artikujve

Një artikull mund të ketë disa çmime. Ato ndryshojnë në lloje, si çmimi me shumicë, çmimi me pakicë etj.

Shkoni te karta e elementit të drejtorisë "Nomenklatura" dhe ndiqni lidhjen "Çmimet".

Një listë do të hapet para jush, në të cilën mundeni për një lloj specifik në një datë të caktuar. Thjesht tregoni çmimin në kolonën përkatëse dhe më pas klikoni në butonin "Regjistro çmimet". Do të krijohet automatikisht një dokument për përcaktimin e çmimit të artikullit dhe do të shihni një lidhje me të në këtë listë.

Shikoni edhe videon rreth nomenklaturës:

Spitali psikiatrik. Një idiot në tjetrin:
-Të pëlqeu historia ime që të dhashë për të lexuar dje?
-Po, por disi gjithçka është e turbullt dhe ka shumë personazhe.
Doktori hyn:
-Pra, idiotë, kush më vodhi librin e telefonit?...

Qëllimi i drejtorive
Drejtoria është një listë e vlerave të mundshme të një atributi të veçantë. Drejtoritë përdoren në rastet kur është e nevojshme të eliminohet futja e paqartë e informacionit.Për shembull, që blerësi, shitësi, magazineri, drejtori të kuptojnë se për çfarë produkti po flasim, të gjithë duhet ta quajnë njësoj. Dhe në këtë rast, nevojitet një libër referimi. Zakonisht në një kompani tregtare ajo ka formën e një liste çmimesh dhe nëse një drejtori i tillë ruhet në një kompjuter, atëherë në të futet i gjithë gama e mundshme e mallrave me të cilat punon shoqëria tregtare.

Sistemi 1C: Enterprise ju lejon të mbani një numër pothuajse të pakufizuar të drejtorive të nevojshme. Çdo drejtori është një listë e objekteve homogjene: punonjës, organizata, mallra, etj. Çdo objekt i tillë quhet elementi i drejtorisë.

Nga këndvështrimi i përdoruesit, duhet të kihet parasysh se në Konfigurator nuk është vetë drejtoria që krijohet si një listë vlerash, por zhvillohet një shabllon për drejtorinë, shabllonin e tij. Gjatë procesit të konfigurimit, përshkruhet struktura e informacionit që do të ruhet në drejtori, zhvillohet një ekran dhe, nëse është e nevojshme, një paraqitje e printuar e drejtorisë dhe specifikohen tipare të ndryshme të "sjelljes" së tij.

Atributet e drejtorisë

Si detaje të detyrueshme, çdo drejtori ka Kodi Dhe Emri. Kodi i elementit të drejtorisë mund të jetë ose numerik ose tekst. Sistemi 1C: Enterprise ofron mundësi të bollshme për të punuar me kodet e elementeve të drejtorisë: caktimi automatik i kodeve, kontrolli automatik i unikitetit të kodit dhe të tjera.

Përveç kodit dhe emrit, çdo informacion shtesë në lidhje me një element drejtorie mund të ruhet në drejtoritë e sistemit 1C:Enterprise. Për të ruajtur një informacion të tillë në drejtori, mund të krijohet një listë detajet. Duke përdorur mekanizmin e detajeve të drejtorisë, është e lehtë të organizosh, për shembull, një skedar punonjësi.Për shembull, një drejtori Punonjësit pothuajse me siguri do të ketë atributet Titulli i punës, Paga dhe të tjerët.Kompania 1C parashikoi programuesit dhe prezantoi të gjithë librat e referencës dy atribute të përcaktuara tashmë: Kodi Dhe Emri. Në të vërtetë, pothuajse çdo objekt i jetës reale përmban këto atribute. Për shembull, për punonjësit kodi është numri i personelit, dhe emri është mbiemri, emri, patronimi (emri i plotë).

Llojet e të dhënave

Për çdo atribut direktoriumi, duhet të specifikoni llojin e të dhënave të tij, për shembull, " numri", "linjë", "datë"(në versionin 8.0 ekziston gjithashtu një lloj Boolean - E vërtetë ose e gabuar). Këto janë lloje bazë, por mund të specifikoni gjithashtu lloje komplekse të dhënash. Për shembull, një atribut Titulli i punës ka një lloj të dhënash Pozicionet. Në këtë rast, vlerat e këtij atributi do të zgjidhen nga drejtoria Pozicionet. Kështu realizohet lidhja më e thjeshtë ndërmjet drejtorive, kur vlerat e atributeve të një drejtorie zgjidhen nga një drejtori tjetër.

Drejtoritë hierarkike

Lista e elementeve të drejtorisë në sistemin 1C: Enterprise mund të jetë me shumë nivele. Në këtë rast, të gjitha linjat e direktoriumit do të ndahen në 2 lloje: elemente të direktoriumit "vetëm" dhe grupe libër referimi. Grupet ju lejojnë të lëvizni në nivelet më të ulëta të një drejtorie me shumë nivele. Përdorimi i drejtorive me shumë nivele ju lejon të organizoni futjen e informacionit në drejtori me nivelin e kërkuar të detajeve. Elementet dhe grupet e elementeve në një direktori me shumë nivele mund të transferohen nga një grup në tjetrin.

Drejtoritë vartëse

Mund të krijohet një marrëdhënie midis drejtorive vartësia. Në termat e bazës së të dhënave relacionale, vendoset një marrëdhënie një me shumë midis tabelave. Në këtë rast, çdo element i drejtorisë vartëse do të shoqërohet me një nga elementët e drejtorisë së pronarit. Ndonjëherë mund të themi se elementet e një drejtorie i përkasin elementet e tjetrit. Për shembull, sistemi mund të ketë një direktorium Tax Benefits. Atëherë mund të bëhet vartësit Punonjësit e Drejtorisë. Do të thotë se "Punonjësi zotëron përfitime tatimore".

Drejtoria Punonjësit

Drejtoria Përfitimet tatimore

  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovich
  • Svetlov Mikhail Petrovich
  • Tsvetkov Anton Vasilievich

( pronar Petrov Petr Petrovich)

  • Përfitimet për veteranët
  • Përfitim për fëmijët
  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovich
  • Svetlov Mikhail Petrovich
  • Tsvetkov Anton Vasilievich

( pronar Svetlov Mikhail Petrovich)

  • Përfitim për afganët

Pjesët e tabelës (vetëm versioni 8.0)

Në versionin 8.0, u bë e mundur që një element direktorie të kishte disa pjesë tabelare. Rekomandohet përdorimi i kësaj veçorie për të pasqyruar informacionin që lidhet me një element të caktuar, por që nuk ka entitetin e vet të objektit (për të cilin rekomandohet krijimi i një drejtorie vartëse). Për shembull, për referencë Për Produktet, mund të krijohet seksioni tabelor i Njësive të Matjes; për drejtorinë e punonjësve, seksionet tabelare të Arsimit dhe Përbërjes së Familjes mund të krijohen. Puna me pjesë tabelare është e ngjashme me punën me drejtoritë vartëse, përveç se pjesët tabelare nuk mund të jenë tipe, që do të thotë se nuk do të jetë më e mundur të krijohet një atribut i llojit Education.

Krahasimi i drejtorive me objekte të tjera

Nje objekt

Ngjashmëritë

Dallimet

Konstante ruan vlerën, të ruajtur në bazën e të dhënave Drejtoria ruan jo vetëm një vlerë, por një listë të tërë objektesh homogjene.
Dokumentacioni të ruajtura në bazën e të dhënave, ka detaje, dokumentet mund të jenë në varësi të njëri-tjetrit Drejtori ruan informacione normative dhe referuese, dhe dokumentet pasqyrojnë ngjarje të botës reale. Në mënyrë tipike, vlerat e detajeve të dokumentit zgjidhen nga drejtoritë. Dokumenti zakonisht postohet, dokumenti duhet të ketë një datë dhe orë, dokumenti mund të përmbajë një pjesë tabelare, e cila nuk është në drejtori (në versionin 8.0, drejtoritë dhe dokumentet mund të kenë disa pjesë tabelare). Drejtoritë mund të jenë me shumë nivele; drejtoria mund të përmbajë detaje periodike, të cilat nuk janë në dokumente (në versionin 8.0 nuk ka detaje periodike, por ka regjistra periodikë informacioni).
Transfertat të ruajtura në bazën e të dhënave, ruan një listë vlerash Përdoruesi fut një grup vlerash në drejtori në modalitetin Enterprise, dhe për numërimet, lista e vlerave specifikohet nga zhvilluesi në modalitetin Konfigurator. Numërimet përdoren zakonisht në deklaratat If.
Tabela e vlerave ka rreshta dhe kolona (nuk ruhen në bazën e të dhënave) Tabela e vlerave është krijuar për të ruajtur të dhënat e ndërmjetme në kujtesën e kompjuterit që ndodhin gjatë funksionimit të programit. Një tabelë vlerash mund të ruajë objekte heterogjene, ndërsa një direktori mund të ruajë të gjithë elementët e të njëjtit lloj. Tabelat e vlerave nuk mund të jenë me shumë nivele ose të varura nga njëra-tjetra.
ListVlerat ruan një listë vlerash (jo të ruajtura në bazën e të dhënave) Një listë vlerash mund të ruajë objekte heterogjene, dhe në një direktori të gjithë elementët e të njëjtit lloj

Bazat e programimit

Krijimi dhe regjistrimi i një elementi të ri

Gjetja e një artikulli të drejtorisë


//për shembull, në një urdhër pushimi nga puna
Ref. GjejElement(Punonjës);

Ref. FindByCode(123);
Ref. FindByName("Ivanov Ivan Ivanovich");
Ref. FindByDetails(“Paga”, 5000);

//Nëse elementi gjendet, ai bëhet aktual dhe mund të lexohet kështu:

Nëse Spr.FindByName ("Ivanov Ivan Ivanovich") = 1 Atëherë
........FoundCotr = RefCotr. Artikulli aktual();
fundNëse;


//në versionin 8.0, nëse elementi gjendet, atëherë ai kthehet, përndryshe kthehet i Padefinuar

FoundCotr = RefCotr. FindByCode(123);
FoundCotr = RefCotr. FindByName("Ivanov Ivan Ivanovich");
FoundCotr RefCotr. FindByDetails(“Paga”, 5000);

FoundSotr = SprSotr.FindByName("Ivanov Ivan Ivanovich");
Nëse FoundSotr = I Padefinuar Atëherë
.....//elementi nuk u gjet
fundNëse;

Fshirja e një elementi drejtorie

Ref. Fshije(1); //fshirje e menjëhershme

Ref. Fshije(0); //shënoni për fshirje
Ref. Hiq zgjedhjen "Fshi".();


Mark = Ref. Fshirja e flamurit(); //shënim: kjo është një metodë


Ref. Fshije(); //fshirje e menjëhershme

Ref. SetDeleteMark (E vërtetë); // shenjë për fshirje
Ref. SetDeletionMark (E gabuar); //heqje shenjë për fshirje

//mund të kontrolloni nëse një element është shënuar për fshirje
//ekziston një veti MarkDelete, ajo është e tipit Boolean - True ose False

Mark = Ref. Fshirja e flamurit; //shënim: kjo është një pronë
Nëse Mark = E vërtetë Atëherë
.....//element i shënuar për fshirje
fundNëse;

Numërimi i elementeve të drejtorisë


Ref. Zgjidh Artikujt();
Ndërsa SprSotr. GetElement() = 1 cikël
...
...Njoftoni("Punonjësi" + Emri i Spr.);
Cikli i Fundit;


përzgjedhje = Drejtoritë.Punonjësit. Zgjidhni();
Vetëm një përzgjedhje për momentin. Tjetra() = 1 cikël
... //veprimet me elementin vijues
Cikli i Fundit;


Prindi
Përsëritni mbi elementë brenda një grupi. Një grup në termat 1C është një "prind".


Ref.FindByName ("Punon");
Punues = Ref.CurrentItem();
Ref. Përdorimi Parent(pune);
//më tej, për shembull, një cikël për punonjësit (shih më lart)
...



GroupWorking = SprSotr.FindByName("Punon");
përzgjedhje = Ref. Zgjidhni(Punimi në grup);
Vetëm një përzgjedhje për momentin. Tjetra() = 1 cikël
... //veprimet me elementin vijues
...Njoftim("Punonjës" + përzgjedhje.Emri);
Cikli i Fundit;

Pronari
Numërimi i elementeve të drejtorisë që i përkasin një elementi të një drejtorie tjetër.
Një libër referencë vartëse një libër tjetër referimi, për shembull libër referimi. Përfitimet tatimore i nënshtrohen Ref. Punonjësit.

Detaje periodike
Leximi dhe shkrimi i detajeve periodike.
Caktimi i datës për marrjen e mostrave të detajeve periodike për të gjithë drejtorinë.


//kështu zbulojmë se çfarë kishte punonjësi
//kategoria për një datë të caktuar

Kategoria = SprSotr.Kategoria. Marr(DisaDate);

//Kështu do të vendosim kategorinë për punonjësit
//për një datë të caktuar
SprSotr.Kategoria. Instaloni(DisaDate, Kategoria e Re);

//mund të caktoni datën e marrjes së mostrave për periodik
//detajet për të gjithë drejtorinë
Ref. Data e përdorimit(DisaDate);

//atëherë nuk mund të përdorni më Install dhe Get më poshtë
//Aksesi në detajet periodike bëhet
//njëlloj si për detajet e rregullta
Kategoria = SprSotr.Kategoria;
Spr.Paga = 6000;

Në versionin 8.0 nuk ka detaje periodike. Në vend të kësaj, është e nevojshme të përdoren regjistrat e informacionit të zgjeruar në kohë.

Format e ekranit të librave të referencës

Formulari i listës së drejtorive

Për ta bërë më të lehtë për përdoruesit të punojnë me drejtorinë në fazën e konfigurimit, mund të krijoni disa lloje format e ekranit për të shfaqur drejtorinë. Në varësi të kontekstit të thirrjes së drejtorisë, mund të specifikoni përdorimin e një dialogu specifik për të punuar me të.

Është më mirë të shohësh një herë sesa të dëgjosh njëqind herë, kështu që më poshtë është një shembull i formularit të listës për drejtorinë e punonjësve:




Moduli i formularit të listës përmban procedura dhe funksione që funksionojnë në kontekstin e kësaj forme (në kontekstin e objektit Directory).

Procedurat e paracaktuara thirren nga sistemi 1C me ndodhjen e disa ngjarjet. Procedurat e paracaktuara thirren nga sistemi 1C kur ndodhin ngjarje të caktuara, pra ato janë trajtues të ngjarjeve. Në versionin 8.0, emri i procedurës mund të jetë çdo gjë, jo domosdoshmërisht i njëjtë me emrin e ngjarjes. Përveç kësaj, në versionin 8.0 lista e ngjarjeve për të gjitha objektet është zgjeruar ndjeshëm.

Ngjarje

Përshkrim

Kur Hapet Thirret kur hapet forma e listës së drejtorive. Ju mund të vendosni vlerat fillestare për variablat, të kontrolloni të drejtat e përdoruesit për të hapur këtë drejtori, etj.
Në mbyllje Thirret kur forma e listës së drejtorive është e mbyllur.
Kur Regjistrohet

Thirret kur shkruani një element drejtorie, nëse elementet futen drejtpërdrejt në formën e listës, dhe jo në formën e elementit. Kjo përdoret për drejtoritë me një strukturë të thjeshtë, për shembull drejtoria Jobs. Kjo procedurë ju lejon të kontrolloni të dhënat tuaja hyrëse për gabime.

Shembull, Pozicionet e drejtorisë

WhenSelectingParent (NewParent) Thirret kur zgjidhet një prind (grup). Përdoreni këtë procedurë për të verifikuar të drejtat e një përdoruesi për të parë anëtarët e një grupi të caktuar.
WhenSelectingOwner (Pronar i ri) Thirret kur zgjidhet pronari i drejtorisë së hostit. Ka kuptim nëse kjo drejtori është e varur nga një tjetër.
WhenSettingSelection (Atributet, Vlera) Një procedurë e paracaktuar për vendosjen në mënyrë interaktive të përzgjedhjes në çfarëdo mënyre (përzgjedhja, përzgjedhja e shpejtë, përzgjedhja sipas vlerës, historia e përzgjedhjes) dhe kur çaktivizon përzgjedhjen.
OnRowSelect() Modaliteti i përpunimit të përzgjedhjes së linjës (klikoni dy herë ose tastin Enter) aktivizohet në formën e listës së drejtorive, ditarit të dokumenteve, llogarive, ditarit të transaksioneve, ditarit të transaksioneve duke përdorur metodën Form.RowSelectionProcessing(1). Pastaj, kur zgjidhet një rresht, do të thirret kjo procedurë e paracaktuar.


Renditja

Në formën e një liste drejtorie, elementët mund të renditen në renditje të ndryshme: sipas kodit, sipas emrit, ose sipas ndonjë atributi që ka kutinë e kontrollit të renditjes të zgjedhur në Konfigurator.Ju mund të caktoni llojin e renditjes në mënyrë programore duke përdorur metodën e renditjes (Method, ChangePermission Flag)


Procedura OnOpen()
...... Renditja("Kodi",0); // renditur sipas kodit, përdoruesi nuk mund të ndryshojë
Fundi i procedurës

Procedura OnOpen()
......DirectoryList.Order.Set("Name Asc, Card Asc");
......//pyetje për lexuesit: si ta parandaloni përdoruesin të ndryshojë rendin e renditjes?
Fundi i procedurës

Përzgjedhja

Në formën e listës së drejtorive, artikujt mund të filtrohen, d.m.th. Përdoruesit do t'i shfaqen vetëm elementet e nevojshme. Ju mund të vendosni programatikisht përzgjedhjen duke përdorur metodën SetSelection (Atributet, Vlera). Për ta bërë këtë, atributi duhet të ketë të kontrolluar kutinë "Zgjedhja sipas atributit" në Konfigurator .

Filtri statik (vetëm versioni 7.7)

Në 1C 7.7, nuk mund të vendosni përzgjedhjen me detaje periodike ose me disa detaje në të njëjtën kohë (filtri kompleks). Në këtë rast, metoda UseList of Elements mund të jetë një rrugëdalje. Kjo metodë duhet t'i kalojë një listë të elementeve që duhet të shfaqen. Kjo listë duhet të krijohet së pari.

Procedura ShowWorkingCarpenters()

ElementList = createObject ("ValueList");

Ref.SelectItems();

.....Nëse (Adv.Parent = Punë në grup) AND (Adv.Position = punë Marangoz) Atëherë
..........Lista e elementeve.AddValue(Ref.CurrentElement());
.....FundNëse;
Cikli i Fundit;

UseListElements(ListItems);

Fundi i procedurës

Forma e elementit dhe forma e grupit

Nëse drejtoria ka një strukturë komplekse, atëherë është më e përshtatshme të redaktoni elementet e saj në një dritare të veçantë sesa në një listë. Më poshtë është forma e elementit të drejtorisë Punonjës.


Forma e elementit të drejtorisë ka gjithashtu procedura (ngjarje) të paracaktuara:

Ngjarjet

Përshkrim

OnOpen () Thirret kur hapet forma e artikullit të drejtorisë. Ju mund të vendosni vlerat fillestare për variablat, të kontrolloni të drejtat e përdoruesit për të hapur një element të caktuar drejtorie, etj.
OnClose () Thirret kur formulari i artikullit të fjalorit është i mbyllur.
OnWrite ()

Thirret kur shkruhet një element direktorie. Kjo procedurë ju lejon të kontrolloni të dhënat tuaja hyrëse për gabime.

Shembull, drejtoria Punonjësit

Procedura e regjistrimit
....Nëse Kategoria.Selected()=0 Pastaj
.........Warning ("Kategoria e punonjësve nuk është specifikuar!");
.........Statusi i Kthimit(0);
.....FundNëse;
Fundi i procedurës

EnterNew () Thirret kur futet në mënyrë interaktive një element i ri i drejtorisë. Në këtë procedurë, ju mund të kontrolloni të drejtat e përdoruesit për të krijuar elementë të rinj të drejtorisë, si dhe të vendosni vlerat fillestare të detajeve.

Duhet të theksohet se në versionin 8.0 lista e ngjarjeve për të gjitha objektet është zgjeruar ndjeshëm.

Krijimi dhe regjistrimi i një elementi

Krijimi programatik i një elementi direktoriumi

Më poshtë në drejtorinë e punonjësve, një punonjës i ri shtohet programatikisht në grupin e punës. Fushat Emri, Data e Marrjes dhe disa detaje periodike plotësohen në drejtori.



Ref. I ri();


Ref. Shkruani();
//Vendosja e detajeve periodike është e mundur vetëm pas regjistrimit të elementit
Ref.Category.Set (Ref.Data e pritjes, ktgPartners);
Ref.Position.Set (Ref.Data e pritjes, për Carpenter);

Por ju mund ta bëni atë më të bukur:

RefCotr = CreateObject("Directory.Punonjës");
SprSotr.UseParent(grpWorking);
Ref.Data e Përdorimit (Data e Pritjes); //vëmendje!
Ref.New();
SprSotr.Name = "Ivanov Ivan Ivanovich";
Ref.Data e pritjes = "01/01/2002";
//qasja në detaje periodike bëhet e njëjtë me ato të rregullta
SprSotr.Kategoria = ktgPartnerët;
Spr.Pozicioni = dljZardhës;
SprCotr.Write();

New = Directories.Employees.CreateItem();
I ri.Prindër = Punë në grup;
I ri.Emri = "Ivanov Ivan Ivanovich";
E re.Data e pritjes = "01/01/2002";
New.Write();

//në versionin 8.0 nuk ka detaje periodike

Krijimi programor i grupeve

RefCotr = CreateObject("Directory.Punonjës");

Ref. Një grup i ri();

Ref. Shkruani();

Ref.NewGroup();

SprCotr.Write();

New = Drejtoritë.Punonjësit .Për të krijuar një grup();

I ri Shkruani();

Të reja = Drejtoritë ["Punonjësit"] .Për të krijuar një grup();
I ri.Emri = "Punon";
I ri Shkruani();

Kujdes!

Transaksionet

Kur krijoni shumë elementë të drejtorisë, mund të mbyllni një cikël në një transaksion për të shpejtuar punën. Në këtë rast, krijimi aktual i të gjithë elementëve do të ndodhë vetëm me komandën CommitTransaction(). Drejtoria është e bllokuar gjatë ekzekutimit të transaksionit.

RefCotr = CreateObject("Directory.Punonjës");
Fillimi i Transaksionit();

Për Nom = Cikli 1 deri në 100
.....Ref.New();
.....SprSotr.Name = "New" + String(Nom);
.....RepCort.Write();
Cikli i Fundit;

Kryerja e Transaksionit();


SprSotr = Drejtoritë.Punonjësit;
Fillimi i Transaksionit();

Për Nom = Cikli 1 deri në 100
.....New = SprSotr.CreateElement();
.....New.Emri = "I ri" + String(Nom);
.....E re.Shkruaj();
Cikli i Fundit;

Kryerja e Transaksionit();

Përsëritja mbi elementë

Kërkim i thjeshtë

RefCotr = CreateObject("Directory.Punonjës");
modaliteti = 0; //zgjidh pa marrë parasysh hierarkinë, 1 - duke marrë parasysh (si parazgjedhje)
Ref. Zgjidh Artikujt(Modaliteti);
Ndërsa SprSotr. GetElement()=1 cikël
.....<действия с очередным элементом/группой>
Cikli i Fundit;

Filtrimi (përzgjedhja)

RefCotr = CreateObject("Directory.Punonjës");
Hierarkia Mode = 1; //1 - zgjidhni duke marrë parasysh hierarkinë, 0 - pa marrë parasysh
Grupi Mode = 0; //0 - mos përfshini grupet në përzgjedhje, 1 - përfshini
AttributeName = "Viti"; //në Konfigurator, atributi duhet të ketë të zgjedhur kutinë e zgjedhjes
vlera = 1980;
Ref. Zgjidhni ElementsBy Details(AtributeName,Value,HierarchyMode,GroupMode);
Ndërsa SprCont.GetElement()=1 Loop
.....<действия с очередным элементом>
Cikli i Fundit;

Filtrimi në një lak

RefCotr = CreateObject("Directory.Punonjës");
SprSotr.UseParent(grpWorking);
Ref.Data e Përdorimit(Data e Punës());
Ref. Zgjidh Artikujt();
Ndërsa SprSotr. GetElement()=1 Cikli

Nëse Pozicioni Administrativ<>dlzh Carpenter Pastaj
....Vazhdo; //ne e kapërcejmë këtë punonjës, shkojmë në fillim të ciklit
fundNëse;

<действия с очередным элементом>

Cikli i Fundit;

Rendi i renditjes

Përpara marrjes së mostrave, mund të vendosni rendin e renditjes duke përdorur metodat e mëposhtme:

CodeOrder()
NameOrder()
Renditja e atributeve(ReqName) //atributi duhet të ketë të kontrolluar kutinë e renditjes në Konfigurator
Rendi i kundërt ()

Për shembull, më poshtë hapet një përzgjedhje punonjësish, të renditur sipas numrit në rend zbritës:

RefCotr = CreateObject("Directory.Punonjës");
Ref.CodesOrder();
Ref.ReverseOrder();
Ref.SelectItems();

Kërkesë në drejtori

Kërkimi i elementeve të drejtorisë mund të organizohet përmes Kërkesës. Kjo është shpesh më e përshtatshme nëse përdoret një kusht kompleks përzgjedhjeje ose grupimi i elementeve. Shihni më shumë detaje. Kërkesat

Kërkoni për një element

Kërkoni për një element

RefCotr = CreateObject("Directory.Punonjës");
Nëse SprSotr. GjejElement(SelectSotr)=1 Pastaj
....//elementi bëhet aktual
....SprSotr.Parent = grpPunon;
....RepCort.Write();
fundNëse;

Kërko me kod

Nëse SprSotr. FindByCode(1) = 1 Pastaj
....ElementOrGroup = Ref.CurrentElement();
fundNëse;

Kërko sipas emrit

Nëse SprSotr. FindByName("Punon")=1 Pastaj
....grpPunon = Ref.CurrentItem();
fundNëse;

modaliteti = 1; // 1 - kërkimi brenda vartësisë së vendosur (prindi) (parazgjedhja); 0 - kërkoni në të gjithë drejtorinë
Flamuri i kërkimit = 0; //1 - gjeni përputhjen e saktë; 0 - gjeni emrin sipas karaktereve të para (parazgjedhja)
SprSotr.UseParent(grpWorking);
Nëse Ref.FindByName("Iv",Mode,SearchFlag)=1 Atëherë
....FirstWorkingIv = Ref.CurrentItem();
fundNëse;

Kërkoni sipas detajeve

ReqName = "Viti"; //atributi duhet të ketë të kontrolluar kutinë e renditjes në Konfigurator
SearchGlobeFlag = 1; // 1 - kërkimi në të gjithë drejtorinë, 0 - kërkimi brenda vartësisë
Nëse SprSotr. FindByDetails(ReqName,1980,SearchGlobeFlag)=1 Pastaj
.....FoundElement = Ref.Elementi aktual();
fundNëse;

Gjetja e një elementi në një lak

RefCotr = CreateObject("Directory.Punonjës");
SprSotr.UseParent(grpWorking);
Ref.Data e Përdorimit(Data e Punës());
Ref. Zgjidh Artikujt();
Ndërsa SprSotr. GetElement()=1 Cikli

Nëse Admin.Pozicioni = dlzhCarpenter Pastaj
....Aborto; //gjeti një marangoz që punon! dal nga laku
fundNëse;

Cikli i Fundit;
<действия с найденным элементом>

Kërkesë në drejtori

Kërkimi për një element direktorie mund të organizohet përmes Kërkesës. Kjo është shpesh më e përshtatshme nëse zbatohet një kusht kompleks përzgjedhjeje. Shihni më shumë detaje. Kërkesat

Heqja e artikujve

Heqja e drejtpërdrejtë

RefCotr = CreateObject("Directory.Punonjës");
SprEmployee.FindElement(SelectEmployee);
Ref.Delete(); //fshirje e menjëhershme

Kujdes! Nëse fshini drejtpërdrejt një element, sigurohuni që të mos ketë referenca për të në objekte të tjera. Për shembull, punonjësi që hiqet mund të përdoret në dokumentin e Pushimeve. Nëse fshihet, integriteti referues i bazës së të dhënave do të prishet. Në këtë rast, rekomandohet përdorimi shënuar për fshirje.

Ju mund të merrni në mënyrë programore një listë të objekteve që përmbajnë një lidhje me objektin që do të fshihet duke përdorur metodën FindLinks(objekt).

Shënoni për fshirje

Për të kontrolluar integritetin referencial të bazës së të dhënave, elementët e fshirë thjesht shënohen për fshirje. Pastaj, duke përdorur një komandë të veçantë të menusë Operacionet => "Fshirja e objekteve të shënuara" në modalitetin ekskluziv, sistemi 1C do të kontrollojë integritetin e referencës dhe do të fshijë fizikisht elementët nga baza e të dhënave nëse nuk ka referenca për to në objekte të tjera.

SprSotr = CreateObject("Directory.Punonjës");
Ref.FindElement(SelectEmployee);
Ref.Fshi (0); //shënoni për fshirje

//mund të kontrolloni nëse një element është shënuar për fshirje
//funksioni kthen 1 - nëse është shënuar, 0 - nëse jo
Mark = Ref. Fshirja e flamurit();

//mund të zgjidhësh shenjën e fshirjes
Ref.FindElement(SelectEmployee);
Ref. Hiq zgjedhjen "Fshi".();

Transaksionet

Kur fshini shumë elementë të drejtorisë, mund të vendosni një lak në një transaksion për të shpejtuar punën. Në këtë rast, fshirja aktuale (shenja për fshirje) e të gjithë elementëve do të ndodhë vetëm me komandën CommitTransaction(). Drejtoria është e bllokuar për kohëzgjatjen e transaksionit.

RefCotr = CreateObject("Directory.Punonjës");
Fillimi i Transaksionit();

Ref.SelectItems();
Ndërsa SprCont.GetElement()=1 Loop
......Ref.Fshij(0); //shënoni për fshirje
Cikli i Fundit;

Kryerja e Transaksionit();

Drejtoritë hierarkike

Lista e elementeve të drejtorisë në sistemin 1C:Enterprise mund të jetë me shumë nivele. Në këtë rast, të gjitha linjat e direktoriumit do të ndahen në 2 lloje: elementet e direktoriumit "thjesht" dhe grupet e drejtorive. Grupet ju lejojnë të lëvizni në nivelet më të ulëta të një drejtorie me shumë nivele. Numri i mundshëm i niveleve të foleve të direktoriumit vendoset në Konfigurator.

Përdorimi i drejtorive me shumë nivele ju lejon të organizoni futjen e informacionit në drejtori me nivelin e kërkuar të detajeve. Elementet dhe grupet e elementeve në një direktori me shumë nivele mund të transferohen nga një grup në tjetrin.

Kujdes! Hierarkike libri referencë është gjithashtu me shumë nivele drejtoria, ose drejtoria me grupe.
Një grup drejtorish në 1C shpesh quhet " prind".

Krijimi programor i një grupi

RefCotr = CreateObject("Directory.Punonjës");

Ref. Një grup i ri();
SprSotr.Emri = "Punon";
Ref. Shkruani();

Ref.NewGroup();
Ref.Emri = "I shkarkuar";
SprCotr.Write();

Kujdes! Në Konfigurator, mund të vendosni që atributi të jetë i vlefshëm vetëm për një element, vetëm për një grup ose për të dyja. Për shembull, fusha Data e pritjes nuk ka kuptim për grupin e punës. Prandaj, nuk duhet të aksesoni detajet e elementit nëse jeni duke punuar me një grup dhe anasjelltas.

Vendosja e grupit aktual


Ref. Përdorimi Parent(grpWorking); //tani jemi brenda grupit të punës
Ref.SelectItems(); //hap një përzgjedhje të elementeve të Grupit të Punës

RefCotr = CreateObject("Directory.Punonjës");
Ref. Përdorimi Parent(grpWorking);
Ref.New(); //krijimi i një elementi të ri në grupin e punës

Nëse drejtoria është me shumë nivele, atëherë do të jetë e dobishme të përdorni metodat dhe atributet e mëposhtme që ju lejojnë të merrni informacion në lidhje me elementin aktual të drejtorisë:

Metoda/atributi

Përshkrim

Niveli ()

Kjo metodë kthen nivelin e elementit aktual. Për shembull, për një punonjës që është në grupin e punës, do të marrim numrin 2.

Shembull, prodhimi i një drejtorie hierarkike në formën e një peme:

RefCotr = CreateObject("Directory.Punonjës");
Ref.SelectItems();

//afisho dhëmbëzimin sipas thellësisë së foleve të elementit
Për Nom=1 Sipas ciklit Const.Level().
.....Për të raportuar(".....");
Cikli i Fundit;

Cikli i Fundit;

Ky grup() Kjo metodë kthen 1 nëse elementi aktual i drejtorisë është një grup, ose 0 nëse nuk është një grup.

Shembull, prodhimi i punonjësve (grupet nuk janë rezultat):

RefCotr = CreateObject("Directory.Punonjës");
Ref.SelectItems();
Ndërsa Ref.GetItems()=1 Loop

Nëse Ref.ThisGroup()=1 Atëherë
......Vazhdo; //kapërceni grupet, shkoni në fillim të ciklit
fundNëse;
Raporti (Ref.Emri);

Cikli i Fundit;

I përket grupit (...) Metoda kontrollon nëse elementi aktual i drejtorisë i përket grupit të specifikuar (pavarësisht nga niveli themelor në të cilin ndodhet).
Kthen: 1 - nëse elementi i përket grupit të specifikuar, 0 - nëse jo.

Shembull, shfaqja e produkteve që i përkasin grupit të Alkoolit, pavarësisht nëse ato përfshihen në nëngrupet Shampanjë, Birrë, Vodka, Verë, etj.:




.....Njoftoni(SprProducts.Emri);
fundNëse;

Cikli i Fundit;

atribut Prind

Ky atribut përmban prindin e elementit aktual të drejtorisë, d.m.th. grupi në të cilin ndodhet elementi aktual. E lexueshme dhe e shkruar.

Shembull, transferimi i të gjitha produkteve nga grupi i Alkoolit në grupin e Shitjes:

DirectoryProducts = CreateObject("Directory.Products");
SprProducts.SelectItems();
Ndërsa SprProducts.GetItems()=1 Loop

Nëse Produktet.I përket grupit(grupiAlkooli)=1 Pastaj
.....SprSotr.Parent = grpShitje;
.....RepCort.Write();
fundNëse;

Cikli i Fundit;

Ose mund ta bëni më të bukur dhe të zhvendosni të gjithë grupin e Alkoolit në grupin Shitje, atëherë të gjitha nëngrupet dhe elementët do të transferohen gjithashtu në grupin Shitje.

DirectoryProducts = CreateObject("Directory.Products");
SprProducts.FindItem(grpAlkool);
SprProducts.Parent = grpSale;
SprProducts.Write();

Kodi i plotë ()

Kthen një varg që përmban kodin e plotë të elementit të drejtorisë së zgjedhur me të gjitha nivelet më të larta të ndara me karakterin "/".

Për shembull, "2/7/123"

Emri i plotë ()

Kthen një varg që përmban emrin e plotë të elementit të zgjedhur të drejtorisë me të gjitha nivelet më të larta të ndara me karakterin "/".

Për shembull, "Alkool / Shampanjë / Sovjetik"

Aftësia për të zgjedhur një grup në mbështetëse dialogu

Shpesh është i përshtatshëm për detajet mbi formularin që kanë llojin Directory për të çaktivizuar aftësinë për të zgjedhur një grup. Atëherë në këtë fushë mund të zgjidhet vetëm një element dhe nuk mund të zgjidhet një grup. Në përgjithësi, është më e lehtë të provosh një herë sesa të shpjegosh disa herë.

Formulari.Zgjidh Punonjësin. Përzgjedhja e grupit(0); //çaktivizoni aftësinë për të zgjedhur një grup

Drejtoritë vartëse

Drejtoria- pronar, ky është gjithashtu një libër referimi - mjeshtër.
Direktoria e pronarit dhe drejtoria skllav quhen gjithashtu të lidhura libra referencë.
Në terma të bazës së të dhënave relacionale, drejtoria e pronarit është tabela mëmë, drejtoria e skllevërve është tabela e fëmijëve.

Caktimi i drejtorive vartëse

Çdo direktori mund të përdoret ose në vetvete ose të jetë në varësi të ndonjë drejtorie tjetër. Për shembull, një drejtori kontratash mund të përdoret veçmas, ose mund të lidhet me një drejtori të organizatave.

Për të varur një drejtori me ndonjë nga drejtoritë që ekzistojnë tashmë në sistem, në fushën "Subordinated", zgjidhni emrin e kësaj drejtorie. Një drejtori e tillë në sistemin 1C: Enterprise quhet pronar.

Ndryshe nga një direktori me shumë nivele, në të cilën të gjithë elementët kanë të njëjtën strukturë, përdorimi i mekanizmit të drejtorive vartëse ju lejon të lidhni elementë të strukturave të ndryshme. Në këtë rast, çdo element i drejtorisë vartëse do të shoqërohet me një nga elementët e drejtorisë së pronarit.

Nga jashtë, puna me një drejtori vartëse në sistemin 1C: Enterprise do të duket kështu.

Nëse mënyra e shfaqjes në formën e një liste hierarkike është vendosur për një drejtori vartëse, atëherë përpara se të përdorni drejtorinë, së pari duhet të zgjidhet elementi i drejtorisë së pronarit. Kur shfaqet në ekran, drejtoria vartëse do të përmbajë në titullin e saj emrin e elementit të pronarit dhe lista e elementeve të drejtorisë vartëse do të përmbajë vetëm elemente që lidhen me elementin pronar. Kur ndryshon elementi i pronarit, informacioni në dritaren e drejtorisë vartëse do të përditësohet në përputhje me rrethanat.

Nëse hapni një drejtori vartëse pa zgjedhur elementin e pronarit, atëherë asnjë element nuk do të shfaqet në dritaren e drejtorisë vartëse dhe mesazhi "Elementi i pronarit nuk është specifikuar" do të shfaqet në titullin e dritares.

Kur punoni me sistemin 1C: Enterprise, shfaqja në formën e një liste hierarkike mund të çaktivizohet për një drejtori vartëse. Në këtë rast, të gjithë elementët e kësaj drejtorie do të shfaqen në dritaren e drejtorisë së skllevërve, domethënë elementët e caktuar për pronarë të ndryshëm do të shfaqen të përzier. Megjithatë, çdo element i një drejtorie vartëse "e njeh" pronarin e saj: nëse modaliteti "Ndrysho në dialog" është aktivizuar për drejtorinë (shih më poshtë në "Krijimi i formularëve të drejtorisë"), emri i elementit të pronarit do të shfaqet në titull. të dritares së redaktimit të elementit të drejtorisë.

Vendosja e pronarit aktual


SprAgreements.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //hap një përzgjedhje të marrëveshjeve të palës tjetër të zgjedhur
<...>

Informacion rreth elementit aktual

Nëse drejtoria është e varur, atëherë do të jetë e dobishme të përdorni metodat dhe atributet e mëposhtme që ju lejojnë të merrni informacion në lidhje me elementin aktual të drejtorisë:

atribut

Përshkrim

atribut Pronar

Ky atribut përmban pronarin e elementit aktual të drejtorisë vartëse, d.m.th. elementi i drejtorisë së hostit të cilit i përket ky element. Atributi është i lexueshëm dhe i shkruhet.

Shembull, transferimi i të gjitha kontratave nga një palë në tjetrën (drejtoria e kontratave është në varësi të drejtorisë së Kundërpalëve):

DirectoryAgreements = CreateObject("Directory.Agreements");
SprAgreements.UseOwner(Counterparty1);
SprAgreements.SelectItems();
Ndërsa SprAgreements.GetElements()=1 Loop

SprAgreements.Owner = Counterparty2;
SprAgreements.Write();

Cikli i Fundit;


Detaje periodike

Aktivizimi i opsionit "Periodic" ju lejon të specifikoni për një atribut direktoriumi për të ruajtur historinë e ndryshimeve në vlerën e tij. Një detaj i tillë në sistemin 1C:Enterprise quhet periodik dhe ka vetinë e mëposhtme: ndryshe nga detajet "e zakonshme" (jo periodike), sistemi 1C:Enterprise ruan vlerat e një detaji të tillë sipas datave të ndryshimit të tyre. . Kur qaseni në vlerën e një atributi të tillë për një datë të caktuar, vlera e tij kthehet për atë datë, ose, nëse mungon, për datën më të afërt të mëparshme në të cilën është vendosur vlera e atributit.

Kjo veçori e detajeve të drejtorisë bën të mundur, për shembull, organizimin e lehtë të ruajtjes së historisë së kurseve të këmbimit në drejtorinë e monedhës.

Detajet periodike mund të aksesohen duke përdorur gjuhën e integruar të sistemit 1C: Enterprise - merrni dhe regjistroni vlerën e detajeve për një datë të caktuar. Megjithatë, duhet pasur parasysh se kur merret vlera e një variabli për një datë të caktuar, vlera e saj merret për datën e specifikuar ose (nëse nuk ka vlerë për datën e specifikuar) për datën më të afërt të mëparshme, dhe vlera e ndryshorja periodike regjistrohet gjithmonë për datën e caktuar.

Në mënyrën e përdorimit të konfigurimit për detaje periodike, mund të hapni dritaren "Historia". Kjo dritare është një tabelë e përbërë nga dy kolona: data kur është ndryshuar vlera e atributit të drejtorisë dhe vlera e kësaj date. Dritarja "Historia" ju lejon të modifikoni drejtpërdrejt historinë e ndryshimeve në vlerën e atributit: futni linja të reja, modifikoni ose fshini ato ekzistuese.

Metodat e detajeve periodike
//Kështu zbulojmë se çfarë kategorie ka pasur punonjësi në një datë të caktuar
Kategoria = SprSort.Category.Get(SomeDate);

//kështu do të vendosim kategorinë e punonjësit për një datë specifike
Ref.Category.Set(SomeDate, NewCategory);

Kujdes! Këto metoda mund të përdoren nëse nuk e keni përdorur më parë metodën UseDate

Caktimi i datës për marrjen e mostrave të detajeve periodike

//mund të caktoni datën për marrjen e mostrave të detajeve periodike për të gjithë drejtorinë
Ref. Data e përdorimit(DisaDate);

//atëherë është më e ulët tashmë është e ndaluar përdorni metodat Set dhe Merr
//qasja në detaje periodike bëhet e njëjtë me detajet e rregullta
Kategoria = SprSotr.Kategoria;
Spr.Paga = 6000;

Objekti "Periodik"

Për të punuar me historinë e detajeve periodike, është shumë i përshtatshëm të përdorni objektin "Periodik".

Shembull, shfaqni historinë e karrierës së punonjësit për vitin aktual:

HistoryCareers = CreateObject("Periodic");
CareerHistory.UseObject("Pozicioni", SelectPunonjës);
Historia e Karrierës.SelectValues(Start of Year(WorkingDate(),End of Year(WorkingDate()));
Ndërsa HistoryCareers.GetValue()=1 Loop
....Raport(String(CareerHistory.DateValue) + " " + String(CareerHistory.Value));
Cikli i Fundit;

Ju gjithashtu mund të modifikoni dhe fshini vlerat duke përdorur objektin periodik. Për një listë të plotë të metodave, shihni Ndihmësin e sintaksës.

Kryerja e dokumenteve

Kur postoni një dokument, shpesh është e nevojshme të vendosni një vlerë të re për një atribut periodik për një datë specifike. Kjo quhet lëvizja e dokumentit. Në këtë rast, duhet të përdorni metodën Set Directory Atributes:

Vendosni Detajet e Drejtorisë(Punonjës, "Pozicioni", NewPosition, MoveDate);

Fundi i procedurës

Nëse dokumenti ka një pjesë tabelare dhe dëshironi që lëvizjet e dokumentit të lidhen me numrin e linjës së dokumentit, atëherë duhet të përdorni metodën BindRow.

Procedura ProcessingConduct()

SelectRows();
Ndërsa GetString()=1 Loop

BindString(Numri i Rreshtit);
Cakto Detajet e Drejtorisë (Punonjësi, "Pozicioni", Pozicioni i Ri, Data e Lëvizjes);

Cikli i Fundit;

Fundi i procedurës

Zgjedhja nga drejtoria

Funksioni i përzgjedhjes ju lejon të zgjidhni vlera të shumta nga një kërkim ose objekt tjetër pa e mbyllur atë.Për shembull, ekziston një dokument Faturë në të cilin përdoruesi mund të specifikojë disa produkte.

Organizimi i përzgjedhjes

Sintaksa: OpenSelect(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)

OpenSelection("Directory.Nomenklature","FormForSelection",Cont,1);


...Linja e re();
...Produkt = Artikull;
Fundi i procedurës

Ju mund të përdorni kontekstin e formularit dhe menjëherë të shkoni te grupi i dëshiruar, për shembull:

OpenSelection("Directory.Nomenklature","FormForSelection",Cont,1);
Cont.UseParent(grpAlcohol);

Procedura ProcessingFit (Element, FormContent)
...Linja e re();
...Produkt = Artikull;
Fundi i procedurës

Vendosja dhe marrja e vlerave nga përzgjedhja

ContFormSelection. SetValueInSelection(<ИмяРеквизита>,<Значение>)

<ИмяРеквизита>- rreshti me emrin e atributit të formularit të përzgjedhjes së vlerës;
<Значение>- vlera e atributit.

ContFormSelection. GetValueFromSelection(<Выражение>)

<Выражение>- një shprehje vargu vlera e së cilës llogaritet në kontekstin e formularit të përzgjedhjes dhe kthehet si rezultat.

Metoda të tjera të dobishme

Metoda

Përshkrim

Pamje() Vendosni ose lexoni emrin aktual të llojit të drejtorisë. Kthen emrin aktual të llojit të drejtorisë, siç specifikohet në Konfigurator, për shembull, "Punonjësit". Vendosja e llojit të drejtorisë është e mundur për detaje të llojit "Directory", d.m.th. drejtoria e tipit të papërcaktuar.
ViewView() Merrni një pamje të personalizuar të pamjes së drejtorisë siç specifikohet në konfigurues.
Kthen një vlerë vargu që përmban një paraqitje të personalizuar të pamjes së drejtorisë (sinonim).
SetAttribute (Emri i Atributit, Vlera) Vendosni vlerën e atributit me emrin e tij.
<ИмяРеквизита>- një shprehje vargu që përmban emrin e atributit, siç specifikohet në konfigurues.<Значение>- një shprehje që përmban vlerën e atributit që do të vendoset.
GetAttribute (AttributeName) Merrni vlerën e një atributi me emrin e tij. Rikthen vlerën e atributit.
Zgjedhur ()

Kthen 1 - nëse zgjidhet elementi i drejtorisë, 0 - nëse nuk zgjidhet. Shpesh përdoret për të kontrolluar për gabime për t'u siguruar që të gjitha të dhënat e kërkuara janë dhënë.

Zgjidhni (...) Thirrja e një dialogu për të zgjedhur një element drejtorie.
Kthen: 1 - nëse elementi është zgjedhur; 0 - nëse nuk zgjidhet. Elementi i zgjedhur bëhet ai aktual.

Leximi i strukturës së drejtorisë

Cikli sipas librave të referencës

Numri i DrejtoriveInConfiguration = Metadata.Directory();
Për Nom=1 deri në Numri i DrejtoriveNë ciklin e konfigurimit

cfgSpr = Metadata.Directory(Nom);
Identifikuesi = cfgSpr.Identifikuesi();
FullIdentifier = cfgSpr.FullIdentifier();
Sinonim = cfgSpr.Sinonim();

Drejtoritë 1C janë një objekt i specializuar i pemës së meta të dhënave që shërben për të ruajtur informacionin e referencës statike. Për shembull, në konfigurimet tipike mund të shihni pamjet e mëposhtme: , Nomenklatura, Punonjësit, Asetet fikse, etj. Informacioni në drejtori, si rregull, nuk ndryshon shpesh. Drejtoritë përdoren më pas në pothuajse të gjitha objektet e kontabilitetit si një seksion kontabiliteti ose informacion referimi.

Më poshtë do të shikojmë konfigurimin dhe dizajnimin e një drejtorie nga konfiguruesi duke përdorur drejtorinë "Nomenklatura" si shembull.

Skeda bazë

Skeda "Basic" specifikon emrin, sinonimin, paraqitjen e objektit dhe përshkrimin e qëllimit.

Skeda "Hierarkia e Drejtorisë".

Këtu vendoset hierarkia e drejtorisë.

Hierarkia në 1C 8.3 është e dy llojeve - " grupe dhe elemente"Dhe" elementet". Ai ndryshon në atë që në rastin e parë, vetëm një dosje (grup) mund të jetë prind (folder), dhe në rastin e dytë, një element mund të jetë gjithashtu prind.

"Vendosni grupet në krye" - flamuri është përgjegjës për shfaqjen e grupeve në formën e listës.

Gjithashtu në cilësimet mund të kufizoni numrin e grupeve në hierarkinë e drejtorisë duke përdorur cilësimin e duhur.

Skeda e pronarëve

Një direktori mund t'i nënshtrohet një drejtorie tjetër. Nga pikëpamja e konfigurimit të 1C 8.3, kjo do të thotë që atributi "Owner" bëhet i detyrueshëm për elementin vartës. Një shembull i një lidhjeje të tillë midis drejtorive në konfigurimet standarde "Nomenklatura - Njësitë e Matjes", "Kundërpalët - Kontratat e Kontraktorëve".

Pronari i drejtorisë mund të jenë gjithashtu objektet e meta të dhënave të mëposhtme: , .

Skeda e të dhënave

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

Skeda më e rëndësishme nga këndvështrimi i një programuesi. Ai përmban detajet e drejtorisë.

Drejtoria ka një grup detajesh standarde që nuk janë redaktuar nga programuesi 1C 8.2; një listë e tyre mund të shihet duke klikuar butonin "Detajet standarde":

Unë do të ndalem në secilën në më shumë detaje:

  • Ky grup- një atribut me një tip Boolean, që tregon nëse është një grup apo një element. E disponueshme vetëm në drejtorinë hierarkike. Shënim, vlera e këtij atributi nuk mund të ndryshohet në modalitetin 1C: Enterprise.
  • Kodi— mbështetëse, shkruani numrin ose vargun (zakonisht një varg). Një numër i caktuar automatikisht nga sistemi. Zakonisht llogaritet si (kodi i mëparshëm + 1). Unë rekomandoj përdorimin e llojit të vargut, sepse renditja e vlerave numerike nuk funksionon siç pritej. Mund të përdoret si një prezantim direktoriumi në një listë dhe në fushat e hyrjes. Zakonisht përdoret për të kërkuar një element kur futet një varg. Nëse duhet të hiqni fushën e kodit, futni zero në gjatësinë e rreshtit.
  • Emri— detajet e detyrueshme, lloji i vargut. Gjatësia maksimale e rreshtit është 150 karaktere. Mund të përdoret si një prezantim direktoriumi në një listë dhe në fushat e hyrjes. Zakonisht përdoret për të kërkuar një element kur futet një varg. Nëse duhet të hiqni fushën Emri, futni zero në gjatësinë e rreshtit.
  • Prindi— një atribut i llojit DirectoryLink.<ИмяТекущегоСправочника>. E disponueshme vetëm në drejtorinë hierarkike. Tregon prindin epror në hierarki. Nëse Elementi ose Grupi është në rrënjën e drejtorisë, vlera Directory është specifikuar.<ИмяТекущегоСправочника>.Lidhja e zbrazët.
  • Pronari— lidhje me elementin e pronarit të elementit aktual të drejtorisë (grupit). Në dispozicion vetëm në drejtorinë vartëse 1C.
  • Fshirja e flamurit- rekuizita me tip Boolean. Përgjegjës për shfaqjen e "shenjës së fshirjes" në sistem. Një element i shënuar për fshirje konsiderohet i papërdorshëm, por lëvizjet e vjetra të dokumentit mund të mbeten në të.
  • Lidhje- fusha e llojit të vargut. Ky atribut ruan një identifikues unik të objektit - GUID. Ajo që ne shohim në sistem në një ekran vizual të quajtur "lidhje" është vetëm një paraqitje e objektit. Nuk mund të ndryshohet.
  • E paracaktuar— lloji boolean, tregon nëse elementi është i paracaktuar, më shumë për këtë më vonë. Nuk mund të ndryshohet.

Skeda "Data" tregon gjithashtu përfaqësimin e drejtorisë në sistem; përpara versionit 8.2.16, përfaqësimi mund të ishte vetëm Kodi ose Emri. Në versionet e fundit të platformës (duke filluar nga 8.3), pamja mund të përshkruhet në mënyrë të pavarur në modulin e menaxherit duke përdorur mbajtësin "ViewReceivingProcessing".

Skeda e numërimit

Këtu mund të specifikoni cilësimet e drejtorisë në lidhje me numërimin. Rekomandohet përdorimi i autonumërimit. Kontrolli i unike është një flamur që ndihmon, nëse është e nevojshme, për ta bërë kodin unik. Nëse, me grupin e flamurit, përpiqeni të shkruani një element drejtorie me një kod jo unik, në 1C do të merrni mesazhin "Kodi i drejtorisë është bërë jo unik".

Seritë e kodeve - përcakton se si të numëroni drejtorinë; mund të vendosni numërimin e drejtorisë sipas pronarit. Për shembull, pala tjetër "Brirët dhe thundrat" do të ketë numrin e vet të kontratave - "1, 2, 3", etj.

Tab. Forms

Këtu janë përshkruar formularët për drejtorinë. Nëse konfigurimi hapet në të dy mënyrat normale dhe të menaxhuara, atëherë do të ketë dy skeda me forma si parazgjedhje: "kryesore" dhe "të avancuara" - të ndryshme për aplikacionet normale dhe të menaxhuara.

Kjo faqe ka një veçori të rëndësishme të drejtorisë - "". Ky është një funksion shumë i përshtatshëm i 1C 8, i cili ju lejon, kur plotësoni të dhënat në fushën e hyrjes, të mos shkoni në drejtori, por të shkruani emrin, kodin, etj. dhe zgjidhni elementin e dëshiruar nga lista rënëse. Duket kështu:

Tab tjetër

Në skedën mund të merrni qasje të shpejtë në modulet kryesore të drejtorisë - moduli i objektit dhe moduli i menaxherit.

Ju gjithashtu mund të përcaktoni një listë të elementeve të drejtorisë së paracaktuar në faqe. Këta janë artikuj që nuk mund të fshihen në modalitetin e ndërmarrjes. Elementet e paracaktuara mund të aksesohen drejtpërdrejt në konfigurues me emër, për shembull: Directories.Nomenclature.Service.

Kjo skedë përcakton gjithashtu mënyrën e bllokimit - automatik ose i kontrolluar. Përdorimi i kërkimit të tekstit të plotë, si dhe informacioni i referencës në lidhje me drejtorinë, i disponueshëm në modalitetin 1C: Enterprise.



Artikuj të rastësishëm

Lart