1s SKD redigeringsparametrar valformulär. Funktioner för att skapa rapporter (1Cv8). Hur man lägger till en redigerbar parameter som inte är redigerbar

Funktioner för att skapa rapporter i 1C v8 i tjockt klientläge

Hur väljer man ett alternativ?

  • Placera knappen "Välj alternativ" på rapportpanelen
  • Placera fältet "OnDate" på formuläret.

Exempelkod: ProcedureFormActionSelectOption(Button) layout = GetLayout("MainDataLayoutScheme"); spOptions = Ny värdelista; För varje alternativ från layout.OptionsSettings Loop spOptions.Add(option.Settings, option.View); EndCycle;

urval = cnOptions.SelectItem(); Om val = Odefinierat Returnera sedan; endIf;

SettingsComposer.LoadSettings(selection.Value);

Generera(); Slut på procedur

Procedur OnDateOnChange(Element) Generate(); Slut på procedur

Procedur Generate()FormElements.Result.Clear(); Settings Composer.Settings.DataParameters.SetParameterValue("Period", ToDate); ComposeResult(FormElements.Result); Slut på procedur

Procedur vid öppning() OnDate = CurrentDate(); Generera(); Slut på procedur

Funktioner för att skapa rapporter via passersystem

Skapa rapport steg för steg

  1. Skapa en rapport i noden Rapporter
  2. Skapa en layout i en rapport vars typ är Data Layout Scheme
  3. I rapportegenskaperna, ställ in: Grundläggande datalayoutschema = Skapad layout
  4. I rapportegenskaperna ställer du in vilket delsystem den tillhör (rapporten i Enterprise kommer att visas i den övre navigeringspanelen)
  5. Skapa en fråga i Layout (objekt: Lägg till datamängd - Fråga)
  6. På fliken Alternativ för Layout måste du avmarkera alla rader i kolumnen Tillgänglighetsbegränsning - d.v.s. alla parametrar kommer att vara tillgängliga för redigering av användaren
  7. På fliken Inställningar i layouten, i fönstret där rapportnoden visas, måste du skapa en ny gruppering utan att ange grupperingsfältet - en detaljerad rad kommer att skapas
  8. På fliken Inställningar i Layout, i fönstret där ytterligare en uppsättning bokmärken visas, välj ytterligare. Fliken Parametrar - markera alla parametrar med en bock och på varje parameter klicka på Egenskaper-elementet för användarinställningselementet, fönstret för parameterinställningar öppnas, där du måste markera rutan - Inkludera parameter i användarinställningar
  9. På fliken Inställningar i Layout, i fönstret där ytterligare en uppsättning bokmärken visas, välj ytterligare. Fliken SelectedFields - där måste du lägga till kolumner som kommer att visas i rapporten
  10. Starta Enterprise, öppna rapporten, ställ in parametervärden, Generera (kontrollera att alternativet Generering av huvudrapport är valt)

Hur lägger man till en redigerbar parameter som inte är redigerbar?

Till exempel måste vi ställa in frågeparametern "Infobase"

  • I layoutlayoutformuläret, på fliken Alternativ, avmarkera kryssrutorna "Inkludera i tillgängliga fält" och "Begränsa tillgänglighet" för den önskade parametern.
  • I layoutlayoutformuläret, på fliken Inställningar, på underfliken Parametrar (längst ned), avmarkera önskad parameter, öppna egenskaper (knapp med skiftnyckel), på detta formulär:
    • Avmarkera flaggan "Inkludera i användarinställningar".
    • Ställ in redigeringsläget på "Ej tillgänglig"


  • I rapportformulärmodulen i händelsehanteraren "När man laddar ett alternativ på servern" (du kan även när man öppnar, men INTE när man skapar på servern, eftersom det körs INNAN man laddar rapportinställningarna och inställningarna kommer att skrivas över) programmässigt ställa in parameter:

&På servern Procedur när du laddar tillvalet på servern (inställningar)

//Ställa in parametern Settings = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase); Slut på procedur

Hur ställer man in rapportalternativ?

  • I layoutlayoutformuläret på fliken Inställningar i fältet till vänster kan du skapa de nödvändiga rapportalternativen

Hur ställer man in grupperingar?

  • I layoutlayoutformuläret på fliken Inställningar i fältet uppe till höger kan du skapa nödvändiga grupperingar

Hur visar jag en rapport programmatiskt?

