Installera dynamiskt listval 1s 8.3 programmatiskt. Inställningsval i användarläge

För att öppna urvalsformuläret med urval i 1s 8.2(vanliga former), måste vi utföra några åtgärder. Vi får det först. Efter det ställer vi in ​​valet och öppnar det programmatiskt, här är ett kodexempel:

Urval på formuläret i inmatningsfältet 1C 8.2 med flera värden

I exemplet ovan tittade vi på hur man ställer in urval på urvalsformuläret Förbi specifik betydelse. Låt oss nu titta på en situation där du behöver ersätta flera värden, detta kan till exempel vara en array eller avlastas från ett frågeresultat. Detta är ett urval i inmatningsfältet 1c med flera betydelser.

Först får vi urvalsformuläret, skickar "Element" (ägare) i parametrarna, ställer in markeringslägesflaggan. Sedan skapar vi en lista med värden och en array, vi noterar att som ett urval när du ställer in typen av jämförelse i listan kan ett objekt endast vara närvarande med typen ListVärden. Vi lägger till element i arrayen och laddar sedan in denna array i listan över värden, som vi sedan ställer in i urvalet. Glöm inte heller att aktivera flaggan för att använda detta val och ange jämförelsetyp.

Ställa in val i inmatningsfältet på formuläret i 1C 8.3, Start of Selection-händelse

Låt oss nu överväga val i inmatningsfältet på ett hanterat formulär i 1C 8.3. Låt oss hitta elementet vi är intresserade av i formuläret, där vi kommer att ställa in valet, i vårt fall är detta fältet "Organisation". Vi hittar eventet "Start of Selection", klickar på förstoringsglaset och befinner oss i proceduren. Vi ser parametern Selection Data. Denna parameter är av typen ValueList. För att begränsa urvalet till de nödvändiga elementen måste vi fylla i värdelistan. Vi kan bara välja element på servern, så vi skapar en procedur med &OnServers kompileringsdirektiv. I den här proceduren fyller du i urvalsdata.

Urval på hanterade formulär i 1C 8.3

Artikeln kommer att diskutera alternativ för att installera urval i hanterade former 1C 8.3. Valet för en dynamisk lista kan ställas in statiskt eller dynamiskt, i användargränssnittet eller konfiguratorn. Vi kommer att överväga alla urvalsalternativ nedan.

  • Inställningsval i konfiguratorn

Inställningsval i användarläge

En dynamisk lista, i motsats till en tabell eller värdeträd, är en mer lämplig lösning för att implementera formulär som innehåller listor, eftersom Den dynamiska listan ger det bredaste utbudet av verktyg för att arbeta med urval, fältgruppering och sortering. Detta val kan ställas in när du arbetar i användarläge eller konfiguratorn, principen är densamma.

För att ställa in urval i företagsläge måste du anropa kommandot "Anpassa lista".

Ett fönster öppnas.


Fliken "urval" visar en lista över fält som finns i den aktuella listan. Välj de listfält som vi ska filtrera efter. Detta kan göras genom att dubbelklicka eller genom att dra och släppa.


Vi ställer in jämförelsetyp och värde, klicka på "Slutför redigering", valet är inställt.


När du ställer in urval i företagsläge skapas automatiskt så kallade snabbvalsfält på listformuläret.


För att 1C-plattformen automatiskt ska skapa snabbvalsfält, när du utvecklar ett formulär i konfiguratorn, måste du ange en grupp användarinställningar.


Detta val sparas endast för den aktuella användaren, vilket möjliggör flexibel anpassning av den dynamiska listan. Men om uppgiften är att göra ett fast urval för en specifik lista för alla användare av systemet kan vi lösa det endast genom konfiguratorn.

Inställningsval i konfiguratorn

Genom att arbeta i konfiguratorn kan vi ställa in två typer av dynamiskt listval – fast och dynamisk. Fast val kan konfigureras en gång, dynamiskt eller programmatiskt kan ställas in beroende på vilken data som helst i systemet.

Principen för att ställa in ett fast val i konfiguratorn skiljer sig inte från att ställa in det i användarläget som beskrivs ovan. För att ställa in valet måste vi öppna de dynamiska listinställningarna.


Ett fönster öppnas.


Val ställs in på samma sätt som i användarläge.

Alternativet "Inkludera i användarinställningar" bestämmer om valet i konfiguratorn kommer att vara tillgängligt i användarläge via menyalternativet "Anpassa lista".


Dynamiskt val (mjukvara).

Ofta finns det behov av att ställa in urval programmatiskt, till exempel när vi öppnar ett urvalsformulär, när vi behöver öppna ett kontrollerat formulär med urval. En parameter skickas till formuläret och urvalet ställs in baserat på denna parameter. Ett vanligt exempel på detta är att välja katalogobjekt efter ägare.

