1C-behandling til automatisk oprettelse af mapper. Regnskabsoplysninger

Download universal objektbehandling 1C 8.3.

I en almindelig applikationsversion af 1C-platformen 8.2 og 8.1 (på almindelige formularer) var der en så vidunderlig behandling som "Universal udvælgelse og behandling af objekter". Det forenklede i høj grad livet for programmører og programadministratorer.

Den samme 1C-behandling er dukket op for en administreret applikation (8.3 og 8.2). Før dette var det i 1C 8.3 nødvendigt at nøjes med standardbehandling af gruppeændringer til detaljer, men det løser ikke alle de opgaver, der kræves i det daglige arbejde for en 1C-bruger eller programmør.

Søgning og udvælgelse af objekter

Efter at have downloadet behandlingen, kan vi køre den som en ekstern. For dem, der ikke ved det, gøres dette gennem menuen "Filer" - "Åbn". Behandlingsvinduet vises:

På den første fane skal vi vælge det objekt, vi skal arbejde med. Så i feltet "Søgeobjekt" er dokumentet "Salg (handlinger, fakturaer)" allerede valgt. Dette skyldes, at dette objekt allerede er valgt før. Behandling kan huske.

Ved at klikke på knappen "Opsætning af valg" kan vi indstille valg for næsten ethvert felt af objektet:

Hvis udvælgelsesdataene ikke er nok, kan du vælge de nødvendige objekter ved hjælp af en tilpasset forespørgsel. For at gøre dette skal du flytte kontakten "Valgtilstand" til den passende position.

Efter alle indstillingerne skal objekter vælges. Klik på knappen "Find objekter" og se på udvælgelsesresultatet:

Bearbejdningselementer

Lad os gå til fanen "Behandler":

Måske er det kun de tre første behandlinger, der er en særskilt kort gennemgang værd. Restens arbejde er tydeligt ved navn, og de kræver ikke indstillinger.

Vilkårlig algoritme

Behandlingen "Custom Algorithm" giver dig mulighed for at skrive et handlingsprogram på objekter i det interne 1C-sprog. Bearbejdning kræver programmeringsfærdigheder, og dens beskrivelse fortjener en separat artikel. Med dens hjælp kan du udføre praktiske handlinger på objekter:

Opsætning af detaljer

"Indstillingsdetaljer"-behandlingen giver dig mulighed for at ændre detaljerne i udvalgte dokumenter eller kataloger samt informationsregistre. Ganske nyttig, og nogle gange simpelthen nødvendig behandling. Lad os for eksempel erstatte dokumentvalutaen i de valgte dokumenter:

Det skal straks bemærkes, at behandlingen kan udføres med det samme, eller du kan gemme indstillingen. Denne indstilling vil blive vist i behandlingstræet.

Omnummerering af objekter

Behandlingen "Omnummerering af objekter" giver dig derfor mulighed for at omnummerere dokumenter eller ændre bibliotekskoder. Behandling giver et rigt sæt af handlinger. For eksempel besluttede du at ændre præfikset for de dokumenter, du valgte:

Lad os nu se, hvad vi kan gøre med de gemte indstillinger. Det viser sig, at vi kan udføre i én batch og overføre det til vinduet "Selected Processings":

Nu kan vi sekventielt udføre de valgte indstillinger ved at klikke på knappen "Kør".

Baseret på materialer fra: programmist1s.ru

Opmærksomhed! Dette er en indledende version af lektionen, hvis materialer kan være ufuldstændige.

Log ind på siden som studerende

Log ind som elev for at få adgang til skolens materialer

Oprettelse af 1C-konfigurationer: tilføjelse af behandling

Vi fortsætter med at studere det grundlæggende i at oprette konfigurationer på 1C.

I denne lektion vil vi oprette en ny behandling sammen og derefter skrive kommandoer til den, der viser, hvordan man arbejder med "Medarbejdere"-biblioteket.

Vi vender tilbage til konfiguratoren og åbner konfigurationstræet.

Tilføjelse af en ny behandling

Højreklik på afsnittet "Behandler" og vælg "Tilføj":

Vinduet til oprettelse af en ny behandling åbnes. Lad os gå til fanen "Main" og specificere "Directory Processing" som behandlingsnavn:

Oprettelse af en formular til behandling

Lad os gå til fanen "Formularer", klik på det grønne plustegn for at tilføje en ny formular (visuel repræsentation af vores behandling):

En formularoprettelseskonstruktør er dukket op. Lad os lade alt være som standard og klik på "Udfør":

En ny formular er åbnet:

Opret en ny kommando til formularen

Lad os gå til fanen "Kommandoer" -> "Formularkommandoer":

Lad os tilføje en ny kommando (grønt plustegn):

Og i egenskaberne for den nye kommando vil vi angive navnet "OutputAllEmployees":

I dens egenskaber skal du klikke på forstørrelsesglasset ved siden af ​​feltet "Handling" for at indstille kommandobehandleren. Vælg muligheden for at oprette en behandler "På klient", og klik på "OK":

Vi blev overført til formularmodulet i behandlerproceduren for kommandoen "Output alle medarbejdere":

Skrivning af kommandobehandlerkoden

Nu er vores opgave at skrive kode i det interne 1C-sprog, der vil iterere gennem alle elementerne i "Medarbejdere"-biblioteket.

Jeg vil med det samme sige, at denne kode ikke kan skrives direkte i "Output All Employees"-proceduren, da den udføres på klienten (vær opmærksom på den særlige linje før "&OnClient"-proceduren). Forsøg på at læse data fra databasen i en klientprocedure vil altid resultere i en fejl (bare husk dette indtil videre).

Lad os derfor tilføje en procedure som denne i slutningen af ​​modulet:

Bemærk venligst, at jeg før det angav "&OnServer" attributten. Det betyder, at det vil blive udført på serveren, hvilket betyder, at vi kan læse biblioteksdata fra den.

Lad os nu organisere et opkald til denne procedure fra klienten "OutputAllEmployees":

Her er logikken sådan her:

  1. Brugeren kalder kommandoen "Output All Employees" (for eksempel ved at klikke på en knap, som vi virkelig ikke har endnu)
  2. Kommandoen starter håndteringsproceduren med samme navn "Output alle medarbejdere" på klienten (knappen, og derfor kommandoen, er trods alt på klienten)
  3. Klientproceduren "OutputAllEmployees" foretager et opkald til serverproceduren "OutputAllEmployeesOnServer"
  4. Serverproceduren "Output AllEmployeesOnServer" læser mappedata fra databasen og viser dem i meddelelsesvinduet

Det eneste, vi har tilbage, er at skrive koden til proceduren "Output alle ansatte på serveren", som går gennem elementerne i "Medarbejdere"-biblioteket og viser dem i meddelelsesvinduet.

Det er faktisk ikke svært. At krydse alle mapper i 1C er det samme. Det betyder, at efter at have lært at gøre dette nu med mappen "Medarbejdere", kan du gøre det samme med alle andre mapper.

For at få adgang til biblioteksdata bruges en manager, som tilgås som følger:

Manager = Mapper. Medarbejdere;

I denne sætning er nøgledelen til højre for lighedstegnet. Til venstre er der blot en variabel, som vi gemmer lederen til at arbejde videre med. Navnet på denne variabel kunne ikke kun være "Manager", men også enhver anden - selv "Trommeslager".

Hvad er en directory manager? En manager er ikke selve biblioteksdataene. En manager er et programobjekt (du kan tænke på det som en sort boks), hvorigennem vi kan gøre noget med mappen.

Directory Manager er som et lag mellem vores kode og biblioteksdataene. Og det viser sig, at hvis vi skal læse alle elementerne i mappen, kan vi ikke gøre dette direkte. Vi kan kun spørge vores lag mellem os og telefonbogen, det vil sige lederen, om dette.

For at gøre dette skal du kalde "Vælg" -metoden indbygget i manageren. Det kaldes med en prik efter navnet på den variabel, som manageren er gemt i, og returnerer en samling af bibliotekselementer:

Manager = Mapper. Medarbejdere; Eksempel = Manager. Vælg() ;

Hvad er en prøve? En markering (igen, dette er blot navnet på den variabel, som vi gemmer resultatet af "Select"-metoden i, og det kunne være alt andet) er en samling, men ikke det samme som f.eks. en matrix eller en liste af værdier.

