Skjemakommandoer. Hvordan plassere kommandoer i kommandolinjen i et skjema? 1c standard kommandoer

Skjemaredaktør brukes til å lage og redigere former for applikasjonsløsningsobjekter. Objektformer brukes av systemet for å vise data visuelt mens brukeren arbeider.

Enhver form representerer en kombinasjon av flere komponenter:

  • elementer - objekter som bestemmer den visuelle representasjonen av skjemaet og samhandler med brukeren,
  • kommandogrensesnitt - et sett med kommandoer som vises i skjemaet;
  • detaljer - objekter hvis data skjemaet bruker i sitt arbeid.
  • kommandoer - handlinger som er definert i denne spesifikke formen,
  • parametere - objekter hvis verdier kjennetegner selve skjemaet, brukes under opprettelsen og forblir konstant under skjemaets "levetid",
  • modul - et program i et innebygd språk som er ansvarlig for å jobbe med elementer og behandle hendelser;

Skjemaeditoren inneholder flere faner som tillater redigering av alle skjemakomponenter.

I et eget vindu, nederst i editoren, vises utseendet til skjemaet i 1C:Enterprise-modus.

Redigering av elementer

Skjemaeditoren lar utvikleren bruke et bredt spekter av alternativer for å endre utseendet på skjemaet - utseendet som skjemaet vil ha i 1C:Enterprise-modus. La oss liste opp de viktigste:

Sider, bokmerker

Skjemaredigeringsprogrammet lar deg legge til spesielle elementer i skjemaet som bidrar til å gi skjemaet sin egen gjenkjennelige stil, gjør tilgangen til data enkel og oversiktlig, og også får plass til en stor mengde informasjon i et begrenset område.

Editoren lar deg legge til flere elementer i skjemaet Gruppe - Sider, som hver kan inneholde flere elementer Gruppe - Side.

For eksempel kan et dokumentskjema inneholde ett element Gruppe - Sider, som flere elementer er underlagt Gruppe - Side med overskrifter Bilde, Kjennetegn Og Beskrivelse:

Så i 1C:Enterprise-modus vil det se slik ut:

Tittelen på hver gruppe - side vises på en egen fane. Utvikleren har muligheten til å angi visningsmodus for bokmerker: bunn eller topp:

For eksempel kan bokmerker plasseres nederst:

Elementer

Editoren lar deg legge til ulike elementer i skjemaet. Du kan legge til elementer ved å bruke add-kommandoen eller ved å dra skjemadetaljer inn i elementtreet:

Alle formelementer er representert i form av en hierarkisk struktur, hvis rot er selve formen. Dette lar deg raskt navigere til ønsket skjemaelement:

Ved å plassere elementer høyere/lavere i treet, underordne dem til andre elementer og sette egenskapene til gruppeelementer, kan du sette i hvilken rekkefølge brukeren skal omgå skjemakontrollene ved inntasting og redigering av data. I 1C:Enterprise-modus vil skjemaelementer bli behandlet i rekkefølgen etter deres hierarki og i samsvar med hvilken type gruppering som er valgt for grupper: vertikal eller horisontal.

Separatorer

Separatorer er spesielle elementer som kan brukes til å omfordele rommet til et skjema uten å endre størrelsen. Plattformen i 1C:Enterprise-modus legger uavhengig til disse elementene i skjemaet. Separatoren har muligheten til å bli "grepet" av musen og flyttet innenfor skjemaet innenfor dens grenser, med tanke på muligheten for plasseringen av andre elementer og orienteringen til separatoren:

Når du flytter et skilletegn, vil alle elementene som er knyttet til skilletegnet endre størrelse eller flytte:

Skjemamodul

For å redigere en skjemamodul kaller konfiguratoren opp tekst- og moduleditoren. Denne editoren gir utvikleren et bredt utvalg av alternativer for å lage og endre modultekst.

Skjemadetaljer

Redigering av skjemadetaljer utføres i listen, som lar deg opprette nye detaljer, endre eksisterende detaljer og slette unødvendige detaljer. Egenskaper for attributter angis ved hjelp av egenskapspaletten.

Hvis et skjema har en hovedattributt som bestemmer oppførselen til skjemaet som er forskjellig fra standarden, er den uthevet med fet skrift.