I formulärmodulen:

&Om klientproceduren GenerateReportExecute()

ThisForm.ComposeResult();

Slut på procedur

Hur testar man en rapport?

Du måste göra:

  • Det enklaste sättet att skapa en situation i ett klienttest är genom en situationstabell
  • hämta rapportformuläret - form = GetForm("Report.Process Movement.Form.ReportForm");
  • ladda önskad rapportvariant - ställ in rapportformulärtilläggsparametern "Variantnyckel" (namnet på inställningen i datasammansättningslayouten)
  • ladda de nödvändiga rapportinställningarna - ? att fylla i "UserSettings" rapportformulärtilläggsparametern (typ "UserDataCompositionSettings") fungerade inte, allt är komplicerat, se nedan.
  • öppen form - form.Open()
  • utföra formation - form.ArrangeResult();
  • kontrollera innehållet i kalkylbladets dokumentformulär Resultat - det skulle vara trevligt med jämförelsefunktioner med referensen mxl
  • stäng formulär - form.Close(); - eller så kanske du inte behöver öppna den, du måste kolla

se även

  • Beskrivning: Hjälpmeny/Syntaxassistent/Innehållsfliken/Hanterade applikationsgränssnittsobjekt/Hanterade formulärtillägg/Hanterat formulärtillägg för rapport-/formuläralternativ

Hur laddar man de nödvändiga rapportinställningarna?

Dokumentationen beskriver att det finns en sådan parameter för att utöka rapportformuläret "UserSettings" av typen "UserDataCompositionSettings", men det finns en mycket komplex objektstruktur, den gick inte att använda.

Verkligen fungerande schema:

1. Skapa parametrar i rapporten

  • Periodtyp StandardPeriod
  • Val av ValueList-typen (Struktur skulle vara bättre, men den finns inte i listan över parametertyper, liksom en godtycklig typ)

2. Vi skickar de nödvändiga parametrarna till GetForm-proceduren:

period = NewStandardPeriod; period.Option = StandardPeriodOption.CustomPeriod; period.StartDate = currentDate; period.EndDate = morningDate;

urval = Ny värdelista; selection.Add(Testing.GetObject(stSituation, "BP1"), "BusinessProcess");

stParameters = New Structure("Variantnyckel, Period, Urval", "Huvud", period, urval); // OpenFormModal("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm("Report.Process Movement.Form.ReportForm", stParameters);

3. Ställ in parametrarna i formulärhändelsehanterarna

&OnServer Funktion spGet(spList, view) Exportera för varje element Från spList Loop If element.View = view Returnera sedan element.Value; endIf; EndCycle; Returnera odefinierat; EndFunction

&På serverproceduren SetCustomSettingsValue(Settings, Name, Value) för varje element från Settings.Elements Loop If TypeValue(element) = Type("DataCompositionSettingsParameterValue") Then If String(element.Parameter) = Name Then element.Value = Value; element.Use = Sant; endIf; endIf; EndCycle; Slut på procedur

&På servern Procedur SetCustomSelectionValue(Settings, Name, Value) För varje element Från Settings.Elements Loop If TypeValue(element) = Type("DataComposition Selection") Sedan För varje val From element.Elements Loop If Row(selection.LeftValue) = Namn Sedan urval .RightValue = Värde; selection.Use = True; endIf; EndCycle; endIf; EndCycle; Slut på procedur

&På servern Procedur när du laddar tillvalet på servern (inställningar)

Name of the CurrentVariant = Vy över CurrentVariant;

Inställningar = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Slut på procedur

&OnServer-procedur vid laddning av UserSettingsOnServer(Settings) Settings = Report.Settings Linker.UserSettings;

<>"00010101" Då Settings = Report.Settings Composer.UserSettings; SetCustomSettingValue(Settings, "Period", Parameters.Period); endIf;

ssBusinessProcess = spGet(Parameters.Selection, "BusinessProcess"); Om ssBusinessProcess<>Undefined Then SetCustomSelectionValue(Settings, "BusinessProcess", ssBusinessProcess); endIf;

Slut på procedur