Udvælgelsen er et objekt - igen tænk på det som en boks - men endnu ikke selve dataene. Det særlige ved dette objekt er, at det kan iterere over elementerne i den mappe, vi har brug for. Desuden sorterer den dem fra dynamisk. Det betyder, at brug af sampling ikke læser alle mappeelementerne på én gang, men vælger dem i portioner fra databasen.

Denne tilgang giver dig mulighed for hurtigt at gennemse store lister over mapper ved hjælp af valg uden at indlæse dem alle i computerens hukommelse på én gang.

For at få det næste stykke data fra en prøve, skal du kalde "Næste" metoden indbygget i prøven. Modtagelse af bidder af data (en chunk svarer til et mappeelement) sker normalt i en løkke:

Når dataene (katalogelementerne) i markeringen løber tør, vil "Næste"-metoden returnere Falsk, og cyklussen stopper.

Efter hvert kald til "Næste"-metoden (forudsat at den returnerede "True"), vil markeringen indeholde alle felter med data kun for læse-bibliotekselementet, som kan tilgås med navn adskilt af en prik:

Det viser sig på et øjeblik - vi arbejder med dataene for kun et af elementerne i mappen. Og her kan vi enten med det samme vise dem til brugeren (ved hjælp af “Notify”-metoden), eller vi kan for eksempel lægge dem i en anden samling (array), så vi kan gøre noget med dem på én gang. Det hele afhænger af det problem, vi løser.

I 1C er der mange konfigurationsobjekter, der på den ene eller anden måde er forbundet med regnskab - det vil sige, de tillader det at blive vedligeholdt - mapper, dokumenter, registre og så videre. Men hvad skal du gøre, når du skal lave et program på 1C-sproget, der ikke har noget med regnskab at gøre, men som er påkrævet for programmørens officielle behov eller for at gøre brugerens arbejde lettere?

Et godt eksempel er batchbehandling af dokumenter. Dette er et værktøj, der giver dig mulighed for at holde/ændre/udskrive ikke kun ét dokument, men mange på én gang, ifølge en valgt liste. Enig - meget praktisk.

For at implementere værktøjer i 1C for at lette arbejdet for en bruger eller administrator af en 1C-database, er der et særligt konfigurationsobjekt - 1C-behandling. 1C-behandling kan være en del af konfigurationen eller distribueres som separate filer (så kaldes behandlingen ekstern 1C-behandling).

1C-behandling giver dig mulighed for at udvikle dine egne værktøjer både til 1C-programmering og til opsætning eller styring af 1C. Takket være dette er der hundredvis af standardbehandlinger på internettet (udviklet af 1C) og tusindvis af amatørbehandlinger på internettet.

Det er tid til at prøve at lave 1C-behandling selv. Detaljer nedenfor.

Hvad er 1C-behandling, og hvordan bruges de?

En lille introduktion. De, der allerede er bekendt med 1C-behandling, kan springe dette punkt over.

Så behandling er et værktøj skrevet af en programmør. Den kan ikke gøre noget på egen hånd og gemmer ikke data til 1C-databasen, i modsætning til for eksempel et dokument - som gemmes i databasen og selvstændigt kan optages og behandles, uden yderligere programmering. 1C-behandlingsfunktioner afhænger helt af programmøren, der har skrevet det.

