Kako napraviti geometrijske oblike od papira?
Lilia Degtyareva Zalijepite prethodno pripremljene prazne kutije šibica ljepilom, po 5 komada. Ako...
Klyuev V.V.
http://prof1c.kklab.ru
Najvjerojatnije ste već više puta primijetili u običnim tipičnim konfiguracijama da su direktoriji međusobno povezani, kada kada odaberete element direktorija (direktorij 1), vrijednost drugog direktorija (direktorij 2) se "filtrira" ovom vrijednošću - to jest, vrijednosti odabrani su samo oni koji pripadaju trenutnom elementu imenika; na primjer, ovo je imenik “Odjel”, čiji je vlasnik imenik “Organizacija”.
Kako bismo odmah razumjeli bit onoga što se događa, pogledajmo što se događa u praksi. Da biste to učinili, možete stvoriti praznu konfiguraciju od nule ili otići na bilo koju postojeću kopiju infobaze i stvoriti 2 direktorija u konfiguratoru.
Imenik1 i Imenik2. U imeniku2 idite na karticu "Vlasnici" i odaberite vlasnika - "Imenik1", pogledajte kako je prikazano na slici.
Sada, kada kreirate elemente u “Directory2”, sustav će od vas tražiti da unesete vlasnika directory1. Postoji opcija - Korištenje subordinacije - kada je subordinacija postavljena na Elemente, grupe ili grupe i elemente.
Čini se da je sve jednostavno, ali za korisnike nastaju problemi. Prilikom otvaranja "Imenika 2" korisnik vidi sve elemente u potpuno nerazumljivom redoslijedu, a osim toga, ako ste radili sa standardnim konfiguracijama, mogli ste primijetiti da izravno u direktoriju "Divizije" nigdje ne navodite vlasnika, već prilikom otvaranja imenika možete odabrati organizaciju i, ovisno o tome, primiti elemente koji su podređeni jednoj ili drugoj organizaciji; Štoviše, kada kreirate stavku imenika “Odjeli”, prema zadanim postavkama dobit ćete vlasnika kojeg ste odabrali u obliku popisa odjeljaka.
Dakle, počnimo i stvorimo "Obrazac popisa" za naš "Imenik2", za sada ga dostavite 1C bez ikakvih promjena, kasnije ćemo prilagoditi obrazac koji je stvorio dizajner.
U “Directory2” idite na karticu Forms i dodajte (+) novi obrazac Directory List Form i kliknite Finish.
Kreirajmo atribut obrasca s tipom podataka "Directory1.Link", s nazivom "SelectionDirectory1", i povucite ovaj atribut na obrazac, postavite naslov "Directory1".
Sada, da bi "ovo čudo" radilo, morate napisati kod koji će izvršiti odabir prilikom odabira Elementa imenika1.
Kako bismo u obliku popisa direktorija prikazali samo elemente koji su nam potrebni za odabrani element Directory1, potrebno je programski izvršiti selekciju - za to ćemo koristiti unaprijed definiranu proceduru SelectionDirectory1 kontrole i napišite kod koji izvršava navedeni zadatak.
Na vrhu odaberite "Selection Directory1", desnom tipkom miša kliknite i odaberite "Properties", u prozoru koji se pojavi pronađite svojstvo "OnChange" i kliknite na povećalo, čime idete na modul obrasca; automatski se kreira procedura “Selection Directory1OnChange(Element)”.
U postupku unesite sljedeći tekst:
& Na listi Client Procedure Selection Directory1OnChange(Element). Izbor. Elementi. Očisti() ; // Element odabira = Popis. Izbor. Elementi. Dodaj(Upišite(" Izbor ElementData Layout
8.2 Redoviti obrasci
Kod izrade obrazaca sve je isto, samo obrasci moraju biti kreirani jer obični obrasci koji se upravljaju ne rade u običnoj aplikaciji.
Razlika će biti u postupku odabira elementa u obrascu liste i izradi rekvizita.
Referenca procedure1OnChange(Element)ThisForm. Izbor. Vlasnik. Vrijednost = Imenik1. Link; Ovaj obrazac. Izbor. Vlasnik. Upotreba = Istina ;
Ovaj obrazac. Elementi obrasca. Popis imenika. Postavke odabira. Vlasnik. Dostupnost = False; //(?) Kraj postupka
Pretposljednji red (?) - zabranjujemo promjenu odabira kada korisnik otvori parametre odabira - samo putem upravljačkog elementa!
Video (bez zvuka - sve je jasno bez zvuka)
Bilo koji proizvod poslužit će kao jasan primjer za objašnjenje. Za njegovo kretanje u poduzeću (kupnja, skladištenje u skladištu, montaža, prodaja itd.) Sastavljaju se posebni dokumenti, na primjer obrasci, računi itd. U normalnoj situaciji svi bi se ti dokumenti ispunjavali ručno, ali ako se koristi automatizirani sustav, to ne samo da će uštedjeti vrijeme, već će spriječiti pojavu mnogih grešaka.
Automatizirani sustav vam omogućuje da jednom napravite popis koji zatim uključuje upravo ovaj proizvod. Po potrebi u opisu uvijek možete navesti potrebne podatke, karakteristike i druge informacije. Ispada da su 1C imenici gotove liste s podacima o proizvodima, klijentima, uslugama itd. Po potrebi se popisi mogu mijenjati i dopunjavati.
Obično sučelje za rad u 1C Enterpriseu razvija programer, što znači da se različiti direktoriji mogu nalaziti u potpuno različitim izbornicima.
U debelom klijentu, korisnik s administratorskim pravima može otvoriti bilo koji 1C dokument i ima pristup bilo kojem imeniku. Da biste to učinili, morate otvoriti izbornik "operacije", kliknuti na "direktorije" i odabrati onaj koji vam je potreban s ponuđenog popisa.
Ako pogledate u tanki klijent, tamo također postoji sličan izbornik. Zove se "sve funkcije". Što se tiče rada, sličan je izborniku "operacije".
U modu konfiguratora, pristup svim imenicima je dostupan kroz konfiguracijsku granu. Odatle možete raditi s bilo kojim imenikom, prilagoditi njegov predložak, promijeniti ga i tako dalje. Za početak dvaput kliknite mišem na njega.
Kada otvorite imenik 1C 8, pred vama se otvara obrazac u obliku liste. Radi praktičnosti, popisi se mogu grupirati prema određenim karakteristikama i karakteristikama.
Kada otvorite grupu, ispred vas se pojavljuje popis svih elemenata. A nakon klika na sam element, postat će dostupan obrazac imenika, polja u kojima se mogu ispuniti i mijenjati.
Najčešće u 1C Enterpriseu postoje dva obavezna polja za direktorije:
Naziv imenika.
Nomenklatura u 1C 8.3 označava materijale, poluproizvode, opremu, usluge, povratnu ambalažu, radnu odjeću itd. Svi ovi podaci pohranjeni su u imeniku Nomenklatura. Do njega možete doći iz odjeljka "Imenici", pododjeljka "Robe i usluge", stavke "Nomenklatura"
Vidjet ćete popis pozicija direktorija koji ima hijerarhijsku strukturu na više razina.
U ovom članku ćemo korak po korak pogledati sve upute za početno ispunjavanje stavki u 1C 8.3 koristeći primjer
Radi lakšeg korištenja ovog priručnika, 1C računovodstvo koristi grupe (mape). Oni kombiniraju nomenklaturu koja ima zajedničke karakteristike. U svakoj grupi je pak moguće kreirati podgrupe (slično datotečnom sustavu na računalu). Broj razina hijerarhije postavlja programer, ali u početku nema ograničenja.
Kreirajmo nova grupa. U obliku popisa imenika "Nomenklatura" kliknite na gumb "Stvori grupu".
Navedite naziv grupe koju želite stvoriti. Možete ispuniti i njegovu vrstu, ali nije nužno.
Kao što možete vidjeti na donjoj slici, grupa koju smo stvorili bila je smještena u “Materijali”. Ako ga trebate premjestiti u drugu grupu ili u root, otvorite kontekstni izbornik i odaberite "Premjesti u grupu". Otvorit će se prozor u kojem ćete morati odrediti novu lokaciju.
Prijeđimo na dodavanje same nomenklature. Da biste to učinili, u obrascu s popisom imenika kliknite gumb "Stvori". Ispred vas će se otvoriti kartica novog artikla.
Ispunite polje "Naziv". Vrijednost u polju "Puno ime" bit će unesena automatski. Imajte na umu da se puni naziv prikazuje u izvješćima, tiskanim obrascima dokumenata, cjenicima itd. Polje "Naziv" koristi se za prikladno pretraživanje stavki u programu.
Ako je potrebno, ispunite preostale podatke:
Nakon što ste ispunili karticu za predmet koji izrađujete, potrebno ga je zapisati.
Kako biste konfigurirali vrste nomenklature, kliknite na odgovarajuću hipervezu u obliku popisa direktorija "Nomenklatura".
Vrste nomenklature potrebne su za odvajanje stavki. Svakoj vrsti se može dodijeliti vlastita. Vrlo je važno izbjeći prisutnost duplikata u ovom imeniku, što može dovesti do neispravnog rada konta računovodstva stavki.
Prilikom instaliranja standardne konfiguracije od dobavljača, ovaj imenik će već biti ispunjen glavnim tipovima stavki. Ako je vrsta artikla usluga, ne zaboravite staviti odgovarajuću zastavicu kada ga kreirate.
Za generiranje računovodstvenih unosa morate postaviti računovodstvene račune. To se može učiniti iz obrasca popisa direktorija “Nomenklatura” klikom na hipervezu “Knjigovodstvena računa stavki”.
U standardnoj konfiguraciji 1C Računovodstva 3.0 ovaj registar je već popunjen. Ali ako je potrebno, može se podesiti ručno.
Računovodstveni računi mogu se konfigurirati:
Ako su za određenu stavku i za nju konfigurirani različiti računovodstveni konti, tada će se konto preuzeti sa stavke. U takvim slučajevima konsolidirani računi imaju manji prioritet.
Jedan artikl može imati više cijena. Razlikuju se po vrstama, kao što su veleprodajna cijena, maloprodajna cijena itd.
Idite na karticu elementa imenika "Nomenklatura" i slijedite hipervezu "Cijene".
Ispred vas će se otvoriti lista u kojoj možete za određenu vrstu na određeni datum. Jednostavno označite cijenu u odgovarajućem stupcu, a zatim kliknite na gumb "Zabilježi cijene". Automatski će se izraditi dokument za određivanje cijene artikla, a na ovom popisu vidjet ćete poveznicu na njega.
Pogledajte i video o nomenklaturi:
-Pa, idioti, tko mi je ukrao imenik?...
Imenik je popis mogućih vrijednosti određenog atributa. Imenici se koriste u slučajevima kada je potrebno eliminirati dvosmislen unos informacija.Na primjer, da bi kupac, prodavač, skladištar, direktor razumjeli o kojem proizvodu je riječ, svi ga moraju nazvati isto.
I u ovom slučaju potrebna je referentna knjiga. Obično u trgovačkom poduzeću ima oblik cjenika, a ako je takav imenik pohranjen na računalu, tada se u njega unosi sav mogući asortiman robe s kojom trgovačko poduzeće radi. Sustav 1C:Enterprise omogućuje vam održavanje gotovo neograničenog broja potrebnih imenika. Svaki imenik je popis homogenih objekata: zaposlenici, organizacije, roba itd. Svaki takav objekt se poziva.
njegovo "ponašanje".
Atributi imenika Kao obvezne detalje, svaki imenik ima Kodirati I Ime
. Kod elementa imenika može biti numerički ili tekstualni.. Sustav 1C:Enterprise pruža široke mogućnosti za rad s kodovima elemenata imenika: automatsko dodjeljivanje kodova, automatska kontrola jedinstvenosti koda i drugo.Osim šifre i naziva, sve dodatne informacije o elementu imenika mogu se pohraniti u imenike sustava 1C:Enterprise. Za pohranjivanje takvih informacija u imeniku može se izraditi popis pojedinosti Pomoću mehanizma pojedinosti imenika lako je organizirati, na primjer, datoteku zaposlenika. Na primjer, imenik, Zaposleniciće gotovo sigurno imati atributeNaziv radnog mjesta Plaća i drugi. Kao obvezne detalje, svaki imenik ima Kodirati I Tvrtka 1C predvidjela je programere i predstavila ih
sve referentne knjige
dva već definirana atributa: . Doista, gotovo svaki predmet iz stvarnog života sadrži te atribute.", "Na primjer, za zaposlenike šifra je osobni broj, a ime je prezime, ime, patronim (puno ime).", "Vrste podataka"(u verziji 8.0 postoji i Booleov tip - True ili False). Ovo su osnovni tipovi, ali možete navesti i složene tipove podataka. Na primjer, atribut Na primjer, imenik ima tip podataka Pozicije. U ovom slučaju, vrijednosti ovog atributa bit će odabrane iz imenika Pozicije. Ovako se ostvaruje najjednostavnija veza između direktorija, kada se vrijednosti atributa jednog direktorija biraju iz drugog direktorija.
Hijerarhijski imenici
Popis elemenata imenika u sustavu 1C:Enterprise može biti višerazinski. U ovom slučaju, sve linije imenika bit će podijeljene u 2 vrste: "samo" elementi imenika i skupine
priručnik. Grupe vam omogućuju pomicanje na niže razine direktorija s više razina.
Korištenje imenika na više razina omogućuje vam organiziranje unosa informacija u imenik s potrebnom razinom detalja. Elementi i skupine elemenata u direktoriju s više razina mogu se prenositi iz jedne skupine u drugu. Podređeni imenici Odnos se može uspostaviti između imenika podređenosti. U terminima relacijske baze podataka, između tablica se uspostavlja odnos jedan prema više. U tom slučaju, svaki element podređenog imenika bit će povezan s jednim od elemenata vlasničkog imenika Ponekad možemo reći da su elementi jednog imenika pripadati elementi drugoga..
Na primjer, sustav može imati imenik poreznih olakšica. Onda se može pojedinosti |
Na primjer, sustav može imati imenik poreznih olakšica. Onda se može podređeni
|
|
( Porezne olakšice Ivanov Ivanov Ivanov
|
|
( Porezne olakšice Petrov Petar Petrovič)
|
Dobrobit za djecu
Petrov Petr Petrovič
Usporedba imenika s drugim objektima
Objekt |
Sličnosti |
razlike |
Konstante | pohranjuje vrijednost, spremljenu u bazi podataka | Imenik ne pohranjuje samo jednu vrijednost, već cijeli popis homogenih objekata. |
Dokumenti | spremljeno u bazi podataka, ima pojedinosti, dokumenti mogu biti podređeni jedni drugima | Imenik pohranjuje normativne i referentne informacije, a dokumenti odražavaju događaje iz stvarnog svijeta. Obično se vrijednosti detalja dokumenta odabiru iz direktorija. Dokument se obično knjiži, dokument mora imati datum i vrijeme, dokument može sadržavati tabularni dio, kojeg nema u imenicima (u verziji 8.0 imenici i dokumenti mogu imati više tabelarnih dijelova). Imenici mogu biti višerazinski, imenik može sadržavati periodične detalje, kojih nema u dokumentima (u verziji 8.0 nema periodičnih detalja, ali postoje periodični registri informacija). |
Transferi | pohranjen u bazi podataka, pohranjuje popis vrijednosti | Korisnik unosi skup vrijednosti u imenik u načinu rada Enterprise, a za popise popis vrijednosti navodi programer u načinu rada konfiguratora. Nabrajanja se obično koriste u naredbama If. |
Tablica vrijednosti | ima retke i stupce (nisu pohranjeni u bazi podataka) | Tablica vrijednosti dizajnirana je za pohranjivanje posrednih podataka u memoriju računala koji se javljaju tijekom rada programa. Tablica vrijednosti može pohraniti heterogene objekte, dok direktorij može pohraniti sve elemente iste vrste. Tablice vrijednosti ne mogu biti višerazinske niti jedna drugoj podređene. |
ListValues | pohranjuje popis vrijednosti (nije spremljeno u bazi podataka) | Popis vrijednosti može pohraniti heterogene objekte, au direktoriju sve elemente iste vrste |
Osnove programiranja
Izrada i snimanje novog elementa
Pronalaženje stavke imenika
Ref. FindByCode(123); //ako je element pronađen, on postaje trenutni i može se čitati ovako: If SprSotr.FindByName("Ivanov Ivan Ivanovich") = 1 Onda |
|
FoundCotr = RefCotr. FindByCode(123); FoundSotr = SprSotr.FindByName("Ivanov Ivan Ivanovich"); |
Brisanje elementa imenika
Ref. Izbrisati(1); //trenutno brisanje Ref. Izbrisati(0);
//označi za brisanje |
|
Ref. PostaviDeleteMark (istina);
//
označiti za brisanje |
Nabrajanje elemenata imenika
|
|
|
Roditelj
Iteracija po elementima unutar grupe. Grupa u smislu 1C je "roditelj".
|
|
|
Vlasnik
Nabrajanje elemenata imenika koji pripadaju elementu drugog imenika.
Jedna referentna knjiga podređeni drugu referentnu knjigu, na primjer referentnu knjigu.
Porezne olakšice podliježu Ref. Zaposlenici.
Periodični detalji
Čitanje i pisanje periodičnih detalja.
(Neki datum); (Neki datum, nova kategorija); UseDate |
|
Spr.Plaća = 6000; |
U verziji 8.0 nema periodičnih detalja. Umjesto toga potrebno je koristiti vremenski proširene informacijske registre.
Ekranski oblici priručnika
Obrazac popisa imenika Kako biste korisnicima olakšali rad s imenikom u fazi konfiguracije, možete stvoriti nekoliko vrsta ekranske forme
Bolje je vidjeti jednom nego čuti stotinu puta, stoga je u nastavku primjer obrasca liste za imenik zaposlenika:
|
|
Modul obrasca popisa sadrži procedure i funkcije koje djeluju u kontekstu ovog obrasca (u kontekstu objekta imenika).
Unaprijed definirani postupci pozivaju sustav 1C pri pojavi određenih događanja. Predefinirane procedure poziva sustav 1C kada se dogode određeni događaji, pa su one rukovatelji događajima. U verziji 8.0 naziv procedure može biti bilo koji, ne mora nužno biti isti kao naziv događaja. Osim toga, u verziji 8.0 popis događaja za sve objekte značajno je proširen.
Događaj |
Opis |
Prilikom otvaranja | Poziva se kada se otvori obrazac popisa imenika. Možete postaviti početne vrijednosti za varijable, provjeriti korisnička prava za otvaranje ovog direktorija itd. |
Na zatvaranju | Poziva se kada se zatvori obrazac popisa imenika. |
Prilikom snimanja | Poziva se prilikom pisanja elementa imenika, ako se elementi unesu izravno u obrazac popisa, a ne u obrazac elementa. Ovo se koristi za imenike s jednostavnom strukturom, na primjer imenik poslova. Ovaj vam postupak omogućuje provjeru pogrešaka u vašim ulaznim podacima. |
Primjer, položaji imenika | WhenSelectingParent(NewParent) |
Poziva se kada je odabran roditelj (grupa). Koristite ovu proceduru za provjeru prava korisnika za pregled članova određene grupe. | Prilikom odabira vlasnika (novi vlasnik) |
Poziva se kada je odabran vlasnik host imenika. Ima smisla ako je ovaj imenik podređen drugom. | WhenSettingSelection(atributi,vrijednost) |
Predefinirana procedura za interaktivno postavljanje odabira na bilo koji način (odabir, brzi odabir, odabir po vrijednosti, povijest odabira) i prilikom onemogućavanja odabira. | OnRowSelect() |
Način obrade odabira linija (dupli klik ili tipka Enter) omogućen je u obliku popisa imenika, dnevnika dokumenata, konta, dnevnika transakcija, dnevnika transakcija metodom Form.RowSelectionProcessing(1).
Zatim, kada se odabere red, poziva se ova unaprijed definirana procedura.Sortiranje
|
|
("Kod",0); //razvrstavanje po kodu, korisnik ne može mijenjati |
Izbor
U obrascu popisa imenika stavke se mogu filtrirati, tj. Korisniku će biti prikazani samo potrebni elementi. Odabir možete programski postaviti pomoću metode SetSelection (Attributes, Value). Da biste to učinili, atribut mora imati označen okvir "Odabir po atributu" u konfiguratoru .
Statički filter (samo verzija 7.7)
U 1C 7.7 ne možete postaviti odabir po periodičnim detaljima ili po nekoliko detalja istovremeno (složeni filter). U ovom slučaju, metoda UseList of Elements može biti izlaz. Ovoj metodi treba proslijediti popis elemenata koji se trebaju prikazati. Ovaj popis treba prvo izraditi.
Postupak ShowWorkingCarpenters()
Kraj postupka |
|
Oblik elementa i oblik skupine
Ako imenik ima složenu strukturu, tada je prikladnije uređivati njegove elemente u zasebnom prozoru, a ne na popisu. Ispod je obrazac elementa Imenik zaposlenika.
Obrazac elementa imenika također ima unaprijed definirane procedure (događaje):
Događaji |
Opis |
OnOpen() | Poziva se kada se otvori obrazac stavke imenika. Možete postaviti početne vrijednosti za varijable, provjeriti korisnička prava za otvaranje određenog elementa imenika itd. |
OnClose() | Poziva se kada se zatvori obrazac za rječničku stavku. |
OnWrite() | Poziva se kada je element direktorija napisan. Ovaj vam postupak omogućuje provjeru pogrešaka u vašim ulaznim podacima. Primjer, imenik zaposlenika Postupak snimanja |
UnesiteNovo() | Poziva se kada se interaktivno unese novi element imenika. U ovom postupku možete provjeriti prava korisnika za stvaranje novih elemenata imenika, kao i postaviti početne vrijednosti pojedinosti. |
Treba napomenuti da je u verziji 8.0 popis događaja za sve objekte značajno proširen.
Izrada i snimanje elementa
Programska izrada elementa imenika
U nastavku se programski dodaje imenik zaposlenika novi zaposlenik u Radnu skupinu.
Ref.Position.Set (Ref.ReceptionDate, forCarpenter); Ali možete ga učiniti ljepšim: |
|
SprCotr.Write(); New.Write(); |
//u verziji 8.0 nema periodičnih detalja
Ali možete ga učiniti ljepšim: Ref. Programsko stvaranje grupa(); Nova Grupa |
|
Ref.NovaGrupa(); Novo = Imenici.Zaposlenici(); Novi Novo = Imenici.Zaposlenici(); |
New.Name = "Radi";
Pažnja!
Transakcije
Ali možete ga učiniti ljepšim: StartTransaction .....RepCort.Write();(); |
|
StartTransaction .....RepCort.Write();();
|
.....New.Write();
Ponavljanje preko elemenata
Jednostavna pretraga
RefCotr = CreateObject("Directory.Employees");
Ref. Odaberite stavke mod = 0; //odaberi bez uzimanja u obzir hijerarhije, 1 - uzimajući u obzir (prema zadanim postavkama)
(Način rada); GetElement Dok je SprSotr.
.....<действия с очередным элементом/группой>
EndCycle;
()=1 ciklus
Jednostavna pretraga
Filtriranje (odabir)
HierarchyMode = 1; //1 - odabir uzimajući u obzir hijerarhiju, 0 - bez uzimanja u obzir
Grupni način = 0; //0 - ne uključi grupe u odabir, 1 - uključi
AttributeName = "Godina"; //u Konfiguratoru, atribut mora imati označen okvir Odabir
Ref. vrijednost = 1980; Odaberite ElementsBy Details
(AtributeName,Value,HierarchyMode,GroupMode);
.....<действия с очередным элементом>
EndCycle;
Dok je SprCont.GetElement()=1 petlja
Jednostavna pretraga
RefCotr = CreateObject("Directory.Employees");
Filtriranje u petlji
Ref. Odaberite stavke();
(Način rada); GetElement Ref.UseDate(WorkingDate());
()=1 ciklus<>Ako je administrativni položaj
dlzhCarpenter Zatim
endIf;<действия с очередным элементом>
EndCycle;
Redoslijed sortiranja
Prije uzorkovanja možete postaviti redoslijed sortiranja pomoću sljedećih metoda:
CodeOrder()
NameOrder()
Redoslijed atributa(ReqName) //atribut mora imati označen okvir Sortiranje u konfiguratoru
Obrnuti poredak()
Na primjer, ispod se otvara izbor zaposlenika, poredanih prema broju u silaznom redoslijedu:
Jednostavna pretraga
Ref.CodesOrder();
Ref.Obrnuti redoslijed();
Ref.SelectItems();
Zahtjev za imenik
Pretraživanje elemenata imenika može se organizirati putem Zahtjeva. To je često prikladnije ako se koristi složeni uvjet odabira ili grupiranje elemenata. Pogledajte više detalja.
Zahtjevi
Potražite element
Jednostavna pretraga
Potražite element FindElement Ako je SprSotr.
(SelectSotr)=1 Zatim
....//element postaje aktualan
....SprSotr.Parent = grpWorking;
....RepCort.Write();
endIf;
Traži po šifri FindByCode Ako je SprSotr.
(1) = 1 Tada
endIf;
....ElementOrGroup = Ref.CurrentElement();
Traži po šifri FindByName Traži po imenu
("Radi")=1 Zatim
endIf;
....grpWorking = Ref.CurrentItem();
način = 1; // 1 - pretraživanje unutar utvrđene podređenosti (roditelj) (zadano);
0 - traži u cijelom imeniku
SearchFlag = 0; //1 - pronaći točno podudaranje; 0 - pronađite ime prema prvim znakovima (zadano)
SprSotr.UseParent(grpWorking);
endIf;
If Ref.FindByName("Iv",Mode,SearchFlag)=1 Onda
....FirstWorkingIv = Ref.CurrentItem();
Pretraživanje po detaljima
Traži po šifri FindByDetails ReqName = "Godina";
//atribut mora imati označen okvir Sortiranje u konfiguratoru
....RepCort.Write();
SearchGlobeFlag = 1; // 1 - traži u cijelom imeniku, 0 - traži unutar podređenosti
Jednostavna pretraga
RefCotr = CreateObject("Directory.Employees");
Filtriranje u petlji
Ref. Odaberite stavke();
(Način rada); GetElement Ref.UseDate(WorkingDate());
(ReqName,1980,SearchGlobeFlag)=1 Zatim
.....PronađenoElement = Ref.TrenutniElement();
endIf;
Pronalaženje elementa u petlji
<действия с найденным элементом>
Zahtjev za imenik
Ako je Admin.Position = dlzhCarpenter Onda Pogledajte više detalja.
....Prekid; //našao radnog stolara! izaći iz petlje
EndCycle;
Jednostavna pretraga
Traženje elementa imenika može se organizirati putem Zahtjeva. Ovo je često prikladnije ako se primijeni složeni uvjet odabira. Pogledajte više detalja.
Uklanjanje stavki Izravno uklanjanje
New.Name = "Radi"; SprEmployee.FindElement(SelectEmployee); Ref.Delete();.
//trenutno brisanje
Označi za brisanje
Kako bi se kontrolirao referentni integritet baze podataka, izbrisani elementi se jednostavno označavaju za brisanje. Zatim, pomoću posebne naredbe izbornika Operacije => "Brisanje označenih objekata" u ekskluzivnom načinu rada, 1C sustav će provjeriti referentni integritet i fizički izbrisati elemente iz baze podataka ako nema referenci na njih u drugim objektima.
SprSotr = CreateObject("Directory.Employees");
Ref.FindElement(SelectEmployee);
Ref.Delete(0); //označi za brisanje
//možete provjeriti je li element označen za brisanje
//funkcija vraća 1 - ako je označeno, 0 - ako nije
Oznaka = Ref. Brisanje zastavice();
//možete poništiti oznaku za brisanje
Ref.FindElement(SelectEmployee);
Ref. Poništite opciju Izbriši();
Pažnja!
Kada brišete mnoge elemente imenika, možete priložiti petlju u transakciju kako biste ubrzali rad. U ovom slučaju, stvarno brisanje (oznaka za brisanje) svih elemenata dogodit će se samo s naredbom CommitTransaction().
Jednostavna pretraga
Kada stvarate mnoge elemente imenika, možete priložiti ciklus u transakciju kako biste ubrzali rad. U ovom slučaju, stvarno stvaranje svih elemenata dogodit će se samo s naredbom CommitTransaction(). Imenik je blokiran dok se transakcija izvodi.();
Imenik je blokiran za vrijeme trajanja transakcije.
(AtributeName,Value,HierarchyMode,GroupMode);
Ref.SelectItems();
EndCycle;
.....RepCort.Write();();
Hijerarhijski imenici
......Ref.Delete(0); //označi za brisanje
Popis elemenata imenika u sustavu 1C:Enterprise može biti na više razina.
New.Name = "Radi"; U ovom slučaju, sve linije imenika bit će podijeljene u 2 tipa: "jednostavni" elementi imenika i grupe imenika. Grupe vam omogućuju pomicanje na niže razine direktorija s više razina. Mogući broj razina ugniježđivanja imenika postavlja se u konfiguratoru. Korištenje imenika na više razina omogućuje vam organiziranje unosa informacija u imenik s potrebnom razinom detalja. Elementi i skupine elemenata u direktoriju s više razina mogu se prenositi iz jedne skupine u drugu. Hijerarhijski referentna knjiga je također višerazinski.
imenik, odnosno imenik sa skupine".
Grupa imenika u 1C često se naziva "
Jednostavna pretraga
Ref. Programsko stvaranje grupa();
roditelj
Ref. Novi();
Nova Grupa
Programsko stvaranje grupe
Spr.Pozicija = dljCarpenter;
New.Name = "Radi"; SprSotr.Name = "Radi";
Ref.Name = "Odbačeno";
Ref. UseParent U konfiguratoru možete postaviti da atribut vrijedi samo za element, samo za grupu ili za oboje. Na primjer, polje Datum prijema nema smisla za radnu grupu. Stoga ne biste trebali pristupati detaljima elementa ako radite s grupom i obrnuto.
Postavljanje trenutne grupe
Jednostavna pretraga
Ref. UseParent(grpRadi); //sada smo unutar Radne grupe
Ref.SelectItems(); //otvorite izbor elemenata Radne grupe
(grpRadi); Ref.Novo(); //stvaranje novog elementa u radnoj grupi sljedeće metode i atribute koji vam omogućuju dobivanje informacija o trenutnom elementu imenika:
Metoda/atribut |
Opis |
Razina() | Ova metoda vraća razinu trenutnog elementa. Na primjer, za zaposlenika koji je u Radnoj skupini dobit ćemo broj 2. Primjer, izlaz hijerarhijskog imenika u obliku stabla: Ali možete ga učiniti ljepšim:
EndCycle; |
Ova Grupa() | Ova metoda vraća 1 ako je trenutni element imenika grupa ili 0 ako nije grupa. Primjer, output zaposlenika (grupe nisu output): Ali možete ga učiniti ljepšim:
EndCycle; |
Pripada grupi (...) | Metoda provjerava pripada li trenutni element imenika navedenoj grupi (bez obzira na temeljnu razinu na kojoj se nalazi). Vraća: 1 - ako element pripada navedenoj grupi, 0 - ako ne. Primjer, prikazivanje proizvoda koji pripadaju grupi Alkohol, bez obzira da li su uključeni u podskupine Šampanjac, Pivo, Vodka, Vino itd.:
EndCycle; |
atribut Roditelj | Ovaj atribut sadrži nadređeni element trenutnog direktorija, tj. grupa u kojoj se nalazi trenutni element. Čitljiv i pisan. Primjer, prijenos svih proizvoda iz grupe Alkohol u grupu Prodaja:
EndCycle; .....RepCort.Write(); Primjer, prijenos svih proizvoda iz grupe Alkohol u grupu Prodaja: |
SprProizvodi.Write(); | Puni kod() Vraća niz koji sadrži puni kod odabranog elementa imenika sa svim višim razinama odvojenim znakom "/". |
Na primjer, "2/7/123" | Puno ime() Vraća niz koji sadrži puni naziv odabranog elementa direktorija sa svim višim razinama odvojenim znakom "/". |
Na primjer, "Alkohol/šampanjac/sovjetski"
Često je zgodno za pojedinosti na obrascu koji imaju vrstu Imenik onemogućiti mogućnost odabira grupe. Tada se u ovom polju može odabrati samo element, a grupa se ne može odabrati. Općenito, lakše je pokušati jednom nego objašnjavati nekoliko puta.
Form.SelectEmployee. Odabir grupe(0);
priručnik. Grupe vam omogućuju pomicanje na niže razine direktorija s više razina.
//onemogući mogućnost odabira grupe Porezne olakšice Imenik- , ovo je također referentna knjiga -.
majstorski Vlasnički imenik i podređeni imenik također se pozivaju srodni
referentne knjige.
U terminima relacijske baze podataka, vlasnički direktorij je nadređena tablica, podređeni direktorij je podređena tablica.
Dodjela podređenih imenika
Bilo koji imenik može se koristiti ili samostalno ili biti podređen nekom drugom imeniku. Na primjer, imenik ugovora može se koristiti zasebno ili se može povezati s imenikom organizacija.
Za podređivanje imenika nekom od imenika koji već postoje u sustavu, u polju “Podređeni” odaberite naziv tog imenika.
Takav imenik u sustavu 1C:Enterprise naziva se vlasnik.
Za razliku od imenika na više razina, u kojem svi elementi imaju istu strukturu, korištenje mehanizma podređenih direktorija omogućuje vam povezivanje elemenata različitih struktura. U tom će slučaju svaki element podređenog imenika biti povezan s jednim od elemenata vlasničkog imenika.
Izvana, rad s podređenim imenikom u sustavu 1C:Enterprise izgledat će ovako.
Kada radite sa sustavom 1C:Enterprise, prikaz u obliku hijerarhijske liste može se onemogućiti za podređeni imenik. U tom će slučaju svi elementi ovog imenika biti prikazani u prozoru podređenog imenika, odnosno elementi dodijeljeni različitim vlasnicima bit će prikazani izmiješani. Međutim, bilo koji element podređenog imenika "zna" svog vlasnika: ako je za imenik omogućen način rada "Uredi u dijaloškom okviru" (pogledajte dolje u "Stvaranje obrazaca imenika"), naziv elementa vlasnika bit će prikazan u naslovu prozora za uređivanje elementa imenika.
Postavljanje trenutnog vlasnika
SprAgreements.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //otvorite izbor ugovora odabrane druge ugovorne strane
<...>
Informacije o trenutnom elementu
Ako je imenik podređen, tada će biti korisno koristiti sljedeće metode i atribute koji vam omogućuju dobivanje informacija o trenutnom elementu imenika:
Atribut |
Opis |
atribut Vlasnik | Ovaj atribut sadrži vlasnika trenutnog elementa podređenog imenika, tj. element direktorija glavnog računala kojem ovaj element pripada. Atribut je čitljiv i pisan. Primjer, prijenos svih ugovora s jedne ugovorne strane na drugu (imenik Ugovori podređen je direktoriju Ugovornih strana): DirectoryAgreements = CreateObject("Directory.Agreements");
EndCycle; |
Porezne olakšice podliježu Ref. Zaposlenici.
Omogućavanje opcije "Periodic" omogućuje vam da odredite atribut direktorija za pohranjivanje povijesti promjena njegove vrijednosti. Takav detalj u sustavu 1C:Enterprise naziva se periodičkim i ima sljedeće svojstvo: za razliku od "običnih" (neperiodičnih) detalja, sustav 1C:Enterprise pohranjuje vrijednosti takvog detalja prema datumima njihove promjene . Kada se pristupa vrijednosti takvog atributa za određeni datum, vraća se njegova vrijednost za taj datum ili, ako nema, za najbliži prethodni datum na koji je vrijednost atributa postavljena.
Ovo svojstvo detalja imenika omogućuje, na primjer, jednostavno organiziranje pohranjivanja povijesti tečajeva u imeniku valuta.
Periodičnim detaljima može se pristupiti pomoću ugrađenog jezika sustava 1C:Enterprise - primiti i zabilježiti vrijednost detalja za određeni datum. Međutim, treba imati na umu da se prilikom primanja vrijednosti varijable za određeni datum dohvaća njezina vrijednost za navedeni ili (ako nema vrijednosti za navedeni datum) za najbliži prethodni datum, a vrijednost periodična varijabla uvijek se bilježi za navedeni datum.U načinu korištenja konfiguracije za periodične detalje, možete otvoriti prozor "Povijest".
Ovaj prozor je tablica koja se sastoji od dva stupca: datum kada je vrijednost atributa imenika promijenjena i vrijednost od tog datuma.
Prozor "Povijest" omogućuje vam izravno uređivanje povijesti promjena vrijednosti atributa: unos novih redaka, uređivanje ili brisanje postojećih.
Metode periodičnih detalja
//ovako saznajemo koju kategoriju je zaposlenik imao na određeni datum
Kategorija = SprSort.Category.Get(SomeDate);
New.Name = "Radi"; //ovako ćemo postaviti kategoriju zaposlenika za određeni datum
Ref.Category.Set(SomeDate, NewCategory);
Ove se metode mogu koristiti ako prethodno niste koristili metodu UseDate
Ref. //detalji za cijeli imenik Dobiti
Postavljanje datuma za uzorkovanje periodičnih detalja //možete postaviti datum za uzorkovanje periodičnih detalja za cijeli direktorij//onda je već niže
to je zabranjeno
//isto kao i za obične detalje
Kategorija = SprSotr.Kategorija;
koristite metode Set i Get
//pristup periodičnim detaljima postaje isti kao i redovnim detaljima
Objekt "Periodičko"
Za rad s poviješću periodičnih detalja vrlo je prikladno koristiti objekt "Periodic".
Primjer, prikaz povijesti karijere zaposlenika za tekuću godinu:
HistoryCareers = CreateObject("Periodic");
CareerHistory.UseObject("Pozicija", SelectEmployee);
CareerHistory.SelectValues(StartYear(WorkingDate(),EndYear(WorkingDate()));
EndCycle;
Dok HistoryCareers.GetValue()=1 Petlja
....Izvješće(String(CareerHistory.DateValue) + " " + String(CareerHistory.Value));
Također možete uređivati i brisati vrijednosti pomoću objekta Periodic. Potpuni popis metoda potražite u Pomoćniku sintakse.
Izvođenje dokumenata Prilikom knjiženja dokumenta često je potrebno postaviti novu vrijednost za periodični atribut za određeni datum. To se zove kretanje dokumenta.
Kraj postupka
Ako dokument ima tabularni dio i želite da se pomaci dokumenta vežu uz broj retka dokumenta, tada trebate koristiti metodu BindRow.
Procedura ProcessProcessing()
Odaberite redove();
Dok je GetString()=1 petljaBindString(Broj reda);
Postavite pojedinosti imenika (zaposlenik, "Pozicija", Nova pozicija, Datum preseljenja);EndCycle;
Kraj postupka
Odabir iz imenika
Funkcija odabira omogućuje odabir višestrukih vrijednosti iz pretraživanja ili drugog objekta bez zatvaranja.Na primjer, postoji dokument Račun u kojem korisnik može navesti nekoliko proizvoda.
Organizacija selekcije
Sintaksa: OpenSelect(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)
OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);
...Novi red();
...Proizvod = Stavka;
Procedura OnOpen()
Možete koristiti kontekst obrasca i odmah otići na željenu grupu, na primjer:
OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);
Cont.UseParent(grpAlcohol);
Procedura ProcessingFit(Element,FormContent)
...Novi red();
...Proizvod = Stavka;
Procedura OnOpen()
Postavljanje i dobivanje vrijednosti iz odabira
ContFormSelection. SetValueInSelection(<ИмяРеквизита>,<Значение>)
<ИмяРеквизита>- linija s nazivom atributa obrasca za odabir vrijednosti;
<Значение>- vrijednost atributa.
ContFormSelection. GetValueFromSelection(<Выражение>)
<Выражение>- izraz niza čija se vrijednost izračunava u kontekstu obrasca za odabir i vraća kao rezultat.
Druge korisne metode
metoda |
Opis |
Pogled() | Postavite ili pročitajte trenutni naziv vrste imenika. Vraća trenutni naziv vrste imenika, kako je navedeno u konfiguratoru, na primjer, "Zaposlenici". Postavljanje tipa imenika moguće je za detalje tipa "Imenik", tj. imenik neodređene vrste. |
ViewView() | Dobijte prilagođeni prikaz prikaza imenika kako je navedeno u konfiguratoru. Vraća vrijednost niza koja sadrži prilagođeni prikaz prikaza direktorija (sinonim). |
SetAttribute(AttributeName, Value) | Postavite vrijednost atributa prema njegovom imenu. <ИмяРеквизита>- string izraz koji sadrži naziv atributa, kako je navedeno u konfiguratoru.<Значение>- izraz koji sadrži vrijednost atributa koji treba postaviti. |
GetAttribute(AttributeName) | Dohvatite vrijednost atributa prema njegovom imenu. Vraća vrijednost atributa. |
Odabrano() | Vraća 1 - ako je element imenika odabran, 0 - ako nije odabran. Često se koristi za provjeru pogrešaka kako bi se osiguralo da su navedeni svi potrebni podaci. |
Odaberite (...) | Pozivanje dijaloškog okvira za odabir elementa imenika. Vraća: 1 - ako je element odabran; 0 - ako nije odabrano. Odabrani element postaje trenutni. |
Čitanje strukture imenika
Ciklus prema referentnim knjigama
Broj imenika u konfiguraciji = metapodaci.imenik();
Za Nom=1 do Broj direktorija u konfiguracijskom ciklusu
cfgSpr = Metadata.Directory(Nom);
Identifikator = cfgSpr.Identifikator();
PuniIdentifier = cfgSpr.PuniIdentifier();
Sinonim = cfgSpr.Sinonim();
1C imenici su specijalizirani objekt stabla metapodataka koji služi za pohranu statičkih referentnih informacija. Na primjer, u tipičnim konfiguracijama možete vidjeti sljedeće prikaze: , Nomenklatura, Zaposlenici, Osnovna sredstva itd. Podaci u imenicima se u pravilu ne mijenjaju često. Imenici se kasnije koriste u gotovo svim računovodstvenim objektima kao računovodstveni dio ili referentni podaci.
U nastavku ćemo pogledati postavljanje i dizajn imenika iz konfiguratora koristeći imenik "Nomenklatura" kao primjer.
Kartica “Osnovno” navodi naziv, sinonim, prikaz objekta i opis namjene.
Ovdje se uspostavlja hijerarhija imenika.
Hijerarhija u 1C 8.3 ima dvije vrste - “ grupe i elementi"I" elementi". Razlikuje se po tome što u prvom slučaju roditelj (mapa) može biti samo mapa (grupa), a u drugom slučaju roditelj može biti i element.
“Postavi grupe na vrh” - zastavica je odgovorna za prikaz grupa u obliku popisa.
Također u postavkama možete ograničiti broj grupa u hijerarhiji imenika pomoću odgovarajuće postavke.
Imenik može biti podređen drugom imeniku. Sa stajališta konfiguracije 1C 8.3, to znači da atribut "Vlasnik" postaje obavezan za podređeni element. Primjer takve veze između imenika u standardnim konfiguracijama “Nomenklatura - mjerne jedinice”, “Druge strane - ugovori s ugovarateljima”.
Vlasnik imenika također mogu biti sljedeći objekti metapodataka: , .
Besplatno nabavite 267 video lekcija o 1C:
Najvažnija kartica sa stanovišta programera. Sadrži pojedinosti imenika.
Imenik ima skup standardnih detalja koje programer 1C 8.2 ne uređuje; njihov popis možete vidjeti klikom na gumb "Standardni detalji":
Zadržat ću se na svakom detaljnije:
Kartica "Podaci" također označava prikaz imenika u sustavu; prije verzije 8.2.16, prikaz je mogao biti samo kod ili naziv. U novijim verzijama platforme (počevši od 8.3), pogled se može opisati neovisno u modulu upravitelja pomoću rukovatelja "ViewReceivingProcessing".
Ovdje možete odrediti postavke imenika vezane uz numeriranje. Preporuča se korištenje automatskog numeriranja. Kontrola jedinstvenosti je oznaka koja pomaže, ako je potrebno, da kod bude jedinstven. Ako s postavljenom zastavicom pokušate napisati element imenika s nejedinstvenim kodom, u 1C ćete dobiti poruku "Kod imenika je postao nejedinstven."
Serija šifri - određuje način numeriranja imenika možete unijeti numeraciju imenika po vlasniku. Na primjer, druga ugovorna strana "Rogovi i kopita" imat će svoje numeriranje ugovora - "1, 2, 3", itd.
Ovdje su opisani obrasci za imenik. Ako se konfiguracija pokrene u normalnom i upravljanom načinu rada, tada će prema zadanim postavkama postojati dvije kartice s obrascima: "glavni" i "napredni" - različite za normalne i upravljane aplikacije.
Ova stranica ima važnu značajku imenika - ““. Ovo je vrlo zgodna funkcija 1C 8, koja vam omogućuje da prilikom popunjavanja podataka u polje za unos ne idete u imenik, već da upišete njegovo ime, šifru itd. i odaberite željeni element iz padajuće liste. Ovako izgleda:
Na kartici možete brzo pristupiti glavnim modulima imenika - objektnom modulu i upraviteljskom modulu.
Također možete definirati popis unaprijed definiranih elemenata imenika na stranici. Ovo su stavke koje se ne mogu izbrisati u načinu rada Enterprise. Predefiniranim elementima može se pristupiti izravno u konfiguratoru po nazivu, na primjer: Imenici.Nomenklatura.Usluga.
Ova kartica također određuje način blokiranja - automatski ili kontrolirani. Korištenje pretraživanja cijelog teksta, kao i referentnih informacija o imeniku, dostupnih u načinu rada 1C: Enterprise.