Skjemakommandogrensesnitt

Skjemaets kommandogrensesnitt er redigert i treet. Hovedgrenene i treet inneholder kommandoer lagt til i navigasjonslinjen i vinduet der skjemaet skal vises og til kommandolinjen i skjemaet. Innenfor hver av disse grenene er lagene delt inn i standardgrupper.

Plattformen legger automatisk til noen kommandoer til kommandogrensesnittet. Sammen med dette kan utvikleren uavhengig legge til kommandoer til kommandogrensesnittet ved å dra dem fra listen over skjemakommandoer eller fra listen over tilgjengelige globale kommandoer. For alle kommandoer som legges til kommandogrensesnittet, kan utvikleren sette deres synlighet til de ulike rollene som er definert i konfigurasjonen.

Skjemakommandoer

Skjemakommandoer redigeres i listen. Utvikleren har muligheten til å legge til, fjerne skjemakommandoer og angi egenskapene deres ved å bruke egenskapspaletten. Inkludert å tilordne en prosedyre til en kommando som vil bli utført når brukeren kaller denne kommandoen.

Bokmerke Standard kommandoer Og Globale team utvikleren er utstyrt med lister over kommandoer generert av plattformen og tilgjengelig for bruk i dette skjemaet. Egenskapene deres kan ikke endres, du kan bare legge dem til i skjemaet.

Ved hjelp av musen kan utvikleren dra og slippe en kommando inn i skjemaets kommandogrensesnitt. Du kan også dra en kommando direkte inn i elementtreet hvis du for eksempel trenger å vise denne kommandoen som en knapp plassert på et skjema.

Skjemaalternativer

Skjemaparametere er redigert i listen. Utvikleren har muligheten til å legge til, fjerne skjemaparametere og angi egenskapene deres ved å bruke egenskapspaletten.

Enhver gruppe med knapper (kommandolinje, undermeny, gruppe med knapper, kontekstmeny) fylles ut i henhold til de samme reglene:

  1. først kommer knappene levert av kommandokilden som denne gruppen er assosiert med;
  2. så kommer et fragment av kommandogrensesnittet, hvis kommandokilden innebærer at den er inkludert;
  3. så er det egendefinerte kommandoer lagt til denne gruppen;
  4. så er det en undermeny Alle handlinger(kun for kommandopanelet);
  5. og på slutten er det en knapp Henvisning hvis den ble levert av kommandokilden.

La oss vurdere det enkleste alternativet, når to kommandoer opprettes i form av et katalogelement og plasseres i kommandopanelet til skjemaet.

Som et resultat, i 1C:Enterprise-modus, er plasseringen av knapper som tilsvarer de opprettede kommandoene Lag 1, Lag 2 tilsvarer algoritmen beskrevet ovenfor: i kommandopanelet i skjemaet og i undermenyen Alle handlinger først er kommandoene gitt av kommandokilden - formen til katalogelementet (for eksempel, Skriv og lukk, skriv etc.), deretter kommandoer opprettet av utvikleren ( Lag 1, Lag 2), og deretter kommandoen Henvisning.

Det er imidlertid flere måter for en utvikler å gripe betydelig inn i denne prosessen og forbedre lesbarheten til kommandolinjen, kontekstmenyen osv. Hvilke alternativer er det for å endre sammensetningen og rekkefølgen på knappene?

1. Du kan skille utviklerskapte kommandoer fra andre kommandoer med en separator.

For å gjøre dette, må du opprette en gruppe som denne i kommandopanelet Knappegruppe og overføre disse kommandoene til den.

2. Du kan plassere noen utviklerkommandoer i begynnelsen av en gruppe med kommandoer.

For å gjøre dette må du avbryte kommandokilden for gruppen (for kontekstmenyen og den automatiske kommandolinjen må du slå av avmerkingsboksen Autofullfør), legg deretter til knappen i gruppen, etter at den legger til en gruppe av skjemaet Knappegruppe og installer denne gruppen kommandokilde- For eksempel, Skjema.

Alle handlinger vil ha følgende skjema.

3. Du kan flytte autofyll-knappene.

