Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Vijesti
  • Pojedinosti obrasca postavljene na 1s. Pojedinosti o upravljanom obrascu (1Cv8)

Pojedinosti obrasca postavljene na 1s. Pojedinosti o upravljanom obrascu (1Cv8)

Ispis (Ctrl+P)

Za pretvaranje aplikacijskih objekata u podatke obrazaca i natrag, postoji skup globalnih metoda:

  • ValueInFormData(),
  • FormDataInValue(),
  • Kopiraj podatke obrasca().

Metode koje rade s objektima aplikacije dostupne su samo u procedurama poslužitelja. Metoda za kopiranje vrijednosti između podataka obrazaca dostupna je na poslužitelju i na klijentu, budući da ne zahtijeva objekte aplikacije kao parametre.

Kada pretvarate podatke obrasca u objekt aplikacije, morate uzeti u obzir njihovu kompatibilnost.

  • ValueInFormData() - pretvara objekt tipa aplikacije u podatke obrasca.
  • DataFormValue() - pretvara podatke obrasca u objekt tipa aplikacije.
  • CopyFormData() - kopira podatke iz oblika koji imaju kompatibilnu strukturu. Vraća True ako je kopija bila uspješna ili False ako je struktura objekta nekompatibilna.

Prilikom pretvaranja podataka obrasca u objekte aplikacije i natrag, koristi se predmemorija objekta, ali se također provjerava je li verzija objekta u predmemoriji ažurna.

BILJEŠKA. Prilikom izvođenja standardnih radnji (otvaranje obrasca, izvršavanje standardne naredbe Write, itd.) u obrascu s glavnim detaljima, pretvorba se izvodi automatski.

Dajmo primjer kako koristiti transformaciju podataka u vlastitim algoritmima.

&Na poslužitelju
Procedura prilikom kreiranja na poslužitelju (greška, standardna obrada)
ObjectProduct = Products.FindByName("Coffeepot").GetObject(); ValueInFormData(ObjectItem, Object);
Kraj postupka
&NaKlijentu
Procedura Write()
Napiši na poslužitelj();
Kraj postupka
&Na poslužitelju
Procedura WriteOnServer()
ObjectProduct = FormDataValue(Object, Type("DirectoryObject.Products"));
ObjectItem.Write();
Kraj postupka

Objekt ClientApplicationForm također ima metode dostupne na poslužitelju:

  • ValueInFormAttributes() - pretvara objekt tipa aplikacije u zadani atribut obrasca.
  • PropsFormValue() - pretvara atribut podataka obrasca u objekt tipa aplikacije.

Korištenje ovih metoda obično je praktičnije jer imaju, na primjer, informacije o vrsti atributa obrasca. Dodatno, metoda Form AttributesValue() postavlja korespondenciju između podataka obrasca i objekta koji se koristi prilikom generiranja poruka.

Također biste trebali imati na umu da kada pretvarate objekte tipa ValueTable ili ValueTree u podatke obrasca (i pomoću metode ValueInFormData() i metode ValueInFormAttribute()), sljedeća značajka mora biti uzeta u obzir: svi stupci koji postoje u podacima mora postojati u oblicima objekta koji se pretvara.

PAŽNJA! Stupci atributa koji nisu povezani s podacima ne sudjeluju u konverziji vrijednosti između podataka obrasca i objekata infobaze i obrnuto. Stupci koji nisu prisutni u podacima objekta brišu se kada se konvertiraju u podatke obrasca.

Kada se objekt prenosi u podatke obrasca od strane platforme ili kada se pozivaju metode ValueInFormData(), ValueInFormProps(), prenose se samo podaci o objektu. Interno stanje objekta ne prenosi se u podatke obrasca. Na primjer, vrijednost nove reference koja je postavljena na objekt pomoću metode PostaviLinkNew(), izgubit će se u procesu pretvaranja objekta u podatke obrasca i natrag.

Kao prvi parametar metoda PropsFormValue() I FormDataValue() mogu se pojaviti samo detalji obrazaca sljedećih vrsta:

  • DataFormStructure,
  • DataFormsCollection,
  • DataFormStructureWithCollection,
  • DataFormTree.

