Meny
Är gratis
checka in
den huvudsakliga  /  Internet / Optimalt ändra synligheten för element i en hanterad form. Optimal förändring av synligheten för element på en hanterad form 1c 8.3 kontroll av synligheten av formelement

Ändra synligheten för element på ett hanterat formulär optimalt. Optimal förändring av synligheten för element på en hanterad form 1c 8.3 kontroll av synligheten av formelement

Det är nödvändigt att skapa ett osynligt formelement som standard, men med förmågan att visa det - användarens synlighet för formulärelement kommer till undsättning.

Given

Form för bearbetningsparametrar, med tre sidor "Anslutningsparametrar", "Loggning" och "Avancerat".

En uppgift

Dölj som standard fliken "Ytterligare", men med möjlighet att visa den om det behövs från 1C: Enterprise-läge.

Beslut

Implementerad detta krav helt enkelt, i konfiguratorn för sidan "Avancerat", gå till fastigheten Anpassad synlighet och avmarkera rutan "Synlighet". Fast egendom Anpassad synlighet ställer in standardsynligheten för ett element.

Formuläret öppnas nu med dold sida "Avancerat", för att visa det måste du gå till "Mer" -menyn och ställa in synligheten för sidan.

När synligheten ändras av användaren sparas värdet och det anpassade formuläret öppnas i framtiden.

Du kan också konfigurera synlighet efter roll, för detta, i inställningarna måste du ange för vilka roller elementet är synligt eller inte. Som standard tas allt för alla roller från det totala värdet. När du redigerar synligheten för en roll ändras kryssrutan till svart.

Artikeln ingår i cykeln "Första steg i utveckling på 1C". I det fortsätter vi att bekanta oss med det hanterade gränssnittet "Taxi" och fortsätta direkt till dess konfiguration.

Som du vet börjar utvecklingen av infobasgränssnittet med skapandet av strukturen på dess meny, för hur bekvämt och logiskt det kommer att vara, kommer hela systemet som helhet att förstås för användaren.

Efter att ha läst artikeln lär du dig:

  • Vilken roll spelar delsystemet i utformningen av menystrukturen?
  • Hur skapar man menyavsnitt på första och andra nivån?
  • Hur anpassar jag kompositionen för kommandon som visas i menysektionerna?
  • Vad är Command Interface-redigeraren för och hur man arbetar med den?
  • Hur anpassar jag kommandogränssnittet i huvudsektionen?

Tillämplighet

Artikeln diskuterar gränssnittet "Taxi" för konfigurationen som utvecklats på 1C-plattformen 8.3.4.496. Informationen är relevant för aktuella plattformsreleaser.

Delsystem. Konfigurera ett gränssnitt med hjälp av delsystem

Delsystem kallas delade objekt... De ger möjlighet att klassificera konfigurationsobjekt efter Delsystem.

Att ange ett objekts tillhörighet till delsystem i Objektredigeringsfönster det finns en motsvarande flik där flaggor anger vilka undersystem objektet tillhör.

I framtiden kan du skapa ett filter av objektträdet genom Delsystem.

Samtidigt är det möjligt att kontrollera: aktivera för valda Delsystemunderordnade föremål Delsystemoch förälder Delsystemeller inte.

Objektklassificering efter Delsystemskapar bekvämlighet när du skapar Roll.

För objekt Rolldu kan definiera motsvarande rättigheter och ange att detta Rollkan endast byggas för de objekt som ingår i det valda Delsystem.

Liknande Delsystemanvänds när du skapar Gränssnitt. Gränssnittbehövs endast om konfigurationen startas i normalt applikationsläge.

Objektklassificering efter Delsystemanvänds också när du kombinerar konfigurationer. De där. du kan kombinera objekt som filtreras efter Delsystem.

Ett viktigt syfte med delsystemen är att de bygger konfigurationskommandogränssnittet i läget Hanterad applikation . Delsystemden första nivån definiera .