Anmärkningar:

  • Det finns dataparametrar, det vill säga vad som ställs in i ACS-begäransparametrarna
  • Några av dem är tilldelade i alternativinställningarna i UserSettings (i parameteregenskaperna finns en flagga "Inkludera i användarinställningar"
  • Även om du, när du laddar på servern, laddar in de nödvändiga värdena i dataparametrarna, öppnas ett formulär där inställningarna som sparades senast laddas automatiskt. Dessa inställningar "avbryter" datainställningarna när en rapport genereras
  • I WhenLoadingUserSettingsOnServer-hanteraren är det godkända Settings-objektet en kopia verkliga inställningar, därför, för att ändra inställningarna som visas i formuläret, måste du fylla i objektet Report.Settings Composer.UserSettings

Hur gör man flera frågeparametrar (lista) i ACS?

Frågan måste använda uttrycket "I (&Parameternamn)"(se booleska uttryck i frågespråket 1Cv8)

När du ställer in layouten för ACS-diagrammet på fliken "Parametrar", för denna parameter måste du markera rutan i kolumnen "Lista över tillgängliga värden". I det här fallet, när du väljer en parameter, visar ACS ett listredigeringsformulär där du kan lägga till valfritt parametervärde.

Hur gör man inaktivera frågeparametrar i åtkomstkontrollsystemet?

I SKD-frågan måste du använda konstruktioner omgivna av hängslen "{}" .

Om kryssrutan för motsvarande parameter är avmarkerad i rapportformuläret (panelen för snabbinställningar), tas denna konstruktion bort från begäran.

Se mer information. Query Language Extension for Data Composition System (1Cv8)

Hur gör man en rapport med kolumnuppslag?

För att göra detta måste du lägga till "Tabell" som den första grupperingen när du ställer in rapportalternativet (redigera layouten för datalayouten, fliken "Inställningar", fältet uppe till höger).

Efter detta visas grenarna "Rader" och "Kolumner" i noden "Tabell", där de nödvändiga grupperingarna läggs till.

Hur konfigurerar man fältutdataformatet?

I layoutredigeraren för datasammansättning, på fliken "Datauppsättningar" i det övre högra området finns en lista med rapportfält.

Det finns två möjligheter:

  1. Ställ in värdet för kolumnen "Visa uttryck".
    • här kan du ange ett språkuttryck som producerar önskad sträng
    • det fungerar inte med resursfält
  2. Ställ in värdet för kolumnen "Design".
    • i designen finns en "Format" -egenskap - detta värde liknar parametern för språkfunktionen "Format", du kan ställa in önskat utseende
    • typkonvertering är inte möjlig här

För resursfält kan du ange beräkningsuttryck (fliken "Resurser") - t.ex.

Belopp(Tid)/3600,0

att konvertera från sekunder till timmar.

Den erforderliga precisionen kan ställas in i fältet "Design" på fliken "Datauppsättningar".

Funktioner för att ställa in parametrar för datasammansättningssystemet

Det finns minst TRE typer av parametrar och kräver olika bearbetning:

Dataalternativ

Dataparametrar definieras i begäran (datakälla) för åtkomstkontrollsystemet.

Dataparametrar skickas till datakällans begäran och definierar data som ska hämtas.

Objektet Settings Composer har en speciell egenskap för att arbeta med dataparametrar Inställningar Composer.Settings.Data Options

Du kan ställa in det med ett samtal som

Inställningar = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

Urval

Val överlagras på mottagen data efter extrakt från datakällan.

Objektet Settings Composer har en speciell egenskap för att arbeta med markeringar ComposerSettings.Settings.Selection.

Till exempel: Inställningar = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

För varje element Från Parameters.Selection Cycle Selection Element = Settings.Selection.Elements.Add(Type("Data Composition Selection Element")); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.LeftValue = NewDataCompositionField(element.View); SelectionElement.RightValue = element.Value; EndCycle;

Anpassade inställningar

Användarinställningar definierar data som en användare kan anpassa på ett formulär.

Användarinställningar kan visas på formuläret i en speciell tabell och kan tas fram genom att klicka på knappen "Inställningar" och från menyn "Alla åtgärder".

Anpassade inställningar ansluten med dataparametrar och val på något ganska komplicerat sätt kan denna anslutning konfigureras visuellt, men att arbeta med dem programmatiskt är på något sätt väldigt obekvämt.

Hittills har vi inte hittat något bättre än att sätta värdena för en befintlig samling efter index, vilket naturligtvis kan försvinna när man ändrar ACS-layouten i den visuella editorn.

Dessutom, om någon dataparameter förklaras användardefinierad, räcker det inte med programmatisk inställning av dataparametern (se ovan), utan det återställda värdet för användarinställningen åsidosätter inställningen av dataparametern. För sådana parametrar är det därför ingen mening att ställa in dataparameter, måste installeras omedelbart anpassad inställning.

En bekväm plats för att ställa in de nödvändiga värdena är händelsehanteraren "When LoadingUserSettingsOnServer" för rapportformulärtillägget.

&Om servern Procedur vid inläsning av användarinställningar på servern (inställningar)

Om Parametrar.Period.Slutdatum<>"00010101" Då Settings = Report.Settings Composer.UserSettings; Settings.Elements.Value = Alternativ.Period; endIf;

Slut på procedur

Använda en datakälla som ett objekt

För att använda en datamängd av typen objekt måste du skicka den externa datakällan till Initialize-metoden för Data Composition Processor-objektet.

DecryptionData = odefinierad;

LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLinker.Execute(DataCompositionScheme, SettingsLinker.Settings, DecryptionData);

CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout, New Structure("Data", GetDataExternalSource()), DecryptionData);

