Faglig udvikling af interfaces og formularer i 1C.

Vi har undervist siden 2008, vi er sikre på kvaliteten af ​​vores kurser og giver vores standard 60 dages garanti.

Det betyder, at hvis du er begyndt at tage vores kursus, men pludselig ombestemmer dig (eller f.eks. ikke har mulighed), så har du 60 dages frist til at træffe en beslutning – og hvis du vender tilbage, returnerer vi 100,- % af betalingen.

Ratebetaling

Vores kurser kan betales i rater eller i rater, herunder uden renter. Hvori Du får øjeblikkelig adgang til materialer.

Dette er muligt ved betaling fra enkeltpersoner i mængden af ​​3.000 rubler. op til 150.000 gnid.

Alt du skal gøre er at vælge betalingsmetoden "Betaling via Yandex.Checkout". Dernæst, på betalingssystemets hjemmeside, vælg "Betal i rater", angiv betalingsperioden og beløbet, udfyld en kort formular - og om et par minutter vil du modtage en afgørelse.

Betalingsmuligheder

Vi accepterer alle større betalingsformer.

Fra enkeltpersoner– betalinger fra kort, betalinger med elektroniske penge (WebMoney, YandexMoney), betalinger via internetbank, betalinger via kommunikationsbutikker og så videre. Det er også muligt at betale for ordren i rater (i rater), herunder uden yderligere renter.

Begynd at afgive din ordre – og i andet trin kan du vælge din foretrukne betalingsmetode.

Fra organisationer og individuelle iværksættere– kontantfri betaling, leveringsdokumenter leveres. Du indtaster en ordre, og du kan straks udskrive en faktura til betaling.

Oplæring af flere medarbejdere

Vores kurser er designet til individuel træning. Gruppetræning på ét sæt er ulovlig distribution.

Hvis en virksomhed skal uddanne flere medarbejdere, tilbyder vi typisk "tillægssæt", der koster 40 % mindre.

For at bestille et "ekstra sæt" vælg 2 eller flere kursussæt i formularen, startende fra andet sæt prisen for kurset vil være 40% billigere.

Der er tre betingelser for at bruge yderligere sæt:

  • Du kan ikke kun købe et ekstra sæt, hvis mindst et almindeligt sæt ikke er købt før (eller sammen med det)
  • Der er ingen andre rabatter for yderligere sæt (de er allerede nedsat, det ville være en "rabat på en rabat")
  • kampagner er ikke gyldige for yderligere sæt (for eksempel kompensation på 7.000 rubler) af samme grund
Professionel udvikling af grænseflader og formularer i 1C:Enterprise 8.3 (2016)
Smukke, behagelige og funktionelle former er et tegn på professionalisme. "Hårde programmører" behandler ofte dette med foragt. Men det er som at gå rundt i snavset, krøllet tøj – man kan være indenfor vidunderligt menneske, men ingen vil sætte pris på det længere.

Hvem er dette kursus for: Entry level programmører. Programmeringsgrænsefladeopgaver vurderes at have et lavt kompleksitetsniveau - derfor skal de ofte løse dem. De grundlæggende teknikker til programmering af grænsefladeopgaver mangler dog endnu at blive udviklet. Erfarne programmører, der af den ene eller anden grund er ukendte eller dårligt fortrolige med den administrerede grænseflade. Mange af dem er fjendtlige over for den administrerede grænseflade. Men før eller siden skal dette gøres. Statistik: Manual - 295 sider PDF A4 Video på den sædvanlige grænseflade - 16 lektioner. timer Video på en administreret grænseflade – 28 timer. timer 25 lektier Kurset er ikke en præsentation af eksisterende bøger og kurser. De fleste af kursets eksempler er komplette mekanismer, der kan integreres i dine databaser. Minimumskrav deltagere - kendskab til 1C programmering basis niveau.

SpoilerTarget"> Spoiler: Hvad vi vil studere

