1C-behandling for automatisk oppretting av kataloger. Regnskapsinformasjon

Last ned universell objektbehandling 1C 8.3.

I en vanlig applikasjonsversjon av 1C-plattformen 8.2 og 8.1 (på vanlige skjemaer) var det en så fantastisk behandling som "Universelt utvalg og behandling av objekter". Det forenklet livet betraktelig for programmerere og programadministratorer.

Den samme 1C-behandlingen har dukket opp for en administrert applikasjon (8.3 og 8.2). Før dette, i 1C 8.3, var det nødvendig å nøye seg med standardbehandling av gruppeendringer til detaljer, men det løser ikke alle oppgavene som kreves i det daglige arbeidet til en 1C-bruker eller programmerer.

Søk og utvalg av objekter

Etter å ha lastet ned behandlingen, kan vi kjøre den som en ekstern. For de som ikke vet, gjøres dette gjennom "Fil" - "Åpne"-menyen. Behandlingsvinduet vises:

På den første fanen må vi velge objektet vi skal jobbe med. Og så, i "Søkeobjekt"-feltet er dokumentet "Salg (handlinger, fakturaer)" allerede valgt. Dette er fordi dette objektet allerede er valgt før. Behandling kan huske.

Ved å klikke på "Sett opp valg"-knappen, kan vi angi valg for nesten alle felt av objektet:

Hvis utvalgsdataene ikke er nok, kan du velge de nødvendige objektene ved hjelp av en egendefinert spørring. For å gjøre dette, flytt "Valgmodus"-bryteren til riktig posisjon.

Etter alle innstillingene må objekter velges. Klikk på "Finn objekter"-knappen og se på valgresultatet:

Bearbeide elementer

La oss gå til "Behandler"-fanen:

Kanskje bare de tre første behandlingene er verdig en egen kort gjennomgang. Arbeidet til resten er tydelig ved navn og de krever ingen innstillinger.

Vilkårlig algoritme

Behandlingen "Custom Algorithm" lar deg skrive et handlingsprogram på objekter på det interne 1C-språket. Behandling krever programmeringskunnskaper og beskrivelsen er verdig en egen artikkel. Med dens hjelp kan du gjøre praktiske handlinger på gjenstander:

Sette opp detaljer

Behandlingen "Innstillingsdetaljer" lar deg endre detaljene for utvalgte dokumenter eller kataloger, samt informasjonsregistre. Ganske nyttig, og noen ganger rett og slett nødvendig behandling. La oss for eksempel erstatte dokumentvalutaen i de valgte dokumentene:

Det bør umiddelbart bemerkes at behandlingen kan utføres umiddelbart, eller du kan lagre innstillingen. Denne innstillingen vil vises i behandlingstreet.

Omnummerering av objekter

"Renummerering av objekter"-behandlingen lar deg derfor omnummerere dokumenter eller endre katalogkoder. Behandling gir et rikt sett med handlinger. For eksempel bestemte du deg for å endre prefikset til dokumentene du valgte:

La oss nå se hva vi kan gjøre med de lagrede innstillingene. Det viser seg at vi kan kjøre i en batch, overføre det til vinduet "Selected Processings":

Nå kan vi sekvensielt utføre de valgte innstillingene ved å klikke på "Kjør" -knappen.

Basert på materialer fra: programmist1s.ru

Merk følgende! Dette er en introduksjonsversjon av leksjonen, hvis materiell kan være ufullstendig.

Logg inn på siden som student

Logg inn som elev for å få tilgang til skolemateriell

Opprette 1C-konfigurasjoner: legge til behandling

Vi fortsetter å studere det grunnleggende om å lage konfigurasjoner på 1C.

I denne leksjonen vil vi lage en ny prosessering sammen, og deretter skrive kommandoer for den som viser hvordan du arbeider med "Ansatte"-katalogen.

Vi går tilbake til konfiguratoren og åpner konfigurasjonstreet.

Legger til en ny behandling

Høyreklikk på delen "Behandler" og velg "Legg til":

Vinduet for å opprette en ny behandling åpnes. La oss gå til "Basic"-fanen og spesifisere "Directory Processing" som behandlingsnavn:

Opprette et skjema for behandling

