Podrobnosti formuláře 1s 8.3. Podrobnosti spravovaného formuláře (1Cv8). Metody pro převod dat objektu aplikace na data formuláře

Podrobnosti formuláře

Sada podrobností formuláře popisuje složení dat, která jsou zobrazena, upravována nebo uložena ve formuláři. Samotné detaily formuláře zároveň neposkytují možnost zobrazení a úpravy dat. Prvky formuláře (viz část „Prvky formuláře“ v této kapitole) spojené s podrobnostmi formuláře se používají k zobrazení a úpravám. Sada všech podrobností formuláře se bude nazývat data formuláře.

Důležité! Je třeba mít na paměti, že na rozdíl od konvenčních formulářů jsou všechna data řízená forma musí být popsána formou podrobností. Není povoleno používat proměnné modulu formuláře jako zdroje dat pro prvky formuláře.

Je možné přiřadit Základní detaily formuláře, tedy atributy, které budou určovat standardní funkčnost formuláře (přípona formuláře). Je třeba si uvědomit, že formulář může mít pouze jeden hlavní atribut.

Rozšíření formuláře– to jsou další vlastnosti, metody a parametry formuláře objektu ManagedForm, charakteristické pro objekt, který je hlavním prvkem formuláře.

Během procesu vývoje formuláře můžete explicitně nastavit možnost prohlížet a upravovat konkrétní podrobnosti formuláře, pokud jde o role, pomocí vlastností Zobrazit a Upravit (další podrobnosti naleznete v části „Nastavení formuláře na základě rolí“ v části „Editoři kapitola). Kromě toho lze dostupnost konkrétního atributu v samotném formuláři konfigurovat pomocí funkčních možností (více podrobností o funkčních možnostech naleznete v kapitole „Správa konfiguračního rozhraní“).

Vlastnost atributu formuláře Uložená data je známkou toho, že interaktivní změna podrobností povede k pokusu o zamknutí dat formuláře pro úpravy, stejně jako automatická instalace znamení změněné formy.

Datové typy dostupné ve spravovaném formuláři

Spravovaný formulář se od běžného formuláře liší také typy dat, se kterými pracuje. Pokud normální formulář pracuje s většinou typů, které 1C:Enterprise poskytuje (včetně typů DirectoryObject, DocumentObject atd.), pak lze ve spravovaném formuláři rozlišit následující kategorie typů:

  • typy, které se přímo používají ve formuláři, jsou typy, které existují na straně tenkého a webového klienta (například Number, DirectoryLink.Products, GraphicScheme, TabularDocument);
  • typy, které budou převedeny na speciální datové typy – datové typy spravovaných formulářů. Takové typy jsou zobrazeny v seznamu podrobností formuláře v závorkách, například (DirectoryObject.Products);
  • dynamický seznam (další podrobnosti viz část „Dynamický seznam“ této kapitoly).

Převod aplikačních objektů na data formuláře

Některé typy aplikací (jako je DirectoryObject atd.) na straně tenkého a webového klienta neexistují (další podrobnosti viz kapitola Koncepce spravované aplikace). Pro reprezentaci takových typů aplikací ve formuláři proto platforma zavedla speciální datové typy navržené pro práci ve spravovaných formulářích. Tato funkce spravované aplikace vyžaduje převod objektů aplikace na data formuláře (a naopak).

Používají se následující datové typy:

  • Form DataStructure – obsahuje sadu vlastností libovolného typu. Vlastnosti mohou být jiné struktury, kolekce nebo struktury s kolekcemi. Tento typ je reprezentován např. ve tvaru DirectoryObject.
  • FormDataCollection je seznam zadaných hodnot, podobný poli. K prvku kolekce se přistupuje pomocí indexu nebo identifikátoru. Přístup pomocí ID nemusí být v některých případech k dispozici. To je způsobeno typem objektu aplikace, který je reprezentován touto kolekcí. Identifikátor může být libovolné celé číslo. Tento typ je zastoupen např. ve formuláři tabulkový oddíl.
  • Form DataStructureWithCollection je objekt, který je reprezentován jako struktura a kolekce zároveň. Lze s ní zacházet jako s kteroukoli z těchto entit. Tento typ představuje například sadu záznamů ve formuláři.
  • Form DataTree – objekt určený k ukládání hierarchických dat.