Metoder

Om konfigurationen som utvecklas innehåller delsystemet BSP "Basic Functionality", kan val av programvara i den dynamiska listan installeras med standardmetoden:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

Signatur för denna metod:

DynamicList Typ: DynamicList – Listan där du vill ställa in valet.

Fält namn Typ: String – Fältet som du vill ställa in valet med.

RightValue Typ: Godtycklig – Urvalsvärde (Valfritt. Standardvärde: Odefinierat. Obs: Om du klarar Undefined kommer värdet inte att ändras).

Visajämförelse Typ: DataComposition Comparison Type – Urvalsvillkor.

Prestanda Typ: String – Representation av ett datakompositionselement (Valfritt. Standardvärde: Odefinierat. Om angivet skrivs endast användningsflaggan med den angivna representationen ut (inget värde skrivs ut). En tom sträng måste skickas för att rensa så att värdet skrivs ut igen.)

Användande Typ: Boolean – Flagga för att använda detta val (Valfritt. Standard: Odefinierat).

Visningsläge Typ: ItemDisplayModeDataCompositionSettings – Hur detta val visas för användaren. Möjliga värden:

  • Element Display Mode Data Layout Settings.Quick Access – I snabbinställningsgruppen ovanför listan.
  • Element Display Mode Inställningar för datalayout Normal – I listinställningar (i undermenyn Mer).
  • ElementDisplayModeDataCompositionSettings.Inaccessible – Förhindra användaren från att ändra detta val.

IdentifierUserSettings Typ: String – Unik identifierare för detta val (Används för att kommunicera med användarinställningar).

För att ta bort ett urvalsvärde måste du använda standardmetoden:

General PurposeClientServer. RemoveGroupElementsSelectionDynamicList()

Signatur för denna metod:

DynamicList Typ: DynamicList – formulärattribut som du vill ställa in val för.

Fält namn Typ: String – namn på layoutfältet (används inte för grupper).

Prestanda Typ: String – Representation av ett layoutfält.

Om det inte finns någon BSP i systemet kan valet ställas in oberoende med hjälp av DataComposition Field-objektet.

