Postavke i opcije za izvješća o sustavu pohrane. Postavke i opcije za izvještaje o sustavu kontrole pristupa korisničke postavke sustava kontrole pristupa programski

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Vjerujem da nema potrebe govoriti vam što je sustav kontrole pristupa, sastavljač postavki i, općenito, cijeli skup objekata dizajniranih za rad sa sustavom kontrole pristupa. Glavna područja korištenja, ne računajući lukave radnje u kodu, su dinamički popisi i izvješća, au oba slučaja, vrlo značajna funkcionalnost ostaje iza scene. Često niti ne razmišljamo o logici ponašanja i odnosa svih sudionika u procesu, jer Obično rješavamo prilično jednostavne probleme ili se oslanjamo na zadane postavke platforme. No, gdje su šutnje, tu je i unutarnja logika, svojevrsna “medvjeđa usluga” 1C-a čije je plodove ponekad teško i neočito prevladati kako bi se postigao željeni učinak, a pritom je dovoljno samo ispravno koristiti alate.

Zainteresirani mogu preskočiti dijelove 1-4 i odmah prijeći na primjere.

Pokušat ću se malo detaljnije osvrnuti na rad ACS odabira za slučaj njihove upotrebe u izvješćima. Vjerujem da će ponašanje u dinamičkim popisima, uz niz upozorenja, biti slično. Dakle, odabiri u izvješćima, malo teorije pa konkretni primjeri.

Koriste se SP 8.3.6 i noviji, odjeljci ITS-a (klauzula 10.3.7.5, itd.), knjiga „Profesionalni razvoj u sustavu 1C-Enterprise 8” (Kazan, 2012, drugi svezak). U knjizi E. Khrustaleva uopće nije bilo ničeg razumljivog o ovoj temi.

1. dio

Alat za izradu postavki, kao što znate, ima zbirke “Postavke”, “Fiksne postavke” (u daljnjem tekstu “FN”) i “Prilagođene postavke” (u daljnjem tekstu “CU”). Izvješće može imati nekoliko opcija, a veze između opcije, N, PN i FN vrlo su jedinstvene. Također, nemojmo zaboraviti na izvor dostupnih postavki i njihov "praotac", koji je obično sam sklop, koji također ima svoje zadane postavke.

* Postavke – postavke kreirane u načinu rada Konfigurator i promijenjene u načinu rada za uređivanje verzije izvješća;

* UserSettings – postavke koje korisnik mijenja u načinu rada "1C:Enterprise" isključivo kroz sučelje;

* FixedSettings – one postavke koje su postavljene iz ugrađenog jezika, uklj. su implicitno postavljeni od strane sustava. Ovo svojstvo sadrži vrijednosti odabira koje se prenose u obrazac pomoću njegovih parametara (struktura "Odabir").

Postavke i FN-ovi sličnog su dizajna i imaju zbirku "Odabir" tipa "Odabir sastava podataka", dostupnu za promjenu sastava u bilo kojem trenutku tijekom postojanja izvješća. U isto vrijeme, Postavke su dostupne za promjene sučelja kroz uređivanje varijante, ali FN-ovi nisu uopće dostupni. PN je, pak, "kaša", gdje jednaki elementi mogu biti i sam "Odabir" i pojedinačni objekti tipa "Element odabira sastava podataka" (tzv. ugniježđeni objekt). Unatoč dostupnosti odgovarajućih metoda, nemoguće je programski promijeniti sastav zbirke PN elemenata ako su to PN-ovi samog izvješća, a ne napravljeni „od nule“ od strane dizajnera - 1C će izvijestiti da je „Zbirka korisnika postavke ne mogu promijeniti njegov sastav, budući da je povezan s podacima o postavkama izgleda." ITS kaže: "Svojstvo nije moguće pisati pomoću ugrađenog jezika", ali, kao što ćemo vidjeti kasnije, moguće je utjecati na PN. "Kaša" objekata ima unutarnje veze - provjerava se dosljednost uvjeta prilikom generiranja izvješća i kada se mijenja sastav. Na ITS-u čitamo: “Elementi koji su sami označeni kao prilagođeni neće biti dodani. Na primjer, prilagođeni odabir neće uključivati ​​element odabira koji je označen kao prilagođeni. Elementi koji sadrže prilagođene elemente neće biti dodani. Na primjer, grupa uvjeta neće biti dodana ako grupa sadrži elemente označene kao prilagođeni. Za ugniježđene elemente svojstvo DisplayMode se ne analizira. Oni se dodaju ili ne dodaju zajedno s nadređenim elementima." Dakle, "seniornost" objekata djeluje iza kulisa. U ovom slučaju možete postići učinak kada vam sučelje dopušta da odredite kontradiktorne odabire za varijantu i njen PN, kao i unutar PN.

Čini se da je "senior" opcija. Ali klik na “Više” / “Promijeni opciju” i potvrda promjena u otvorenom obrascu poziva obrasca za obradu događaja , u ovom slučaju, odabir se pojavljuje na ploči "Osnovno" na obrascu pozvanom iz "Postavke..." i pojavljuje se na obrascu izvješća, ali NIJE prikazan na kartici "Odabir"; Štoviše, ili se pojavljuje odmah i na glavnom obrascu izvješća i na obrascu "Postavke..." (ako postoji oznaka "Uključi u korisničke postavke"), ili ni tamo ni tamo. Ali u svakom slučaju, NEĆE biti na kartici “Odabir” forme “Postavke...”. Razlika između kartice "Osnovno", obrasca "Postavke..." i glavnog obrasca izvješća određena je poljem "Način uređivanja" (normalno - samo u "Postavkama", brzo - i na samom obrascu izvješća), ali mislim da to svi znaju. Usput, vrijednosti "Odabir" i "Brzo" nisu sinkronizirane ni na koji način i mogu proturječiti jedna drugoj, ali "Brzo" na obrascu izvješća i obrascu postavki strogo su sinkroni. Dakle, kada uredite varijantu, ona sama postaje promijenjena (ali njen ID i naziv se ne mijenjaju), ali PN-ovi ostaju NE promijenjeni (tj. čak i ako govorimo o njima, tj. o zastavici za uključivanje ovog ili onog element u PN ).

Klikom na “Select option...” i potvrdom promjena u obrascu koji se otvori pokreću se događaji sljedećim redoslijedom:

Prilikom učitavanja OptionOn poslužitelja

Prilikom ažuriranja sastava korisničkih postavki na poslužitelju

