1s 8.3 åpne behandlingsskjemaet administrert søknad. Ekstern prosessering lagres på disk separat fra infobasen

I denne artikkelen vil vi vurdere trinnvise instruksjoner for å lage ekstern behandling i 1C 8.3 i administrert applikasjonsmodus; følgelig vil vi bruke administrerte skjemaer. Og viktigst av alt, vi vil lære hvordan du kobler den til mekanismen for "ekstern prosessering" av 1C-konfigurasjoner bygget på et bibliotek med standard delsystemer versjon 2.0 og nyere.

Oppgaven vil være følgende: å lage den enkleste eksterne behandlingen som vil utføre en gruppehandling på "Vare"-katalogen, nemlig å angi den valgte MVA-satsprosenten for den angitte gruppen av varer.

For å gjøre dette vil vi umiddelbart gjøre de nødvendige innstillingene i programmet (vi vurderer 1C 8.3-konfigurasjonen: "Enterprise Accounting 3.0" på administrerte skjemaer).

Ved å krysse av i denne boksen får vi muligheten til å bruke ekstern behandling.

Opprette en ny ekstern prosessering i 1C 8.3 ved å bruke et eksempel

La oss nå gå til konfiguratoren. I "Fil"-menyen velger du "Ny...". Et vindu for å velge hvilken type fil som skal opprettes, åpnes. Velg "Ekstern behandling":

Et nytt eksternt behandlingsvindu åpnes. La oss gi henne et navn med en gang. Det vil bli tilbudt når du lagrer behandlingen på disk:

La oss legge til et nytt kontrollert behandlingsskjema. Vi indikerer at dette er en form for behandling, og det er den viktigste:

Vi vil ha to detaljer på skjemaet:

  • Nomenklaturgruppe – lenke til "Nomenklatur"-katalogen;
  • SelectVATRate – lenke til overføringen av MVA-satsen.

Vi lager detaljene i kolonnen "Egenskaper" i vinduet øverst til høyre. Dra dem med musen inn i vinduet øverst til venstre. De nye detaljene skal umiddelbart vises på skjemaet nedenfor.

Rekkefølgen på detaljene kan endres ved å bruke "Opp" - "Ned"-pilene:

Få 267 videotimer på 1C gratis:

Alt som gjenstår er å legge til "Installer"-knappen. I administrerte skjemaer kan du ikke bare legge til en knapp i skjemaet. Selv om du legger det til strukturen til skjemaelementer, vil det ikke være synlig på selve skjemaet. Knappen må være knyttet til kommandoen den skal utføre. Gå til fanen "Kommandoer" og legg til kommandoen "Angi mva.sats". Opprett en handling i kommandoegenskapene. Velg kommandobehandleren "På klienten". En kommando kan også legges til skjemaet ved å dra den inn i seksjonen med skjemaelementer.

En prosedyre med samme navn vil bli opprettet i skjemamodulen. I den vil vi kalle prosedyren på serveren:

&På klient

Prosedyresett mva.-sats (kommando)

SetVATRateOnServer();

Sluttprosedyre

I prosedyren på serveren vil vi skrive en liten forespørsel og handlinger knyttet til innstilling av MVA-satsen:

&På server

Prosedyre SetVATRateOnServer()

Request = Ny forespørsel;
Request.Text =
"VELGE
| Nomenklatur.Link
|FRA
| Directory.Nomenclature AS Nomenclature
|HVOR
| Nomenclature.Link I HIERARKIET (&Nomenclature Group)
| OG IKKE Nomenclature.MarkDeletion
| OG IKKE nomenklatur. Dette er en gruppe";

Request.SetParameter("Varegruppe", Varegruppe);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

Mens SelectRecordDet.Next() Loop