Ett enkelt exempel bifogas (för att exemplet ska fungera måste du ha katalogerna "Motparter" och "Motpartsavtal").

I frågedesignern, när den anropas från datakällans inställningsformulär, för datakompositionsschemat. Det finns en "egenskaper"-flik, vars användning inte beskrivs tydligt i dokumentationen. I den här artikeln ska jag försöka förklara hur och varför egenskaper används i ACS.

I frågedesignern, när den anropas från datakällans inställningsformulär, för datakompositionsschemat. Det finns en "egenskaper"-flik, vars användning inte beskrivs tydligt i dokumentationen. I den här artikeln ska jag försöka förklara hur och varför egenskaper används i ACS. Typiska konfigurationer använder aktivt mekanismen för egenskaper och egenskapsvärden, tillgängliga för nästan alla objekt. Primitivt, i referensböcker, implementerades denna mekanism i konfigurationer 7.7. Nu implementeras denna mekanism med hjälp av en plan över egenskaperstyper och ett informationsregister, men idén förblir densamma. När jag först stötte på behovet av att använda den här mekanismen i ett åtkomstkontrollschema, kämpade jag mycket länge, organiserade kapslade frågor, förenade dem med huvudvalet och funderade över hur jag skulle ta hänsyn till möjligheten av uppkomsten av nya typer av fastigheter som inte fanns vid rapportframtagandet. Hela mekanismen för egenskaper, som är enkel och logisk ur användarens synvinkel, lämpade sig inte för någon normal bearbetning förrän jag kom på fliken "Egenskaper". Tabellen på fliken är väldigt nyckfull, antingen anger du hela raden korrekt eller vägrar att gå in i raden alls; systemet kommer inte att tillåta dig att lämna en ofullständigt ifylld rad "för senare." Så låt oss gå ner till detaljerna. Första kolumnen: Typ – här väljer vi vilken typ av objekt som egenskaperna ska kopplas till, till exempel “DirectoryLink.Nomenclature” Detta innebär att det nu för alla objekt av den angivna typen kommer att vara möjligt att få egenskapsvärden. Därefter, i nästa kolumn Källa för vyer, måste vi ställa in parametrarna för källan för egendomsvyer. Tabell- och frågealternativen är möjliga; Jag ska berätta varför frågealternativet behövs senare, låt oss nu välja tabellobjektet. I kolumnen Typer av egenskaper måste vi välja infobastabellen i vilken de nödvändiga typerna av egenskaper lagras, i vårt exempel kommer det att vara "Plan över typer av egenskaper. Objekts egenskaper". Vidare beror de värden som är tillgängliga för oss för val i kolumnerna Nyckelfält, Namnfält och Värdetypfält direkt på fälten i tabellen vi har valt. I nyckelfältet väljer vi Länk, i Namnfältet – Visa (detta är vad användaren kommer att se som namnet på attributet), respektive i Typfältet ValueType. Låt oss nu gå vidare till källan till värden. Vår värdekälla kommer att vara informationsregistret "ObjectPropertyValues", så vi väljer tabell i kolumnen Source of Values ​​och "InformationRegister.ObjectPropertyValues" i kolumnen Characteristic Values. I kolumnerna Objekt, Egenskap, Värde väljer du motsvarande fält i registret Objekt, Egenskap, Värde. Det verkar som att det är allt. Vi går till schemainställningarna, lägger till en gruppering efter produkter och lägger till en underordnad gruppering, till exempel efter varumärken, vi har en sådan egenskap. Vi utökar listan med detaljer i nomenklaturgrupperingen och... vi ser inga egenskaper där: Faktum är att vi är i konfiguratorn, varifrån det inte finns tillgång till data. Hur gör man de nödvändiga inställningarna? Det bekvämaste sättet att göra detta är att använda datakompositionskonsolen, den på ITS-disken eller den som ingår i undersystemet "Utvecklarverktyg". Men du kan helt enkelt öppna rapportinställningarna i företagsläge. Så låt oss öppna samma inställning, men i företagsläge: Som du kan se har vi lagt till nya "Detaljer" och...