För befintliga Delsystemdu kan definiera kapslad (underordnad). Data Delsystemkommer att bilda grupper Navigationsfält.

När vi klassificerar ett objekt efter Delsystem, är det möjligt att bara inkludera ett objekt i ett kapslat Delsystem, möjligen i delsystemet på första nivån, eventuellt i båda.

I det senare fallet visas objektet två gånger: både inuti det kapslade delsystemet och separat i Navigationsfält... I de flesta fall är detta inte helt korrekt.

I grund och botten är delsystem frivilliga objekt. De där. en konfiguration som utvecklats på plattform 8.3 bör kunna fungera utan några delsystem.

Men i det här fallet kommer det inte att finnas någon partitionspanel alls, allt kommer att visas på skrivbordet. Mycket enkla konfigurationer med en liten uppsättning objekt kan fungera utan delsystem.

Men om konfigurationen innehåller många dokument, kataloger och register, använder Delsystemunderlättar i hög grad användarens arbete.

Observera att vissa konfigurationsobjekt tillhör vissa Delsystemkan göras på tre sätt.

Först kan det göras i Objektredigeringsfönster på bokmärket Delsystem. Detta alternativ har vi redan övervägt.

För det andra kan man använda Delsystemets redigeringsfönster... På ett bokmärke Sammansättningdu kan ange objekten som ingår i detta Delsystem.

Slutligen, för konfigurationsobjekt via innehållsmeny du kan ringa en speciell dialogruta som heter Dessutom.

I det här fönstret kan också ett objekt markeras som tillhörande Delsystem... Det här fönstret används om vi vill arbeta med flera objekt samtidigt.

När du flyttar markören över objekten i konfigurationsträdet i fönstret Dessutommotsvarande information om delsystemen visas.

När du skapar ett konfigurationsobjekt som standard binder inte Platform 8.3 objektet till något delsystem.

De där. utvecklaren måste själv gå till den här fliken och lägga ner lämpliga kryssrutor.

Om utvecklaren inte uppfyller detta kommer systemet att avgöra frånvaron av att tillhöra Delsystemsom ett misstag.

Men felet är inte kritiskt, så vi kan komma överens om detta.

I själva verket informerar systemet dig om att du kanske har glömt att inkludera nya objekt i Delsystem... I det här fallet visas objekten inte i kommandogränssnittet.

Användaren kan bara komma åt sådana objekt via Huvudmenymed kommandot Alla funktioner.

För att kunna öppna ett objekt är det naturligtvis nödvändigt att användaren har fått rätt rättigheter.

Det finns ett antal fall när det är bekvämare för utvecklare att inkludera objekt som läggs till i standardkonfigurationen i sitt eget delsystem.

För Delsystemi Redigera fönster du kan ta bort flaggan Inkludera i kommandogränssnittet.

Vart i Delsystemvisas inte i kommandogränssnittet. Om det inte finns något delsystem som ska ingå i kommandogränssnittet, så kontrollerar plattform 8.3 för nya objekt inte det som hör till något delsystem.

För att anpassa kompositionen för kommandon som ingår i motsvarande avsnitt definierat av delsystemet finns det en speciell redigerare.

Denna redigerare kan anropas från delsystemets redigeringsfönster genom att klicka på knappen Kommandogränssnitt (på fliken Den huvudsakliga).

Det är möjligt för alla Delsystemring den här redaktören. Från redaktören är det möjligt att kontrollera öppningen av listor i Navigationsfält, tillgängligheten av kommandon i Action barer.

Som standard är kryssrutorna för kommandona för att skapa objekt i kataloger och dokument avmarkerade, men de kan markeras. I Action barer Du kan också öppna rapporter.

Element i redigeraren kan flyttas. Dessutom från Navigationsfält i Åtgärdsfältet och i motsatt riktning är rörelse omöjlig. Du kan flytta element antingen inuti Navigationsfälteller inuti Action barer.