La oss gå til «Skjemaer»-fanen, klikk på det grønne plusstegnet for å legge til et nytt skjema (visuell representasjon av vår behandling):

En konstruktør for skjemaoppretting har dukket opp. La oss la alt stå som standard og klikk "Fullfør":

Et nytt skjema er åpnet:

Opprett en ny kommando for skjemaet

La oss gå til fanen "Kommandoer" -> "Skjemakommandoer":

La oss legge til en ny kommando (grønt plusstegn):

Og i egenskapene til den nye kommandoen vil vi indikere navnet "OutputAllEmployees":

I egenskapene klikker du på forstørrelsesglasset ved siden av "Handling"-feltet for å angi kommandobehandleren. Velg alternativet for å opprette en behandler "På klient" og klikk "OK":

Vi ble overført til skjemamodulen i behandlerprosedyren for kommandoen "Output All Employees":

Skrive kommandobehandlerkoden

Nå er oppgaven vår å skrive kode på det interne 1C-språket som vil iterere gjennom alle elementene i "Ansatte"-katalogen.

Jeg vil si med en gang at denne koden ikke kan skrives direkte i "Output All Employees"-prosedyren, siden den utføres på klienten (vær oppmerksom på den spesielle linjen før "&OnClient"-prosedyren). Å prøve å lese data fra databasen i en klientprosedyre vil alltid resultere i en feil (bare husk dette for nå).

La oss derfor legge til en prosedyre som denne på slutten av modulen:

Vær oppmerksom på at før det indikerte jeg "&OnServer"-attributtet. Dette betyr at det vil bli utført på serveren, noe som betyr at vi kan lese katalogdata fra den.

La oss nå organisere en oppfordring til denne prosedyren fra klienten "OutputAllEmployees":

Her er logikken slik:

  1. Brukeren kaller kommandoen "Output All Employees" (for eksempel ved å klikke på en knapp, som vi egentlig ikke har ennå)
  2. Kommandoen starter behandlerprosedyren med samme navn "Output All Employees" på klienten (tross alt er knappen, og derfor kommandoen, på klienten)
  3. Klientprosedyren "OutputAllEmployees" ringer til serverprosedyren "OutputAllEmployeesOnServer"
  4. Serverprosedyren "Output All Employees on Server" leser katalogdata fra databasen og viser dem i meldingsvinduet

Alt vi har igjen er å skrive koden for "Output All Employees on Server"-prosedyren, som går gjennom elementene i "Employees"-katalogen og viser dem i meldingsvinduet.

Det er faktisk ikke vanskelig. Å krysse alle kataloger i 1C er det samme. Dette betyr at etter å ha lært å gjøre dette nå med "Ansatte"-katalogen, kan du gjøre det samme med alle andre kataloger.

For å få tilgang til katalogdata brukes en leder, som du får tilgang til på følgende måte:

Manager = Kataloger. Ansatte;

I denne setningen er nøkkeldelen til høyre for likhetstegnet. Til venstre er bare en variabel som vi lagrer lederen inn i for å jobbe videre med den. Navnet på denne variabelen kan ikke bare være "Manager", men også en hvilken som helst annen - til og med "Trommeslager".

Hva er en katalogbehandler? En leder er ikke selve katalogdataene. En leder er et programobjekt (du kan tenke på det som en svart boks) som vi kan gjøre noe med katalogen gjennom.

Katalogbehandleren er som et lag mellom koden vår og katalogdataene. Og det viser seg at hvis vi trenger å lese alle elementene i katalogen, kan vi ikke gjøre dette direkte. Vi kan bare spørre laget vårt mellom oss og katalogen, det vil si sjefen, om dette.

For å gjøre dette, må du kalle "Velg" -metoden innebygd i manageren. Den kalles med en prikk etter navnet på variabelen som lederen er lagret i, og returnerer en samling katalogelementer:

Manager = Kataloger. Ansatte; Eksempel = Manager. Velg() ;

Hva er en prøve? Et utvalg (igjen, dette er bare navnet på variabelen som vi lagrer resultatet av "Select"-metoden i, og det kan være noe annet) er en samling, men ikke det samme som for eksempel en matrise eller en liste over verdier.