Objekt aplikace je reprezentován jedním nebo více datovými prvky formuláře. V obecný pohled Hierarchie a složení dat formuláře závisí na složitosti a propojení aplikačních objektů spravovaného formuláře.

Například dokument obsahující tabulkovou část bude reprezentován objektem typu FormDataStructure (samotný dokument), kterému je podřízen objekt typu FormDataCollection (tabulková část dokumentu).

Důležité! Při vývoji konfigurace je důležité pamatovat na to, že aplikační objekty jsou dostupné pouze na serveru, zatímco datové objekty formuláře lze použít jak na serveru, tak na klientovi.

Předávání dat mezi klientskou a serverovou částí spravovaného formuláře

Ve skutečnosti lze říci, že data formuláře jsou jednotnou reprezentací dat z různých aplikačních objektů, se kterými formulář pracuje jednotně a které jsou přítomny na serveru i na klientovi. To znamená, že formulář obsahuje určitou „projekci“ dat objektu aplikace ve formě vlastních datových typů a v případě potřeby mezi nimi provádí konverzi. Pokud však vývojář konfigurace implementuje svůj vlastní algoritmus pro zpracování dat, musí konverzi dat (ze specializovaných typů na typy aplikací a naopak) provádět samostatně.

Při editaci detailů formuláře ve specializovaném editoru (více viz sekce „Detaily formuláře“ v kapitole „Editoři“) je možné ovlivnit přenos dat mezi klientem a serverem za běhu formuláře. K tomu slouží sloupec editoru detailů. Vždy používejte. Efekt této vlastnosti se liší pro tři typy atributů:

  • Pro atributy podřízené dynamickému seznamu (sloupec dynamický seznam):
    • vlastnost povolena – atribut je vždy načten z databáze a zahrnut do dat formuláře;
    • vlastnost je zakázána - atribut je načten z databáze a zahrnut do dat formuláře, pouze když je viditelný v tento moment element formuláře spojený s atributem nebo jeho podřízeným atributem.
  • Pro rekvizity podřízené kolekci pohybu:
    • vlastnost je povolena – pohyby dokladů jsou načteny z databáze a budou přítomny v datech formuláře;
    • vlastnost je zakázána - pohyby dokladů nebudou načteny z databáze a nebudou zahrnuty do dat formuláře (pokud neexistuje prvek formuláře, který odkazuje na pohyby dokladu).
  • Další podrobnosti formuláře:
    • vlastnost je povolena – atribut bude přítomen v datech formuláře bez ohledu na to, zda existuje nebo není alespoň jeden prvek formuláře, který je spojen s atributem nebo jeho podřízeným atributem;
    • vlastnost je zakázána - atribut bude v datech formuláře přítomen pouze v případě, že je k atributu nebo jeho podřízenému atributu přidružen prvek formuláře. Na rozdíl od atributů dynamického seznamu zde nezáleží na viditelnosti prvku spojeného s atributem.

Poznámka. Je třeba si uvědomit, že vlastnost nastavená na nadřazeném atributu ovlivňuje všechny podřízené atributy. Pokud je například vlastnost Použít pro tabulkovou část dokumentu vždy vymazána, systém se domnívá, že tato vlastnost je vymazána i pro všechny podřízené podrobnosti (nehledě na skutečný stav vlastnosti).

Metody pro převod dat objektu aplikace na data formuláře

Chcete-li převést objekty aplikace na data formuláře a zpět, existuje sada globálních metod:

  • ValueInFormData(),
  • FormDataInValue(),
  • CopyFormData().

Důležité! Metody, které pracují s aplikačními objekty, jsou dostupné pouze v procedurách serveru. Metoda pro kopírování hodnot mezi daty formuláře je dostupná na serveru a na klientovi, protože nevyžaduje jako parametry aplikační objekty.

Při převodu dat formuláře na aplikační objekt je třeba zvážit jejich kompatibilitu.

  • ValueInFormData() – převede objekt typu aplikace na data formuláře;
  • FormDataInValue() – převádí data formuláře na objekt typu aplikace;
  • CopyFormData() – zkopíruje data formuláře, která mají kompatibilní strukturu. Vrátí True, pokud byla kopie úspěšná, nebo False, pokud je struktura objektu nekompatibilní.