Det finns en allmän synlighetskolumn och en synlighetskolumn efter roll. Det kommer att finnas en kolumn för varje roll som definieras i konfigurationen. Värdet som anges i kolumnen allmän synlighet är standardvärdet för synlighet efter roll.

Rollsynlighet kan ta tre värden: antingen kommer elementet att vara osynligt för denna roll (1); eller det kommer alltid att vara synligt, oavsett vilken flagga som är inställd i synlighetskolumnen (2); eller synlighetsflaggan efter roll ärvs från den allmänna synlighetsflaggan (3).

Om en användare tilldelas två roller och en kryssruta är markerad för en av dem, men inte för den andra, fungerar standardregeln för 1C: Enterprise 8-systemet - användaren tillåts en åtgärd om det är tillåtet i en av rollerna.

Ibland är det nödvändigt att omedelbart ändra kommandogränssnittet i flera Delsystem... I plattformen 1C: Enterprise 8 finns ett serviceverktyg som låter dig redigera kommandogränssnittet för flera Delsystem.

Detta verktyg anropas från snabbmenyn till grenens rotnod Delsystem.

I fönstret som öppnas kan du snabbt navigera igenom Delsystemoch redigera kommandogränssnitt. Dessutom kan du redigera kompositionen i det här fönstret Delsystem... Du kan också flytta in objekt Navigationsfält och Action barer.

Dessutom kan du även ändra underordning Delsystem... Det finns en speciell knapp för detta. Flytta delsystemet.

För att anpassa kommandogränssnittet Huvudsektionen kommandogränssnittsredigeraren används också.

Det kallas inte för Delsystem, och genom snabbmenyn för rotkonfigurationsnoden, objekt Öppenkommandogränssnittet för huvudsektionen.

I fönstret som öppnas kan vi ange: vilka kataloger, dokument och andra objekt som ingår i detta kommandogränssnitt. Du kan också aktivera deras synlighet och kontrollera synligheten efter roll.

Observera att när du tar bort DelsystemTyvärr kontrollerar plattformen inte om minst ett objekt ingår i ett visst delsystem eller inte.

Efter radering Delsystemnär du sparar konfigurationen visas inga meddelanden om omstrukturering av infobasen.

Detta avslutar vår bekantskap med inställningen av infobasmenystrukturen. I nästa artikel kommer vi att fortsätta bekanta oss med det hanterade gränssnittet och överväga vilka möjligheter 1C: Enterprise 8-plattformen ger för att arbeta med listor.

Denna artikel fortsätter artikelserien "Första steg i utveckling på 1C". Materialet förutsätter att du redan har läst våra tidigare artiklar om gränssnittet. I samma artikel kommer vi att fortsätta bekanta oss med de nya funktionerna i Taxi-gränssnittet och överväga vilka intressanta innovationshanterade formulär som har fått i detta gränssnitt.

Tillämplighet

Artikeln diskuterar gränssnittet "Taxi" för konfigurationen som utvecklats på 1C-plattformen 8.3.5.1098. Tilläggen till de nuvarande plattformsversionerna (8.3.11) ges i slutsatsen. Därför är all information som ges relevant.

Nytt i hanterade former i 1C: Enterprise 8.3

Utvecklarna av 1C: Enterprise 8.3-plattformen har än en gång grundligt arbetat med användarnas bekvämlighet med hanterade formulär.

Ingång per rad

Tidigare, i inmatningsfält, när systemet matade in initialtecken från tangentbordet letade systemet efter lämpliga element.

Användare behöver dock ofta inte bara söka efter de första tecknen i namnet utan också på en godtycklig plats i namnet.

En separat flik "Inmatningsfält" skapades i konfiguratorn för refererade metadataobjekt för att ställa in ingång per rad:

Det ger följande möjligheter för att skapa en urvalslista när du går in per rad:

  • med hjälp av fulltextsökning;
  • sök efter förekomst av en substring eller genom början av en sträng;
  • sökningar direkt eller i bakgrunden.

I egenskapen ”Hur man söker efter en sträng när man går in i en understräng” kan du välja om du bara vill söka efter de första tecknen i en sträng eller i någon del av den.