Utvalget er et objekt - igjen tenk på det som en boks - men ennå ikke selve dataene. Det særegne ved dette objektet er at det kan iterere gjennom elementene i katalogen vi trenger. Dessuten sorterer det dem ut dynamisk. Dette betyr at bruk av sampling ikke leser alle katalogelementene samtidig, men velger dem i deler fra databasen.

Denne tilnærmingen lar deg raskt gå gjennom store lister med kataloger ved å bruke utvalg, uten å laste dem alle inn i datamaskinens minne på en gang.

For å få den neste databiten fra en prøve, må du kalle «Neste»-metoden innebygd i prøven. Mottak av databiter (en del tilsvarer ett katalogelement) skjer vanligvis i en løkke:

Når dataene (katalogelementene) i utvalget går tom, vil "Neste"-metoden returnere False og syklusen vil stoppe.

Etter hvert kall til "Neste"-metoden (forutsatt at den returnerte "True"), vil utvalget inneholde alle feltene med data for bare lesekatalogelementet, som kan nås med navn adskilt med en prikk:

Det viser seg i ett øyeblikk - vi jobber med dataene til bare ett av elementene i katalogen. Og her kan vi enten umiddelbart vise dem til brukeren (ved å bruke «Varsle»-metoden) eller for eksempel sette dem i en annen samling (array) slik at vi kan gjøre noe med dem på en gang. Alt avhenger av problemet vi løser.

I 1C er det mange konfigurasjonsobjekter som på en eller annen måte er knyttet til regnskap - det vil si at de lar det vedlikeholdes - kataloger, dokumenter, registre og så videre. Men hva skal du gjøre når du trenger å lage et program på 1C-språket som ikke har noe med regnskap å gjøre, men som kreves for programmererens offisielle behov eller for å gjøre brukerens arbeid enklere?

Et godt eksempel er batchbehandling av dokumenter. Dette er et verktøy som lar deg holde/endre/skrive ut ikke bare ett dokument, men mange samtidig, i henhold til en valgt liste. Enig - veldig praktisk.

For å implementere verktøy i 1C for å lette arbeidet til en bruker eller administrator av en 1C-database, er det et spesielt konfigurasjonsobjekt - 1C-behandling. 1C-behandling kan være en del av konfigurasjonen eller distribueres som separate filer (da kalles behandlingen ekstern 1C-behandling).

1C-behandling lar deg utvikle dine egne verktøy både for 1C-programmering og for å sette opp eller administrere 1C. Takket være dette er det hundrevis av standardbehandlinger på Internett (utviklet av 1C) og tusenvis av amatørbehandlinger på Internett.

Det er på tide å prøve å gjøre 1C-behandling selv. Detaljer nedenfor.

Hva er 1C-behandling og hvordan brukes de?

En liten introduksjon. De som allerede er kjent med 1C-behandling kan hoppe over dette punktet.

Så prosessering er et verktøy skrevet av en programmerer. Den kan ikke gjøre noe på egen hånd og lagrer ikke data til 1C-databasen, i motsetning til for eksempel et dokument - som er lagret i databasen og kan registreres og behandles uavhengig, uten ekstra programmering. 1C-behandlingsfunksjoner avhenger helt av programmereren som skrev den.