U tom slučaju ni opcija ni PN se ni na koji način ne mijenjaju. Odavde je jasno da opcija i postavke, ako su povezane, nipošto nisu izravno povezane.

Klikom na "Postavke..." i potvrdom promjena u otvorenom obrascu samo se pokreće događaj Prilikom ažuriranja sastava korisničkih postavki na poslužitelju(u ovom slučaju, PN-ovi se mijenjaju, ali pogledi i ključevi (ako ih nema) nisu primljeni; ako je omogućeno „Brzo“ za elemente PN objekta „Odabir“, tada uz „Odabir“, njegovi se stvarni elementi pojavljuju kao polja, tj. ponašaju se slično ugniježđenim elementima. Ove postavke se spremaju kada se zatvore i vraćaju sljedeći put kada unesete obrazac.

Klikom na "Više"/"Postavi standardne postavke" u obrascu postavki (kao i na stavku "Standardne postavke" u opciji edit) samo se pokreće događaj Prilikom ažuriranja sastava korisničkih postavki na poslužitelju. U ovom slučaju, opcija postaje promijenjena, ali se mijenja PN. Ako je opcija prije promijenjena, ostaje promijenjena (niti se promijenjena zastavica poništava, niti dolazi do stvarnog poništavanja postavki).

Klikom na "Svojstva elementa prilagođenih postavki" u strukturnom stablu na obrascu za uređivanje varijanti dodaje se objekt "Odabir", koji ispada prazan i ni na koji način nije sinkroniziran s postojećim odabirom varijanti i postojećim ugniježđenim elementima odabira varijanta se ni na koji način ne mijenja.

Stoga preporuka: ako trebate postaviti određene odabire u načinu rada "Konfigurator", kako ne biste petljali s kodom i kako ne bi bili u opciji, već bi bili u sučelju izvješća, ne biste trebali manipulirati odabirom elemente opcije, mijenjajući njihova svojstva, ali i sam odabir, koristeći gumbe "Svojstva elementa..." i "Prilagođene postavke".

Dodavanje nečega što se pojavljuje u postavkama u PN zahtijeva radnje u kodu ili sučelju, ali brisanje i brisanje postavki utječe na PN odmah i bez ikakvih ažuriranja, na primjer:

Report.SettingsLitter.Settings.Selection.Items.Clear();

Prije zatvaranja obrasca za prijavu sustav samo pita da li je došlo do promjena na varijanti. Ukoliko je bilo promjena u PN-u, one će se automatski spremiti bez ikakvih pitanja, te će se također automatski pokušati primijeniti u sljedećoj sesiji rada s izvješćem.

Bilješke:

U slučaju većeg broja grešaka u primjeni postavki, prvo se prikaže poruka o problemu, a zatim još uvijek dolazi do sastava, događaj se naziva i generiranje izvješća. U ovom slučaju, FN-ovi, čak i ako postoje, i dalje se zanemaruju, a samo Postavke igraju ulogu.

Prilikom dodavanja odabira na obrascu “Promijeni opciju”, to se radi odmah s postavljenom zastavom “Uključi u PN”, ali ponavljam, sa stajališta ugrađenog jezika, PN ostaju nepromijenjeni.

Postavljanje varijante varijante i postavljanje varijacije PN nisu izravno povezani; to su dva različita smjera promjena.

PN između ostalog ima i “Dodatne postavke”. Nikada nisam mogao shvatiti čime se i u kojem trenutku pune. Iako izvješće sadrži postavke “označene u odabiru i uvjetnom dizajnu” kao prilagođene (prema zajedničkom ulaganju), dodatne postavke su se u svim slučajevima pokazale praznima. Nema ništa o ovome na ITS-u.

Unatoč izjavi u joint venture, PN-ovi su savršeno serijalizirani u xml.

Ako su i neovisni elementi odabira i sam odabir uključeni za korištenje, izvješće je ispravno sastavljeno, ali kada se prikaže, duplicira informacije o uspostavljenom odabiru u konačnom izgledu.

Zadana forma za editiranje verzije izvještaja sadrži puno zanimljivosti, ali nigdje ne radi s FN i PN, a i s osnovnim postavkama radi više za čitanje (osim što briše odabir, redoslijed, konvencije).

2. dio

Rad s postavkama i FN-om kroz njihovu zbirku gotovo je uvijek prihvatljiv, ali važno je zapamtiti da se bit "treće razine" mijenja. Prva razina uvijek sadrži zadane postavke samog sustava kontrole pristupa implicitno se pojavljuje u izvoru dostupnih postavki; na drugoj razini – postavke korištene opcije. Ali ovdje vam logika dopušta da ili "prebrišete" temeljne upute ili ih zanemarite. Ali rad s PN više ne dopušta slobode, a suptilne manipulacije moraju se izvoditi pomoću posebnih metoda, a ponekad i privremenih pomoćnih posredničkih objekata, na primjer:

Comp=NewDataCompositionSettingsComposer; // također možete pokrenuti // comp.Initialize(SomeSettingsComposer.GetSourceofAvailableSettings()); comp.LoadSettings(SomeSettingsComposer.Settings); SomeSettingsComposer.LoadCustomSettings(comp.CustomSettings);

Alat za izradu postavki ima metodu (), koji učitava vrijednosti korisničkih postavki koje su proslijeđene metodi kao parametar. metoda GetSettings() omogućuje vam da dobijete kopiju trenutnih postavki (uzimajući u obzir korisničke postavke). metoda Postavke preuzimanja() učitava proslijeđene postavke u alat za izradu postavki (korisničke postavke također se ponovno popunjavaju na temelju proslijeđenih podataka, uzimajući u obzir prisutnost ključeva, pogledajte primjer u nastavku).

Primjena prilagođenih postavki na glavne postavke vrši se u metodi GetSettings() alat za izradu postavki. U tom slučaju izvode se sljedeće radnje:

* Za tipove DataCompositionSelectionElement, sadržaj elemenata se kopira u odgovarajuće elemente prilagođenih postavki.

* Za vrste odabira izgleda podataka, elementi koji se nalaze u glavnim postavkama i označeni kao nedostupni ostaju nepromijenjeni. Elementi iz PN prenose se u glavne. Dodaju se na kraj zbirke za odabir.

* Za tipove DataCompositionSelectionElementGroup svojstvo Usage postavljeno je u odgovarajućem elementu glavnih postavki (na temelju znaka korištenja PN elementa).

dio 3

Prilikom formiranja konačnih postavki, da citiram ITS, različite postavke se kombiniraju na sljedeći način:

* Ako je bilo koja vrsta postavki u potpunosti označena kao prilagođena, tada dobivene postavke uključuju PN. U tom slučaju, ako su neki elementi postavki označeni kao nedostupni, tada će te postavke biti smještene u rezultirajuće postavke iz svojstva Settings Composer.Settings.

* Ako je bilo koja vrsta postavki označena kao prilagođena, ne u cijelosti, već element po element, tada će elementi označeni kao prilagođeni biti preuzeti u rezultirajuće postavke iz svojstva Settings Composer.CustomSettings, a elementi označeni kao nedostupni bit će uzeti u rezultirajuće postavke iz Settings Composer.Settings svojstvo.

* Fiksne postavke dodaju se dobivenim postavkama "kao što jesu". U ovom slučaju, situacija je neprihvatljiva kada FN i PN imaju postavke istog naziva, na primjer, odabir s istom lijevom vrijednošću u uvjetu. Napominjem da je čak i potpuna slučajnost svih svojstava ovih uvjeta zabranjena. Iskreno govoreći, malo je nelogično.

Želio bih napomenuti da ako je bilo koji fragment postavki podložan funkcionalnoj opciji i mora biti ograničen, sustav radi "tiho" - uklanja taj fragment posvuda, ne prijavljuje ništa, a tijekom programskih manipulacija u vezi s takvim fragmentom , ne proizvodi pogreške u "mirovanju", ali ni kod nema učinka. Međutim, moguće je da se različita izdanja ponašaju drugačije.

dio 4.

Proširenje obrasca za izvješće daje nam parametre "FN" i "PN", ali nigdje se ne preporučuje njihovo izravno ispunjavanje prosljeđivanjem u obrazac. Kao što su eksperimenti pokazali, bez dodatnih plesova s ​​tamburinom, sadržaj ovih parametara se zanemaruje - prepisuje se kada se linker inicijalizira tijekom procesa otvaranja i kada se prime prethodno spremljeni PN-ovi. Preporuča se rad s PN ključevima, pomoću kojih ih možete dohvatiti iz spremišta postavki te ih otvoriti i koristiti, a to se radi automatski na strani obrasca za prijavu, a ne na obrascu za pozivanje.

Parametar “Source of AvailableSettings” automatski se prevodi u informacije graditelja kada se obrazac kreira na poslužitelju i ne može se nadjačati. Odnosno, može, ali to će imati efekta tek nakon potpunog redefiniranja cijelog lanca povezanih objekata. pri čemu GetSourceAvailableSettings() vratit će Nedefinirano do kraja svih događaja otvaranja obrazaca.

Napominjem da parametri obrasca, koji u suštini nisu ključni parametri, “rastežu” svoje djelovanje na nekoliko događaja ako je zastavica formacije postavljena prilikom otvaranja. Da, u slučaju ProcessingCheckFillOnServer, koji se poziva tijekom otvaranja i formiranja, parametar “Odabir” će biti dostupan, ali s njim, ali pozvan jednostavnim klikom na gumb “Generiraj”, više neće biti dostupan. To je zbog činjenice da se svi ovi događaji obrađuju u jednom “posjetu” serveru, ako je omogućeno formiranje pri otvaranju, a tek na samom kraju kontrola se prenosi na klijenta i poziva Prilikom otvaranja. U ovom slučaju, ne-ključni parametri se prirodno gube.

Opći redoslijed izvršavanja događaja prilikom otvaranja obrasca s oznakom za generiranje izvješća pri otvaranju (malo više od opisanog u “Profesionalno usavršavanje”):

Kada se stvara na poslužitelju

Prije učitavanja opcija na poslužitelj

Prilikom učitavanja OptionOn poslužitelja

Prije učitavanja korisničkih postavki na poslužitelj

Prilikom učitavanja korisničkih postavki na poslužitelj

Prilikom ažuriranja sastava korisničkih postavki na poslužitelju

ProcessingCheckFillOnServer

Prilikom otvaranja

U ovom slučaju, ni opcija ni PN se ne mijenjaju osim ako nisu uloženi posebni napori.

dio 5.

Sada pogledajmo detaljnije zadatak otvaranja obrasca izvješća s njegovom konstrukcijom i unaprijed određenim odabirom. Kratke informacije o tome nalaze se na ITS-u iu metodološkim preporukama, ali tamo je pokriven samo sam princip, a suptilnosti se ne otkrivaju. Dakle, da biste kontekstualno pozvali izvješće, morate proslijediti parametar "GenerateOnOpen" u njegov obrazac, jednak True; i parametar Odabir koji sadrži strukturu. Ključevi strukture su imena ACS polja ili ACS parametara, a vrijednosti su njihove vrijednosti. Citirajući SP, ako postoji ACS parametar s nazivom koji odgovara nazivu ključa strukture, tada će vrijednost biti postavljena na njega. Ako nema parametra, ali postoji polje, odabir će biti dodan u ovo polje. U isto vrijeme, ako postoji parametar i polje istog imena, tada će ga sustav jednostavno tiho ignorirati i neće ništa instalirati.

"Profesionalni razvoj" pruža primjer mijenjanja (tj. presretanja i rekonfiguriranja) PN "u hodu" u događaju Prije učitavanja korisničkih postavki na poslužitelj, gdje se prosljeđuje argument koji sadrži trenutni PN. Zapravo, to nije uvijek slučaj - na primjer, mogu postojati slučajevi u kojima će pogreška u spremanju PN-a u prethodnoj sesiji ili nedosljednosti između postavki, FN-a i PN-a dovesti do toga da argument "Postavke" bude prazan. I ono što je najzanimljivije je da ga neće biti moguće potpuno rekonfigurirati u ovom događaju; to se može učiniti samo "na kraju" niza događaja, naime, u događaju ProcessingCheckFillOnServer.

Pogledajmo što imamo prije učitavanja PN-a na poslužitelj.

Za jednostavan slučaj, kada ništa nije unaprijed postavljeno u ACS-u i nijedan element nije uključen u PN, situacija je sljedeća: Postavke – prazno; FN – sadrži točan odabir; Pon sadrži prazan odabir. Oblikovanje radi ispravno, ali s korisnikove točke gledišta sučelje je u suprotnosti s unutarnjim i obeshrabrujuće - odabir radi, ali nije vidljiv. Slično, ako omogućite Odabir u PN-u u postavkama strukture opcija, izvješće se također gradi uzimajući u obzir odabir, ali korisnik također ne vidi nikakve odabire.

Postavimo predizbore (jednake praznim vrijednostima) u postavkama ACS-a u konfiguratoru i uključimo ih u PN. U teoriji, FN-ovi bi trebali ispunjavati Postavke, a oni bi trebali ispunjavati PN, ali u stvarnosti imamo: u Postavkama - Odabir sa traženim elementom, ali praznom desnom vrijednošću, FN-ovi sadrže točan odabir, a PN još uvijek ne sadrže ništa. Osim toga, u ovom slučaju izvješće neće biti izgrađeno, jer vrijednost desnog odabira je prazna, unatoč vrijednosti proslijeđenoj u parametru Select.

Pokušaj rada s PN elementima također ne daje rezultate. Za PN element možete promijeniti samo oznaku "Upotreba" i sudjelovanje u "Brzom". Vrijednost odabira na sučelju bit će prazna, sustav neće generirati nikakve pogreške. Slično će raditi i pokušaj rada s PN odabirom; u programu za ispravljanje pogrešaka bit će vidljiva ispravna vrijednost, ali nećete vidjeti ništa na sučelju. Podsjećam da je sastav PN nemoguće promijeniti. Stoga su potrebni dodatni trikovi. Na primjer:

&Na proceduri poslužitelja SetPresetSelections(UserSettings) If not Parameters.Property("Selection") Then Return EndIf; If Parameters.Selection.Quantity()=0 Then Return EndIf; rTypeEO=Tip("Element odabira sastava podataka"); Za svaki ključ Iz Parameters.Selection Loop pField=NewDataCompositionField(key.Key); // If (ValueType(kiz.Value)=Type("Array") orValueType(kiz.Value)=Type("ValueList")) and kiz.Value.Quantity()>1 Then pViewComparison=DataCompositionComparisonType.InList; Inače pComparisonType=DataCompositionComparisonType.Equals; završi ako; // pNecessarySelection = Nedefinirano; // vidjeti postoji li Selection u korisničkim postavkama pNecessaryEO=Undefined; // pogledajte postoji li zasebni element odabira sastava podataka u korisničkim postavkama za svaki elnastr iz ciklusa UserSettings.Elements If TypeValue(elnastr) = Type("DataComposition Selection") i pNecessarySelection=Undefined Then // može postojati samo jedan pNecessarySelection= elnastr; // ovo se može učiniti izvan petlje, ali je potrebno sortirati korisničke postavke radi elemenata... U suprotnom, If TypeZnch(elnastr) = pTypeEO Then // ovo je element odabira, može ih biti mnogo od njih, ali nas zanimaju oni koji nisu inicijalizirani ili sa obaveznim poljem If elstr.LeftValue=pField ili elstr.LeftValue=Undefined and rNeedEO=Undefined Then pNeedEO=elstr; završi ako; završi ako; EndCycle; // Ako je pRequiredSelection<>Nedefinirano Onda // ide kao prioritet pNecessaryEOFromSelection = Nedefinirano; Za svaki elotb From pNecessarySelection.Elements Cycle If elotb.LeftValue=pField Then pNecessaryEOfromSelection=eloteb; Prekid EndIf; EndCycle; If pNecessary EO from Selection = Undefined Then pNecessary EO from Selection = pNecessary Selection.Elements.Add(pType of EO); pNeedEOFromSelection.LeftValue=pField; završi ako; pNecessaryEOfromSelection.ComparisonType=pTipusporedbe; pNecessaryEOFromSelection.RightValue=kiz.Value; pNecessaryEOFromSelection.Use=True; // rNeededEO.Use=False; OtherwiseIf pNecessarySelection=Nedefinirano i pNecessaryEO<>Nedefinirano Zatim // stavite element pNecessaryEO.LeftValue=pField; pNecessaryEO.ComparisonType=pTipusporedbe; pNeedEO.RightValue=kiz.Value; pNeedEO.Use=Istina; završi ako; pPotreba=Nedefinirano; Za svaki elotb iz Report.ComposerSettings.Settings.Selection.Elements Loop // na prijateljski način, trebalo bi postojati rekurzivno pretraživanje! If TypeValue(elotb)=pTypeEO and elotb.LeftValue=pField Then pNeed=elotb; Prekid EndIf; EndCycle; If pNeed = Undefined Then pNeed = Report.Settings Composer.Settings.Selection.Elements.Add(pEOType); pNeed.LeftValue=pMargin; završi ako; pNecessary.ComparisonType=pTipusporedbe; pNeed.RightValue=kiz.Value; pNeed.Use=Istina; //Kraj ciklusa; Report.Settings Composer.FixedSettings.Selection.Items.Clear(); // inače će reći da se elementi sijeku/suprotstavljaju Kraj procedure

Najispravniji način da ga nazovete je:

&Na poslužitelju Postupak obrade Ispunjavanje provjera na poslužitelju (Greška, Provjereni detalji) Postavite unaprijed definirane odabire (Izvješće. Povezivač postavki. Korisničke postavke); Kraj postupka

Tada će kontekstni poziv, na primjer, iz obrasca imenika, izgledati ovako:

&OnClient Procedure OpenReport(Command) If ValueFilled(Object.Link) Then ot=New Structure("LinkToDirectory",Object.Link); // ovako je polje nazvano u SDS izvješću Parametri obrasca = Nova struktura ("Selection, GenerateWhen Opening", select, True); OpenForm("Izvješće.Izvješće1.Obrazac.Obrazac izvješća",Parametri obrasca,OvajObrazac); završi ako; Kraj postupka

Dio 6.

Ako je potrebno, promijenite postavke izvješća tijekom rada s njim, uklj. i pri pokretanju i nakon otvaranja, najispravnije je promijeniti "iz početka", tj. iz ACS postavki. Promjena ACS sheme se vrši samo s objektom Report (ili External Report), a ne s podacima obrasca i sama po sebi ne mijenja ništa - u Postavkama iu PN-u ostaje isto kao što je bilo, a FN može ostati prazan. Stoga, ovisno o našim zadacima:

Nakon izvršenja

Report.Settings Composer.LoadSettings(SKD.DefaultSettings)

Mijenja se samo opcija i ništa više;

Nakon izvođenja tehnike navedene u stavku 2. (koristeći „posrednika” i metodu Učitaj prilagođene postavke()

radi samo ako poništite trenutni PN pomoću sučelja. Sami po sebi, ako se opcija promijeni, neće se promijeniti. U ovom slučaju odabir se mijenja, ali se ne dodaje novi element odabira.

Nakon izvršenja

ThisForm.CreateFormElementsUserSettings(,DisplayModeDataCompositionSettings.All)

platforma samo tiho pada. Testirano na nekoliko različitih izdanja. A pozivanje načina za prikaz postavki samo za brze nema smisla - nismo utjecali na njihov sastav, tako da se ionako ništa neće promijeniti.

A budući da još uvijek trebamo potpuno promijeniti ne samo interne odabire, već i prikaz na obrascu izvješća iu povezanim obrascima, moramo promijeniti samo odabir ili postupiti na sljedeći način:

&Na proceduri poslužitelja ChangeSKD() pObject = Form AttributesValue("Izvješće"); odabir=pObject.DataCompositionScheme.SettingsOptions.Get(0).Settings.Selection; eo = selection.Elements.Add(Type("DataCompositionSelectionElement")); eo.LeftValue=NewDataCompositionField("LinkToDirectory.Field1"); eo.ComparisonType=DataCompositionComparisonType.Equals; eo.RightValue=Istina; eo.Use=Istina; ValueÂFormAttributes(pObject,"Izvješće"); Report.SettingsLitter.LoadSettings(pObject.DataCompositionSchema.DefaultSettings); Report.SettingsComposer.Restore(); // poželjno, iako to još uvijek ne utječe na FN. // zapravo, to je upravo ono što se može nazvati promjenom sastava PN Za svaku e-poštu From Report.ComponentSettings.Settings.Selection.Elements Cycle email.DisplayMode=ElementDisplayModeDataCompositionSettings.QuickAccess; If EmptyString (e.c.UserSettingsIdentifier) ​​​​Then // možete koristiti metodu e.SetIdentifier za PN element, pogledajte njenu pomoć u SP, tamo je sve sasvim jasno e.CustomSettingsIdentifier="ID123"; // važno - identifikator može biti BILO KOJI, ne UUID ili GUID! e.ViewUserSettings="Test"; završi ako; EndCycle; comp=NewDataCompositionSettingsComposer; comp.LoadSettings(pObject.DataCompositionScheme.DefaultSettings); Report.SettingsComposer.LoadCustomSettings(comp.CustomSettings); Za svaku e-poštu From Report.Settings Composer.CustomSettings.Elements Cycle email.DisplayMode=ItemDisplayModeDataLayoutSettings.QuickAccess; // povucite EndCycle na obrazac izvješća; // i sada će ovo imati učinak: ThisForm.CreateFormElementsUserSettings(,DataCompositionSettingsDisplayMode.QuickAccess); Kraj postupka

Zapravo, ovu mehaniku možete proučavati dugo vremena. Ova publikacija proizašla je iz proučavanja načina rješavanja jednog specifičnog problema, te je stoga prilično jednostrana; ali sumnjam da bi se o internoj logici postavki, posebno korisničkih, mogla napisati posebna knjiga, ništa suptilnija od Khrstaleva. Nažalost, nemam energije ni vremena za ovo. Tko smatra da su određeni razvoji korisni, već je dobar.

Neke su stvari eksperimentalno razjašnjene i stoga su kontroverzne. Oni koji znaju više pozvani su da kritiziraju i komentiraju.

Za jedno izvješće može se odrediti nekoliko opcija za njegovu vizualnu prezentaciju - odnosno, ista informacija se može proširivati, grupirati i sl. na različite načine. Predefinirane opcije postavljene su u ACS dizajneru na kartici Postavke (Sl.); varijanta se također može izraditi u načinu rada Enterprise.

Opcija koja je najviša po redu smatrat će se zadanom opcijom.

Za konfiguracijski unaprijed definirane opcije možete odrediti koje će postavke biti dostupne korisniku. Na primjer, možete zabraniti odabir ili grupiranje za element. To je navedeno u Svojstvima elementa korisničkih postavki:

Odredite korisnikovu opciju pristupa postavkama:

Ovo određuje što će korisnik vidjeti u postavkama izvješća u Enterpriseu:

Pitanje 11.32 ispita 1C: Platforma Professional. Koja će se opcija izvješća u shemi sastava podataka smatrati zadanom?
  1. Onaj koji je prvi na popisu opcija
  2. Onaj s postavljenim svojstvom zadane opcije
  3. Onaj koji je prvi određen u procesu kreiranja opcija
Točan odgovor je prvi, opis u tekstu.
Pitanje 11.35 ispita 1C: Platforma Professional. Kako dodati postavku na popis korisničkih postavki?
  1. u obrascu za podešavanje prilagođenog elementa možete navesti naznaku da je element prilagođen
  2. u obrascu postavki prilagođenog elementa omogućite brzi pristup u načinu uređivanja
  3. dodavanje se provodi označavanjem okvira u svojstvu "Upotreba".
Točan odgovor je prvi.
Pitanje 11.40 ispita 1C: Platforma Professional. U postavkama sustava za sastavljanje podataka potrebno je navesti sljedeće:
  1. Struktura postavki
  2. Mogućnosti
  3. Odabrana polja
  4. Polja koja se mogu grupirati
  5. Sortiranje
  6. Sve od navedenog
Točan odgovor je prvi. Struktura je obavezna, sve ostalo može automatski dodati sustav kontrole pristupa ili načelno nije potrebno.
Pitanje 11.41 ispita 1C: Platforma Professional. Kako će obrazac za izvješće izgledati nakon primjene sljedećih postavki?
  1. U obliku tabele sa četiri kolone: ​​“Proizvod”, “Skladište”, “Preostala količina”, “Preostala količina”
  2. U obliku tablice sa tri kolone: ​​“Proizvod”, “Skladište”, “Preostala količina”
  3. U obliku tablice čiji će broj stupaca ovisiti o broju skladišta koja imaju stanja različita od nule.
  4. Izvješće se neće generirati
Točan odgovor je četvrti - ne postoji kvačica u korijenskom elementu strukture postavki, stoga podaci za izlaz nisu definirani.
Pitanje 11.42 ispita 1C: Platforma Professional. Što se događa prilikom generiranja izvješća ako u korisničkom načinu rada nema postavki sustava za sastavljanje podataka?
  1. Koristit će se "Default Settings" koje je programer naveo u shemi sastava podataka
  2. S popisa opcija postavki koristit će se opcija pored trenutne
  3. Koristit će se prilagođene postavke
  4. Izvješće se neće generirati
Četvrti točan odgovor je da ono što je korisnik naveo ima prioritet. Korisničke postavke su prazne, stoga se izvješće neće generirati.
Pitanje 11.43 ispita 1C: Platforma Professional.
  1. Do lijevog ruba prve sekunde datuma navedenog u parametru "Period".
  2. Dobit će se trenutna stanja osim ako nije navedena neka druga vrijednost u parametru sustava sastava podataka kreiranom na temelju naziva vanjskog parametra navedenog u tekstu upita za parametar "Razdoblje" virtualne tablice
Točan odgovor je četvrti. Potvrdni okvir "Period" nije označen, odnosno nije naveden izbor korisnika. Općenito, to znači trenutna stanja, ali je moguće da je parametar razdoblja definiran u drugoj postavci ACS-a.
Pitanje 11.44 ispita 1C: Platforma Professional. U kojoj će točki na vremenskoj osi biti dobiveni saldi prilikom generiranja izvješća?
  1. Do lijevog ruba prve sekunde datuma navedenog u parametru "Period".
  2. Do desnog ruba zadnje sekunde datuma navedenog u parametru "Period".
  3. Primit će se trenutna stanja
  4. Dobit će se trenutna stanja osim ako nije navedena neka druga vrijednost u parametru sustava sastava podataka kreiranom na temelju naziva vanjskog parametra navedenog u tekstu upita za parametar "Razdoblje" virtualne tablice
Točan odgovor je prvi - odabir je ovdje jasno naznačen.

Pitanje 11.45 ispita 1C: Platforma Professional. Slika prikazuje obrazac izvješća koji sustav generira prema zadanim postavkama. Koja je vrsta elementa postavki uokvirena?

  1. Postavke po želji korisnika
  2. Fiksne postavke
  3. Opcije postavki
  4. Element može pripadati bilo kojoj vrsti postavki, ovisno o vrijednosti svojstva "Data Path".
Točan odgovor je prvi.
Pitanje 11.46 ispita 1C: Platforma Professional. U izvješću je izbor po polju "Skladište" specificiran istovremeno u svim vrstama postavki. Što se događa kada pokušate generirati izvješće?
  1. Izvješće se neće generirati
  2. Izvješće će se generirati odabirom iz korisničkih postavki
  3. Izvješće će se generirati pomoću odabira iz fiksnih postavki
  4. Izvješće će se generirati korištenjem odabira iz opcije trenutnih postavki
Nije jasno što su to “sve vrste postavki”, ali prema odgovorima ispravna je prva opcija.
Pitanje 11.47 ispita 1C: Platforma Professional. U izvješću je odabir po polju "Skladište" naveden kako u korisničkim postavkama tako iu opciji trenutnih postavki. Što se događa kada pokušate generirati izvješće?
  1. Izvješće će se generirati odabirom iz korisničkih postavki ako je odabrana zastavica "Korištenje". Ako zastavica "Koristi" nije postavljena, tada neće biti odabira
  2. Izvješće će se generirati odabirom iz korisničkih postavki ako je odabrana zastavica "Korištenje". Ako zastavica "Koristi" nije postavljena, koristit će se postavka odabira iz opcije postavki
  3. Izvješće će se generirati odabirom iz opcije postavki ako je odabrana zastavica "Korištenje". Ako zastavica "Koristi" nije postavljena, tada neće biti odabira
  4. Izvješće će se generirati odabirom iz opcije postavki ako je odabrana zastavica "Korištenje". Ako zastavica "Koristi" nije postavljena, tada će se koristiti postavka odabira iz korisničkih postavki
Prva opcija je točna.
Pitanje 11.49 ispita 1C: Platforma Professional. Prilikom rada s postavkama, korisnik može odrediti polje grupiranja
  1. U zasebnom prozoru "Grupiranje"
  2. U zasebnom prozoru "Uređivanje polja grupiranja"
  3. Na kartici "Grupirana polja".
  4. U zasebnom prozoru "Grupiranje" i na kartici "Grupirana polja".
  5. U posebnom prozoru "Grupiranje", u posebnom prozoru "Uređivanje polja grupiranja" i na kartici "Grupirana polja"
Točan odgovor je broj pet. Prozor grupiranja:

Opcije Uredi polja grupiranja i polja koja se mogu grupirati:

Pitanje 11.50 ispita 1C: Platforma Professional. Korisnik je stvorio opciju postavki od nule. Koje je postavke morao urediti? Odaberite najpotpuniji i najtočniji odgovor
  1. Odabrana polja izvješća, odabir izvješća, odabir skladišta, dodatne postavke tablice, sortiranje artikala, parametri, uvjetni dizajn artikla
  2. Odabrana polja izvješća, odabir izvješća, dodatne postavke tablice, dizajn uvjetne stavke, odabrana polja skladišta, parametri, sortiranje izvješća
  3. Odabrana polja izvješća, odabir izvješća, odabir skladišta, dodatne postavke tablice, dizajn uvjetne stavke, parametri, struktura izvješća
  4. Odabrana polja izvješća, odabir izvješća, odabir skladišta, dodatne postavke izvješća, parametri, dizajn uvjetne stavke, struktura izvješća
Točan odgovor je treći, morate pažljivo pogledati snimku zaslona.

Detaljno smo ispitali postavke izvješća implementiranih na temelju sustava kontrole pristupa. Sada pogledajmo suptilnije i detaljnije postavke za opcije izvješća. Prozor za “napredne” postavke opcije izvješća poziva se naredbom “Više” - “Ostalo” - “Promijeni opciju izvješća”.

Prozor za promjenu verzije izvješća podijeljen je u dva dijela:

1. Struktura izvješća.

2. Postavke izvješća.


Odjeljak strukture opcije izvješća sličan je kartici "Struktura" standardnih postavki izvješća. Svrha i konfiguracija grupiranja detaljno se raspravlja u 1. dijelu članka.

Tablica varijante strukture izvješća, osim stvarnog stupca s grupiranjima, sadrži nekoliko dodatnih stupaca:

Odjeljak s postavkama opcije izvješća daje korisniku brojne mogućnosti za konfiguriranje izvješća kako bi odgovaralo njegovim potrebama. Gotovo se u potpunosti podudara sa standardnim postavkama izvješća o kojima se raspravljalo u 1. dijelu. Pogledajmo sve kartice odjeljka i uočimo razlike.

Odjeljak postavki sastoji se od sljedećih kartica:

1. Parametri. Sadrži ACS parametre dostupne korisniku.

Parametar SKD je vrijednost koja se koristi za dobivanje podataka izvješća. To može biti vrijednost uvjeta za odabir ili provjeru podataka, kao i pomoćna vrijednost.


Tablica parametara prikazana je u formatu "Parametar" - "Vrijednost". Ako je potrebno, možete promijeniti vrijednosti parametara. Klikom na gumb "Svojstva elementa prilagođenih postavki" otvaraju se prilagođene postavke elementa.


U ovom prozoru možete odabrati hoće li element biti uključen u korisničke postavke (odnosno, vidljiv korisniku prilikom postavljanja izvješća), postaviti prezentaciju elementa i način uređivanja (brzi pristup u zaglavlju izvješća, normalan u postavke izvješća i nedostupan).

Svojstva stavki prilagođenih postavki također imaju polja koja se mogu grupirati, margine, odabire i elemente uvjetnog izgleda.

2. Prilagođena polja. Sadrži polja koja generira sam korisnik na temelju podataka odabranih izvješćem.


Korisnik može dodati dvije vrste polja:

  • Novo polje za odabir...
  • Novo polje izraza...

Polja za odabir omogućuju izračunavanje vrijednosti na temelju određenog uvjeta. Prozor za uređivanje polja odabira sadrži naslov polja i tablicu u kojoj se navodi odabir, vrijednost i prikaz polja. Odabir je uvjet, ovisno o kojem će se željena vrijednost zamijeniti.


Na primjer, izračunajmo procjenu broja prodaja. Pretpostavit ćemo da ako je prodano manje od 10 jedinica proizvoda, prodali smo malo, a ako je više od 10 jedinica, prodali smo puno. Da bismo to učinili, postavit ćemo 2 vrijednosti za izračunato polje: prva će biti s odabirom "Broj robe manji od ili jednak "10"", druga s odabirom "Broj robe veći od "10 ””.

Polja izraza omogućuju vam izračunavanje vrijednosti pomoću proizvoljnih algoritama. Mogu koristiti funkcije jezika upita i ugrađenog programskog jezika 1C. Prozor za uređivanje polja izraza sadrži dva polja za izraze detaljnih i sumarnih zapisa. Ukupni zapisi su grupiranja konfigurirana u području "Struktura izvješća"; oni moraju koristiti agregatne funkcije ("Zbroj", "Minimum", "Maksimum", "Količina").

Na primjer, izračunajmo prosječni postotak popusta. Prosječni postotak popusta izračunava se po formuli: [Iznos prodaje bez popusta] - [Iznos prodaje s popustom] / [Iznos prodaje bez popusta]. Važno je zapamtiti da iznos prodaje bez popusta može biti nula, pa za provjeru koristimo operator SELECT. Dobijamo sljedeće izraze:

· Za detaljne unose:

Izbor

Kada je [Iznos prodaje bez popusta] = 0

Zatim 0

Inače [Iznos prodaje bez popusta] - [Iznos prodaje s popustom] / [Iznos prodaje bez popusta]

Kraj

· Za zbirnu evidenciju:

Izbor

Kada je iznos ([iznos prodaje bez popusta]) = 0

Zatim 0

Inače Zbroj([Iznos prodaje bez popusta]) - Zbroj([Iznos prodaje s popustom]) / Zbroj([Iznos prodaje bez popusta])

Kraj

Kao što je ranije spomenuto, u izrazu ukupnih zapisa koristimo agregatnu funkciju "Zbroj".

3. Polja koja se mogu grupirati. Sadrži polja po kojima će se grupirati rezultati varijante izvješća. Grupirana polja konfiguriraju se zasebno za svako grupiranje, ali možete postaviti opća grupirana polja za opciju izvješća ako odaberete korijenski "Izvješće" u stablu strukture. Možete dodati polje iz rezultata izvješća, prilagođeno polje ili odabrati automatsko polje, a zatim će sustav automatski odabrati polja. Ova vam kartica također omogućuje promjenu redoslijeda grupiranih polja.


4. Polja. Sadrži polja koja će biti ispisana kao rezultat varijante izvješća. Polja se zasebno konfiguriraju za svako grupiranje, ali možete postaviti zajednička polja za opciju izvješća ako odaberete korijenski "Izvješće" u stablu strukture. Možete dodati polje iz rezultata izvješća, prilagođeno polje ili odabrati automatsko polje, a zatim će sustav automatski odabrati polja. Ova vam kartica također omogućuje promjenu redoslijeda polja.

Polja se mogu grupirati kako bi se logično istaknuo bilo koji dio izvješća ili kako bi se odredio poseban raspored stupaca. Prilikom dodavanja grupe, stupac “Lokacija” postaje aktivan i omogućuje odabir jedne od opcija lokacije:

  • Auto - sustav automatski postavlja polja;
  • Horizontalno - polja su postavljena horizontalno;
  • Okomito - polja su poredana okomito;
  • U posebnom stupcu - polja se nalaze u različitim stupcima;
  • Zajedno - polja se nalaze u jednom stupcu.


5. Odabir. Sadrži odabire korištene u varijanti izvješća. O postavljanju odabira detaljno je bilo riječi u 1. dijelu ovog članka. Filtri se zasebno konfiguriraju za svako grupiranje, ali možete postaviti opće filtere za opciju izvješća ako odaberete korijenski "Izvješće" u stablu strukture.


6. Razvrstavanje. Sadrži polja sortiranja koja se koriste u varijanti izvješća. O postavljanju polja sortiranja detaljno je bilo riječi u 1. dijelu ovog članka. Razvrstavanje se zasebno konfigurira za svako grupiranje, ali možete postaviti opća polja za razvrstavanje za opciju izvješća ako odaberete korijenski "Izvješće" u stablu strukture.


7. Uvjetna registracija. Sadrži elemente uvjetnog dizajna koji se koriste u varijanti izvješća. Postavljanje uvjetnog izgleda detaljno je objašnjeno u 1. dijelu ovog članka. Uvjetni izgled konfigurira se zasebno za svako grupiranje, ali možete postaviti opće elemente uvjetnog izgleda za opciju izvješća ako odaberete korijenski "Izvješće" u stablu strukture.


8. Dodatne postavke. Sadrži dodatne postavke dizajna izvješća. Omogućuje odabir općeg izgleda izvješća, lokacije polja, grupiranja, detalja, resursa, ukupnih iznosa, postavljanje postavki grafikona, kontrolu prikaza naslova, parametara i odabira, određivanje položaja resursa i popravljanje zaglavlja i grupiranja stupci verzije izvješća.


Zaključno, želio bih napomenuti da se postavke izvješća ne mogu samo spremiti kao opcija izvješća, već i prenijeti u datoteku (izbornik "Više" - "Spremi postavke"). Za preuzimanje morate odabrati "Učitaj postavke" i odabrati spremljenu datoteku. Stoga možemo prenijeti postavke varijanti izvješća između različitih baza podataka koje imaju istu konfiguraciju.


Na temelju toga možemo sažeti da korisnik ne samo da može samostalno prilagoditi izvješće prema svojim potrebama, već i spremiti svoje postavke i koristiti ih u budućnosti ako je potrebno.

Pažnja! Ovo je uvodna verzija lekcije, čiji materijali mogu biti nepotpuni.

Prijavite se na stranicu kao student

Prijavite se kao učenik za pristup školskim materijalima

Sustav za sastavljanje podataka 1C 8.3 za početnike: povezivanje skupova podataka

  • Napišite izvješće koje prikazuje kupce i njihove omiljene proizvode. Svaki klijent ima omiljenu boju, a svaki proizvod ima svoju boju - na temelju tih boja treba odrediti “favorita” proizvoda. Na primjer, ako je Andrejeva omiljena boja crvena, onda će jedna od njegovih omiljenih namirnica biti rajčice (crvene su).
  • Primijenite dva skupa podataka u izvješću. Prvi skup su podaci iz tablice imenika "Klijenti". Drugi su podaci iz tablice imenika "Hrana".
  • Implementirati veza između ova dva skupa, tako da izvješće sadrži samo omiljene proizvode za svakog klijenta.

Napravite novo izvješće

Otvorite bazu podataka "Gastronom" u konfiguratoru i kreirajte novi izvještaj kroz glavni izbornik:

Vrsta dokumenta - "Eksterno izvješće":

U obliku novog izvješća označite naziv "Lekcija 6" i kliknite gumb "Otvori dijagram sastava podataka":

Ostavite zadani naziv sheme:

Dodavanje prvog skupa podataka

U dijagramu koji se otvori, idite na karticu "Skupovi podataka" i odaberite "Dodaj skup podataka - upit" koristeći zeleni znak plus:

Pozovite konstruktor zahtjeva:

Označavamo tablicu "Kupci" i polja koja je potrebno dobiti iz zahtjeva:

Dodavanje drugog skupa podataka

Dodajte drugi skup podataka:

Odaberite ga (DataSet2) i ponovno pozovite konstruktor upita:

Navodimo tablicu imenika "Hrana" i polja koja je potrebno dobiti iz zahtjeva:

Rezultirajući tekst zahtjeva bio je:

Napominjemo da trenutno imamo dva skupa podataka u izvješću: Skup podataka1 i Skup podataka2. Svaki ima svoj tekst zahtjeva i podatke.

Učiniti imena opisnijima

Radi jasnoće, preimenujmo DataSet1 u Customers, a DataSet2 u Food.

Učinite to dvostrukim klikom na svaki od skupova:

Podatke iz svakog skupa možemo koristiti u našem izvješću. Ovim podacima pristupit ćemo putem polja.

Trenutno skup “Kupci” ima sljedeća polja: “Naziv” i “Omiljena boja”, a skup “Hrana” ima: “Naziv” i “Boja”.

Vidimo da se imena preklapaju i lako se možemo zbuniti. Pa promijenimo nazive polja da budu opisniji.

Odaberite skup "Klijenti" i promijenite nazive polja ovako:

Zatim odaberite skup "Hrana" i promijenite nazive polja ovako:

Pozivanje konstruktora postavki

Na kraju idite na karticu "Postavke" i kliknite čarobni štapić da biste otvorili dizajner postavki:

Vrsta izvješća - "Popis...":

Odaberite polja za izvješće iz oba skupa:

Vidite zašto je bilo toliko važno promijeniti nazive polja? U fazi postavki sastava podataka ne vidimo iz kojih skupova su ta polja. Vidimo samo njihova imena.

Provjera izvješća

Spremamo izvješće i generiramo ga u korisničkom načinu rada:

Da. U redu, ali ne baš. Došlo je do takozvanog unakrsnog spajanja dva skupa (trebali biste biti vrlo upoznati s tim iz spajanja u upitima koje smo proučavali u prethodnim modulima). Svaki zapis iz tablice Kupci ima odgovarajući zapis iz tablice Hrana.

Ali od svih ovih zapisa trebamo ostaviti samo one čije je polje "Customer's FavoriteColor" jednako polju "FoodColor":

Povezujemo dva skupa podataka

Da bismo to učinili, spojit ćemo dva skupa podataka (Kupci i Hrana) pomoću polja Customer FavoriteColor i FoodColor.

Idite na karticu "Veze skupa podataka" i kliknite na gumb plus za dodavanje nove veze:

Konfiguriramo parametre kao na slici ispod:

Napravit ću objašnjenje.

Izvor i primatelj komunikacije. Pa, ovdje je sve jasno. Označavamo prvi skup (Kupci) i drugi skup (Hrana) podataka. Posebno bih skrenuo pozornost da će se komunikacija odvijati po principu vanjski lijevi spoj(obradili smo to u temi zahtjeva u prethodnim modulima). Na temelju toga treba odabrati koji će set biti izvor, a koji prijamnik.

Izvor izraza. Ovdje označavamo izraz ili jednostavno polje iz izvornog skupa podataka (ovdje smo naveli polje ClientFavoriteColor iz skupa Clients).

Izraz primatelja. Ovdje označavamo izraz ili jednostavno polje iz skupa podataka primatelja (ovdje smo naznačili polje ColorFood iz skupa hrane).

Stoga će ova veza s prethodnog popisa ostaviti samo one retke za koje je Customer's FavoriteColor polje jednako polju FoodColor.

Spremimo izvješće i pokrenimo ga u korisničkom načinu rada:

Sjajno!

Napravit ću objašnjenje o polju " Stanje komunikacije“, o kojem programeri početnici tako često lome koplja.

Uvjet veze je pomoćno polje. Tamo možete pisati izraze koja uključuju samo polja iz skupa podataka navedenih u izvoru veze.

U ovom slučaju, za sve retke iz izvora veze, ovaj izraz (uvjet veze) će se provjeriti prije nego što se veza napravi. A ako je ovaj izraz TRUE, tada će se pokušati uspostaviti veze između ovog reda i redaka iz primatelja veze. Ako je izraz FALSE, tada neće biti takvih pokušaja.

reci prijateljima