For å gjøre dette må du plassere i kommandolinjen eller kontekstmenytreet en knapp knyttet til den samme kommandoen som fylles ut fra datakilden (f.eks. Slett, Kopiere og så videre.). Automatisk vil ikke en slik knapp plasseres blant standardkommandoene, og du kan derfor flytte standardkommandoen til et annet sted.

Som et resultat, i 1C:Enterprise-modus, dannes kommandopanelet og undermenyene Alle handlinger vil ha følgende skjema.

Til kommandoikon Slett ble vist i kommandopanelet i skjemaet, må du angi egenskapen til denne knappen Bare i alle handlinger i betydning Nei.

4. Du kan endre rekkefølgen og synligheten til knappene til kommandogrensesnittfragmentet levert av kommandokilden Skjema.

For eksempel har et konfigurasjonsobjekt en katalog Motparter det er et lag Lag 3. Denne kommandoen har kommandoplasseringsgruppe - Skjema-kommandopanel. Viktig og kommandoparametertype - DirectoryLink.Motparter.

Etter å ha angitt disse egenskapene, Lag 3 blir tilgjengelig for bokmerket Kommandogrensesnitt formen til et objekt hvis type er en kommando og er plassert i kommandopanelet til skjemaet etter standardkommandoene levert av formen til et katalogelement.

Som et resultat, i 1C:Enterprise-modus, dannes kommandopanelet og undermenyene Alle handlinger vil ha følgende skjema.

Lag 3 er en del av kommandogruppen til kommandogrensesnittfragmentet. Hvis du ikke er fornøyd med stedet der et fragment av kommandogrensesnittet er satt inn, kan du plassere en gruppe som dette i kommandopanelet Knappegruppe og installer denne gruppen kommandokilde - Kommandolinje for globale skjemaer.

I dette tilfellet vil den automatiske plasseringen av fragmentet bli kansellert (i likhet med en standardknapp lagt til manuelt), og kommandogrensesnittfragmentet vil vises i en ny gruppe.

Når det gjelder innholdet i kommandogrensesnittfragmentet, er redigeringen tilgjengelig på fanen Kommandogrensesnitt skjemaredaktør.

5. Du kan slå på/av synligheten til standardkommandoer levert av kommandokilden, for eksempel - Skjema.

For å gjøre dette må du åpne et vindu Lagsammensetning i paletten for skjemaegenskaper.

Til slutt, merk at det ikke er noe alternativ for å endre rekkefølgen på knappene som leveres av kommandokilden. Hvis et slikt behov oppstår, må du avbryte kilden fra gruppen av kommandoer og fylle gruppen helt manuelt.

Teknologiplattformen 1C:Enterprise 8 brukes til å automatisere et bredt spekter av administrasjons- og regnskapsoppgaver i et bredt spekter av virksomheter. Med et så bredt spekter av applikasjoner kan det naturlig nok oppstå situasjoner der funksjonaliteten til standardkommandoer ikke er nok.
For å implementere tilleggsfunksjonalitet brukes det innebygde 1C:Enterprise-språket. Denne funksjonaliteten er hovedsakelig implementert i hendelsesbehandlere. Det er imidlertid også behov for å gi brukerne muligheten til interaktiv tilgang til deler av de implementerte funksjonene fra grensesnittet.


For å løse disse problemene i 1C:Enterprise er det mulig å lage et tilpasset team. I konfigurasjon er vilkårlige kommandoer representert av et nytt konfigurasjonsobjekt Team. Kommando-konfigurasjonsobjektet er ment for å implementere ikke-standardfunksjoner i en applikasjonsløsning med muligheten til å bruke standardmekanismer for å aktivere den implementerte funksjonaliteten
til kommandogrensesnittet.
Teknologiplattformen begrenser ikke på noen måte sammensetningen av vilkårlige kommandoer og funksjonene de implementerer. Alt bestemmes av kravene til en spesifikk applikasjonsløsning. Når du oppretter en vilkårlig kommando, må utvikleren sette dens egenskaper, som bestemmer reglene for å inkludere kommandoen i grensesnittet, og skrive programkode som definerer handlingene som utføres av kommandoen. Dette er hvordan vilkårlige kommandoer skiller seg fra standard. For sistnevnte er både egenskapene og handlingene som utføres definert av plattformen selv.
I konfigurasjonen kan vilkårlige kommandoer implementeres enten som uavhengige objekter - generelle kommandoer, eller som underordnet andre objekter.