Tre grænseflader: Normal, Administreret, Taxa.
Strukturen og logikken i driften af ​​formularer, både administrerede og konventionelle.
Du lærer at udvikle former af enhver kompleksitet.
Hvad vil vi ellers se på: Udvælgelse fra mapper ved hjælp af en listeformular eller ved hjælp af speciel behandling
Forskellige tilbagetrækningsmetoder Yderligere Information til formularer og dynamiske lister
Placering af lister over underordnede mapper og informationsregistre på formularen Organisering af træk og slip mellem lister
Forskellige måder at udfylde og opdatere data på i tabelsektioner
Oprettelse af komplekse udfyldningsformularer med yderligere filtre.
I den normale grænseflade vil rapportbyggeren blive brugt til dette, og i den administrerede grænseflade vil datasammensætningssystemet blive brugt.
Visning af billeder på formularer
Upload af filer til infobasen og mappestrukturen på serveren
Brug baggrundsjob til databehandling
Konfiguration og brug af egenskabsmekanismen, mekanismen for yderligere detaljer og information
Programmatisk placering af felter på en formular
Udvikling af en grænseflademenu og organisering af grænsefladeskift for både den almindelige grænseflade og den administrerede
Arbejde med administrerede grænsefladekommandoer og funktionelle indstillinger
Arbejde med navigationslinks
Programmering uden brug af en modalitet
Programmatiske måder at åbne og konfigurere formularer på
Organisering af indledende fyldning af objekter i processen med deres skabelse

Denne artikel fortsætter serien af ​​artikler "Første trin i 1C-udvikling." Materialet forudsætter, at du allerede har læst vores tidligere artikler om grænsefladen. I samme artikel vil vi fortsætte vores bekendtskab med de nye funktioner i Taxi-grænsefladen og overveje, hvilke interessante innovationer administrerede formularer har modtaget i denne grænseflade.

Anvendelighed

Artiklen diskuterer "Taxi"-grænsefladen for konfigurationen udviklet på 1C 8.3.5.1098-platformen. Tilføjelser til de aktuelle platformsudgivelser (8.3.11) er givet i konklusionen. Derfor er al information relevant.

Nyt i administrerede formularer i 1C:Enterprise 8.3

Udviklere af 1C:Enterprise 8.3 platformen i Endnu engang Vi arbejdede grundigt på brugernes bekvemmelighed ved at arbejde med administrerede formularer.

Linje input

Tidligere søgte systemet efter passende elementer i indtastningsfelterne, når de indtastede indledende tegn fra tastaturet.

Men ofte skal brugere søge ikke kun efter de første tegn i navnet, men også på et vilkårligt sted i navnet.

I konfiguratoren for referencemetadataobjekter, for at konfigurere input for linje, blev der oprettet en separat "Input Field"-fane:

Den præsenterer følgende muligheder for at generere en valgliste, når du indtaster en linje:

  • brug af fuldtekstsøgning;
  • søg efter forekomst af en understreng eller ved begyndelsen af ​​en streng;
  • udføre søgninger direkte eller i baggrunden.

I egenskaben "String search method when entering by substring" kan du vælge, om du kun vil søge efter de første tegn i strengen eller i en hvilken som helst del af den.

I brugertilstand ser søgning efter en hvilken som helst del af en streng sådan ud: brugeren indtaster sekventielt tegn fra tastaturet, og systemet udfører søgningen.

Og ikke kun fra de første bogstaver i navnet, men også fra forekomsten af ​​den maskinskrevne linje:

Naturligvis kan brug af søgning på en hvilken som helst del af en streng føre til forringelse af systemets ydeevne, især med en stor mængde data.

I filtilstand, mens brugeren skriver en linje, udføres søgningen kun i baggrunden, hvis en anden baggrund eller planlagt opgave ikke kører på det tidspunkt.

Hvis den passende indstilling er indstillet, kan fuldtekstsøgning bruges, når data indtastes i indtastningsfeltet.

Under en fuldtekstsøgning vil både hele ord og strenge, hvori de indtastede tegn er en del af hele ord, blive fundet (* fuldtekstsøgeoperatoren bruges).

For eksempel indtaster brugeren følgende dele af ord i inputfeltet, systemet viser de muligheder, der findes ved hjælp af fuldtekstsøgemekanismen i et pop-up-vindue:

Resultaterne af en fuldtekstsøgning svarende til den indtastede søgestreng er vist i figuren:

Lad os huske, at det i platform 8.3 blev muligt at omdefinere repræsentationen af ​​en referencedatatype ved hjælp af ViewGettingProcessing- og ViewGettingFieldsProcessing-procedurerne i objekthåndteringsmodulet.

Når du bruger denne funktionalitet og linjeinput sammen, er der følgende funktion.

Ovenstående handlere påvirker ikke præsentationen af ​​værdier i valglisten - listen afspejler den underliggende repræsentation af objektet.

Men når det er valgt, viser feltet den forventede tilsidesatte repræsentation af objektet.

Klik på billedet for at forstørre.

Udviklerne mener, at der ikke er nogen fejl i denne adfærd på platformen, og at det er mere værdifuldt at vise, hvorfor et bestemt resultat blev fundet (fremhæv f.eks. den delstreng, som objektet blev fundet med) end at vise en repræsentation af den tilsvarende værdi adskilt fra søgeresultatet.