Fråga: SKD, Hur kan jag öppna det nödvändiga urvalsformuläret för en parameter?


God eftermiddag Det finns en rapport om åtkomstkontrollsystemet, den innehåller parametern Brand - typ Directory.Nomenclature. Hur kan jag anropa ett specifikt urvalsformulär för denna parameter? Jag försökte i SKD på fliken "Parameters", välj önskad parameter - dubbelklicka på kolumnen "Redigeringsalternativ" - kryssa i kryssrutan "Selection Form" och ange värdet Directory.Nomenclature.Form.SelectionFormRequired. När du kör en rapport används fortfarande urvalsformuläret som standard och inte det som anges i "Urvalsformuläret". UT-konfiguration, vanliga former. Säg mig, snälla, var, vad är fel?

Svar: Nyckelfras Vanliga formulär, byt till hanterade

Fråga: Välj ett värde i urvalsformuläret


God eftermiddag

Regelbunden tillämpning.

Det finns ett dokument. Den har flera detaljer om en referenstyp, till exempel "DirectoryLink.Banks", med värdet "Bank1".

Det är nödvändigt i formuläret för att välja katalogen "Banker", programmatiskt VÄLJ elementet "Bank1", d.v.s. typ välj om detta värde "Bank1".

Hittills har jag gjort följande:
Procedur Execute SelectionInSelectionForm(Link)
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Link); //Jag får ett formulär för att välja bankkatalogen med den godkända parametern Link
//ställ in urvalet i detta urvalsformulär, enligt min länk i detaljerna
DirectorySelectionForm.Selection.Link.Use = Sant;
DirectorySelectionForm.Selection.Link.Value = länk;
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = Falskt;
DirectorySelectionForm.Open();
//här är koden som simulerar att klicka på knappen Välj, hur????
Slut på procedur

Hjälp om någon har stött på detta eller har några idéer.

Tack.

Svar:

Jag gjorde så här:

Procedur ExecuteSelectionInSelectionForm(Link, rec) //parametern "länk" är en värdelänk i dokumentformuläret; "rek" - det aktuella formelementet, dvs. urvalsfält
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Rec,Link);
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = Falskt;
OpenForm(DirectorySelectionForm, floder,);

Om Directory Selection Form.Open() Då
DirectorySelectionForm.Activate();
endIf;

DirectorySelectionForm.CurrentElement.CurrentRow = länk;
SelectionEl = DirectorySelectionForm.CurrentElement.CurrentRow;

Om SelectEl = odefinierat eller INTE värde ifyllt (SelectEl) då
Report("Värdet "+Link+" hittades inte i katalogvalsformuläret");
annat
DirectorySelectionForm.NotifyOfSelection(SelectEl);
endIf;

Slut på procedur

Fråga: "Välj"-knappen i urvalsformuläret eller hur man klickar på "Välj"-knappen


God eftermiddag

Regelbunden tillämpning.

Vad har du för tankar om att klicka på knappen "Välj" i formuläret för val av dokument/katalog?

Att klicka med musen och COM erbjuder ingen automatisering.

önskelista: i urvalsformuläret, simulera att trycka på knappen "Välj".

Svar: Det verkar som att jag löste problemet...ett par körningar av testet.