Generelle vilkårlige kommandoer lar deg implementere ikke-standard funksjonalitet som generelt er relatert til applikasjonsløsningen. I dette tilfellet opprettes en vilkårlig kommando som et uavhengig konfigurasjonsobjekt som tilhører klassen Generelle kommandoer.

Vilkårlige generelle kommandoer

La oss for eksempel se på hvordan du lager og konfigurerer alle egenskapene til kommandoen "Sett opp en strekkodeskanner". Handelsbedrifter trenger ofte å automatisere prosessen med å registrere solgte varer. Strekkodeskannere brukes til dette. Teknologiplattformen «vet» imidlertid ikke noe om disse enhetene og har ikke midler til å jobbe med dem. Derfor, for å jobbe med en strekkodeskanner, må du koble til et spesielt program - en driver. For å koble til en slik driver implementeres en generell tilpasset kommando: Installer strekkodeskanner. Ved å angi visse verdier for egenskapene til denne kommandoen, sikret utvikleren at den var tilgjengelig for brukerne.

Egendefinert generell kommando "Konfigurer skanner"

Funksjonene for å jobbe med skanneren er felles for hele applikasjonsløsningen, det vil si at de ikke er relatert til noe spesifikt konfigurasjonsobjekt, så en vilkårlig kommando implementeres som en generell.
Kommandoen utfører en handling - kobler en driver til applikasjonsløsningen for å fungere med en strekkodeskanner. Derfor er den plassert i handlingslinjen i hovedprogramvinduet.

En annen vanlig oppgave er å skaffe papirkopier av elektroniske dokumenter. Sammensetningen av dokumenter og deres struktur bestemmes av at søknadsoppgaven er automatisert. Naturligvis er det umulig å sørge for alle de forskjellige dokumenter og alternativer for deres trykte skjemaer på plattformen. For å "lære" et dokument å "overføre" seg selv til papir, kan du bruke en vilkårlig kommando.
I demodatabasen for å få en trykt form av dokumentet Produktforbruk underordnet team opprettet Utskrift av faktura

Vilkårlig underordnet kommando "Skriv ut faktura"

Kommandoegenskapsverdier Gruppe Og Kommandoparametertype bestemte plasseringen av kommandoen i kommandogrensesnittet - Skriv ut-menyen på kommandopanelet til dokumentskjemaet, og prosedyren på det innebygde språket sørget for dannelsen av en trykt form av et spesifikt dokument, en lenke som sendes til i kommandoparameteren.
Et annet, ganske spesifikt bruksområde for vilkårlige kommandoer er å utvide eller overstyre standardfunksjonaliteten til en standardkommando. Slike oppgaver oppstår for eksempel på grunn av kravet om å redusere antall manuelle operasjoner eller endre standardoppførselen til objekter.
For eksempel implementerer databasen vår et behandlingsobjekt Administrativ tjeneste. Kommandoen for å åpne hovedskjemaet måtte plasseres i navigasjonspanelet, og selve skjemaet måtte åpnes i arbeidsområdet til hovedprogramvinduet. Men standardfunksjonaliteten til dette objektet er forskjellig fra den nødvendige - kommandoen for å åpne skjemaet er plassert i handlingslinjen, og skjemaet åpnes i et nytt hjelpevindu.
For å sikre den nødvendige funksjonaliteten er egenskapen Bruk standardkommandoer fjernet fra behandlingen - standardkommandoer passer ikke oss.

Deaktivering av bruk av standardkommandoer

Tilgang til behandling gis av en vilkårlig underordnet kommando Administrativ tjeneste, som er satt til å være plassert i Normal-gruppen på navigasjonslinjen i hovedprogramvinduet. Som et resultat av å velge denne kommandoen, vises et behandlingsskjema i arbeidsområdet i hovedvinduet.
Det er mange lignende problemer i spesifikke applikasjonsløsninger, og vilkårlige kommandoer er de mest egnede for å løse dem.

Vilkårlig underordnet kommando "Administrativ tjeneste"