I användarläge ser en sökning efter någon del av en sträng ut så här: användaren anger sekventiellt tecken från tangentbordet och systemet söker.

Och inte bara från de första bokstäverna i namnet, utan också genom förekomsten av den skrivna raden:

Naturligtvis kan sökning på någon del av en sträng försämra systemets prestanda, särskilt med en stor mängd data.

I filläget, medan användaren skriver en rad, utförs sökningen i bakgrunden endast om ingen annan bakgrund eller schemalagt jobb körs just nu.

Om motsvarande inställning är inställd kan fulltextsökning användas när du matar in data i inmatningsfältet.

Fulltextsökning hittar både hela ord och strängar där de skrivna tecknen är en del av hela ord (med * fulltext-sökoperatören).

Till exempel anger användaren följande ordord i inmatningsfältet, systemet visar de alternativ som hittats med hjälp av sökmotorn i fulltext i ett popup-fönster:

Fulltext-sökresultat som matchar det angivna sökrutavisas i figuren:

Kom ihåg att det i 8.3-plattformen blev möjligt att omdefiniera representationen av en referensdatatyp med hjälp av procedurerna ReceiveDepresentationProcessing och ViewFieldGetProcessing i objekthanteringsmodulen.

När du använder denna funktion tillsammans med stränginmatning finns följande funktion.

Ovanstående hanterare påverkar inte presentationen av värden i listan - listan återspeglar objektets huvudvy.

När det väl väljs, visar fältet emellertid den förväntade åsidosatta representationen.

Klicka på bilden för att förstora.

Utvecklarna tror att det inte finns några fel i detta beteende på plattformen, och att det är mer värdefullt att visa varför ett visst resultat hittades (markera till exempel det underlag som objektet hittades med) än att visa en representation av motsvarande värde, slits från sökresultatet.

Ovanstående radinmatningsegenskaper sattes till nivån för hela metadataobjektet.

En utvecklare kan åsidosätta dessa egenskaper på en specifik plats i konfigurationen.

Till exempel med hjälp av AutoFind och EndTextInput händelsehanterare för ett visst inmatningsfält eller med hjälp av SelectDataGetProcessing händelsehanteraren i objekthanteringsmodulen.

För att göra detta använder dessa procedurer en parameter med namnet Parametrar av typen Structure, vars egenskaper innehåller en metod för att söka efter en sträng, ett läge för att erhålla urvalsdata och ställa in användningen av urvalsdata.

Klicka på bilden för att förstora.

Listruta för inmatningsfält

I plattformen 8.3 har rullgardinsmenyn för inmatningsfältet fått ytterligare funktioner för att förbättra bekvämligheten med att arbeta med systemet.

Den här listan kan nu visa en historik över tidigare valda värden. En lista med historik visas på skärmen när markören är placerad i fältet, när du trycker på knappen Välj från listan eller nedåtpil på tangentbordet.

Du kan aktivera visning av historik i de inmatningsfält som är associerade med data från typreferensboken, dokumentet, affärsprocessen, uppgiften, diagram över karakteristiska typer, diagram över beräkningstyper, kontoplan och bytesplan. Konfiguratorn tillhandahåller för detta en egendom som finns på fliken "Inmatningsfält":

Klicka på bilden för att förstora.

Historikanvändning kan åsidosättas för ett specifikt attribut för ett objekt eller formelement.

Dessutom, om användaren inte hittade ett intressant objekt i listan över inmatningsfältet, kan han klicka på "Visa alla" för att öppna listformuläret för att välja ett objekt från hela katalogen.

I listan över inmatningsfältet finns också ett kommando ”Skapa ett nytt objekt”. Detta öppnar formuläret för ett nytt element.

I det här formuläret fyller användaren i de obligatoriska fälten. Efter inspelning och stängning av formuläret kommer en länk till det nyskapade elementet att infogas i inmatningsfältet.