Selection Element = List.Selection.Elements.Add(Type("DataComposition Selection Element")); Selection Element.LeftValue = NewDataCompositionField("Namn"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Valfritt urvalselement RightValue = "Ivanov";

Detta val kommer att välja rader där värdet "Fullständigt namn" = "Ivanov".

För att använda logiska "AND", "ELLER", "NOT" är datatypen DataCompositionSelectionElementGroup avsedd

Selection Group = List.Selection.Elements.Add(Type("Group of DataComposition Selection Elements")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Selection Element = Selection Group Add(Type("Data Composition Selection Element")). Selection Element.LeftValue = NewDataCompositionField("Namn"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.RightValue = "Ivanov"; Selection Element = Selection Group Add(Type("Data Composition Selection Element")). Selection Element.LeftValue = NewDataCompositionField("Namn"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.RightValue = "Petrov";

Detta val kommer att välja rader där värdet "Fullständigt namn" = "Ivanov" eller "Petrov".

Val i en dynamisk lista kan också göras genom att ändra texten i den dynamiska listbegäran. Detta alternativ fungerar när den dynamiska listan görs via en "anpassad begäran".


För att göra detta, lägg till villkoret "WHERE IS THE TRUE" i frågetexten...


Som du kan se är detta tillvägagångssätt mer kompakt när det gäller att skriva kod. Ju mer komplexa urvalsvillkoren är i tabelldelen vi vill ställa in, desto besvärligare kommer alternativet att använda valet genom urvalselementet för datasammansättning att vara. Exemplet med att ändra texten i begäran har dock sina nackdelar - denna implementering är inte resistent mot kodändringar. Till exempel gjorde du en sådan implementering och glömde det, men om du i framtiden vill ändra förfrågningstexten genom att lägga till någon operatör efter WHERE (ORDER, GROUP), måste du komma ihåg att programkoden innehåller:

List.QueryText = List.QueryText + " And DirectoryUsers.Full Name V(""Ivanov"",""Petrov"")";

Om detta inte beaktas kommer det att uppstå ett fel, men för att undvika detta kan du ändra det till en annan implementering. Vi lägger till följande villkor i förfrågningstexten:

VAR (INTE &SelectionInstalled ELLER DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("SelectionSet", Fullständigt namn.Quantity() > 0); List.Parameters.SetParameterValue("Tillåtet fullständigt namn", fullständigt namn);

Här är det fullständiga namnet en array.

Som du kan se, 2 rader kod kontra 10. Vilken metod du ska välja beror på den specifika applikationsuppgiften.

Och då säger chefen – vad är vår vinst i den nordvästra divisionen?

Du skapade omedelbart en rapport. Om ett år. Över alla divisioner av ett transnationellt företag som producerar tusentals produkter. Rapporten blir lång (om inte brantare). Det gör att det blir svårt att hitta rätt nummer.

För att bara titta på de siffror som behövs i en 1C-rapport finns 1C Selection. Detta är vad 1C kallar ett universellt filter som väljer ut den data du behöver enligt de villkor som du ställer in.

1C-val är tillgängligt inte bara i rapporter utan också i kataloger, i dokument - i alla listor.

Övrig information med det etablerade 1C-valet försvinner inte någonstans - det visas helt enkelt inte för dig nu för att bara fokusera uppmärksamheten på den information som krävs.

Vi ska nu titta på hur man använder Selection i 1C.

Vad är 1C-val

Uppgifterna i rapporten och i listorna presenteras i tabellform. Alla tabeller har kolumner. Varje rad i tabellen och varje kolumn visar något värde.

Låt oss säga att vi har kolumnerna KOD och NAMN i vår tabell. Vi kan ställa in ett villkor:
Kod = "2209"

I det här fallet kommer endast de rader att visas där värdet i kolumnen Kod är som vi angav.

Vi kan också ställa flera villkor:
Kod = "2209" OCH Namn = "Kyckling"

I det här fallet kommer endast de rader som har ett värde i BÅDA kolumnerna att visas.

Att ställa in sådana villkor kallas inställning Val 1C.

Urval 1C i den tjocka klienten:

Skärmdumpen visar referensboken. Klicka på knappen i "Val"-panelen. Ett fönster öppnas med alternativ för 1C-val efter kolumner. Installera de filter vi behöver och klicka på OK. Endast rader som uppfyller villkoren kommer att visas.

Tunn klient:

1C-val kan ställas in med hjälp av menyalternativet Alla åtgärder/Anpassa lista, 1C-valfliken. Handlingen för ett bokmärke är liknande.

Vad är 1C-valvillkoret

Varje 1C-valvillkor görs för ett värde i en kolumn. Följaktligen går den andra till en annan kolumn, etc. Aktiva (aktiverade) villkor har en bock framför sitt namn.

Den här skärmdumpen visar ett exempel på att ställa in ett villkor: "om värdet i kolumnen är lika med detta."

Ordet "lika" är speciellt framhävt. Det finns andra alternativ. Om du tänker på det, kommer det åtminstone att tänka på att om du kan välja rader där värdet är "lika med något", så kan du behöva leta där det är "inte lika".

Olika alternativ för att ställa in villkor beror på typerna av värden i den här kolumnen.

För ett antal kan vi jämföra större och mindre.

Om värdena i kolumnen är en referensbok eller ett dokument, kan du ange "I listan" - det betyder att du kan lista flera alternativ för värden.

Vissa kataloger har grupper. Till exempel referensboken "Nomenklatur" och "Motparter". För att välja 1C efter kolumner där värdena för sådana kataloger anges, kan du ange "I grupp".

Detta innebär att kontrollera om värdet som anges på denna rad är inne i gruppen eller inte? Kapslade grupper beaktas också.

Om vi ​​vill ange flera grupper samtidigt och kontrollera om elementet ingår i en av dem, måste vi välja "I en grupp från listan".

Om typen är en sträng kan du söka inte efter dess fullständiga värde, utan endast efter del. För att göra detta, välj alternativet "Innehåller".

Grundläggande urval av 1C-dokument och rapporter

Som vi diskuterade tidigare, . Därför är det grundläggande 1C-valet i en lista över dokument en period.

För att ställa in önskad period, klicka på motsvarande knapp i panelen. Perioden kan ställas in med godtyckliga datum eller som en av förinställningarna - månad, kvartal, år.

I den tunna 1C-klienten utseende Formen för att ställa in perioden har ändrats lite, men innebörden förblir densamma.

Urval 1C i valfri lista

De angivna reglerna gäller för alla bord i 1C, oavsett var den finns.

Vanligtvis ovanför bordet finns det en panel på vilken det finns en 1C-valknapp, samma som på bilderna ovan.

Om det inte finns någon, högerklicka var som helst i tabellen. Välj menyalternativet "Ställ in 1C-val och listsortering".

När du arbetar i den tunna 1C-klienten finns det inget sådant menyalternativ. Liknande åtgärder kan endast utföras om denna lista har menyn "Alla åtgärder" som visas i formuläret. Sedan kan du välja kommandot "Anpassa lista" i den.

1C-val i rapporten (för rapporter ej SKD)

1C-val i rapporter olika versioner konfigurationer ser olika ut och finns på olika ställen. Detta beror på att rapporteringssystemet i 1C utvecklas mycket snabbt och att standarderna ändras från upplaga till upplaga av konfigurationen (.,.).

Vanligtvis är 1C-val tillgängliga genom att klicka på knappen Inställningar i rapporten.

I rapporterna för konfigurationerna "Redovisning" och "Lön" i den tjocka klienten (och i dessa konfigurationer körs rapporterna utan , 1C-val öppnas genom att klicka på knappen Inställningar. De finns i popup-panelen, oftast på botten.

I konfigurationsrapporterna "Handelshantering" och "UPP" i den tjocka klienten (även inte SKD), klickar du på knappen "Inställningar" öppnas ett inställningsfönster, längst ner i vilket det finns 1C-val.

Urval 1C i SKD

I konfigurationer av nya versioner - på den tunna 1C-klienten - exekveras alla rapporter i passerkontrollsystemet. 1C-val är standardiserade i dem.

1C snabbval visas direkt på rapportpanelen.

Mer detaljerade 1C-val kan ses genom att klicka på knappen Inställningar.

Du kan helt hantera hela rapporten, inklusive 1C-val, genom att välja alternativet Alla åtgärder/Ändra i menyn. På fliken Urval kan du hantera 1C-val.

Listan är ett integrerat attribut för att visa information i valfri konfiguration skapad på 1C:Enterprise 8.1-plattformen. För effektivt arbete med listor som innehåller en mängd olika data implementerar program på 1C:Enterprise 8.1-plattformen bekväma och kraftfulla urvals- och sorteringsmekanismer. V.V. talar om funktionerna i deras användning. Fiske, företag "1C".


Ris. 1

Listor

Vilka listor möter användare? Dessa kan vara listor över dokument i relevanta tidskrifter. Nästan alla kataloger fyllda med data presenteras i form av en lista, som i regel har en hierarki (mappgrupper eller underordnade element). Ofta, för att välja ett element, genererar programmet listor automatiskt eller i enlighet med logiken som fastställts av utvecklarna.

I nästan alla listor kan du använda urvalsmekanismer (såvida de inte uttryckligen förbjuds av utvecklaren) och olika sortering (Fig. 1). I programmet är dessa mekanismer oupplösligt förbundna med varandra. Låt oss titta på hur man använder dem korrekt och effektivt.

Ris. 1

Sorteringsmekanism

Varför behöver vi en sorteringsmekanism? För det första, som namnet antyder, låter den dig sortera listan enligt önskat kriterium.

För det andra använder 1C:Enterprise 8.1-plattformen aktivt snabbsökningsmekanismen. Denna mekanism gör att du snabbt kan hitta det önskade elementet i valfri lista genom att skriva de första tecknen (Fig. 2). Men i dynamiska listor (till exempel en lista med katalogobjekt eller en lista med dokument) fungerar snabbsökning bara efter detaljer som sortering är tillgänglig.

Ris. 2

Du kan se alla listdetaljer som är tillgängliga för sortering genom att öppna fönstret "Val och sortering". Detta fönster är vanligtvis tillgängligt i åtgärdsfältet (fig. 3) eller i listans snabbmeny som öppnas med höger musknapp (fig. 4). I fönstret "Val och sortering" måste du gå till fliken "Sortering", som visar alla tillgängliga detaljer som sortering är möjlig efter.

Ris. 3

Ris. 4

Figur 3 visar att för listan över dokument "Försäljning av varor och tjänster" finns sortering efter två detaljer: "Datum" och "Nummer". Informationsinnehållet i sorteringsfönstret är dock inte begränsat till detta. Här kan du se vilken sortering som ingår i det här ögonblicket(vänster sida av fönstret) och en lista över alla detaljer tillgängliga för sortering (höger sida). Du kan också konfigurera önskad sortering och dess ordning. Observera: det aktuella sorteringsattributet kommer att markeras i listan med en speciell symbol - en pil som anger sorteringsriktningen. Tre exempel på olika sortering (inklusive kombinerad) och sätt att visa den i listan visas i figur 5.

Ris. 5

Observera att det nedre exemplet illustrerar möjligheten att använda kombinerad sortering (samtidigt med flera detaljer). I vårt fall är detta sortering efter datum i fallande ordning (äldsta datum längst ner) och efter nummer i stigande ordning (största siffror längst ner).

I varje lista kan du individuellt spara önskad sortering. Markera bara rutan "Använd denna sorteringsinställning vid öppning" och klicka på "OK". Systemet kommer ihåg inställningen och nästa gång du öppnar den här listan ställer det in den sparade sorteringen.

Du kan snabbt sortera listan efter önskat attribut genom att klicka på rubriken med namnet på detta attribut.

I vårt fall kan du till exempel klicka på attributet "Datum" (sorteringen av datum i stigande ordning kommer att aktiveras, och du kan använda en snabbsökning efter datum) eller på attributet "Number" (sorteringen efter nummer i stigande ordning kommer att slås på, varefter du snabbt kan söka efter nummer). Att invertera sorteringen är också enkelt - klicka bara igen på samma attribut i listhuvudet.

Urvalsmekanism

Selection är en kraftfull mekanism för 1C:Enterprise 8.1-plattformen, som gör att du effektivt kan arbeta med listor, även om de innehåller dussintals eller hundratusentals element. Låt oss först titta på hur urvalsmekanismen fungerar i det allmänna fallet.

Nästan överallt där det finns en lista (vanligtvis i form av en tabell) kan du använda en urvalsmekanism, som aktiveras antingen av motsvarande knapp på åtgärdsfältet eller i den sammanhangsberoende menyn i listan (fig. 3 och 4). Om valet är möjligt för den önskade listan öppnas fönstret "Val och sortering". Den kommer att visa alla möjliga typer av detaljer som är tillgängliga för val. Listan över tillgängliga urvalselement beror på var urvalet kommer att användas. I allmänhet måste du hitta en eller flera nödvändiga element för urval, ange värden och aktivera den konfigurerade kombinationen av kriterier.

Lista möjliga förhållanden för en viss typ av urval beror på vilken typ av element som används i den. Till exempel kommer intervall att vara tillgängliga för siffror och datum, delsträngsökning kommer att vara tillgänglig för strängar (villkor "Innehåller"/"Innehåller inte"), och listfyllning och hierarkianalys kommer att vara tillgängliga för katalogelement.

Om du anger flera urvalskriterier samtidigt, kommer endast de objekt som uppfyller alla angivna kriterier att visas i listan.

Urvals- och sorteringsmekanismer med exempel

Låt oss försöka lösa flera problem i demodatabasen ("Enterprise Accounting", utgåva 1.6). Låt oss till exempel visa dokument som genererats för motparten "Simon and Schuster LLC" i journalen "Kunddokument". Låt oss omedelbart göra en reservation för att vi kommer att beskriva reglerna och urvalslogikstandarden för 1C:Enterprise 8.1-plattformen, utan hänvisning till någon specifik konfiguration och ytterligare tjänstefunktioner implementerade i den.

Så öppna dokumentjournalen "Kunddokument". I standardläget, utan val aktiverat, visas alla dokument från alla köpare på skärmen (även i demodatabasen tar detta upp mer än en sida).

Vi måste snabbt titta på alla dokument från motparten Simon och Schuster LLC. Uppgiften implementeras enligt följande: ett urvalsfönster öppnas, i elementet "Motpart", välj motparten "Simon och Schuster LLC" från katalogen (fig. 6) och klicka på "OK". Problemet är löst (Fig. 7).

Ris. 6

Ris. 7

För att snabbt använda det önskade urvalet räcker det att omedelbart börja välja önskat kriterium. Du behöver inte markera rutan bredvid valet som används. Programmet kommer att göra detta själv efter att det nödvändiga kriteriet har specificerats. Du kan snabbt tillämpa de konfigurerade urvalskriterierna genom att trycka på tangentkombinationen Ctrl+Enter*.

Observera också att när du anger värden i urvalselementen (i vårt exempel, motparten "Simon och Schuster LLC"), kommer i de flesta fall snabbvalsmekanismen, som ofta används i 1C:Enterprise 8.1-plattformen, att fungera. I vårt exempel räckte det med att skriva de första tecknen i motpartens namn eller dess kod direkt i fältet för urvalsvärde, tryck på Enter eller Tab, och systemet skulle automatiskt "gissa" vilket katalogelement vi behöver.

Tänk på att snabbval avsevärt snabbar upp valet av värden du känner till. Använd den när det är möjligt.

Nu kommer vi att visa en lista över föremål vars namn innehåller ordet "Tekanna". För att göra detta, öppna katalogen "Nomenklatur", ta fram urvalsfönstret, i elementet "Namn", välj jämförelsevillkoret "Innehåller" och ange önskat ord (bild 8).

Ris. 8

Jämförelsetypen "Innehåller" valdes inte av en slump. Det är detta som gör att du kan hitta det önskade ordet (eller en del av det) var som helst i nomenklaturnamnet. Om du lämnar jämförelsetypen "Lika med", kommer listan endast att visa de nomenklaturposter som är namngivna exakt som frågan skrivs. Men det finns inga sådana objekt i vår demodatabas (det vill säga att inte ett enda element skulle visas).

Eftersom objektet i vår demodatabas har attributet "Fullständigt namn", finns det i listan över tillgängliga val som en separat position. Men samtidigt är endast ”Innehåller”/”Innehåller inte” tillgängliga som jämförelsevillkor. Anledningen är att attributet "Fullständigt namn" i vår demodatabas är en sträng med obegränsad längd.

Om du inte söker på namn, utan på fullständigt namn, är det bättre att avmarkera rutan för att använda namnval. Annars kommer urvalet att användas både med namn och fullständigt namn, vilket kanske inte alltid är nödvändigt (fig. 9).

Ris. 9

För att underlätta arbetet med katalogelement när du använder urval är det bättre att tillfälligt stänga av visningen av hierarkin (fig. 10).

Ris. 10

Låt oss som en tredje uppgift endast titta på dokumenten "Försäljning av varor och tjänster" i dokumentloggen "Kunders dokument". Lösningen på detta problem kommer att visa det speciella med en av typerna av urval, endast tillgänglig i dokumenttidskrifter.

Öppna journalen "Kunders dokument" och ange i urvalselementet "Dokumenttyp" dokumentet "Försäljning av varor och tjänster". Programmet i sig ger möjlighet att välja en specifik typ av dokument bland de som ingår i denna tidskrift. Det finns även en personlig knapp på åtgärdspanelen för detta (fig. 11).

Ris. elva

I likhet med urval efter typ av dokument kommer plattformen automatiskt att erbjuda urvalselementet "Underordnad struktur" om konfigurationen har konfigurerade relationer mellan dokument.

Låt oss försöka se i dokumentloggen "Köpares dokument" endast "Faktura"-dokumenten för motparter som finns i "Köpare"-gruppen i katalogen. Denna uppgift liknar den första, med den enda skillnaden att vi inte specificerar en specifik motpart, utan analyserar fakturorna från en hel grupp av motparter som är i gruppen "Köpare".

Det finns flera sätt att genomföra uppgiften. Låt oss titta på den mest effektiva. Öppna journalen "Köpares dokument" och ange i urvalselementet "Dokumenttyp" dokumentet "Faktura utfärdad". Därefter anger vi i urvalselementet "Motpart" typen av jämförelse "I grupp". Välj värdetypen "Motparter" och öppna formuläret för val av motpart. I den väljer du gruppen "Köpare" (Fig. 12).

Ris. 12

Denna typ av jämförelse innebär att villkoret kommer att uppfyllas av alla katalogelement som finns i den angivna gruppen. Dessutom, även om det finns undergrupper inom den angivna gruppen, kommer alla element kapslade där också att uppfylla detta kriterium.

Låt oss nu komplicera uppgiften: låt oss bara titta på "Faktura"-dokumenten i dokumentloggen "Köpares dokument", men samtidigt måste vi titta på dokument för både köpare och leverantörer. Vi löser det på samma sätt som det tidigare, med undantag för ett pålagt urvalskriterium.

På mänskligt språk är uppgiften formulerad enligt följande: "visa alla nödvändiga dokument för alla entreprenörer som finns i kataloggrupperna Köpare, Leverantörer, Leverantörer till salu." Detta är lätt att implementera - i valet "Motpart", välj "I en grupp från listan" (Fig. 13). Efter detta blir en mekanism för att fylla i listan tillgänglig, till vilken du kan lägga till de nödvändiga grupperna (eller elementen) i katalogen. Dessutom kan listan fyllas i manuellt. I analogi med att lösa det föregående problemet, hitta den önskade gruppen och välj den, upprepa detta för varje nytt element i listan. Det är dock mer tillrådligt att använda en bekväm urvalsmekanism, som automatiskt implementeras av programmet. Med hjälp av urval är det mycket enklare och snabbare att fylla listan med nödvändiga komponenter. När listan är klar, klicka på "OK" och aktivera de konfigurerade urvalskriterierna. Problemet är löst.

Ris. 13

Skillnaden mellan urvalsvillkoret "I en grupp från listan" och villkoret "I listan" är att i det första fallet kommer villkoret att vara uppfyllt för alla element i katalogen som antingen är explicit specificerade i listan eller finns inom grupperna som anges i listan. Det andra fallet säger helt enkelt till programmet att kontrollera listan när du väljer. Det vill säga, om du anger en grupp där, kommer själva gruppen att inkluderas i urvalet (som ett oberoende element i katalogen), och de element som ingår i den kommer inte att uppfylla urvalskriteriet. Det var möjligt att lösa problemet "head-on" - välj villkoret "I listan" och, med hjälp av urval, lägg till alla element i de nödvändiga grupperna.

Urvalsvillkoren "Inte i listan" och "Inte i gruppen från listan" låter dig ange de nödvändiga datamängderna som inte ska ingå i urvalet. Det vill säga, problemet kan lösas på motsatt sätt - ange "Inte i en grupp från listan" och lägg till alla kataloggrupper där, förutom de tre nödvändiga (köpare, leverantörer, leverantörer till salu).

Och slutligen, i dokumentet "Försäljning av varor och tjänster" med nummer TDN00002, visar vi i tabellsektionen endast nomenklaturen som innehåller ordet "STINOL" i namnen. Denna uppgift kommer att tillåta oss att se universaliteten i själva urvalsmekanismen, såväl som hur varierande dess användning kan vara. Uppgiften är baserad på verkliga situationer när det till exempel finns flera hundra (eller till och med tusentals) rader i tabelldelen av fakturan och du snabbt behöver analysera dess sammansättning. I vår demodatabas finns ett dokument "Försäljning av varor och tjänster" med nummer TDN00002, som har flera rader i tabelldelen. Trots att det inte finns några knappar för att använda markeringar i dokumentet är anrop av markering tillgängligt via snabbmenyn (höger musknapp).

Därefter inför vi urvalskriterier inom ramen för nomenklaturen. En annan fråga uppstår omedelbart - hur man väljer "STINOL" om villkoren för att välja nomenklaturen är ganska begränsade (tillgänglig "Lika", "Inte lika", "I listan" och "Inte i listan"). Problemet kan lösas under sådana förhållanden. Vi väljer villkoret "I listan", öppnar det redan bekanta fönstret för att fylla i listan och använder urvalet av objekt (Fig. 14, 1). Listan över objekt kan innehålla Ett stort antal element, så vi kommer inte att leta efter de nödvändiga positionerna med våra ögon. Låt oss använda urvalet i listan över objekt och specificera urvalsvillkoret "Innehåller" för objektets namn (Fig. 14, 2).

Ris. 14

Efter detta återstår bara att lägga till de valda objekten i urvalslistan för dokumentet och tillämpa urvalskriterierna.

Användbara funktioner i urvalsmekanismen

Låt oss överväga några fler punkter relaterade på ett eller annat sätt till val i 1C:Enterprise 8.1-systemet.

I listor över konfigurationsobjekt som använder datumbindning (till exempel listor över dokument) och i dokumentloggar kan du använda snabbfiltrering efter datumintervall. För att göra detta klickar du bara på motsvarande "Periodinställning"-knapp på åtgärdsfältet (eller väljer den i snabbmenyn) (Fig. 15). På så sätt kan du individuellt justera kriteriet för att visa element efter datum i varje lista.

Ris. 15

Du kan snabbt ställa in val efter värde i den aktuella listcellen genom att klicka på knappen "Välj efter värde i den aktuella kolumnen" (Fig. 16). När du klickar på den här knappen kommer valet att göras baserat på det aktuella värdet i kolumnen. Denna funktion fungerar endast för de kolumner vars detaljer kan användas för att ställa in val. Om listan redan använder någon markering, kommer den nya att bifogas till den. Dessutom blir knappen aktiv för denna kolumn. Du kan avbryta ett sådant val på samma sätt - genom att "krama" knappen i motsvarande kolumn.

Ris. 16

Annan användbar egendom urvalsmekanism - upprätthållande av urvalshistorik (fig. 17). Programmet kommer ihåg vilka val som har ställts in, så du kan snabbt återgå till någon av dem genom att helt enkelt välja den från rullgardinsmenyn. Förresten, i fönstret "Val och sortering", var uppmärksam på knappen "Val" (Fig. 6). Genom att klicka på den här knappen kommer du till ett gränssnitt där du kan spara och återställa urvalsinställningarna så att du kan återgå till dem senare (Fig. 18).

Ris. 17

Ris. 18

Och den sista funktionen är att avbryta alla val (fig. 19). Om du klickar på knappen "Inaktivera urval" inaktiveras alla val som är installerade i listan. En liknande åtgärd kan uppnås genom att öppna fönstret "Välj och sortering" och avmarkera alla aktiva element.

Ris. 19

Programmet har också möjlighet att snabbt söka på dokumentnummer i dokumentlistor eller i journaler. Denna funktion anropas av knappen "Sök efter nummer" (bild 20) och låter dig hitta erforderligt dokument, flexibelt konfigurera sökparametrar. Dokument som hittas baserat på de angivna kriterierna visas längst ner i fönstret för denna tjänst, och du kan gå till önskat dokument.

Denna kod låter dig öppna en lista med dokument med ett specificerat urval. Du kan också öppna en lista med katalogelement med önskat urval

Kod 1C v 8.2 UP Form = OpenForm("Dokument. Invoice.Form.ListForm"); //Öppna formuläret
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Lägg till urval
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Hur ska vi jämföra
SelectOwner.Use = Sant; // Ställ in kryssrutan för att använda NewDataCompositionField("Nomenklatur")
SelectionOwner.LeftValue = NewDataCompositionField("Konto"); //Vilka detaljer kommer vi att använda för att göra valet?
SelectionOwner.RightValue = Object.Account; // Och själva innebörden av urval

För att öppna ett listformulär med ett fördefinierat urval använd följande metoder:

Första sättetär att när du öppnar ett formulär kan du ställa in parametern Urvalsformulär och öppna listformuläret med denna parameter.

Parametern Selection representerar strukturen. Namnen på elementen motsvarar namnen på de fält som valet görs med, och värdena innehåller urvalsvärdena. Detta är ett dynamiskt listhanterat formulärtilläggsalternativ. Det vill säga, det finns för formulär vars huvudattribut är ett attribut av typen DynamicList, till exempel listformulär och urvalsformulär.

Till exempel, i följande exempel, öppnas en lista med fakturor med val av Nummer-fältet, lika med 333.

Kod 1C v 8.2 UE Value Value = New Structure("Number", "333");
SelectionParameters = New Structure("Selection", SelectionValue);
OpenForm("Dokument. Kvittofaktura. Listformulär", urvalsalternativ);

Andra sättet

Du kan öppna ett listformulär utan parametrar:

Kod 1C v 8.2 UE OpenForm("Dokument. Kvittofaktura.Listformulär");

Och sedan, i händelsehanteraren av formuläret för listan med fakturor When CreatedOnServer, skriv kod som skapar ett urval i den dynamiska listan, som är formulärets huvudattribut:

Kod 1C v 8.2 UP &OnServer
Procedur när CreatedOnServer(Failure, StandardProcessing)
Selection Element = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Number");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Sant;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Slut på förfarandet

Fördelarna med denna metod är att jämförelsetypen för valet inte bara kan ställas in på Lika, som i det första fallet, utan också till Mer, Mindre, etc.

Men denna metod har också en mycket betydande nackdel: med detta val kommer formuläret alltid att öppnas. Var hon än kallades ifrån. Därför bör denna blankett inte betecknas som den huvudsakliga. Och om det ändå är det viktigaste, så innan du installerar urvalet är det nödvändigt att tillhandahålla någon form av analys av varifrån detta formulär öppnas. Till exempel att analysera formulärparametrar.

Tredje vägen

Slutligen kan urvalsvillkoret placeras i en anpassad fråga som väljer data för en dynamisk lista.

Vi behöver till exempel öppna en lista med fakturor som innehåller den punkt som är markerad i artikellistan.

För att göra detta, i form av en lista över objekt, skapa ett kommando och motsvarande knapp Kvitto fakturor.

Låt oss fylla i exekveringshanteraren för detta kommando enligt följande:

Kod 1C v 8.2 UP &OnClient
ProcedurkvittonFakturor (kommando)
SelectionParameters = New Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Dokument. Kvittofaktura. Listformulär", urvalsalternativ);
Slut på förfarandet

I den här hanteraren öppnar vi formuläret för listan med fakturor, och skickar en länk till den aktuella artikeln i artikellistan till formulärparametern FilterByProduct.

Sedan skapar vi ett formulär för dokumentlistan: Kvittofaktura och skapar en formulärparameter FilterBy Product, som vi använder för att öppna ett formulär med önskat urval.

Låt oss nu öppna egenskapspaletten för huvudattributet i Listformen. Ställ in flaggan för anpassad fråga och klicka på Öppna på raden Listinställningar.

I fältet Begäran anger du följande text för begäran:

Kod 1C v 8.2 UPPVAL
Dokument kvitto fakturanummer.
Dokumentkvitto Faktura.Datum
FRÅN
Document.ReceiptInvoice AS DocumentReceiptInvoice
VAR
Dokumentkvitto Invoice.Products.Product = &Produkt

I begäran använder vi parametern Artikel, som kommer att få en länk till den aktuella raden i artikellistan, som finns i formulärparametern FilterBy Item fakturalista.

För att göra detta, i listformuläret händelsehanterare När CreatedOnServer, kommer vi att skriva kod för att ställa in värdet på parametern Product request:

Kod 1C v 8.2 UP &OnClient
Öppningsprocedur (misslyckande)
List.Parameters.SetParameterValue("Produkt", Parameters.FilterByProduct);
Slut på förfarandet

Här är List.Parameters en lista över dynamiska listbegäranparametrar för List-attributet. Värdet på parametern Product sätts lika med värdet på formulärparametern FilterByProduct.

Som ett resultat av detta, genom att klicka på knappen Kvitto fakturor i artikellistans formulär, får vi en lista över endast de fakturor som innehåller den artikel som för närvarande är vald i artikellistan.

Fortsätter ämnet:
Strip foundation

Spaghetti med konserverad fisksås - vi såg det här billiga receptet på ett paket med spagetti vi köpte. Receptet verkade väldigt enkelt för oss, så vi bestämde oss för att prova det...