Tillagd efter 17 minuter
Än så länge fungerar det så här:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Procedur Utför SelectionInSelectionForm(länk, rec) //parameter "länk" är en värdelänk på dokumentformuläret; "rek" - det aktuella formelementet, dvs. urvalsfält DirectorySelectionForm = Kataloger. Banker. GetFormSelection(, Rec, Link) ; Katalogvalsformulär. Formelement. Kataloglista. HierarchicalView = False ; OpenForm(DirectorySelectionForm, rivers, ) ; Om katalogvalsformulär. Öppna() Sedan DirectorySelectionForm. Aktivera() ; EndIf ; Katalogvalsformulär. CurrentItem. CurrentRow = länk ; SelectionEl = DirectorySelectionForm. CurrentItem. CurrentRow ; om SelectEl = odefinierat eller INTE värde ifyllt (SelectEl) då Report("Värde" + Länk + "hittades inte i katalogvalsformuläret"); annars, DirectorySelectionForm. Meddela om val(ChoiceEl); EndIf ; Slut på procedur

Fråga: Varför väljs inte värdet längre från urvalsformuläret?


Det finns ett fält på dokumentformuläret av referenstypen DocumentLink.PaymentOrderOutgoing. När det är valt öppnas ett formulär för att välja en utgående betalningsorder. När ett värde väl har valts infogas det inte i formuläret som valt. Först trodde jag att urvalsbearbetningen var standardbearbetning och programmeraren glömde att registrera urvalsbearbetningen. Men allt är typiskt där. Öppna formuläret inte programmatiskt, i fältet där jag väljer att inte genomföra några evenemang. Vad kunde det vara?
--- Meddelande sammanslagning, 2 januari 2018 ---

En annan ansökan baserad på vanliga formulär. Urvalsformuläret är hanterbart och öppnas från ett vanligt fönster. Om du byter tillbaka till den normala urvalsformen är allt ok.

Svar:

I allmänhet kom jag på det. Det är användbart att se vad som kommer in i SelectedValue i urvalsbearbetningen. Det visade sig vara en array. När jag gick in i urvalsformuläret visade det sig att det fanns en kryssruta för flerval. Jag tog av den och allt fungerade.

Fråga: Hjälp mig att ställa in valet i katalogvalsformuläret


När jag väljer en motpart överför jag programmässigt de första tecknen i namnet till urvalsformuläret. Hur man programmässigt gör det första elementet vars första tecken matchar aktiveras.

Svar:

elektron sa:

När jag väljer en motpart överför jag programmässigt de första tecknen i namnet till urvalsformuläret. Hur man programmässigt gör det första elementet vars första tecken matchar aktiveras.

Klicka för att expandera...

Det är bestämt. Jag skapade ett virtuellt tangentbord i katalogvalsformuläret "Motparter".
När du trycker på valfri tangent utlöses koden
SearchResultByDetails = TechRef.FindByName(N, False);
Form Elements.DirectoryList.CurrentLine=SearchResultByAttributes;
där H är en variabel som innehåller nyckelns värde

Fråga: Välj formulär med urval för värdelista


God eftermiddag. Jag behöver din hjälp med att lösa ett enkelt problem.

Confa ZUP 2 .5 .113 .1 Det finns en extern rapport, rapporten har attributet "list of bases", typ värdelista.
Det finns en anmälningsblankett. På rapportformuläret, fältet "indatalista över baser", ValueType = "List of Values" och ListValue type = "DirectoryLink.ObjectPropertiesValue".

Hur öppnar man ett urvalsformulär med urval av ägaren av en fastighet?

Tack på förhand!

Svar: På fliken Alternativ finns en kolumn som heter Redigeringsalternativ. Där kan du försöka konfigurera urvalsparameteranslutningarna eller urvalsparametern

Fråga: Öppna dokumentvalsformuläret programmatiskt 1s 8.3


Hur man programmatiskt öppnar dokumentvalsformuläret 1s 8.3 och sparar det valda värdet till en variabel?

Google gav några krycklösningar, jag skulle vilja veta hur man gör det korrekt.

Svar:+ () PM har också en magisk metod - ladda ner.

Tabellsnitt
Ladda
Syntax:

Ladda ner(<Таблица>)
Alternativ:

<Таблица>(obligatoriskt) Typ: ValueTable.
En tabell med värden från vilken tabelldelen laddas. Tabellkolumner kombineras med namn.
Beskrivning:

Laddar tabelldelen från värdetabellen. I det här fallet raderas alla tidigare rader i tabelldelen. Vid laddning fylls värdena i kolumnerna i tabellsektionen med värden från kolumnerna i värdetabellen med matchande namn.

Tillgänglighet:

Server, tjock klient, extern anslutning.
Notera:

Metoden kan endast användas om tabelldelen erhålls från en objektegenskap. Om tabelldelen erhålls från en referens- (eller urvals-) egenskap, kommer användningen av denna metod att orsaka ett körtidsfel.
Exempel:

Composition.Load(CompositionTable);

Fråga: Skicka parametrar till urvalsformuläret.


Snälla hjälp mig.
Från dokumentet "Försäljning av varor och tjänster" kallas kontraktsvalsformuläret (ERP). Conf är redigerad, jag jämför den med standarden. I ProcessingCreationOnServer i urvalsformuläret tittar jag i felsökaren Parameters.Selection. Jag kan bara inte förstå hur urvalslistan bildas - det finns inget explicit anrop till detta formulär med parametrar, det finns bara ett urvalselement i egenskapen "SelectionParametersLink", och det finns redan flera i Parameters.Selection. Någon kanske kan berätta för mig var jag ska leta.

Uppmärksamhet! Detta är en introduktionsversion av lektionen, vars material kan vara ofullständigt.

Logga in på sidan som student

Logga in som elev för att få tillgång till skolmaterial

Datasammansättningssystem 1C 8.3 för nybörjare: sammankoppling av datamängder

  • Skriv en rapport som visar kunder och deras favoritprodukter. Varje kund har en favoritfärg, och varje produkt har sin egen färg - baserat på dessa färger måste du bestämma produktens "favorit". Till exempel, om Andreys favoritfärg är röd, kommer en av hans favoritmat att vara tomater (de är röda).
  • Använd två uppsättningar data i rapporten. Den första uppsättningen är data från katalogtabellen "Clients". Den andra är data från katalogtabellen "Mat".
  • Genomföra koppling mellan dessa två uppsättningar, så att rapporten endast innehåller favoritprodukterna för varje kund.

Skapa en ny rapport

Öppna "Gastronom"-databasen i konfiguratorn och skapa en ny rapport via huvudmenyn:

Dokumenttyp - "Extern rapport":

I form av en ny rapport, ange namnet "Lektion 6" och klicka på knappen "Öppna datasammansättningsdiagram":

Lämna standardschemanamnet:

Lägger till den första datamängden

I diagrammet som öppnas, gå till fliken "Datamängder" och välj "Lägg till datamängd - Fråga" med det gröna plustecknet:

Ring förfrågningskonstruktören:

Vi anger tabellen "Kunder" och de fält som måste hämtas från förfrågan:

Lägger till en andra datamängd

Lägg till en andra uppsättning data:

Välj det (DataSet2) och anrop frågekonstruktorn igen:

Vi anger tabellen i katalogen "Mat" och de fält som måste hämtas från förfrågan:

Den resulterande begärantexten var:

Observera att vi för närvarande har två datamängder i rapporten: Datauppsättning1 och Datauppsättning2. Var och en har sin egen begärantext och data.

Gör namn mer beskrivande

För tydlighetens skull, låt oss byta namn på DataSet1 till Customers och DataSet2 till Food.

Gör detta genom att dubbelklicka på var och en av uppsättningarna:

Vi kan använda data från varje uppsättning i vår rapport. Vi kommer åt dessa data via fält.

För närvarande har "Kunder"-uppsättningen följande fält: "Namn" och "Favoritfärg", och "Mat"-uppsättningen har: "Namn" och "Färg".

Vi ser att namnen överlappar varandra och vi kan lätt bli förvirrade. Så låt oss ändra fältnamnen så att de blir mer meningsfulla.

Välj uppsättningen "Kunder" och ändra fältnamnen så här:

Välj sedan uppsättningen "Mat" och ändra fältnamnen så här:

Anropar inställningskonstruktorn

Slutligen, gå till fliken "Inställningar" och klicka på trollstaven för att ta fram inställningsdesignern:

Rapporttyp - "Lista...":

Välj fält för rapporten från båda uppsättningarna:

Förstår du varför det var så viktigt att ändra fältnamnen? Vid inställningarna för datasammansättning ser vi inte vilka uppsättningar dessa fält kommer från. Vi ser bara deras namn.

Kontrollerar rapporten

Vi sparar rapporten och genererar den i användarläge:

Ja. Okej, men inte riktigt. En så kallad cross-join av två set har inträffat (du bör vara väl bekant med detta från de joins i frågor som vi studerat i tidigare moduler). Varje post från tabellen Kunder har en motsvarande post från tabellen Mat.

Men från alla dessa poster behöver vi bara lämna de vars fält "Customer's FavoriteColor" är lika med fältet "FoodColor":