Ett typiskt mönster för att använda kommandot Skapa nytt objekt är följande. Användaren anger namn önskat objekt i inmatningsfältet.

Om systemet inte hittar ett sådant element i databasen visas ett meddelande om detta. När du har klickat på knappen i listan öppnas ett nytt elementformulär med det fyllda namnet på skärmen.

De övervägande innovationerna gör det möjligt att öka hastigheten för att mata in information i systemet.

Spara inställningar för dynamiska listor

På 8.3-plattformen kan dynamiska listinställningar sparas automatiskt. För att göra detta, i konfiguratorn, för det önskade formulärattributet, ställ in egenskapen ”Automatisk sparning anpassade inställningar”. Som standard är denna inställning aktiverad när du skapar en lista.

Rotkonfigurationselementet har en ny egenskap - lagring av anpassade inställningar för dynamiska listor.

Den här egenskapen väljs från listan över konfigurationsbutiker som definierats i konfigurationen.

Klicka på bilden för att förstora.

Att ställa in listor i användarläget anropas med motsvarande menyalternativ:

Utseendet på formuläret liknar att skapa rapporter.

Klicka på bilden för att förstora.

Villkoren enligt vilka listan väljs visas automatiskt längst ner i inställningarna. Dessa inställningar kommer att ingå i listformuläret.

För att göra detta, i konfiguratörsläget, fyll i egenskapen för tabellen i formuläret Användarinställningsgrupp.

I den måste du ange en separat formulärgrupp, inom vilken element läggs till för att visa urvalet.

Med denna inställning kommer formuläret att ha fält i form av ”snabbval”.

Klicka på bilden för att förstora.

Om användaren har anpassat listan för sig själv sparas inställningarna automatiskt och när listan öppnas igen kommer samma utseende att se ut.

Det dynamiska listvysläget (lista, träd, hierarkisk lista) sparas tillsammans med inställningarna för formulärelement.

För en lista kan användaren spara flera olika inställningar.

Om konfigurationskompatibilitetsläget är inställt på "Använd inte", för en dynamisk lista med en dokumentjournaltabell som anges som huvudtabell, skapas knappen "Skapa" automatiskt som en undermeny med en lista med dokument som ingår i journalen .

Klicka på bilden för att förstora.

Detta gjorde det lättare för användaren att skapa nya dokument från journalformuläret. Det blev också möjligt att snabbt skapa separata knappar i kommandofältet i formuläret för att skapa ett nytt dokument av en viss typ.

För detta skapades standardkommando CreateByParameter. Om det här kommandot tilldelas en knapp på formuläret blir egenskapen Parameter tillgänglig där du kan välja typ dokumentet som skapas när du klickar på den här knappen.

Klicka på bilden för att förstora.

I användarläge kommer den här knappen att se ut så här:

Klicka på bilden för att förstora.

Eftersom materialet i artikeln beskrivs för plattform 8.3.5, sedan uppdaterar vi det.

  • Före version 8.3.7 var ingång för rad för rad inte tillräckligt snabb, så i den här versionen ändrades datastrukturen för fulltext-sökindex, vilket ledde till en ökning av systemets hastighet på platser där detta används. Anteckna det nytt format Fulltext-sökning används när kompatibilitetsläget är inställt på "Använd inte". I kompatibilitetsläge 8.3.6 har beteendet inte förändrats. Vi noterar också att i nästa version av 1C-plattformen (8.3.8) förbättrades även inmatningsmekanismen för rad och när man använder sökraden i en dynamisk lista, och nu ger den en sökning efter data som ännu inte har ingår i fulltextsökning. Tidigare observerades inte detta beteende.
  • Listrutan för ett hanterat formulärinmatningsfält har också fått vissa förbättringar. I version 8.3.8 började den automatiskt justera sin bredd till bredden på data som visas i den, plus knapparna Hem och Slutet började bearbetas direkt i inmatningsfältet. Dessa förbättringar gör det lättare att använda ett inmatningsfält med en rullgardinslista.
  • Mekanismen för att spara inställningarna för dynamiska listor har också förbättrats, och i version 8.3.6 började tilläggsegenskaperna för formulärtabellen för den dynamiska listan Period och Display lagras i samma avsnitt som andra inställningar i den dynamiska listan , vilket i hög grad förenklar utvecklarens arbete med dem. De är nu tillgängliga i den hanterade formprocessorn När du laddar upp anpassade inställningar på servern ()som inte var där förut.