Forsøk
SprNomObject.Write();
Unntak
Report("Feil ved skriving av objekt """ + SprNomObject + """!
|» + BeskrivelseFeil());
Sluttforsøk;

EndCycle;

Sluttprosedyre

Vi går tilbake til "Skjema"-fanen, legger til en knapp i skjemaet og knytter den til kommandoen:

Som sådan er behandlingen vår klar til bruk. For å kalle det, i "1C Enterprise" -modus må du gå til "Fil" - "Åpne" -menyen og velge den opprettede filen.

Arbeid i denne modusen er imidlertid praktisk for feilsøkingsbehandling, men er ikke helt egnet for brukeren. Brukere er vant til å ha alt «til fingerspissene», det vil si i selve databasen.

Dette er hva delen "Ytterligere rapporter og behandling" er til for.

Men for å legge til behandlingen vår der, må vi først gi den en beskrivelse og fortelle programmet dets egenskaper.

Beskrivelse av funksjonen "Informasjon om ekstern behandling"

Jeg vil gi et eksempel på innholdet i denne funksjonen. Den må være eksporterbar og følgelig plassert i behandlingsmodulen:

Funksjon InformationOnExternalProcessing() Export

DataForReg = Ny struktur();
DataForReg.Insert("Navn", "MVA-satsinnstilling");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Versjon", "ver.: 1.001");
DataForReg.Insert("Informasjon", "Behandling for å sette MVA-satsen i nomenklaturkatalogen");
DataForReg.Insert("View", "Additional Processing");

CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identifier");
TabZnCommands.Columns.Add("Bruk");
TabZnCommands.Columns.Add("Vis");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Åpen behandling";
DataForReg.Insert("Kommandoer", TabZnCommands);

Returner DataForReg;

EndFunction

For bedre å forstå hvilke felt i registreringsdatastrukturen som må brukes, la oss se på detaljene i katalogen "Ytterligere rapporter og behandling":

Som du kan se, er alt ganske enkelt. Bare ett attributt samsvarer ikke: «Launch Option» – «Bruk». Hvis vi ser på koden til en av de vanlige modulene, vil vi se hvordan en haug av disse feltene oppstår:

For å finne ut hvilke felt i en struktur som kreves, kan du først ikke beskrive den, bare opprette en tom, og deretter bruke feilsøkeren. Hvis du sporer moduler ved registrering av behandling, blir det umiddelbart klart hvilke felt som er obligatoriske og hvilke som ikke er det.

Koble til ekstern prosessering i 1C 8.3

For å jobbe med ekstern bearbeiding (og et eksternt trykkskjema er også en ekstern bearbeiding), er det et objekt Ekstern behandling.

La oss vurdere to mulige tilfeller:

Ekstern prosessering lagres på disk separat fra infobasen

For å programmatisk åpne ekstern behandling i 1C, må du vite adressen til filen. Når du vet det, kan du enten åpne et behandlingsskjema eller få et behandlingsobjekt til å utføre ytterligere handlinger med det (for eksempel å kalle eksportfunksjoner fra en objektmodul).

Åpne et eksternt behandlingsskjema

For programmatisk å åpne et eksternt behandlingsskjema i 1C, bruk funksjonen GetForm() gjenstand Ekstern behandling. Funksjonen har flere parametere. Tenk på en enkel åpning av hovedbehandlingsskjemaet:


Skjema = Eksterne prosesser. GetForm(Filadresse) ;
Skjema. Åpen();

For å åpne et mindre eksternt behandlingsskjema, må du angi navnet.

//FileAddress-variabelen inneholder hele banen til den eksterne behandlingsfilen
Skjema = Eksterne prosesser. GetForm(FileAddress, "MinorForm") ;
Skjema. Åpen();

Åpne ekstern behandling som et objekt

For å motta ekstern behandling som et objekt, brukes en funksjon Skape() gjenstand Ekstern behandling.

//FileAddress-variabelen inneholder hele banen til den eksterne behandlingsfilen
ProcessingObject = ExternalProcessing. Create(FilAddress) ;

Som standard åpnes all behandling i sikker modus. For å deaktivere den, bruk følgende alternativer:

//FileAddress-variabelen inneholder hele banen til den eksterne behandlingsfilen

Ekstern behandling eller utskriftsskjema lagret i infobase

I mange konfigurasjoner er det mulig å lagre eksterne trykte skjemaer og behandling direkte i infobasen. Oppslagsboken brukes til dette. Ekstern behandling. Selve den eksterne behandlingen lagres som binære data eller i attributter Lagring Ekstern Behandling, eller i tabelldelen Tilhørighet i rekvisittene Lagring Ekstern Behandling.

For å åpne ekstern behandling trenger du:

  1. Få den fra lagring.
  2. Lagre den behandlede filen på disk.
  3. Åpne et skjema eller få et behandlingsobjekt.
  4. Hvis vi har å gjøre med et eksternt trykt skjema, kan vi fylle ut standarddetaljene Objektreferanse og kall opp eksportfunksjonen Tetning.

//RefLink-variabelen inneholder en lenke til ExternalProcessings-katalogelementet
DvData = RefLink. Ekstern behandlingslagring. Få() ;
FileAddress = GetTemporaryFileName() ;
DvData. Skriv(Filadresse) ;
ProcessingObject = ExternalProcessing. Create(FilAddress, False) ;