Rækkeindtastningsegenskaberne diskuteret ovenfor blev sat på niveauet for hele metadataobjektet.

Udvikleren kan tilsidesætte disse egenskaber på et bestemt sted i konfigurationen.

For eksempel ved at bruge AutoSelect- og EndTextInput-hændelseshandlerne til et specifikt inputfelt eller bruge SelectionGetDataProcessing-hændelseshandleren i objekthåndteringsmodulet.

Til dette formål er der i disse procedurer en parameter med navnet Structure type Parameters, hvis egenskaber indeholder metoden til at søge efter en streng, tilstanden til at opnå udvælgelsesdata og indstilling af brugen af ​​udvælgelsesdata.

Klik på billedet for at forstørre.

Rulleliste til indtastningsfelt

I platform 8.3 fik rullelisten til inputfeltet yderligere funktionalitet for at forbedre systemets anvendelighed.

Denne liste kan nu vise historikken for tidligere valgte værdier. En liste med historik vises på skærmen, når markøren er placeret i et felt, når der trykkes på knappen Vælg fra liste, eller der trykkes på pil ned-knappen på tastaturet.

Du kan aktivere visning af historik for inputfelter, der er knyttet til data såsom bibliotek, dokument, forretningsproces, opgave, plan over karakteristikatyper, plan for beregningstyper, kontoplan og udvekslingsplan. Konfiguratoren giver en egenskab til dette formål, placeret på fanen "Input Field":

Klik på billedet for at forstørre.

Brugen af ​​historik kan tilsidesættes for en specifik objektattribut eller formelement.

Desuden, hvis brugeren ikke finder elementet af interesse i listen over inputfeltet, kan han klikke på knappen "Vis alle" for at åbne listeformularen for at vælge et element fra hele biblioteket.

Også på listen over inputfeltet er der kommandoen "Opret et nyt objekt". Dette åbner den nye elementformular.

I denne formular udfylder brugeren de påkrævede felter. Efter optagelse og lukning af formularen vil et link til det nyoprettede element blive indsat i indtastningsfeltet.

En typisk skabelon til brug af kommandoen "Opret et nyt element" ser sådan ud. Brugeren indtaster et navn ønskede element i indtastningsfeltet.

Finder systemet ikke et sådant element i databasen, vil der blive vist en meddelelse om dette. Når du har klikket på knappen i listen, åbnes en ny elementformular med et udfyldt navn på skærmen.

De overvejede innovationer gør det muligt at øge hastigheden for indtastning af information i systemet.

Gemmer indstillinger for dynamisk liste

I Platform 8.3 kan dynamiske listeindstillinger gemmes automatisk. For at gøre dette skal du i konfiguratoren for de nødvendige formularoplysninger indstille egenskaben "Automatisk lagring af brugerindstillinger". Som standard er denne indstilling aktiveret, når du opretter en liste.

Rodkonfigurationselementet har nu en ny egenskab – Lagring af brugerindstillinger for dynamiske lister.

Denne egenskab er valgt fra listen over indstillingslagre defineret i konfigurationen.

Klik på billedet for at forstørre.

Opsætning af lister i brugertilstand hentes via det tilsvarende menupunkt:

Formularens udseende ligner opsætning af rapporter.

Klik på billedet for at forstørre.

De betingelser, som listen blev valgt efter, vises automatisk nederst i indstillingerne. Disse indstillinger vil blive inkluderet i listeformularen.

I konfiguratortilstanden skal du udfylde tabelegenskaben i formularen Brugerindstillinger Gruppe for at gøre dette.

Det skal angive separat gruppe formular, inden for hvilke elementer vil blive tilføjet for at vise markeringen.

Med denne indstilling vil formularen have felter i form af "hurtige valg".

Klik på billedet for at forstørre.

Hvis brugeren har tilpasset listen, gemmes indstillingerne automatisk, og listen vil have samme udseende, når den åbnes igen.

Den dynamiske listevisningstilstand (liste, træ, hierarkisk liste) gemmes sammen med indstillingerne for formularelementerne.

For én liste kan en bruger have flere gemt forskellige muligheder indstillinger.

Hvis konfiguer indstillet til "Brug ikke", så for en dynamisk liste, hvor bilagsjournaltabellen er angivet som hovedtabel, genereres knappen "Opret" automatisk i form af en undermenu med en liste over dokumenter medtaget i journalen.

Klik på billedet for at forstørre.

Dette forenklede brugerens oprettelse af nye dokumenter fra journalformularen. Det er også blevet muligt hurtigt at oprette separate knapper på formularens kommandopanel for at oprette et nyt dokument af en bestemt type.