Basert på funksjonalitet kan 1C-behandling deles inn i tre typer:

  • Hjelpebehandling av 1C-konfigurasjon
    Hver typisk konfigurasjon har mange behandlinger. De brukes som ekstra grensesnittskjemaer (brukerskrivebord, konfigurasjonsoversikt), som en del av konfigurasjonsfunksjonaliteten (legge inn startsaldo, innledende fylling av databasen, avslutte måneden).
  • Objekter (klasser)
    Alle som kan andre programmeringsspråk er allerede kjent med begrepet objekt. Dette er en viss klasse som har til disposisjon et sett med "variabler" og "funksjoner". Dens skjønnhet ligger i dens selvforsyning - det vil si at alt som trengs for å utføre funksjonene er samlet i en klasse.

    I 1C kan klasser opprettes ved hjelp av 1C-behandling: "variabler" - 1C-behandlingsdetaljer, "funksjoner" - funksjoner i 1C-behandlingsobjektmodulen (Eksportmerke for offentlige funksjoner). Bekvemmeligheten ligger i både å lage en forekomst av en slik klasse og flytte den mellom konfigurasjoner.

    Et godt eksempel er behandling av 1C-utskrift (ekstra trykte skjemaer), som du finner i standardkonfigurasjoner i katalogen Ytterligere trykte skjemaer. De har alltid en offentlig Print()-funksjon og standardisert bruk.

    Vær oppmerksom på at slike "klasser" selvfølgelig ikke er direkte assosiert med data - de må bestås eller leses i "konstruktøren".

  • Ytterligere bruker- og administrasjonsverktøy
    Det er mange generiske verktøy tilgjengelig for bruk av en typisk DBA som ikke er knyttet til en bestemt konfigurasjon. Slike verktøy er ofte ikke inkludert i standard konfigurasjonspakken og distribueres separat (vanligvis på ITS-disker). I tillegg til standard, legger programmerere ut mange av sine egne verktøy på Internett.

    Eksempler inkluderer: 1C-behandling av arbeid med kommersielt utstyr, 1C-oppgavekonsoll (viser en liste over oppgaver som kjører på en tidsplan), 1C-spørringskonsoll (lar deg utføre alle spørringer uten programmering), etc.

Hvor er 1C-behandling plassert?

Så det er 1C-behandling innebygd i konfigurasjonen og ekstern 1C-behandling.

Innebygd 1C-behandling brukes situasjonsbestemt av programmereren som utvikler konfigurasjonen - det vil si at de enten kan vises i brukermenyen (del av Service-menyen), eller åpnes programmatisk fra andre 1C-objekter (for eksempel fra et katalogskjema ).

På en eller annen måte, under administratorrettigheter kan du åpne en liste over behandlingsalternativer innebygd i konfigurasjoner og hvilke som helst av dem, hvis den kan åpnes (det vil si hvis den har et skjermskjema og programmereren ikke har satt en lås for å åpne den ). For å gjøre dette, bruk Operations/Processing-menyen i den tykke klienten, bruk menyen Alle funksjoner/Processing i tynnklienten. Hvis du ikke vet hvordan du finner disse menyene - .

I konfiguratoren er 1C-prosesseringen innebygd i konfigurasjonen plassert i Processing-grenen.

Ekstern 1C-behandling åpnes både i konfiguratoren og i Enterprise ved hjelp av Fil/Åpne-menyen.

Sikkerhet. Følg med på . 1C-behandlingsobjektmodulen kjøres automatisk når du åpner 1C-behandling i Enterprise-modus. Derfor, hvis du åpner en behandling skrevet av en angriper, kan den utføres automatisk uten spørsmål.

Hvordan gjøre 1C-behandling selv

Så la oss komme ned til den mest interessante delen - algoritmen for å lage 1C-behandling selv fra bunnen av.

Behandling 1C 8.3— konfigurasjonsobjekter som brukes til å endre og transformere informasjon i databasen.

La oss se på hvordan du lager den, dens egenskaper, hvordan den skiller seg fra en rapport, hvordan ekstern behandling skiller seg fra intern behandling.

Det er ingen spesielle funksjoner å merke seg i opprettelsen av behandlingen. All funksjonalitet er individuell og leveres av utvikleren av 1C 8.3 eller 8.2.

Behandlingen har sine egne detaljer, som lagrer verdier i RAM for varigheten av objektets "levetid". Eller, om ønskelig, kan verdiene til detaljene lagres i .

Få 267 videotimer på 1C gratis:

En av de fine egenskapene til behandling er tilgjengeligheten når du kobler til en ekstern tilkobling. Det vil si at når du kobler til 1C, kan du programmatisk opprette et objekt, fylle ut detaljene og kalle eksportprosedyren fra modulen. Et typisk eksempel på dette er datautveksling i modus: en ekstern kilde kobler seg til databasen, fyller ut innstillingene - objektdetaljer og aktiverer nedlastings-/opplastingsprosedyren. Eksempelkode:

Objekt = prosesser. UniversalXML-datautveksling. Skape() ; En gjenstand. Alternativer = Alternativer;

En gjenstand. Utfør Upload() ;