Funksjoner ved overnatting
En funksjon ved vilkårlige kommandoer, sammenlignet med standardkommandoer, er behovet for å beskrive deres standardplassering i kommandogrensesnittet. Plasseringen av en vilkårlig kommando spesifiseres av utvikleren når applikasjonsløsningen konfigureres.

Standardplasseringen i kommandogrensesnittet for vilkårlige kommandoer bestemmes av:

  • kategori og gruppe tildelt laget
  • kommandoen tilhører konfigurasjonsdelsystemet (for uavhengige kommandoer) og typen kommandoparameter (for parameteriserbare kommandoer).

MERK FØLGENDE!
Kommando egenskap Gruppe må fylles ut. Ellers vil det oppstå en feil ved oppdatering av databasekonfigurasjonen, og oppdateringen vil mislykkes.

Når du velger en gruppe for en kommando, bør du være oppmerksom på behovet for å sende parametere til kommandoen og handlingene som kommandoen utfører. Som et generelt kriterium kan det foreslås å følge de samme reglene som brukes for standardkommandoer.

  • Hvis en kommando ikke krever parametere for utførelse, velg en gruppe for den med kategorien Navigasjonspanel eller med kategorienHandlingslinjer.
  • Hvis en kommando krever å sende en parameter for utførelse, må du velge en gruppe med kategorien Form Navigation Panel eller Form Command Panel kategorien.
  • For kommandoer, hvis utførelse fører til endringer i informasjonen som vises i arbeidsområdet i samme vindu, bør du velge en kategori Navigasjonslinje for uavhengige lag eller Skjemanavigasjonslinje for parameteriserbare kommandoer.
  • For kommandoer hvis utførelse fører til endringer i data i infobasen, bør du velge en kategori Handlingslinje for uavhengige lag eller Skjema kommandopanel for parameteriserbare kommandoer. Det anbefales også å velge denne kategorien for kommandoer som vil føre til åpning av et nytt vindu for å vise utvalgsskjemaer, rapportskjemaer og behandlingsskjemaer.

For å inkludere en felles uavhengig kommando i en bestemt del av kommandogrensesnittet, må du angi dens tilknytning til de tilsvarende undersystemene. Inkludering av en kommando i undersystemer gjøres ved å sjekke den i egenskapen Sammensetning av nødvendige undersystemer.

Det er umulig å direkte inkludere en underordnet kommando i undersystemet. Derfor blir underordnede uavhengige kommandoer automatisk inkludert i kommandogrensesnittet til de undersystemene der kommandoens eierobjekt er inkludert.
Men parameteriserbare vilkårlige kommandoer, både generelle og underordnede, er inkludert i kommandogrensesnittet annerledes. Dette skyldes det faktum at kommandoen bare kan hente den faktiske verdien av parameteren fra skjemadataene. Dette er grunnen til at parameteriserbare kommandoer kun kan plasseres i skjemaets navigasjonslinje eller i skjemaets kommandolinje. Dessuten må denne verdien ha en datatype som er gyldig for parameteren. Listen over tillatte parametertyper settes i egenskapen Kommandoparametertype

Listen over tillatte parametertyper for en parameterisert kommando bestemmes av egenskapen "Command Parameter Type".

Ved å sammenligne sammensetningen av typene spesifisert i kommandoegenskapen med typene av skjemadetaljene, bestemmer systemet om kommandoen skal inkluderes i en eller annen form.

En parameteriserbar vilkårlig kommando er inkludert i skjemaet bare når skjemaet har minst ett attributt med en type inkludert i de tillatte. Ved kontroll tas det også hensyn til detaljer som er underordnet hovedskjemadetaljene. Sammensetningen av de sjekkede underordnede detaljene er begrenset til første nivå av underordning.
La oss gå tilbake til å løse problemet vårt med å skille funksjonaliteten for arbeid med priser i et eget delsystem. I tillegg til å sette priser, vil vi også trenge muligheten til å trykke prislapper på varer. I dette tilfellet er det nødvendig å implementere to moduser:


  • skrive ut prislapper for alle varer for alle eksisterende typer priser,
  • utskrift av prislapper for alle varer i henhold til en type pris.

Standakan ikke gi oss disse egenskapene. Derfor må vi implementere tilleggsfunksjonalitet. For dette vil vi bruke vilkårlige kommandoer.