Til dette formål blev standardkommandoen CreateByParameter oprettet. Hvis denne kommando er tildelt en knap på formularen, bliver egenskaben Parameter tilgængelig, hvor du kan vælge den type dokument, der skal oprettes, når der klikkes på denne knap.

Klik på billedet for at forstørre.

I brugerdefineret tilstand vil denne knap se sådan ud:

Klik på billedet for at forstørre.

Fordi Materialet i artiklen er beskrevet for platform 8.3.5, så opdaterer vi det.

  • Før version 8.3.7 var strenginput ikke hurtigt nok, så denne udgivelse ændrede datastrukturen i fuldtekstsøgeindekset, hvilket førte til øget hastighed, når systemet kørte på steder, hvor denne mekanisme bruges. Noter det nyt format fuldtekstsøgning bruges, når kompatibilitetstilstanden er indstillet til "Brug ikke". I kompatibilitetstilstand med version 8.3.6 er adfærden ikke ændret. Vi bemærker også, at i næste udgivelse platform 1C (8.3.8) er mekanismen for indtastning efter linje og ved brug af den dynamiske listesøgelinje også blevet forbedret, og nu giver den søgning efter data, der endnu ikke er inkluderet i fuldtekstsøgningen. Denne adfærd er ikke blevet observeret før.
  • Den administrerede formularindtastningsliste har også modtaget nogle forbedringer. I version 8.3.8 begyndte den automatisk at justere sin bredde til bredden af ​​de viste data plus tasterne Hjem Og Ende begyndte at blive behandlet direkte i indtastningsfeltet. Disse forbedringer gør det nemmere at bruge drop-down-indtastningsfeltet.
  • Mekanismen til at gemme dynamiske listeindstillinger er også blevet forbedret, og i version 8.3.6 er formtabeludvidelsesegenskaberne for den dynamiske liste Periode og Display nu gemt i de samme sektioner som andre dynamiske listeindstillinger, hvilket i høj grad forenkler udviklerens arbejde. med dem. De er nu tilgængelige i den administrerede formularhåndtering WhenLoadingUserSettingsOnServer(), hvilket ikke var tilfældet før.

Det er her, vi vil fuldende vores bekendtskab med administrerede formularer i Taxi-grænsefladen, men i den næste artikel vil vi stifte bekendtskab med de nye funktioner introduceret af 1C:Enterprise-platformen version 8.3.

Interfaceudvikling i 1C består af to dele - udvikling af en menu eller desktop og udvikling af 1C skærmformularer. De vinduer, som brugeren arbejder med i 1C, kaldes 1C-skærmformularer eller blot 1C-formularer.

Brugere i programmet arbejder med 1C formularer. Desuden ser brugerne kun 1C-formularer. Ud fra et synspunkt om brugervenlighed i programmet er dette et af de vigtige elementer. Samtidig kan du spilde mere tid på at udvikle 1C-formen end at programmere den mest komplekse algoritme.

En almindelig fejl, som programmører begår, er at forsøge at tegne alt efter deres smag. Gør baggrunden blå og teksten grøn. Eller gul på sort. Eller hvordan han kan lide det i et andet yndlingsprogram.

Desværre er denne tilgang forkert, da brugere er vant til at arbejde med standard 1C-formularer, som er størstedelen i konfigurationen. At tegne din egen cykel og mærke den med Courier-inskriptioner som "Copyright Vasya Pupkin" er tydeligvis i dårlig smag.

Nu skal vi igennem et kort uddannelsesprogram om tegning af 1C-skemaer.

Hvad er Forms 1C

Form 1C er en metode til præsentation for brugeren. Typisk består en formular af en række felter, der skal udfyldes, og et sæt knapper (menukommandoer) til at styre. De fleste 1C-objekter har en 1C-form.

Den 1C tykke klient bruger "almindelige" 1C-former. Det betyder, at programmøren blot tegner en 1C-formular med musen, ligesom det gøres i Visual Studio og andre rammer.

Den tynde 1C-klient og 1C-webklienten bruger 1C-administrerede formularer. Det betyder, at deres størrelse, 1C-form og placeringen af ​​felterne på dem ikke kan ændres med musen. De genereres automatisk baseret på indstillingerne. Vi vil tale om administrerede 1C-formularer i de følgende lektioner.

De fleste former for 1C-standardkonfigurationer i 1C har deres egen standardpræsentation, som er velkendt for brugeren.

Sådan fungerer 1C-formularer

Logikken (rækkefølgen) af brugerarbejde i 1C er som følger:

Således arbejder brugeren altid med 1C-formularer, startende med 1C-listeformen og flytter til 1C-elementformen. Hvis programmøren ikke har tegnet formularerne, genererer 1C formularerne som standard. De er naturligt berøvede perfekt skønhed og perfektion, men de giver dig mulighed for at arbejde.

En automatisk genereret 1C-listeformular indeholder normalt et minimum af felter (henholdsvis kode/navn og dato/nummer). Den automatisk genererede elementformular indeholder normalt alle de felter (detaljer), der er anført fra top til bund.

1C-formularens opgave er at åbne og vente på brugerhandlinger. Når du handler, skal du reagere. Grundlaget for 1C formularmodulet er således hændelseshandlere. Dette er funktioner, der kaldes, når brugeren udfører en handling på 1C-formularen.

Hvor er 1C-formularerne placeret?

I 1C Enterprise-tilstand, når du vælger næsten ethvert 1C-objekt (mappe, dokument, rapport, behandling osv.), åbnes formen for dette objekt for dig.

I konfiguratoren, i konfigurationsvinduet, skal du vælge det objekt, du har brug for, og udvide dens gren for at se undergrenen 1C Form.

En anden mulighed er at åbne objekteditoren (to gange med musen eller placere markøren og Enter) og gå til fanen 1C Forms.

Her er en liste over 1C-formularer. En af de tilføjede 1C-formularer kan tilføjes som standardformularen (1C-listeformular, 1C-elementformular og så videre).

Oprettelse af 1C formularer

At tilføje ny uniform 1C, skal du klikke på knappen Tilføj (Ins på tastaturet). For at indtaste en eksisterende skal du dobbeltklikke på den med musen.

Designeren vil bede dig om at vælge typen af ​​1C-formular - 1C-elementformular, liste. Her kan du tilføje eller fjerne kommandopaneler på 1C-formularen. Oftest efterlades disse indstillinger, som de er, som standard.

1C-formularen åbnes, udfyldt som standard - alle detaljer om 1C-objektet, der findes, er blevet tilføjet til den. Du kan markere den specifikke liste over obligatoriske felter på designerens anden fane.

Unødvendige detaljer kan slettes. For at gøre dette skal du vælge et eller flere felter og trykke på Del.

For at flytte andre detaljer ind i det ledige rum skal du vælge dem på samme måde og trække dem med musen.

For at tilføje nye detaljer til 1C-formularen skal du klikke på knappen på Dataplacering-panelet (menuen Form/Dataplacering), markere afkrydsningsfelterne for de elementer, der skal tilføjes, samt "Indsæt etiketter" og "Placer automatisk" afkrydsningsfelter.

Alternativt kan du blot tilføje en kontrol ved at klikke på den tilsvarende knap på panelet nedenfor eller ved at vælge Form/Indsæt kontrol i menuen. Dobbeltklik på kontrolelementet (feltet) med venstre museknap, og dets egenskaber åbnes. Egenskaben "Data" indeholder navnet på attributten. Her kan du ændre eller tildele den.

Kontrolegenskaber indeholder også kontrolafkrydsningsfelter udseende kontrolelement. Du kan bruge afkrydsningsfelter til at aktivere eller deaktivere valg, rullemenu, ryd, synlighed og tilgængelighedsknapper.

Næsten alle dokumentformularer bruger bogmærker. Tilføjelse af et bogmærke er det samme som at tilføje en anden kontrol (se ovenfor), du skal blot vælge "Panel" kontrol. For at tilføje en panelside skal du højreklikke på den og vælge Tilføj side. Andre kontrolelementer (felter) trækkes og slippes blot på panelsider.

For at ændre størrelsen på 1C-formularen skal du blot flytte markøren til kanten af ​​1C-formularen, trykke på venstre museknap og blot trække i kanten af ​​1C-formularen.

For at Form 1C virker - dvs. gjorde noget som svar på brugerhandlinger - du skal tilføje handlerfunktioner. Indtast egenskaberne for ethvert element (ved at dobbeltklikke på det med venstre museknap) eller selve 1C-formularen (på samme måde i formularhovedet). Helt nederst i egenskabsvinduet er der en sektion kaldet "Begivenheder". Vælg en praktisk begivenhed (for alle felter er dette normalt "Ved ændring", for formularen "Ved åbning") og klik på knappen med et forstørrelsesglas. Dens hændelseshandler åbnes.

For knapper er tilføjelse det samme. Ud over vilkårlige behandlere kan du dog vælge en af ​​standarderne til denne formular (for mappeformularen er disse nogle standardhandlinger, for dokumentformularen - andre). Vælg blot en af ​​standardhandlingerne i egenskaben "Action" eller klik på krydset, hvis du vil oprette din egen handler.