Navedimo primjer korištenja ovih metoda.

&Na poslužitelju
Procedura RecalculateOnServer()
// Pretvara atribut Object u objekt aplikacije. Dokument = Form AttributesValue("Object");
// Izvodi ponovni izračun pomoću metode definirane u modulu dokumenta. Dokument.Ponovo izračunaj();
// Pretvara objekt aplikacije natrag u prop. ValueÂFormAttributes(Dokument, "Objekt");
Kraj postupka

Obrada prikazuje sve pojedinosti odabranog objekta, omogućuje vam njihovo uređivanje i usporedbu dva objekta iste vrste. Podržava bilo koju konfiguraciju, standardne se instaliraju automatski.

Trenutna verzija: za regularne forme 1.09, za upravljane forme 1.12.

Obrada preuzimanja (za 1C 8.2, 1C 8.3 (obični obrasci), epf datoteka, 47 KB)

Obrada preuzimanja (za 1C 8.2, 1C 8.3 (upravljane forme), epf datoteka, 22 KB)

Najnovija verzija za 1C 8.1: 1.05

Obrada preuzimanja (za 1C 8.1, epf datoteka, 48 KB)

Što učiniti ako se obrada ne otvori

Obrada je vrlo korisna, na primjer, u takvim slučajevima:

    potrebno je razumjeti nepoznatu bazu podataka

    Izdanje konfiguracije je ažurirano i dokumentu je dodano novo polje (skriveno, ali obrazac ga nema). Istodobno, za nove dokumente instalira se kada se kreiraju, ali stari se prirodno zaboravljaju. Ono što se za korisnika ogleda u činjenici da dva potpuno identična dokumenta daju različita knjiženja :)

    samo što sadržaj polja ne stane u prostor koji je za to dodijeljen na obrascu, već ga je potrebno pregledati u cijelosti (od toga posebno trpe tablični dijelovi - programeri jako vole ograničavati širinu stupaca i, osim toga, ne dopustite da se mijenjaju)

    trebate ići na povezane informacije (npr. otvoriti carinsku deklaraciju navedenu na računu), ali su zaboravili učiniti to polje dostupnim (tj. ni gumb s točkicama ili povećalo ni F4) (a događa se i da umjesto polja za unos čine polje za odabir, natpis ili polje koje uopće nema u obrascu 🙁)

    trebate usporediti dva objekta iste vrste

Razlikovne značajke su

    mogućnost povezivanja sa standardnim konfiguracijama kao ispisani obrazac (tj. u čisto korisničkom načinu rada, nije potreban konfigurator)

    mogućnost snimanja objekta u načinu rada "razmjena podataka - preuzimanje" - tj. "kao što je"

Instalacija (normalno sučelje)

