• Výsledky vyhledávání podle výběrového formuláře. Konstruktor schématu složení dat - karta nastavení Možnosti výběru SKD

    Otázka: SKD, Jak mohu otevřít požadovaný formulář pro výběr parametru?


    Dobré odpoledne Na ACS je report, má parametr Značka - typ Directory.Nomenclature. Jak mohu zavolat konkrétní výběrový formulář pro tento parametr? Zkoušel jsem to v ACS na záložce "Parametry", dostal jsem se na požadovaný parametr - dvakrát klikněte na sloupec "Možnosti úprav" - zaškrtněte políčko "Formulář výběru" a zadejte hodnotu Directory.Nomenclature.Form.VoiceFormNecessary . Když sestavu spustíte, ve výchozím nastavení se stále používá formulář pro výběr, nikoli ten, který je zadán v části "Vybrat formulář". Konfigurace UT, pravidelné tvary. Řekni mi, pzhl, kde, co se děje?

    Odpovědět: Klíčová fráze Běžné formuláře, přejít na spravované

    Otázka: Vyberte hodnotu ve formuláři pro výběr


    Dobré odpoledne

    Pravidelná aplikace.

    Existuje dokument. Má několik náležitostí referenčního typu, například "DirectoryLink.Banks" s hodnotou "Bank1".

    Je nutné formou výběru adresáře "Banks", programově VYBRAT prvek "Bank1", tzn. zadejte znovu vyberte tuto hodnotu "Bank1".

    Zatím jsem udělal následující:
    Postup Proveďte výběr ve formuláři výběru (odkaz)
    DirectorySelectionForm = Directories.Banks.GetChoiceForm(,Reference); //získáte formulář pro výběr adresáře Banks předaným parametrem Link
    //Výběr nastavím v tomto výběrovém formuláři, podle mého odkazu v rekvizitách
    HandbookChoiceForm.Selection.Reference.Use = true;
    DirectoryChoiceForm.Selection.Link.Value = odkaz;
    CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False;
    HandbookChoiceForm.Open();
    //zde je kód, který simuluje stisknutí tlačítka Vybrat, jak????
    EndProcedure

    Pomoc, kdo čelil, nebo mít nápady.

    Děkuji.

    Odpovědět:

    Bylo to takhle:

    Procedure ExecuteChoiceInChoiceForm(Link, rec) //parametr "odkaz" je odkaz na hodnotu ve formuláři dokumentu; "rec" je aktuální formulářový prvek, tj. výběrové pole
    Formulář pro výběr slovníku = Directories.Banks.Get SelectionForm(,Rec,Reference);
    CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False;
    OpenForm(FormChooseCatalog, rivers,);

    IfCatalogSelectionForm.Open() Then
    HandbookChoiceForm.Activate();
    EndIf;

    HandbookChoiceForm.CurrentItem.CurrentRow = reference;
    ChoiceEl = FormCategoryChoice.CurrentItem.CurrentRow;

    Pokud ChoiceEl = undefined nebo NOT vyplněna hodnota (ChoiceEl), pak
    Show("Hodnota "+Reference+" nebyla nalezena ve formuláři pro výběr vyhledávání");
    v opačném případě
    Formulář pro výběr příručky.NotifyOfChoice(ChoiceEmail);
    EndIf;

    EndProcedure

    Otázka: Tlačítko "Vybrat" ve formuláři pro výběr nebo jak kliknout na tlačítko "Vybrat".


    Dobré odpoledne

    Pravidelná aplikace.

    Co si myslíte o tom, jak kliknout na tlačítko "Vybrat" ve formuláři pro výběr dokumentu / adresáře?

    Kliknutí myší a COM nenabízí provést automatizaci.

    Seznam přání: ve formuláři pro výběr simulujte stisknutí tlačítka "Vybrat".

    Odpovědět: Zdá se, že problém vyřešil ... pár testovacích jízd.

    Přidáno po 17 minutách
    Zatím to funguje takto:

    1C
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Postup Proveďte výběrV SelectionForm(Reference , rec) //parametr "link" je odkaz na hodnotu ve formuláři dokumentu; "rec" je aktuální formulářový prvek, tj. výběrové pole DirectorySelectionForm = Adresáře . Banky. GetSelectionForm(, Req, Link ) ; FormChoiceDirectory. ElementsForm. DirectoryList. HierarchicalView = False ; OpenForm(DirectoryChoiceForm, rivers, ) ; IfFormSelectionDirectory. Opened() Potom HandbookChoiceForm. Aktivovat() ; EndIf; FormChoiceDirectory. CurrentElement. CurrentLine = odkaz ; ChoiceEl = FormChoiceCatalog. CurrentElement. CurrentLine; pokud ChoiceEmail = nedefinováno nebo není vyplněna hodnota (ChoiceEmail), pak Report("Value" + Reference + "nebylo nalezeno ve formuláři pro výběr vyhledávání"); jinak formulář HandbookChoiceForm. Upozornit naChoice(ChoiceEl); EndIf; EndProcedure

    Otázka: Proč již není vybrána hodnota z výběrového formuláře?


    Na formuláři dokumentu je pole typu reference DocumentLink.PaymentOrderOutgoing. Po výběru se otevře formulář pro výběr odchozího platebního příkazu. Jakmile je hodnota vybrána, není nahrazena do vybraného formuláře. Myslel jsem nejprve zpracování volby na standardní zpracování a program zapomněl zpracování volby předepsat. Ale všechno je typické. Otevření formuláře není programové, na poli, ve kterém se rozhodnu nepořádat žádné akce. co by mohlo být?
    --- Sloučit zprávy, 2. ledna 2018 ---

    Další aplikace na běžných formulářích. Výběrový formulář je spravován, ale otevírá se z běžného okna. Pokud přepnete zpět na normální výběrový formulář, pak je vše v pořádku.

    Odpovědět:

    Všeobecně srozumitelné. Užitečné vidět, co přijde k SelectedValue při zpracování výběru. Ukázalo se, že je to pole. Dostal jsem se do výběrových formulářů, ukázalo se, že existuje kavka Vícenásobný výběr. Sundal a vše fungovalo.

    Otázka: Prosím o pomoc s nastavením výběru ve formuláři pro výběr adresáře


    Při výběru protistrany programově předávám první znaky jména do výběrového formuláře. Jak programově aktivovat první prvek, který má stejné první znaky.

    Odpovědět:

    elektron řekl:

    Při výběru protistrany programově předávám první znaky jména do výběrového formuláře. Jak programově aktivovat první prvek, který má stejné první znaky.

    Kliknutím zobrazíte...

    Je rozhodnuto. Vytvořil virtuální klávesnici na výběrovém formuláři adresáře "Dodavatelé".
    Když stisknete libovolnou klávesu, kód se spustí
    ResultSearchByAttribute = CurrentRequest.FindByName(N,False);
    FormElements.CatalogList.CurrentLine=SearchResultByAttribute;
    kde H je proměnná obsahující hodnotu klíče

    Otázka: Výběrový formulář s výběrem pro seznam hodnot


    Dobré odpoledne. Potřebuji vaši pomoc při řešení jednoduchého problému.

    Config ZUP 2 .5 .113 .1 Existuje externí sestava, sestava má atribut "seznam základen", typ seznam hodnot.
    Existuje formulář hlášení. Ve formuláři zprávy pole "vstupní seznam základen", ValueType = "ValueList" a ListValueType = "ReferenceReference.ObjectPropertyValue".

    Jak otevřít výběrový formulář s výběrem vlastníka nějaké nemovitosti?

    Děkuji předem!

    Odpovědět: Na záložce Parametry je sloupec Editace parametrů. tam můžete zkusit nakonfigurovat odkazy na parametry výběru nebo parametr výběru

    Otázka: Programově otevřete formulář pro výběr dokumentu 1s 8.3


    Jak programově otevřít formulář pro výběr dokumentu 1s 8.3 a uložit vybranou hodnotu do proměnné?

    Google dal nějaký druh řešení berličky, rád bych věděl, jak to udělat správně.

    Odpovědět:+ () PM má také takovou kouzelnou metodu - stahování.

    Tabulková sekce
    Zatížení
    Syntax:

    Stažení(<Таблица>)
    Možnosti:

    <Таблица>(povinné) Typ: ValueTable.
    Tabulka hodnot, odkud se načítá tabulková část. Sloupce tabulky jsou kombinovány podle názvu.
    Popis:

    Načte tabulkovou součást z tabulky hodnot. V tomto případě se vymažou všechny předchozí řádky tabulkové části. Při načítání jsou hodnoty ve sloupcích tabulkové části vyplněny hodnotami ze sloupců tabulky hodnot se stejnými názvy.

    Dostupnost:

    Server, tlustý klient, externí připojení.
    Poznámka:

    Použití metody je povoleno pouze v případě, že je tabulková část získána z vlastnosti objektu. Pokud je tabulková část získána z vlastnosti reference (nebo výběru), pak použití této metody způsobí chybu běhu.
    Příklad:

    Composition.Load(CompositionTable);

    Otázka: Předání parametrů do výběrového formuláře.


    Prosím o rady.
    Z dokladu "Prodej zboží a služeb" se vyvolá formulář pro výběr smlouvy (ERP). Konf je opravený, srovnávám se standardním. V ProcessingCreationOnServer výběrového formuláře se podívám do debuggeru Parameters.Selection. Jen nechápu, jak se tvoří výběrový seznam - neexistuje žádné explicitní volání tohoto formuláře s parametry, ve vlastnosti "ChoiceParametersConnection" je pouze jeden prvek výběru a v Parameters.Filter jich je již několik. Může mi někdo říct, kde hledat?

    V Tvůrci dotazů, když je volán z formuláře nastavení zdroje dat, pro schéma složení dat. Je zde záložka „charakteristiky“, jejíž použití není v dokumentaci jasně popsáno. V tomto článku se pokusím vysvětlit, jak a proč se vlastnosti používají v ACS.

    V Tvůrci dotazů, když je volán z formuláře nastavení zdroje dat, pro schéma složení dat. Je zde záložka „charakteristiky“, jejíž použití není v dokumentaci jasně popsáno. V tomto článku se pokusím vysvětlit, jak a proč se vlastnosti používají v ACS. V typických konfiguracích se aktivně používá mechanismus vlastností a hodnot vlastností, který je k dispozici téměř pro jakýkoli objekt. Primitivně, v referenčních knihách, byl tento mechanismus implementován v konfiguracích 7.7. Nyní je tento mechanismus implementován pomocí plánu typů charakteristik a registru informací, ale myšlenka zůstává stejná. Když jsem se poprvé setkal s potřebou použít tento mechanismus ve schématu ACS, velmi dlouho jsem trpěl, organizoval vnořené dotazy, připojoval se k hlavnímu výběru a lámal si hlavu nad tím, jak vzít v úvahu možnost nových typů vlastností, které existují v době vývoje zprávy. Celý mechanismus vlastností, který je z pohledu uživatele jednoduchý a logický, se nedal k žádnému běžnému zpracování, dokud jsem nepřišel na záložku „Charakteristiky“. Tabulka na záložce je velmi rozmarná, buď zadáte celý řádek správně, nebo odmítnete zadat řádek vůbec, systém vám nedovolí nechat „na později“ řádek, který není zcela vyplněn. Pojďme tedy ke specifikům. První sloupec: Typ - zde vybereme typ objektu, ke kterému budou vlastnosti vázány, například „DirectoryReference.Nomenclature“ To znamená, že nyní bude možné získat hodnoty vlastností pro všechny objekty zadaného typu. Dále v dalším sloupci Zdroj pohledů musíme nastavit parametry zdroje typů vlastností. Možnosti tabulky a dotazu jsou možné, proč potřebuji možnost dotazu, řeknu později, nyní vybereme položku tabulky. Ve sloupci Typy charakteristik musíme vybrat tabulku infobázové báze, která ukládá požadované typy charakteristik, v našem příkladu to bude „Plán typů charakteristik. Vlastnosti objektů“. Hodnoty, které máme k dispozici pro výběr ve sloupcích Pole klíče, Pole názvu a Pole typu hodnoty, dále přímo závisí na polích tabulky, která jsme vybrali. V poli Key vybereme Link, v poli Name - View (uživatel to uvidí jako název atributu) a v poli Type, respektive ValueType. Nyní přejděme ke zdroji hodnot. Zdrojem hodnot bude informační registr „Hodnoty vlastností objektů“, proto vybereme ve sloupci Zdroj hodnot – tabulka a ve sloupci Hodnoty charakteristik – „Registr informací. Hodnoty vlastností objektů“. Ve sloupcích Objekt, Vlastnost, Hodnota vyberte odpovídající pole registru Objekt, Vlastnost, Hodnota. Zdálo by se, že to je vše. Vstoupíme do nastavení schématu, přidáme seskupení podle produktů a přidáme k němu seskupení podřízené, například podle značek, máme takovou vlastnost. Rozbalíme seznam atributů seskupení Nomenklatura a ... nevidíme tam žádné vlastnosti: Faktem je, že jsme v konfigurátoru, odkud není přístup k datům. Jak provést požadované nastavení? Nejpohodlnějším způsobem, jak toho dosáhnout, je použít konzolu pro skládání dat, tu na disku ITS nebo tu, která je součástí subsystému „Developer Tools“. Ale můžete také jednoduše otevřít nastavení sestavy v podnikovém režimu. Otevřeme tedy stejné nastavení, ale v podnikovém režimu: Jak vidíte, přidali jsme nové "Podrobnosti", zatímco...

    Funkce vytváření sestav v 1C v8 v režimu tlustého klienta

    Jak vybrat možnost?

    • Na panelu sestav umístíme tlačítko "Vybrat možnost"
    • Na formuláři vložíme pole "OnDate"

    Příklad kódu: Akce formuláře ProcedureOptionSelection(Button) layout = GetLayout("MainDataCompositionSchema"); spOptions = Nový seznam hodnot; Pro každou možnost z Layout.OptionsSettings Loop spOptions.Add(Option.Settings, Option.View); EndCycle;

    select = spOptions.SelectItem(); Pokud select = Undefined Then Return; EndIf;

    SettingsComposer.LoadSettings(selection.Value);

    Formulář(); EndProcedure

    Procedure OnDateOnChange(Element) Generate(); EndProcedure

    Postup Form() Form Elements.Result.Clear(); SettingsComposer.Settings.DataParameters.SetParameterValue("Period", OnDate); ComposeResult(FormElements.Result); EndProcedure

    Procedura OnOpening() OnDate = CurrentDate(); Formulář(); EndProcedure

    Funkce vytváření sestav prostřednictvím ACS

    Vytvoření sestavy krok za krokem

    1. Vytvořte sestavu v uzlu sestavy
    2. Vytvořte rozvržení v sestavě, jejíž typ je Schéma složení dat
    3. Ve vlastnostech sestavy nastavte: Hlavní schéma složení dat = Vytvořené rozvržení
    4. Ve vlastnostech sestavy nastavte podsystém, do kterého patří (sestava v Enterprise se zobrazí v horním navigačním panelu)
    5. Vytvořte dotaz v rozložení (položka: Přidat datovou sadu - Dotaz)
    6. V záložce Parametry Layoutu je potřeba odškrtnout všechny řádky ve sloupci Omezení přístupnosti - tzn. všechny parametry bude uživatel upravovat
    7. V záložce Nastavení rozvržení vytvořte v okně, kde je zobrazen uzel Report, nové seskupení bez zadání pole seskupení - vytvoří se podrobný řádek
    8. Na kartě Nastavení v rozvržení vyberte v okně, kde je zobrazena další sada záložek, další. Záložka Parametry - označte všechny parametry zaškrtnutím a u každého parametru klikněte na tlačítko Vlastnosti prvku uživatelského nastavení, otevře se okno nastavení parametrů, kde je potřeba zaškrtnout políčko - Zahrnout parametr do uživatelského nastavení
    9. Na kartě Nastavení v rozvržení vyberte v okně, kde je zobrazena další sada záložek, další. záložka SelectedFields - tam je potřeba přidat sloupce, které se budou zobrazovat v sestavě
    10. Spusťte Enterprise, otevřete sestavu, nastavte hodnoty parametrů, Generovat (zkontrolujte, zda je vybrána možnost Základní pro generování sestavy)

    Jak přidat parametr, který není upravitelný uživatelem?

    Potřebujeme například nastavit parametr dotazu „Infobase“

    • Ve formuláři rozvržení rozvržení zrušte na kartě Parametry zaškrtnutí u požadovaného parametru u příznaků „Zahrnout do dostupných polí“ a „Omezit přístupnost“.
    • Ve formuláři rozvržení rozvržení na kartě Nastavení na podzáložce (dole) Parametry zrušte zaškrtnutí požadovaného parametru, otevřete vlastnosti (tlačítko klíčem), na tomto formuláři:
      • Zrušte zaškrtnutí políčka „Zahrnout do uživatelského nastavení“
      • Režim úprav nastaven na „Nepřístupný“


    • V modulu formuláře sestavy v obslužné rutině události "On VariantLoadOnServer" (můžete také OnOpen, ale NE OnCreateOnServer, protože se provádí PŘED načtením nastavení sestavy a nastavení se přepíše) programově nastavte parametr:

    &Procedura na serveru při načítáníVariantOnServer(Nastavení)

    //Nastavení parametru Settings = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase); EndProcedure

    Jak nastavit možnosti přehledu?

    • Ve formuláři rozložení rozložení na kartě Nastavení v poli vlevo můžete vytvořit potřebné možnosti sestavy

    Jak nastavit seskupení?

    • Ve formuláři rozložení rozložení na kartě Nastavení v poli vpravo nahoře můžete vytvořit potřebná seskupení

    Jak programově zobrazit sestavu?

    V modulu formuláře:

    &Na klientské proceduře GenerateReportExecute()

    ThisForm.ComposeResult();

    EndProcedure

    Jak otestovat zprávu?

    Musíte udělat:

    • Vytvoření situace v klientském testu je nejpohodlnější prostřednictvím situační tabulky
    • získat formulář zprávy - formulář = GetForm("Report.ProcessMovement.Form.ReportForm");
    • načtěte požadovanou variantu sestavy - nastavte parametr rozšíření formuláře sestavy "VariantKey" (název nastavení v rozložení kompozice dat)
    • načíst požadovaná nastavení sestav - ? vyplnění parametru rozšíření formuláře sestavy "UserSettings" (typ "DataCompositionUserSettings") tak nevyšlo, vše je složité, viz níže.
    • otevřený formulář - form.Open()
    • provést formaci - form.ComposeResult();
    • zkontrolujte obsah formuláře tabulkového dokumentu. Výsledek - bylo by hezké mít porovnávací funkce s odkazem mxl
    • zavřít formulář - formulář.Zavřít(); - nebo možná nemůžete otevřít, musíte zkontrolovat

    viz také

    • popis: Nabídka Nápověda/Asistent syntaxe/karta Obsah/Spravované objekty aplikačního rozhraní/Spravovaná rozšíření formuláře/Rozšíření spravovaného formuláře pro sestavu/Možnosti formuláře

    Jak načíst požadovaná nastavení přehledu?

    Dokumentace popisuje, že existuje takový parametr rozšíření formuláře sestavy "UserSettings" typu "UserDataCompositionSettings", ale je zde velmi složitá struktura objektů, nebylo možné jej použít.

    Opravdu funkční schéma:

    1. Vytvořte parametry v sestavě

    • Typ období StandardPeriod
    • Výběr typu ValueList (lepší by bylo Struktura, ale ta není v seznamu typů parametrů, stejně jako libovolný typ)

    2. Předejte požadované parametry proceduře GetForm:

    období = New StandardPeriod; period.Variant = VariantStandardPeriod.CustomPeriod; period.StartDate = aktuální datum; period.EndDate = zítraDatum;

    výběr = Nový seznam hodnot; selection.Add(Testing.GetObject(stSituation, "BP1"), "BusinessProcess");

    stParameters = New Structure("OptionKey,Period,Filter", "Main", period, filter); // OpenFormModally("Report.ProcessMovement.Form.ReportForm", stParameters); form = GetForm("Report.ProcessMovement.Form.ReportForm", stParameters);

    3. Nastavte parametry v obslužných rutinách událostí formuláře

    &AtServer Funkce cGet(cList, View) Exportovat pro každou položku z ListList Smyčka If item.View = view Then Return item.Value; EndIf; EndCycle; Návrat Nedefinováno; EndFunctions

    &OnServer Procedura SetUserSettingValue(Settings, Name, Value) For Every Element From Setting.Elements Loop If ValueType(element) = Type("DataCompositionSettingsParameterValue") Then If String(element.Parameter) = Name Then element.Value = Hodnota; element.Use = true; EndIf; EndIf; EndCycle; EndProcedure

    &Procedura na Serveru SetCustomFilterValue(Settings, Name, Value) For Every Element From Settings.Elements Loop If ValueType(element) = Type("DataComposition Selection") Then For Each Element.Elements selection From Elements Loop If String(selection.LeftValue) = Název Poté výběr .RightValue = Hodnota; výběr.Použít = true; EndIf; EndCycle; EndIf; EndCycle; EndProcedure

    &Procedura na serveru při načítáníVariantOnServer(Nastavení)

    CurrentVariantName = CurrentVariantRepresentation;

    Nastavení = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    EndProcedure

    &AtServer Postup WhenLoadingCustomSettingsAtServer(Settings) Settings = Report.SettingsComposer.UserSettings;

    <>"00010101" Then Settings = Report.SettingsComposer.UserSettings; SetUserSettingValue(Nastavení, "Období", Parametry.Období); EndIf;

    ssBusinessProcess = spGet(Parameters.Filter, "BusinessProcess"); Pokud ssBusinessProcess<>Undefined Then SetCustomFilterValue(Settings, "BusinessProcess", sBusinessProcess); EndIf;

    EndProcedure

    Poznámky:

    • Existují Data Parameters, tedy to, co je nastaveno v parametrech dotazu ACS
    • Některé z nich jsou přiřazeny v nastavení varianty v UserSettings (ve vlastnostech parametru je příznak "Zahrnout do uživatelského nastavení"
    • I když se při načítání na server načtou potřebné hodnoty do parametrů dat, otevře se formulář, do kterého se automaticky načtou naposledy uložené nastavení. Tato nastavení „přepisují“ nastavení dat při generování sestavy
    • V obslužné rutině OnLoadingUserSettingsOnServer je předaný objekt Settings kopírovat skutečné nastavení, takže pro změnu nastavení, které se objeví na formuláři, je potřeba vyplnit objekt Report.SettingsComposer.UserSettings

    Jak vytvořit více (seznam) parametrů dotazu v SKD?

    Dotaz musí používat výraz "V (&ParameterName)"(viz booleovské výrazy v dotazovacím jazyce 1Cv8)

    V konfiguraci rozložení schématu ACS na záložce "Parametry" pro tento parametr zaškrtněte políčko "Dostupný seznam hodnot". V tomto případě ACS při výběru parametru zobrazí formulář pro úpravu seznamu, do kterého můžete přidat libovolnou hodnotu parametru.

    Jak udělat zakázané parametry dotazu v SKD?

    V dotazu SKD musíte použít konstrukce ohraničené složenými závorkami "{}" .

    Pokud není ve formuláři sestavy (panel rychlého nastavení) zaškrtnut odpovídající parametr, bude tato konstrukce z požadavku odstraněna.

    Další podrobnosti viz Rozšíření dotazovacího jazyka pro systém skládání dat (1Cv8)

    Jak vytvořit sestavu s rozložením podle sloupců?

    K tomu je potřeba v nastavení variant sestavy (úprava rozložení dat, záložka "Nastavení", pole vpravo nahoře) přidat "Tabulku" jako první seskupení.

    Poté se v uzlu "Tabulka" objeví větve "Řádky" a "Sloupce", kam jsou přidána potřebná seskupení.

    Jak přizpůsobit výstupní formát polí?

    V Editoru rozvržení složení dat je na kartě Soubory dat v pravé horní oblasti seznam polí sestavy.

    Jsou dvě možnosti:

    1. Nastavte hodnotu sloupce "View Expression"
      • zde můžete zadat jazykový výraz, který vytvoří požadovaný řetězec
      • nefunguje s poli zdrojů
    2. Nastavte hodnotu sloupce "Design".
      • v návrhu je vlastnost "Formát" - tato hodnota je podobná parametru jazykové funkce "Formát", můžete nastavit požadovaný vzhled
      • konverze typu se zde neprovádí

    Pro pole zdrojů můžete nastavit výrazy výpočtu (záložka "Zdroje") - např.

    Částka (čas)/3600,0

    převést z sekund na hodiny.

    Požadovanou přesnost lze nastavit v poli "Návrh" na záložce "Soubory dat".

    Vlastnosti nastavení parametrů systému skládání dat

    Existují alespoň TŘI typy parametrů a vyžadují různé zpracování:

    ParametryData

    Datové parametry jsou definovány v dotazu (zdroji dat) ACS.

    Parametry dat jsou předány dotazu zdroje dat a určují data, která mají být načtena.

    Objekt SettingsComposer má speciální vlastnost pro práci s datovými parametry SettingsComposer.Settings.ParametersData

    Lze nastavit voláním pohledu

    Nastavení = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    Výběr

    Výběry se překrývají na přijatá data po extrakci ze zdroje dat.

    Objekt SettingsComposer má speciální vlastnost pro práci s výběry ComposerSettings.Settings.Selection.

    Například: Nastavení = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    Pro každý prvek From Parameters.Filter LoopFilterElement = Settings.Filter.Elements.Add(Type("DataCompositionFilterItem")); Selection Element.ComparisonType = DataCompositionComparisonType.Equal; SelectionItem.LeftValue = New DataCompositionField(element.View); FilterElement.RightValue = element.Value; EndCycle;

    Vlastní nastavení

    Předvolby uživatele definují data, která si může uživatel ve formuláři přizpůsobit.

    Uživatelská nastavení lze zobrazit na formuláři ve speciální tabulce a lze je vyvolat tlačítkem „Nastavení“ a z nabídky „Všechny akce“.

    Uživatelské nastavení připojeno s datovými parametry a výběry nějakým dosti komplikovaným způsobem lze toto spojení nakonfigurovat vizuálně, ale programově je práce s nimi jaksi velmi nepohodlná.

    Zatím nebylo nalezeno nic lepšího, jak nastavit hodnoty existující kolekce podle indexu, která se sama o sobě může přesunout při změně rozvržení ACS ve vizuálním editoru.

    Pokud je navíc některý datový parametr deklarován jako uživatelsky definovaný, pak programové nastavení parametru data (viz výše) nestačí, obnovená hodnota uživatelského nastavení přepíše nastavení datového parametru. Proto pro takové parametry nemá smysl nastavovat datový parametr musí být nainstalována okamžitě vlastní nastavení.

    Vhodným místem pro nastavení požadovaných hodnot je obslužná rutina události „OnLoadingUserSettingsOnServer“ rozšíření formuláře sestavy.

    &Procedura na serveru při načítáníUserSettingsOnServer(Settings)

    Pokud Parameters.Period.EndDate<>"00010101" Then Settings = Report.SettingsComposer.UserSettings; Settings.Items.Value = Parameters.Period; EndIf;

    EndProcedure

    Použití zdroje dat jako objektu

    Chcete-li použít datovou množinu objektu typu, musíte předat externí zdroj dat metodě Initialize objektu Data Composition Processor.

    DecryptData = nedefinováno;

    Layout Layout Builder = Nový Data Layout Layout Builder; LayoutLayout = LayoutComposer.Run(DataCompositionScheme, SettingsComposer.Settings, DecodeData);

    CompositionProcessor = NewDataCompositionProcessor; Layout Processor.Initialize(LayoutLayout, New Structure("Data", GetExternalSourceData()), DecodeData);

    Je připojen jednoduchý příklad (aby příklad fungoval, musí být přítomny referenční knihy „Protistrany“ a „Dohody protistran“).

    Dobrý den, milý čtenáři! Máme tu další lekci o základech systému rozložení. V něm jste se seznámili s funkcemi vyjadřovacího jazyka SKD, viděli vlastnosti systému rozložení a také jste přišli na základní nastavení polí rozložení. A nyní zvážíme nový materiál. Jít!

    Další nastavení pro pole ACS.

    Sloupec "typ hodnoty" umožňuje určit typ dat pro pole rozložení. Proč specifikovat typ např. do pole „Nomenklatura“, když už víte, o jaký typ se jedná? To je nutné, pokud je pole rozvržení složeného typu. Můžete vybrat konkrétní typ, pak při filtrování podle tohoto pole budou vybrány hodnoty tohoto typu.

    Sloupec "Dostupné hodnoty" umožňuje zadat hodnoty dostupné pro výběr a omezit volbu uživatele na určité limity.

    Sloupec "Výzdoba" umožňuje nastavit vzhled pole rozvržení bez použití rozvržení. Můžete určit barvu písma, barvu rámečku, orientaci textu a tak dále.

    Sloupec "Možnosti úprav" umožňuje určit, jak upravit pole rozvržení. Můžete například určit rychlý výběr položek ze seznamu ve výběru. Ve výchozím nastavení pole rozvržení zdědí všechny možnosti úprav z objektu metadat.

    Vypočítaná pole

    Na kartě Vypočítaná pole v kompozici dat můžete vytvořit vlastní vypočítaná pole.

    Proč potřebujeme vypočítaná pole, když je můžeme vytvořit na úrovni dotazu? Ne všechna pole lze popsat dotazem. Pokud potřebujete sestavit složité pole z různých datových sad, například typ dotazu a objektu, pak jsou vypočítaná pole nepostradatelná. Pokud je zdrojem dat dotaz a automatické doplňování, nemůžete přidat pole kompozice dat, ale pomocí vypočítaných polí můžete přidat libovolný počet polí.

    Do sloupce počítaného pole "Výraz" je třeba napsat libovolný výraz, který používá pole kompozice dat s odkazem na jejich cestu (sloupec "Cesta" na kartě "Soubory dat"). Buď můžete použít matematické transformační funkce, nebo se můžete odkázat na funkce obecných modulů. Zapišme si například do sloupce „Cesta k datům“ název počítaného pole „Odchylka“ a do pole „Výraz“ následující.