Detta kompletterar vår bekantskap med hanterade formulär i taxigränssnittet, men i nästa artikel kommer vi att bekanta oss med de nya funktionerna som presenteras av 1C: Enterprise-plattformen, version 8.3.

I den föregående artikeln beskrivs anledningen till att ändra elementens synlighet till hanterad form är inte på ett bra sätt bygga om gränssnittet, hantera tillgängligheten av formulärelement för användare.

Idag kommer vi att överväga alternativt sätt ändra synligheten för hanterade formulärelement som inte initierar ett serveranrop. Således kommer vi att kunna spara trafik och öka programmets prestanda.

Allt på klienten

Hela poängen med metoden som beskrivs nedan är att ändra synligheten / tillgängligheten för ett formulärelement endast på klientsidan utan att kontakta servern. Flaggan "Synlighet" fungerar inte för oss. Låt oss titta på andra möjligheter.

Det finns två alternativ. Den första är att använda formulärelementets tillgänglighetsegenskap. Men då, även om användaren inte kommer att kunna arbeta med formulärelement för vilka tillgänglighet är inställd på FALSE, kommer han fortfarande att kunna se det. Så här ser hanteraren för att ändra tillgängligheten till ett formulärelement ut:

& OnClient Procedur HideCommandVisibility (Command) objekt. Varna. Tillgänglighet \u003d INTE artiklar. Varna. Tillgänglighet; Slut på proceduren

Det otillgängliga elementet har följande form:

När tillgängligheten för ett element ändras inträffar inga samtal till servern för att rita om formuläret, vilket var fallet med flaggan "Synlighet".

Men vad händer om vi helt måste dölja formelementet? Låt oss demonstrera hur man gör detta på ett dynamiskt listelement i ovanstående form. Lägg till formuläret en grupp av element med vyn "Sidor" och två underordnade grupper med vyn "Sida". Flytta elementet i den dynamiska listan till en av dem.

På en tom sida, där det inte finns någon dynamisk lista, lägg till en dekorationsvy "Etikett" så att sidan inte är tom och du kan växla till den. För sidgruppen ställer du in egenskapen "Visar sidor" på FALSKT så att bokmärkena inte syns.

Nu i kommandot "Dölj dynamisk lista" kommer vi att skriva följande hanterare:

& OnClient Procedur HideCommandVisibility (Command) Om objekt. Sidor. CurrentPage \u003d Objekt. Sida1 Sedan objekt. Sidor. CurrentPage \u003d Objekt. Sida 2; Annars element. Sidor. CurrentPage \u003d Objekt. Sida 1; EndIf; Slut på proceduren

Kommandot byter sida. När du byter sida sker inte samtal till servern, allt görs på klientsidan. Dessutom, om vi byter till sidan "Sida2", där endast dekorationen av inskriptionen lades till, kommer formuläret att se ut på skärmdumpen nedan:

Således har vi gömt elementet i den hanterade formen på ett optimalt sätt utan samtal till servern, kontextsamtal till servern. Följaktligen sparade vi mängden överförd trafik och påskyndade programmets arbete.

När du utformar ett gränssnitt på hanterade formulär, särskilt om lösningen körs in tunn klient, är det alltid nödvändigt att ta hänsyn till plattformens beteende under vissa åtgärder. Till exempel har det redan sagts ovan att när synligheten för element ändras, ritas formuläret helt igen på servern, och när egenskapen "Tillgänglighet" ändras eller när sidorna byts, utförs alla åtgärder på klienten sida.

Använd styrkan i hanterade former på rätt sätt!