Vi kopplar samman två datamängder

För att göra detta kommer vi att koppla två uppsättningar data (Kunder och Mat) med hjälp av fälten Kundens favoritfärg och Matfärg.

Gå till fliken "Datauppsättningslänkar" och klicka på plusknappen för att lägga till en ny länk:

Vi konfigurerar parametrarna som i figuren nedan:

Jag ska göra en förklaring.

Kommunikationskälla och mottagare. Nåväl, allt är klart här. Vi anger den första uppsättningen (kunder) och den andra uppsättningen (mat) med data. Jag vill särskilt uppmärksamma det faktum att kommunikationen kommer att ske enligt principen yttre vänstra sammanfogningen(vi täckte det i ämnet förfrågningar i tidigare moduler). Baserat på detta måste du välja vilken uppsättning som ska vara källan och vilken mottagare.

Uttryckskälla. Vi anger här ett uttryck eller helt enkelt ett fält från källdatauppsättningen (vi angav fältet ClientFavoriteColor från klientuppsättningen här).

Mottagarens uttryck. Vi indikerar här ett uttryck eller helt enkelt ett fält från mottagardatauppsättningen (vi angav ColorFood-fältet från matuppsättningen här).

Således kommer denna koppling att lämna från den föregående listan endast de rader för vilka Kundens Favoritfärg-fält är lika med FoodColor-fältet.

Låt oss spara rapporten och köra den i användarläge:

Bra!

Jag ska göra en förklaring om fältet " Kommunikationsvillkor", om vilka nybörjare programmerare så ofta slår sina spjut.

Anslutningsvillkoret är ett hjälpfält. Där kan du skriva uttryck involverar endast fält från datamängden som anges i länkkällan.

I det här fallet, för alla rader från länkkällan, kommer detta uttryck (länkvillkor) att kontrolleras innan länken skapas. Och om detta uttryck är SANT, kommer ett försök att göras att upprätta länkar mellan denna rad och rader från länkmottagaren. Om uttrycket är FALSK, kommer inga sådana försök att göras.

Hej kära läsare! Vi har ytterligare en lektion om grunderna i layoutsystemet. I bekantade du dig med funktionerna i uttrycksspråket SKD, såg funktionerna i layoutsystemet och förstod även de grundläggande inställningarna för layoutfälten. Nu ska vi titta på nytt material. Gå!

Ytterligare inställningar för ACS-fält.

Kolumn "Värde typ" Låter dig ange datatypen för layoutfältet. Varför ange typen, till exempel för fältet "Nomenklatur", om du redan vet vilken typ det är? Detta är nödvändigt om layoutfältet är av en sammansatt typ. Du kan välja en specifik typ, och när du väljer detta fält kommer värden av denna typ att väljas.

Kolumn "Tillgängliga värden" låter dig ange de värden som är tillgängliga för val och begränsa användarens val till vissa gränser.

Kolumn "Dekor" låter dig specificera utformningen av ett layoutfält utan att använda layouter. Du kan ange teckensnittsfärg, ramfärg, textorientering, etc.

Kolumn "Redigeringsalternativ" Låter dig ange hur layoutfältet ska redigeras. Du kan till exempel ange ett snabbt urval av element från en lista i ett urval. Som standard ärver ett layoutfält alla redigeringsalternativ från metadataobjektet.

Beräknade fält

På fliken "Beräknade fält" i datasammansättningen kan du skapa dina egna beräknade fält.

Varför behöver du beräknade fält när du kan skapa dem på frågenivå? Alla fält kan inte beskrivas med en fråga. Om du behöver skapa ett komplext fält från olika datamängder, till exempel en fråga och ett objekt, kan du inte klara dig utan beräknade fält. Du kan inte lägga till ett datasammansättningsfält om datakällan är en fråga och autofyll är aktiverat, men med hjälp av beräknade fält kan du lägga till så många fält du vill.

I kolumnen "Uttryck" i det beräknade fältet måste du skriva ett godtyckligt uttryck som använder datasammansättningsfälten och kommer åt deras sökväg (kolumnen "Sökväg" på fliken "Datauppsättningar"). Antingen kan du använda matematiska transformationsfunktioner eller komma åt funktionerna i vanliga moduler. Låt oss till exempel skriva namnet på det beräknade fältet "Avvikelse" i kolumnen "Datasökväg" och i fältet "Uttryck" följande.