Obrada je otvorena, slijedite upute na ekranu. (To jest, kliknite gumb "Instaliraj" u gornjem desnom kutu i potvrdite instalaciju u sljedećem prozoru.

Instalacija ("upravljano" sučelje)

Pažnja: Ova opcija instalacije radi samo u standardnim konfiguracijama 1C.

1. Idite na odjeljak "Administracija" i tamo - "Dodatna izvješća i obrada".

2. Pritisnite gumb "Dodaj" i odaberite datoteku dannye-objecta-upr.epf

3. U prozoru postavki obrade provjerite sljedeće:

    Publikacija: Korišteno

    Označeni su sljedeći potvrdni okviri: koristiti za obrazac popisa, koristiti objekte za obrazac

4. Potvrdite instalaciju klikom na OK

Korištenje obrade

Iz obrasca dokumenta, element imenika. ili obrazac popisa

    Normalno sučelje - kliknite gumb "Ispis...".

    “Upravljano” sučelje - kliknite gumb za popunjavanje

U izborniku odaberite “Podaci o objektu” - otvorit će se obrazac za obradu

Za pregled pojedinosti (na primjer, dokument sadrži atribut "Ugovor", nije dostupan za promjenu. Ali morate otvoriti karticu ovog ugovora).

Kako dobiti rekvizite iz referentne vrijednosti na klijentu

U obrascu za obradu kliknite na vrijednost atributa.

Da biste promijenili detalje, potvrdite okvir pokraj vrijednosti. Nakon toga, vrijednost se može promijeniti.

Za spremanje promjena kliknite gumb za potrebnu opciju za spremanje zapisa u načinu rada “razmjena podataka - preuzimanje”, normalni zapis. dirigiranje (samo za dokumente).

Ako trebate zapisati neke od promijenjenih podataka, a neke ne zapisati, poništite okvire pored toga da ih ne morate zapisati.

U obradi postoji “Property data” - to je isto kao da ste otvorili vrijednost preko poveznice (na primjer, kartica druge strane) i ponovno pozvali obradu u njoj.

Usporedba objekata može se izvršiti:

Odabir 2 objekta za obradu

2. Pozivanjem obrade s jednog objekta, zatim (bez zatvaranja prozora) s drugog. Bit će ponuda za usporedbu.

3. (Samo upravljano sučelje). Odaberite 2 objekta na popisu odjednom (za to držite pritisnutu tipku Ctrl) i pozovite obradu - objekti će se usporediti.

Snimke zaslona (normalno sučelje)

Snimke zaslona ("upravljano" sučelje)

Primjeri korištenja obrade za analizu problemskih situacija.

Promjene u verziji 1.12 (17.10.2017.)

  • Za verziju s upravljanim obrascima ispravljena je pogreška (atribut u odjeljku tablice nije ažuriran ako je sam objekt imao atribut zaglavlja s istim imenom)

Promjene u verziji 1.10 (06.01.2017.)

  • Za opciju s upravljanim obrascima popravljen je rad u nekim standardnim konfiguracijama (Računovodstvo, UNF).

Promjene u verziji 1.09 (07.07.2015.)

  • Dodan prikaz polja “Roditelj”, “Vlasnik”
  • Za verziju upravljanog sučelja omogućen je rad bez modalnih prozora.

Promjene u verziji 1.08 (03.04.2014.)

    Za verziju za normalno sučelje, kompatibilnost je poboljšana pri radu u konfiguraciji "Manufacturing Enterprise Management" (PEM) 1.3.

Promjene u verziji 1.07 (03.04.2013.)

    Postoji verzija za obradu "upravljanih" obrazaca (funkcija automatske instalacije i ažuriranja dostupna je samo u verziji za normalne obrasce)

    Ispravljena pogreška (dozvole su postavljene u distribuciji obrade)

Promjene u verziji 1.06 (13.05.2012.)

    Prikaz polja Verzija objekta

    Ispravljena je pogreška (dozvole samo za čitanje nisu se mogle postaviti u obradi)

Promjene u verziji 1.05 (04.05.2011.)

    Ispravljena greška (kada se radilo pod 8.2, snimanje dokumenta u načinu knjiženja nije bilo dostupno)

Promjene u verziji 1.04 (13.04.2011.)

    Ispravljena greška (prilikom rada pod 8.2, dupli klik mišem nije otvarao detalje)

    Sada se obrada može nastaviti s prikazom detalja referentne vrste.

    Odnosno: recimo da ste otvorili prikaz detalja dokumenta „Prodaja roba i usluga“. Ovaj dokument sadrži atribut “Counterparty” tipa “DirectoryLink.Counterparties”. Desnim klikom na ovaj atribut dobit ćete kontekstni izbornik u kojem se nalaze stavke “Podaci atributa” i “Podaci atributa u novom prozoru”. Odabirom jednog od njih možete vidjeti pojedinosti odgovarajuće druge ugovorne strane.

Promjene u verziji 1.03 (15.10.2010.)

    Dodana je mogućnost određivanja korisnika i njihovih prava pristupa obradi.

Promjene u verziji 1.02 (21.08.2010.)

    Podržane su konfiguracije u kojima se direktorij vanjske obrade naziva “Dodatni tiskani obrasci”.

Promjene u verziji 1.01 (28.01.2010.)

    Ispravljena greška koja se javljala kada je Object1 bio prazan, a Object2 odabran (zahvaljujući rasswetu, koji je to pokazao);

    Potvrdni okvir "detalji" radi odmah, nema potrebe kliknuti na "Prikaži";

    Stupac “Vrsta vrijednosti” preimenovan je u “Moguća vrsta vrijednosti” i prikazuje vrstu vrijednosti definiranu za ovaj atribut u konfiguratoru. Za atribute koji imaju kompozitni tip, osim ovoga, prikazan je i tip vrijednosti ovog atributa u promatranom objektu.

Ako ste povezali obradu sa svojom konfiguracijom, da biste je ažurirali:

skinite obradu, otvorite je kao vanjsku, ona će vam reći što i kako kliknuti (gumb “Instaliraj”, odaberite “Ažuriraj obradu u bazi”, kliknite gumb “Pokreni”)

U danima masnih klijenata, pozivanje procedure objektnog modula iz modula obrasca bilo je jednostavno. Dovoljno je bilo definirati proceduru modula kao izvoznu i nazvati je u obrascu modul.


Vremena se mijenjaju, 1C platforma se optimizira i poboljšava, debeli klijent je zaboravljen, dajte svima tanki ili web klijent. Programeri počinju prenositi konvencionalne forme na upravljane, ali nije sve tako jednostavno; neke poteškoće nastaju zbog podjele izvršavanja programskog koda u dva konteksta: poslužitelj i klijent. Stoga gornji primjer koda neće raditi na tankom klijentu.

Nove vrste podataka

Također, zbog upravljanih obrazaca pojavili su se novi tipovi podataka. Postoji obrazac:
Sjećamo se vrsta detalja i gledamo koje su vrste u otklanjanju pogrešaka za ove detalje:

Novi tipovi podataka obrazaca
Zaključujemo da tip služi za prikaz podataka samog objekta DataFormsStructure, za prikaz stabla vrijednosti - DataShapesTree, za tablični dio - DataFormsCollection itd. To jest, u modulu obrasca na klijentu ne radimo sa samim objektom, već s njegovom reprezentacijom! Dakle, metode koje su dostupne, na primjer, za tablični dio u objektnom modulu NIJE DOSTUPNO u modulu obrasca.

Borba protiv novih tipova

Programeri platforme 1C osigurali su dvije funkcije:
  1. PropsFormValue- pretvara navedeni atribut obrasca u objekt tipa aplikacije.
  2. DataFormValue- pretvara podatke obrasca u objekt tipa aplikacije.
Pozivanje ovih funkcija dostupno je samo na poslužitelju. Vratimo se našem zadatku i napišemo kod za tankog klijenta u modulu forme u događaju Kada se kreira na poslužitelju koji će pozvati funkciju iz objektnog modula:
&Na poslužitelju


SprObject1 = Form AttributesValue("Object");
SprObject1.OutputMessage(Object.Attributes1);




Kraj postupka

Radi i uz pomoć jedne funkcije i uz pomoć druge O_o. Napišimo kôd konverzije DataShapesTree u objekt tipa aplikacije:
&Na poslužitelju
Procedura prilikom kreiranja na poslužitelju (greška, standardna obrada)

Stablo vrijednosti1 = Form AttributesValue("Atribut1");
ValueTree2 = FormDataInValue(ThisForm.Attribute1, Type("ValueTree"));

Kraj postupka

ValueTree1 i ValueTree2 imaju isti tip - ValueTree. Dakle, koja je razlika između ovih funkcija???

DataFormValue - funkcija globalno kontekst. Pretvara tip objekta koji podržava obrazac u tip objekta baze podataka: DataFormsStructure --> DirectoryObject.Directory1.

PropsFormValue - funkcija modula obrasca, odnosno pozvana na poslužitelju u kontekstu obrasca (&OnServer). Ako pokušate pozvati ovu funkciju izvan konteksta obrasca, platforma će generirati pogrešku iznimke:
&Na poslužitelju bez konteksta
Procedura TypeConversion()

// Ovaj kod je netočan, kontekst obrasca nije dostupan, pojavit će se pogreška!
SprObject2 = FormDataValue(Object, Type("DirectoryObject.Directory1"));
SprObject2.OutputMessage(Object.Attributes1);

Kraj postupka

To su sve razlike.

Dolje su navedeni glavni 1C objekti koji se koriste pri radu s upravljanim obrascima. Dani su kratki primjeri koda koji pokazuju tradicionalnu upotrebu ovih objekata pri pisanju 1C konfiguracija.

Ova forma

Koristi se u modulu obrasca, u procedurama&Na klijentu i &na poslužitelju.

Omogućuje vam pristup i elementima obrasca i detaljima.

Elementu forme pristupa se preko objekta Elementi i izgleda ovako:

ThisForm.Elements.VersionNumber.Header = "v."+ProgramVersion;

Pristup atributima koji postoje na obrascu odvija se ovako:

ThisForm.Advertisement Text="Zdravo, drugovi!";

Pojednostavljeni pristup elementima obrasca i detaljima

U principu, ne morate navesti ključnu riječ u modulu obrasca Ova forma . Elementima obrasca i detaljima možete pristupiti na pojednostavljen način:

// Element obrasca

Elements.VersionNumber.Title = "v."+ProgramVersion;

// Detalji obrasca

Advertisement Text="Zdravo, drugovi!";

Značajke dobivanja detalja obrasca (važno!)

Ako atribut forme ima jednostavan tip - Niz, broj, datum ... tada možete dobiti (postaviti) vrijednost atributa jednostavno po imenu:

Tekst=Naziv proizvoda; // Naziv proizvoda je atribut obrasca

Međutim, na ovaj način nemoguće je dobiti detalje "složenog" tipa -Tablica vrijednosti, Stablo vrijednosti . Kada pokušate dobiti atribut s ovim tipom po imenu, vratit će se objekt tipaDataFormsCollection.

Da biste dobili vrijednost atributa s "složenim" tipom, morate koristiti funkcijuFormAttributesValue():

CurrentTable=FormAttributesValue("SelectedConstructionObjects");

Za postavljanje vrijednosti "kompleksnog" atributa, možete koristiti funkcijuValueInFormAttributes(<Значение>, <ИмяРеквизита>) , oba parametra su obavezna.

Funkcije FormAttributesValue() I ValueInFormAttributes()dostupno samo na poslužitelju.

Objekt

Strogo govoreći, u obrascu ne postoji takva ključna riječ. Jednostavno, kada se kreira forma, npr. forma elementa, 1C automatski kreira atribut na formi s nazivom Objekt . Preko ovog atributa dostupna su svojstva trenutnog objekta koji se uređuje na obrascu.

ili, potpuniji zapis:

ThisObject

Sadrži sam objekt. Namijenjen za dobivanje objekta u objektnom modulu ili modulu forme.

Upotreba: Samo za čitanje.

Dostupnost: Server, debeli klijent, vanjska veza.

Detalji obrasca

Skup detalja obrasca opisuje sastav podataka koji se prikazuju, uređuju ili pohranjuju u obrascu. Istodobno, sami detalji obrasca ne pružaju mogućnost prikaza i uređivanja podataka. Elementi obrasca (pogledajte odjeljak "Elementi obrasca" u ovom poglavlju) povezani s detaljima obrasca koriste se za prikaz i uređivanje. Skup svih detalja obrasca zvat će se podaci obrasca.

Važno! Treba imati na umu da, za razliku od običnih obrazaca, svi podaci u upravljanom obrascu moraju biti opisani u obliku detalja. Nije dopušteno koristiti varijable modula obrasca kao izvora podataka za elemente obrasca.

Moguće je ustupiti Osnovni detalji obrasca, odnosno atribute koji će odrediti standardnu ​​funkcionalnost obrasca (proširenje obrasca). Treba imati na umu da obrazac može imati samo jedan glavni atribut.

Proširenje obrasca– to su dodatna svojstva, metode i parametri forme objekta ManagedForm, karakteristični za objekt koji je glavni element forme.

Tijekom procesa razvoja obrasca, možete eksplicitno postaviti mogućnost pregleda i uređivanja određenih detalja obrasca, u smislu uloga, pomoću svojstava Pregled i uređivanje (za više detalja pogledajte odjeljak "Postavke obrasca temeljene na ulogama" u "Uređivači ” poglavlje). Osim toga, dostupnost pojedinog atributa u samom obrascu može se konfigurirati pomoću funkcionalnih opcija (više detalja o funkcionalnim opcijama možete pronaći u poglavlju “Upravljanje konfiguracijskim sučeljem”).

Svojstvo atributa forme Spremljeni podaci je znak da će interaktivna promjena detalja dovesti do pokušaja blokiranja podataka obrasca za uređivanje, kao i do automatskog postavljanja oznake izmjene obrasca.

Tipovi podataka dostupni u upravljanom obliku

Upravljani obrazac također se razlikuje od običnog obrasca po vrstama podataka s kojima radi. Ako normalni obrazac radi s većinom tipova koje nudi 1C:Enterprise (uključujući tipove DirectoryObject, DocumentObject itd.), tada se u upravljanom obrascu mogu razlikovati sljedeće kategorije tipova:

  • tipovi koji se izravno koriste u obrascu su oni tipovi koji postoje na strani tankog i web klijenta (na primjer, Number, DirectoryLink.Products, GraphicScheme, TabularDocument);
  • tipovi koji će se pretvoriti u posebne tipove podataka—tipovi podataka upravljanog obrasca. Takvi tipovi prikazani su na popisu detalja obrazaca u zagradama, na primjer (DirectoryObject.Products);
  • dinamički popis (za više detalja pogledajte odjeljak "Dinamički popis" u ovom poglavlju).

Pretvaranje objekata aplikacije u podatke obrasca

Neki tipovi aplikacija (kao što je DirectoryObject, itd.) ne postoje na strani tankog i web klijenta (pogledajte poglavlje Koncept upravljane aplikacije za više detalja). Stoga, za predstavljanje takvih tipova aplikacija u obrascu, platforma je uvela posebne tipove podataka dizajnirane za rad u upravljanim obrascima. Ova značajka upravljane aplikacije čini nužnim pretvoriti objekte aplikacije u podatke obrasca (i obrnuto).

Koriste se sljedeće vrste podataka:

  • Form DataStructure – sadrži skup svojstava proizvoljnog tipa. Svojstva mogu biti druge strukture, zbirke ili strukture s zbirkama. Ovaj tip je predstavljen, na primjer, u obliku DirectoryObject.
  • FormDataCollection je popis unesenih vrijednosti, sličan nizu. Elementu zbirke se pristupa pomoću indeksa ili identifikatora. Pristup putem ID-a možda neće biti dostupan u nekim slučajevima. To je zbog tipa aplikacijskog objekta koji je predstavljen ovom zbirkom. Identifikator može biti bilo koji cijeli broj. Ova vrsta je prikazana, na primjer, u obliku tabličnog dijela.
  • Form DataStructureWithCollection je objekt koji je predstavljen kao struktura i zbirka u isto vrijeme. Može se tretirati kao bilo koji od ovih entiteta. Ovaj tip predstavlja, na primjer, skup zapisa u obrascu.
  • Form DataTree – objekt dizajniran za pohranu hijerarhijskih podataka.

Objekt aplikacije predstavljen je jednim ili više podatkovnih elemenata obrasca. Općenito, hijerarhija i sastav podataka obrasca ovise o složenosti i međusobnoj povezanosti aplikacijskih objekata upravljanog obrasca.

Na primjer, dokument koji sadrži tabularni dio bit će predstavljen objektom tipa FormDataStructure (samim dokumentom), kojemu je podređen objekt tipa FormDataCollection (tabularni dio dokumenta).

Važno! Kada razvijate konfiguraciju, važno je zapamtiti da su aplikacijski objekti dostupni samo na poslužitelju, dok se podatkovni objekti obrazaca mogu koristiti i na poslužitelju i na klijentu.

Prijenos podataka između klijentskog i poslužiteljskog dijela upravljanog obrasca

Zapravo, možemo reći da su podaci obrasca objedinjeni prikaz podataka iz različitih aplikacijskih objekata s kojima forma jednoobrazno radi i koji su prisutni i na poslužitelju i na klijentu. To jest, obrazac sadrži neku "projekciju" podataka o objektu aplikacije u obliku vlastitih tipova podataka i po potrebi vrši pretvorbu između njih. Međutim, ako programer konfiguracije implementira vlastiti algoritam za obradu podataka, tada mora samostalno izvršiti konverziju podataka (iz specijaliziranih tipova u tipove aplikacija i obrnuto).

Prilikom uređivanja detalja obrasca u specijaliziranom editoru (za više detalja pogledajte odjeljak “Detalji obrasca” u poglavlju “Urednici”), moguće je utjecati na prijenos podataka između klijenta i poslužitelja dok obrazac radi. Za to se koristi stupac uređivača detalja. Uvijek koristiti. Učinak ovog svojstva razlikuje se za tri vrste atributa:

  • Za atribut podređen dinamičkom popisu (stupac dinamičkog popisa):
    • svojstvo omogućeno – atribut se uvijek čita iz baze podataka i uključuje u podatke obrasca;
    • svojstvo je onemogućeno - atribut se čita iz baze podataka i uključuje u podatke obrasca samo kada postoji trenutno vidljiv element obrasca povezan s atributom ili njegovim podređenim atributom.
  • Za rekvizite podređene zbirci pokreta:
    • svojstvo je omogućeno – pokreti dokumenta čitaju se iz baze podataka i bit će prisutni u podacima obrasca;
    • svojstvo je onemogućeno - kretanje dokumenta neće se čitati iz baze podataka i neće biti uključeno u podatke obrasca (ako ne postoji element obrasca koji upućuje na kretanje dokumenta).
  • Ostali detalji obrasca:
    • svojstvo je omogućeno – atribut će biti prisutan u podacima obrasca, bez obzira na to postoji li barem jedan element obrasca koji je pridružen atributu ili njegovom podređenom atributu;
    • svojstvo je onemogućeno - atribut će biti prisutan u podacima obrasca samo ako postoji element obrasca povezan s atributom ili njegovim podređenim atributom. Za razliku od atributa dinamičkog popisa, vidljivost elementa povezanog s atributom ovdje nije važna.

Bilješka. Treba upamtiti da svojstvo postavljeno na nadređenom atributu utječe na sve podređene atribute. Na primjer, ako je svojstvo Upotreba uvijek izbrisano za tablični dio dokumenta, tada sustav smatra da je to svojstvo također izbrisano za sve podređene detalje (unatoč stvarnom stanju svojstva).

Metode za pretvaranje podataka aplikacijskih objekata u podatke obrazaca

Za pretvaranje aplikacijskih objekata u podatke obrazaca i natrag, postoji skup globalnih metoda:

  • ValueInFormData(),
  • FormDataInValue(),
  • Kopiraj podatke obrasca().

Važno! Metode koje rade s objektima aplikacije dostupne su samo u procedurama poslužitelja. Metoda za kopiranje vrijednosti između podataka obrazaca dostupna je na poslužitelju i na klijentu, budući da ne zahtijeva objekte aplikacije kao parametre.

Kada pretvarate podatke obrasca u objekt aplikacije, morate uzeti u obzir njihovu kompatibilnost.

  • ValueInFormData() – pretvara objekt tipa aplikacije u podatke obrasca;
  • FormDataInValue() – pretvara podatke obrasca u objekt tipa aplikacije;
  • CopyFormData() – kopira podatke obrasca koji imaju kompatibilnu strukturu. Vraća True ako je kopija bila uspješna ili False ako je struktura objekta nekompatibilna.

Bilješka. Prilikom izvođenja standardnih radnji (otvaranje obrasca, izvršavanje standardne naredbe Write, itd.) obrasca s glavnim detaljima, pretvorba se izvodi automatski.

Dajmo primjer kako koristiti transformaciju podataka u vlastitim algoritmima.

&Postupak na poslužitelju prilikom stvaranja na poslužitelju (pogreška, standardna obrada)

ObjectProduct = Directories.Products.FindByName("Coffeepot").GetObject(); ValueInFormData(ObjectItem, Object);

Kraj postupka

&OnClient procedura Write()

Napiši na poslužitelj();

Kraj postupka

&OnServer postupak WriteOnServer()

ObjectProduct = FormDataValue(Object, Type("DirectoryObject.Products")); ObjectItem.Write();

Kraj postupka

Objekt ManagedForm također ima metode dostupne na poslužitelju:

  • ValueÂFormAttribute() – pretvara objekt tipa aplikacije u navedeni atribut obrasca.
  • FormAttributeVValue() – pretvara atribut podataka obrasca u objekt aplikacijskog tipa.

Korištenje ovih metoda obično je praktičnije jer imaju, na primjer, informacije o vrsti pojedinosti obrasca. Dodatno, metoda Form AttributesValue() postavlja korespondenciju između podataka obrasca i objekta koji se koristi prilikom generiranja poruka. Više o tome možete pročitati u poglavlju „Mogućnosti navigacije uslugama“.

Navedimo primjer korištenja ovih metoda.

&OnServer postupak RecalculateOnServer()

// Pretvara atribut Object u objekt aplikacije. Dokument = Form AttributesValue("Object"); // Izvodi ponovni izračun pomoću metode definirane u modulu dokumenta. Dokument.Ponovo izračunaj(); // Pretvara objekt aplikacije natrag u prop. ValueFormAttributes(Document, “Object”);

Kraj postupka

Softversko sučelje

FormDataTree

  • FindById
  • GetItems

Opis:

Dizajnirano za modeliranje stabla u podacima upravljanog oblika.

Ovaj objekt se može serijalizirati u/iz XDTO. Tip XDTO koji odgovara ovom objektu definiran je u prostoru imena. Naziv tipa XDTO:

GetItems

Sintaksa:

GetItems()

Povratna vrijednost:

Vrsta: zbirka podataka obrasca elemenata stabla.

Opis:

Dobiva kolekciju elemenata stabla najviše razine.

Dostupnost: klijent, poslužitelj, tanki klijent, web klijent.

FindById

Sintaksa:

FindById(<Идентификатор>)

Mogućnosti:

<Идентификатор>(potreban)

Tip: Broj. Identifikator elementa stabla.

Povratna vrijednost:

Upišite: FormDataTreeElement.

Opis:

Dobiva element zbirke prema ID-u.

Dostupnost: klijent, poslužitelj, tanki klijent, web klijent.

FormDataTreeItem

Svojstva:

<Имя свойства> (<Имя свойства>)

  • GetId (GetId)
  • GetParent
  • GetItems
  • Vlasništvo

Opis:

Element stabla podataka obrasca.

FormDataTreeItemCollection

Elementi zbirke: DataFormTreeElement

Za objekt je moguće preći zbirku korištenjem operatora Za svaki... Od... Petlja. Traversal odabire elemente zbirke. Moguće je pristupiti elementu zbirke koristeći [...] operator. Indeks elementa prosljeđuje se kao argument.

  • Umetnuti
  • Dodati
  • Indeks (IndexOf)
  • Računati
  • Čisto
  • Dobiti
  • Potez
  • Izbrisati

Opis:

Kolekcija drvenih elemenata.

Dostupnost: klijent, poslužitelj, tanki klijent, web klijent.

Vidi također:

  • FormDataTreeElement, metoda GetElements
  • DataFormTree, metoda GetItems

Značajke rada sa stablom vrijednosti

Ažuriranje stabla

Imamo problem Slapovi platforme prilikom ažuriranja stabla.

Ako je bilo koji čvor u stablu proširen i odabran je podređeni čvor, tada prilikom ažuriranja stabla s funkcijom ValueInFormData platforma pada.

Rješenje: morate očistiti stablo prije ažuriranja.

Na primjer:

&Na poslužiteljskoj proceduri ClearTree(elements) Za svaki element iz petlje elemenata ClearTree(element.GetElements()); EndCycle; elementi.Očisti(); Kraj postupka

&Na poslužiteljskoj proceduri Fill Concept Tree() dConcepts = srProperties.Build Concept Tree(OnDate, Meta.CurrentIB()); ClearTree(ConceptTree.GetItems()); ValueInFormData(dConcepts, ConceptTree); Kraj postupka

&OnClient Procedure OnDateOnChange(Element) Fill ConceptTree(); Kraj postupka

Najbolji članci na temu