Baseret på funktionalitet kan 1C-behandling opdeles i tre typer:

  • Hjælpebehandling af 1C-konfiguration
    Hver typisk konfiguration har mange behandlinger. De bruges som yderligere grænsefladeformularer (brugerskrivebord, konfigurationsoversigt), som en del af konfigurationsfunktionaliteten (indtastning af startsaldi, indledende udfyldning af databasen, afslutning af måneden).
  • Objekter (klasser)
    Enhver, der kender andre programmeringssprog, er allerede bekendt med begrebet objekt. Dette er en bestemt klasse, der har et sæt "variable" og "funktioner" til sin rådighed. Dens skønhed ligger i dens selvforsyning - det vil sige, at alt, hvad der er nødvendigt for at udføre dets funktioner, er samlet i en klasse.

    I 1C kan klasser oprettes ved hjælp af 1C-behandling: "variabler" - 1C-behandlingsdetaljer, "funktioner" - funktioner i 1C-behandlingsobjektmodulet (Eksportmærke for offentlige funktioner). Bekvemmeligheden ligger i både at skabe en instans af en sådan klasse og flytte den mellem konfigurationer.

    Et godt eksempel er behandlingen af ​​1C-udskrivning (yderligere trykte formularer), som du kan finde i standardkonfigurationer i biblioteket Yderligere trykte formularer. De har altid en offentlig Print() funktion og standardiseret brug.

    Vær opmærksom på, at sådanne "klasser" naturligvis ikke er direkte forbundet med data - de skal bestås eller læses i "konstruktøren".

  • Yderligere bruger- og administratorværktøjer
    Der er mange generiske værktøjer tilgængelige til typisk DBA-brug, som ikke er bundet til en bestemt konfiguration. Sådanne værktøjer er ofte ikke inkluderet i standardkonfigurationspakken og distribueres separat (normalt på ITS-diske). Ud over standardværktøjerne lægger programmører mange af deres egne værktøjer på internettet.

    Eksempler inkluderer: 1C-behandling af arbejde med kommercielt udstyr, 1C-opgavekonsol (viser en liste over opgaver, der kører efter en tidsplan), 1C-forespørgselskonsol (lader dig udføre alle forespørgsler uden programmering) osv.

Hvor er 1C-behandling placeret?

Så der er 1C-behandling indbygget i konfigurationen og ekstern 1C-behandling.

Indbygget 1C-behandling bruges situationelt af programmøren, der udvikler konfigurationen - det vil sige, at de enten kan vises i brugermenuen (en del af servicemenuen) eller åbnes programmatisk fra andre 1C-objekter (f.eks. fra en mappeformular ).

På en eller anden måde kan du under administratorrettigheder åbne en liste over behandlingsmuligheder indbygget i konfigurationer og enhver af dem, hvis den kan åbnes (dvs. hvis den har en skærmform, og programmøren ikke har indstillet en lås til at åbne den ). For at gøre dette skal du bruge menuen Operations/Processing i den tykke klient og bruge menuen Alle funktioner/Processing i den tynde klient. Hvis du ikke ved, hvordan du finder disse menuer - .

I konfiguratoren er 1C-behandling indbygget i konfigurationen placeret i Processing-grenen.

Ekstern 1C-behandling åbnes både i konfiguratoren og i Enterprise ved hjælp af menuen Filer/Åbn.

Sikkerhed. Bemærk venligst. 1C-behandlingsobjektmodulet udføres automatisk, når du åbner 1C-behandling i Enterprise-tilstand. Derfor, hvis du åbner en behandling skrevet af en angriber, kan den udføres automatisk uden spørgsmål.

Sådan laver du selv 1C-behandling

Så lad os komme til den sjove del - algoritmen til selv at skabe 1C-behandling fra bunden.

Behandling 1C 8.3— konfigurationsobjekter, der bruges til at ændre og transformere information i databasen.

Lad os se på, hvordan man opretter den, dens egenskaber, hvordan den adskiller sig fra en rapport, hvordan ekstern behandling adskiller sig fra intern behandling.

Der er ingen særlige træk at bemærke ved oprettelsen af ​​behandlingen. Al funktionalitet er individuel og leveres af udvikleren af ​​1C 8.3 eller 8.2.

Behandlingen har sine egne detaljer, som gemmer værdier i RAM i varigheden af ​​objektets "levetid". Eller, hvis det ønskes, kan værdierne for detaljerne gemmes i .

Få 267 videolektioner på 1C gratis:

En af de gode funktioner ved behandlingen er dens tilgængelighed, når der tilsluttes en ekstern forbindelse. Det vil sige, at når du forbinder til 1C, kan du programmæssigt oprette et objekt, udfylde detaljerne og kalde eksportproceduren fra modulet. Et typisk eksempel på dette er dataudveksling i mode: en ekstern kilde forbinder til databasen, udfylder indstillingerne - objektdetaljer og aktiverer download/upload-proceduren. Eksempelkode:

Objekt = Processer. UniversalXML-dataudveksling. Create() ; Objekt. Indstillinger = Indstillinger;

Objekt. Udfør Upload() ;