Poznámka. Při provádění standardních akcí (otevření formuláře, provedení standardního příkazu Zápis atd.) formuláře s hlavními detaily se převod provede automaticky.

Uveďme příklad, jak využít transformaci dat ve vlastních algoritmech.

&OnServerProcedure When CreateOnServer(Failure, StandardProcessing)

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

Konec procedury

&OnClient Procedure Write()

WriteOnServer();

Konec procedury

&OnServer procedura WriteOnServer()

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

Konec procedury

Objekt ManagedForm má také metody dostupné na serveru:

  • ValueВFormAttribute() – převede objekt typu aplikace na zadaný atribut formuláře.
  • FormAttributeVValue() – převádí atribut dat formuláře na objekt typu aplikace.

Použití těchto metod je obvykle pohodlnější, protože obsahují například informace o typu podrobností formuláře. Metoda Form AttributesValue() navíc nastavuje shodu mezi daty formuláře a objektem, který se používá při generování zpráv. Více se o tom můžete dočíst v kapitole „Možnosti navigace služby“.

Uveďme si příklad použití těchto metod.

&OnServer procedura RecalculateOnServer()

// Převede atribut Object na aplikační objekt. Dokument = Form AttributesValue("Object"); // Provede přepočet pomocí metody definované v modulu dokumentu. Document.Recalculate(); // Převede objekt aplikace zpět na prop. ValueВFormAttributes(Document, “Object”);

Konec procedury

Softwarové rozhraní

FormDataTree

  • FindById
  • GetItems

Popis:

Navrženo pro modelování stromu v datech spravovaného formuláře.

Tento objekt lze serializovat do/z XDTO. Odpovídající typu XDTO tento objekt je definován ve jmenném prostoru. Název typu XDTO:

GetItems

Syntax:

GetItems()

Návratová hodnota:

Typ: Formulář DataCollection of Tree Elements.

Popis:

Získá kolekci prvků stromu nejvyšší úrovně.

Dostupnost: klient, server, tenký klient, webový klient.

FindById

Syntax:

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

Možnosti:

<Идентификатор>(Požadované)

Typ: Číslo. Identifikátor prvku stromu.

Návratová hodnota:

Typ:FormDataTreeElement.

Popis:

Získá prvek kolekce podle ID.

Dostupnost: klient, server, tenký klient, webový klient.

FormDataTreeItem

Vlastnosti:

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

  • GetId (GetId)
  • GetParent
  • GetItems
  • Vlastnictví

Popis:

Prvek stromu dat formuláře.

FormDataTreeItemCollection

Prvky kolekce: DataFormTreeElement

U objektu je možné procházet sběr pomocí operátoru Pro každý... Od... Smyčka. Procházení vybere prvky kolekce. K prvku kolekce je možné přistupovat pomocí operátoru [...]. Index prvku je předán jako argument.

  • Vložit
  • Přidat
  • Index (IndexOf)
  • Počet
  • Průhledná
  • Dostat
  • Hýbat se
  • Vymazat

Popis:

Kolekce dřevěných prvků.

Dostupnost: klient, server, tenký klient, webový klient.

Viz také:

  • FormDataTreeElement, metoda GetElements
  • DataFormTree, metoda GetItems

Funkce práce se stromem hodnot

Aktualizace stromu

Vyskytl se problém pády platformy při aktualizaci stromu.

Pokud byl některý uzel ve stromu rozšířen a byl vybrán podřízený uzel, pak při aktualizaci stromu pomocí funkce ValueInFormData plošina spadne.

Řešení: Před aktualizací musíte vymazat strom.

Například:

&Na serveru Postup ClearTree(elements) Pro každý prvek z prvků Loop ClearTree(element.GetElements()); EndCycle; elementy.Clear(); Konec procedury

&Na serveru Postup Fill Concept Tree() dConcepts = srProperties.Build Concept Tree(OnDate, Meta.CurrentIB()); ClearTree(ConceptTree.GetItems()); ValueInFormData(dConcepts, ConceptTree); Konec procedury

&Procedura OnClient OnDateOnChange(Element) Fill ConceptTree(); Konec procedury

Práce uživatele s referenčními knihami a dokumenty v 1C spočívá ve vyplňování polí na formuláři.

Podrobnosti 1C jsou pole adresáře a dokumentu, která se uživateli zobrazí ve formuláři.