Generelt uavhengig team
Ved første øyekast bør funksjonaliteten til å skrive ut alle prislapper utvide mulighetene til produktkatalogen. Imidlertid beskriver dette konfigurasjonsobjektet mange infobasedataobjekter. Hvis vi implementerer kommandoen som en underordnet kommando til katalogen, vil vi "lære" hvert av dataobjektene å skrive ut prislapper for alle produkter. Og dette er allerede unødvendig. Dataobjektet må kun være ansvarlig for seg selv. Derfor vil laget være felles.
For å legge til en vilkårlig generell kommando, bruk Add-elementet i kontekstmenyen til Generelle kommandoer-noden i konfigurasjonstreet.

Som et resultat vil en generell kommando legges til, og et egenskapsvindu og et vindu for redigering av kommandomodulen åpnes for den.

Egenskaper og modul for den generelle vilkårlige kommandoen

Angi verdiene for kommandoegenskapene i Basic-egenskapsgruppen:


  • Navn– "Skriv ut prislister over produkter";
  • Synonym– la det automatisk genererte synonymet være igjen;
  • En kommentar– Vi fyller den ikke ut.

Det neste trinnet er å velge en lagkategori og gruppe for standardplasseringen. Teamet vårt krever ikke parametere for utførelse - det er uavhengig. Teamet utfører handlinger for å behandle data som er lagret i informasjonsbasen for å få et sett med prislapper, og endrer ikke konteksten for å løse noe problem. Derfor vil vi sette kategorien til handlingslinje for kommandoen. I hvilken gruppe vil det vises? Det mest logiske å gjøre er å plassere henne i en gruppe Service.
For gruppeegenskapen åpner du derfor et vindu med en liste over grupper og velger elementet p Handlingspanel.Service.

MERK
Vær oppmerksom på egenskapene Kommandoparametertype, Parameterbruksmodus og og endrer data– de er ikke tilgjengelige for fylling. Egenskaper er ment å beskrive kommandoen som parameteriseres og blir bare tilgjengelig når du velger en gruppe med kategoriene Form Navigation Bar eller Form Command Bar.

Angi plasseringen av en egendefinert generell kommando

Teamet vi har laget er uavhengig. Derfor er det nødvendig å bestemme i hvilke deler av kommandogrensesnittet det vil være tilgjengelig. Kommandoen skal være tilgjengelig i de samme delene der du kan utføre prisstyringshandlinger.
I vårt tilfelle må det opprettede teamet tilhøre tre undersystemer - Prissetting, Priser, Enterprise. Derfor må vi redigere egenskapen Composition of three subsystems.
For å redusere antall utførte handlinger, velg Avansert fra kontekstmenyen til den opprettede kommandoen. Som et resultat vil et vindu åpnes der du på fanen Undersystemer kan spesifisere alle undersystemene som kommandoen tilhører

Inkludert en vilkårlig generell kommando i undersystemer

Vår kommando er tilgjengelig for brukere med rollen Administrator på grunn av den installerte rolleegenskapen Sett rettigheter for nye objekter. Vi er pålagt å sikre tilgjengeligheten for rollen som prissjef.
Som med andre konfigurasjonsobjekter, kan tilgjengelighet konfigureres for et generelt team i rolleredigeringsvinduet.
Eller du kan - i det allerede åpne Avansert-vinduet på fanen Rettigheter. I Rollelisten velger du den egendefinerte rollen og i Rettighetslisten setter du Vis-rettigheten for det opprettede teamet

Sette opp teamtilgjengelighet for rollen Pricing Manager

Å sette opp kommandosynlighet etter rolle for en vilkårlig uavhengig kommando gjøres på samme måte som å sette opp for standardkommandoer - i kommandogrensesnittredigering.
Kommandoen vår skal være synlig som standard for en bruker med rollen Pricing Manager, og den skal være skjult for en bruker med Administrator-rollen. For å gjøre dette, fjern merket for generell synlighet i kolonnen i kommandogrensesnitteditoren til prisundersystemet.Synlighet. Dette vil sikre at teamet er usynlig for alle roller, inkludert nyopprettede. Og for rollen Pricing Manager, vil vi eksplisitt merke av i boksen i den tilsvarende kolonnen.
La oss lagre konfigurasjonen, starte applikasjonen som Price Manager-bruker og velge delen Prisstyring.