Podívejme se blíže na téma detailů v 1C.

Co jsou podrobnosti 1C

Každý adresář a dokument 1C se skládá ze sady polí. Taková pole se nazývají detaily 1C (pro programátora 1C).

V konfigurátoru ve stromu konfigurace 1C otevřete libovolný adresář nebo dokument a zobrazí se vám větev Podrobnosti. Toto je seznam podrobností adresáře (polí).

Podívejte se, jak stejné detaily 1C vypadají na formuláři adresáře 1C.

Každý atribut 1C má vlastnosti, které udávají, jaký typ hodnoty je v atributu uložen (řetězec, číslo atd.) a jak s ním bude uživatel pracovat.

Klikněte pravým tlačítkem na libovolný atribut 1C a klikněte na Vlastnosti. V okně vpravo se otevře seznam vlastností vybraného atributu.

Hlavní vlastnosti detailů 1C:

Standardní detaily 1C

Jak jste si všimli, ve formuláři adresáře jsou podrobnosti 1C, které nejsou uvedeny v konfigurátoru: skupina, název, BIC.

Formulář seznamu adresářů také obsahuje podrobnosti 1C, které nejsou v seznamu: značka odstranění.

Toto jsou standardní detaily 1C. co to je? Každý má výchozí sadu detailů 1C. U adresářů je to například kód a název. U dokladů je to datum a číslo.

Standardní detaily 1C lze zobrazit následovně:

  • Přejděte do editoru objektu 1C (adresáře nebo dokumentu) tak, že na něj dvakrát kliknete myší
  • V editoru, který se otevře, vyberte kartu Data
  • Zde můžete nakonfigurovat standardní podrobnosti Kód a Název adresáře
  • Kliknutím na tlačítko 1C Standardní podrobnosti zobrazíte úplný seznam.

Obecné podrobnosti 1C

Počínaje verzí 1C 8.2.14 se v 1C – Obecné podrobnosti 1C objevil nový objekt 1C. Pomocí něj můžete přidat vlastnost (pole), která bude přítomna v mnoha adresářích a dokumentech najednou.

Vlastnosti obecných atributů 1C:

  • Automatické použití – přidává obecné podrobnosti 1C do všech adresářů a dokumentů najednou
  • Kompozice – umožňuje přidávat obecné detaily 1C pouze do potřebných adresářů a dokumentů (automatické použití je pak nastaveno na Nepoužívat).

Jak přidat podrobnosti 1C

Klikněte pravým tlačítkem na větev 1C Details požadovaného adresáře a vyberte Přidat.

Musíme zadat název atributu 1C, například „Adresa kanceláře“ a synonymum „Adresa kanceláře“. Ponechte výchozí typ String, ale zaškrtněte políčko Neomezená délka.

Stejným způsobem přidáme další atribut 1C, pouze vybereme typ Boolean a nazveme ho „Works on Weekends“.

Jak zobrazit podrobnosti na formuláři 1C (tlustý klient 1C)

Rozbalíme větev Formuláře stejného adresáře. Chcete-li formulář otevřít, vyberte formulář prvku a dvakrát na něj klikněte myší.

Přetáhněte okraj tvaru myší a roztáhněte jej (volitelné).

Na panelu konfigurátoru klikněte na tlačítko „Umístění dat“. Můžete také použít nabídku Formulář / Umístění dat.

Vidíte, že naše údaje se ve formuláři nezobrazují. Zkontrolujte je. A také zaškrtávací políčka Vložit štítky a Umístit automaticky.

Jak zobrazit podrobnosti ve formuláři 1C (tenký klient 1C)

Rozbalíme větev Formuláře stejného adresáře. Vyberte tvar prvku a dvakrát na něj klikněte myší.

Na kartě Podrobnosti rozbalte řádek Objekt. Zobrazí se seznam podrobností, které byly dříve přidány do adresáře.

Nyní stačí přetáhnout požadovaný atribut z pravého okna do levého a objeví se ve formuláři.

Podrobnosti formuláře 1C

V tlustém klientovi má formulář své vlastní detaily. Jsou umístěny na kartě Podrobnosti.

Tyto údaje se neukládají do databáze, ale lze je použít ve formuláři pro pole, která jsou potřebná pro práci s formulářem.

Do formuláře jste například přidali zaškrtnutí. Když na něj kliknete, ve formuláři se něco stane. Na významu zaškrtávacího pole pro vás nezáleží (nemusíte ho zapisovat) - slouží pouze k přepínání formuláře při práci s ním. V tomto případě nepoužijete jako data atribut adresáře, ale atribut formuláře.

Pravidelné podrobnosti 1C

Ve verzi 1C 7.7 byly pravidelné podrobnosti. Jejich význam je tento: význam rekvizit se v různých datech liší. Například 1. září je hodnota jedna a 1. října jiná. Stejné rekvizity.

V 1C 8 nejsou žádné pravidelné podrobnosti. To je implementováno následovně:

Detaily formuláře zajišťují jeho spojení s daty. V tomto případě může být jeden (a pouze jeden) z detailů označen jako hlavní; nemusí to být nutně datový typ, do kterého formulář kreslíme. Chování formuláře však bude záviset na datovém typu hlavního atributu. Kromě změny chování formuláře se změní i kontext modulu formuláře. Spolu s metodami a vlastnostmi formuláře se v něm zpřístupňují i ​​metody a vlastnosti objektu, který je hodnotou hlavního atributu. Je důležité, aby formuláře typu Free Form neměly základní detaily. V tomto případě je chování formuláře určeno pouze nastavením uživatele. Zvažme otázky týkající se základních detailů.

Otázka 10.05 zkoušky 1C: Platform Professional. K čemu se používá hlavní atribut formuláře?

  1. Definuje zdroj dat pro formulář jako celek
  2. Definuje standardní možnosti platformy pro práci s formulářem s daty typu uvedeného v hlavním atributu
  3. Poskytnout možnost programově přistupovat k podrobnostem objektu z místního kontextu formuláře
  4. Poskytuje vizualizaci detailů objektu v dialogovém okně formuláře
  5. 2 a 3 jsou správné
  6. 1 a 2 jsou správně

Správná odpověď je číslo šest, viz výše.


Otázka 10.06 zkoušky 1C: Platform Professional. K čemu jsou potřebné údaje formuláře?
  1. Popis obsahu dat, která jsou zobrazena, upravena nebo uložena ve formuláři
  2. Chcete-li zobrazit a upravit data ve formuláři
  3. 1 a 2 jsou správně

Správná odpověď je třetí – obojí.

Otázka 10.07 zkoušky 1C: Platform Professional. Chcete-li přiřadit základní atributy libovolnému řízenému formuláři...

  1. Musíte zaškrtnout políčko "Základní podrobnosti" ve vlastnostech atributů formuláře
  2. musíte vyplnit vlastnost „Data“ formuláře výběrem požadovaného atributu formuláře

Správná odpověď je druhá:

Otázka 10.08 zkoušky 1C: Platform Professional. Cokoli je libovolné pravidelná forma přiřadit základní detaily...
  1. formulář musí být hlavní, hlavní podrobnosti jsou určeny automaticky
  2. Musíte zaškrtnout políčko "Základní podrobnosti" ve vlastnostech atributů formuláře
  3. musíte přejít do nabídky "Upravit", "Základní podrobnosti" a vybrat požadovanou hodnotu
  4. musíte vyplnit vlastnost „Data“ formuláře výběrem požadovaného atributu formuláře

Čtvrtá správná odpověď je:

Hlavní detaily jsou zvýrazněny tučně:

Otázka 10.09 zkoušky 1C: Platform Professional. Pokud existuje jeden hlavní atribut formuláře, je možné přidat další hlavní atribut?
  1. To je nemožné
  2. Je to možné přiřazením příslušné hodnoty vlastnosti atributu formuláře
  3. Je to možné pouze programově, při přístupu k objektu "Formulář".
  4. To je možné přidáním další hodnoty k odpovídající vlastnosti formuláře

Správná odpověď je první, je zde striktně jeden hlavní požadavek, protože souvislost s objektem musí být jednoznačná.

Otázka 10.113 zkoušky 1C: Platform Professional. Který z detailů formuláře na obrázku je ten hlavní?

  1. Seznam měnových kurzů
  2. DirectoryObject
  3. Adresářové formuláře nemají základní detaily
  4. Adresářové formuláře mají všechny základní detaily
Druhá správná odpověď je tučně.