Angi synligheten til en egendefinert generell kommando

I kommandogrensesnittet er kommandoen Skriv ut produktprislapper tilgjengelig i delen Prisstyring (ved å indikere medlemskap i prisundersystemet). Kommandoen plasseres i Verktøy-gruppen i handlingspanelet (ved å spesifisere riktig verdi for gruppeegenskapen).

Således, for en vilkårlig generell uavhengig kommando:

  • Standardplasseringen i kommandogrensesnittet bestemmes av verdien til gruppeegenskapen;
  • inkludering i en kommandogrensesnittseksjon bestemmes av medlemskap i det tilsvarende undersystemet;
  • Tilgjengelighet for brukeren bestemmes av verdien av Vis-rettigheten.

Vi opprettet et team. Hvordan kan du fortelle brukeren hvilke handlinger en vilkårlig kommando utfører? Svaret er åpenbart - beskriv formålet med kommandoen i dokumentasjonen for applikasjonsløsningen. Du kan også beskrive formålet med kommandoen i den innebygde online hjelpen. For å jobbe med hjelpeinformasjon er egenskapene til den generelle kommandoen fra Hjelpeinformasjonsgruppen ment (fig.

Referanseinformasjon for en vilkårlig generell kommando

Å søke etter en beskrivelse av en kommando i dokumentasjonen eller innebygd hjelp er imidlertid en langvarig prosess. Du kan hjelpe brukeren raskt å huske formålet med en kommando ved å velge en talerepresentasjon for den. En vilkårlig generell kommando i kommandogrensesnittet er representert av dens Synonym-egenskap. Nå er kommandoen representert med tekst "Skrive ut prislapper for varer", og denne presentasjonen er ganske informativ. Men i fremtiden vil vi legge til en annen kommando for utskrift av prislapper til applikasjonsløsningen - etter type pris. Derfor er det verdt å vurdere en kommandorepresentasjon som vil fortelle brukeren hvilket alternativ for å skrive ut prislapper som vil bli utført. La oss si at det blir det "Skriv ut alle prislapper".
En annen måte å minne brukeren på formålet med en kommando er å bruke Tooltip-egenskapen. Tekstsettet i denne egenskapen vises i et verktøytips når du holder musen over kommandoen. For Tooltip-egenskapen angir du teksten "Utskrift av prislapper for alle varer til alle typer priser". Som et resultat av å endre verdiene til Synonym- og Verktøytips-egenskapene, kommandovisningen
i kommandogrensesnittet er endret.

Endret kommandorepresentasjon, verktøytips, hjelp

På dette tidspunktet har vi opprettet en kommando og konfigurert plassering, tilgjengelighet og presentasjon. Alt vi trenger å gjøre er å implementere funksjonaliteten til teamet, det vil si handlingene som teamet skal utføre. For å definere handlingene som skal utføres, må utvikleren implementere prosedyren på et innebygd språk. Prosedyren må være plassert i en kommandomodul, som kan nås via hyperkoblingen Åpne egenskaperKommandomodul.

Når du bytter til et administrert grensesnitt, har logikken for å jobbe med noen objekter som har vært kjent siden 7.7 endret seg. I et klassisk grensesnitt for brukerinteraksjon designet programmereren et skjema, spesifiserte datafelter, knapper, etiketter og andre elementer for samhandling med brukere. Deretter valgte jeg hvilken form hendelser objektet skulle svare på og skrev en hendelsesbehandler. Alt er logisk og forståelig; det administrerte grensesnittet inkluderer nå konseptet med en kommando. Kommandoen starter en viss algoritme, et sett med handlinger som programmereren foreskriver i kommandomodulen. Du kan kalle en kommando fra et administrert skjema, men hvordan kontrollelementet som vil kalle kommandoen vil se ut avhenger av hvor programmereren drar kommandoen og inn i hvilken gruppe elementer han plasserer den.

Jeg tror vi kan si at i 8.1, og til og med i 7.7, var konseptet som følger: utformingen bestemmer logikken til skjemaet, i det administrerte grensesnittet ble logikken til arbeidet plassert i spissen for bordet, dannelsen av utseendet til skjemaet ble overført til skuldrene til 1c-motoren. Dermed avhenger den visuelle utformingen av elementet som vil starte kommandoen for utførelse av hvor programmereren dro kommandoen

Som du kan se, kan dette være en "3D-knapp", en flat knapp på verktøylinjen eller et rullegardinmenyelement.

Men hvis du ser på skjermbildet, kan du se at i tillegg til "Team1", har skjemaet knappene "Send og lukk", og i menyen gikk laget vårt tapt i mange andre som vi ikke har programmert eller opprettet. Dette er standard 1c-kommandoer; de finnes i skjemaer, kataloger, dokumenter og andre 1c-objekter. Noen kommandoer er vanlige, noen er spesifikke kun for en bestemt type objekt.

Kommandoer kan være på 3 steder i konfigurasjonen:

Skjemakommandoer (administrerte) er i skjemamodulen

Kommandoer for et spesifikt konfigurasjonsobjekt er plassert i den tilsvarende grenen

Kommandoer som ikke er knyttet til spesifikke konfigurasjonsobjekter er generelle kommandoer som er plassert i General-grenen - generelle kommandoer (hvem ville trodd).

Som i vanlige prosedyrer og funksjoner, kan 1c-kommandoer sendes verdier for behandling. Verdien som sendes er angitt i det tilsvarende feltet for kommandoegenskapene:

Hvor kommandoen skal vises er angitt i "Gruppe"-feltet. For eksempel, hvis vi spesifiserer som vist på skjermbildet, vil kommandoen vises i systemet slik:

Da jeg først møtte kommandogrensesnittet, kunne jeg i lang tid ikke forstå hvorfor dokumentet jeg opprettet ikke ble vist i grensesnittet til undersystemet jeg spesifiserte, til tross for at de administrerte skjemaene ble skrevet og alle rettighetene var satt. Årsaken til dette var avmerkingsboksen "Bruk standardkommandoer" fra fanen "Kommandoer". Ikke glem henne.

Generelle kommandoer- en plattformmekanisme designet for å beskrive ofte brukte kommandoer i 1C 8.3-konfigurasjonen.

Generelle eller globale kommandoer er praktiske å bruke hvis én kommando er nødvendig for mange konfigurasjonsobjekter. For eksempel en knapp for å vise dokumentunderordningsstrukturen, en kommando for å vise dokumenttransaksjoner, en rapport om objektendringer.

Du kan sende parametere til kommandoen, for eksempel fra formen til hvilket objekt det kalles.

Oppsett og egenskaper for en generell kommando i 1C

Å legge til en ny kommando og tilpasse det generelle skjemaet er ganske enkelt; la oss se på denne prosessen mer detaljert:

Få 267 videotimer på 1C gratis:

  • Gruppe— plassering av den fremtidige kommandoen på grensesnittet.
  • Kommandoparametertype— definerer et sett med objekter der den fremtidige kommandoen skal vises.
  • Parameterbruksmodus- spesifiserer muligheten til å sende en eller flere verdier som en kommandoparameter.
  • Endrer data— hvis avkrysningsboksen er merket, vil skjemaet bli beregnet på nytt fra serveren når kommandoen utføres.
  • Kommandomodul— kommandoutførelsesbehandler, utført på klienten.

Eksempel på kommandomodul:

&På klientprosedyren Kommandobehandling(kommandoparameter, kommandoutførelsesparametere) Hvis verdien er fylt(kommandoparameter) så OpenForm( "Generell form. Struktur for underordning", Ny struktur ("valgobjekt", kommandoparameter), kommandoutførelsesparametere. Kilde, parametere for kommandoutførelse. Kilde. Unikitetsnøkkel, parametre for kommandoutførelse. vindu) ; Slutt om ; Slutt på prosedyre

Her er CommandParameter objektet som påkaller kommandoen. Og i kommandoutførelsesparametrene indikerer strukturen som beskriver kilden (det kalte skjemaet), vinduet (klientapplikasjonsvinduet), unikhet om det skal søkes etter et allerede åpent skjema eller ikke.

1C kommandogrupper