Extern bearbetning 1s 8.3 form öppning. Extern bearbetning lagras på disken separat från infobasen

Låt oss överväga i den här artikeln steg för steg instruktioner för att skapa extern bearbetning i 1C 8.3 i hanterat applikationsläge kommer vi att använda hanterade formulär. Och viktigast av allt, vi kommer att lära oss hur man kopplar den till mekanismen för "extern bearbetning" av 1C-konfigurationer byggda på biblioteket standard delsystem version 2.0 och senare.

Uppgiften kommer att vara följande: att skapa den enklaste externa behandlingen som kommer att utföra en gruppåtgärd på "Artikel"-katalogen, nämligen att ställa in den valda momssatsen för den angivna gruppen av varor.

För att göra detta kommer vi omedelbart att göra de nödvändiga inställningarna i programmet (vi överväger 1C 8.3-konfigurationen: "Enterprise Accounting 3.0" på kontrollerade former).

Om du markerar den här rutan får vi möjlighet att använda extern bearbetning.

Skapa en ny extern bearbetning i 1C 8.3 med hjälp av ett exempel

Låt oss nu gå till konfiguratorn. I menyn "Arkiv", välj "Ny...". Fönstret för val av vy öppnas skapad fil. Välj "Extern bearbetning":

Ett nytt externt bearbetningsfönster öppnas. Låt oss ge henne ett namn direkt. Det kommer att erbjudas när bearbetningen sparas på disk:

Låt oss lägga till ett nytt kontrollerat bearbetningsformulär. Vi anger att detta är en form av bearbetning och det är den huvudsakliga:

Vi kommer att ha två detaljer på formuläret:

  • Nomenklaturgrupp – länk till katalogen "Nomenklatur";
  • SelectVATRate – länk till överföringen av momssatsen.

Vi skapar detaljerna i kolumnen "Egenskaper" i det övre högra fönstret. Dra dem med musen till det övre vänstra fönstret. De nya uppgifterna bör omedelbart visas i formuläret nedan.

Ordningen på detaljerna kan ändras med hjälp av pilarna "Upp" - "Ner":

Få 267 videolektioner på 1C gratis:

Allt som återstår är att lägga till knappen "Installera". I hanterade formulär kan du inte bara lägga till en knapp i formuläret. Även om du lägger till det i strukturen för formulärelement kommer det inte att synas på själva formuläret. Knappen måste vara associerad med kommandot som den kommer att utföra. Gå till fliken "Kommandon" och lägg till kommandot "Ställ in momssats". Skapa en åtgärd i kommandoegenskaperna. Välj kommandohanteraren "På klienten". Ett kommando kan också läggas till i formuläret genom att helt enkelt dra det till avsnittet med formulärelement.

En procedur med samma namn kommer att skapas i formulärmodulen. I den kommer vi att anropa proceduren på servern:

&OnClient

Procedur Ställ in momssats (kommando)

SetVATRateOnServer();

Slut på förfarandet

I proceduren på servern kommer vi att skriva en liten begäran och åtgärder relaterade till att ställa in momssatsen:

&På server

Procedur SetVATRateOnServer()

Request = Ny begäran;
Request.Text =
"VÄLJA
| Nomenklatur.Länk
|FRÅN
| Directory.Nomenclature AS Nomenclature
| VAR
| Nomenclature.Link I HIERARKI (&Nomenclature Group)
| OCH INTE nomenklatur.MarkDeletion
| OCH INTE nomenklatur. Detta är en grupp”;

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

Medan SelectRecordDet.Next() Loop

Försök
SprNomObject.Write();
Undantag
Report("Fel vid skrivning av objekt """ + SprNomObject + """!
|» + DescriptionError());
Slutförsök;

EndCycle;

Slut på förfarandet

Vi återgår till fliken "Formulär", lägger till en knapp i formuläret och associerar den med kommandot:

Som sådan är vår bearbetning redo att användas. För att kalla det, i läget "1C Enterprise", måste du gå till menyn "Arkiv" - "Öppna" och välj den skapade filen.

Att arbeta i det här läget är dock bekvämt för felsökningsbehandling, men är inte helt lämpligt för användaren. Användare är vana vid att ha allt "till hands", det vill säga i själva databasen.

Detta är vad avsnittet "Ytterligare rapporter och bearbetning" är till för.

Men för att lägga till vår bearbetning där måste vi först ge den en beskrivning och berätta för programmet dess egenskaper.

Beskrivning av funktionen "Information om extern behandling"

Jag ska ge ett exempel på innehållet i denna funktion. Den måste vara exporterbar och följaktligen placerad i bearbetningsmodulen:

Funktion InformationOnExternalProcessing() Export

DataForReg = New Structure();
DataForReg.Insert("Namn", "Inställning av momssats");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Version", "ver.: 1.001");
DataForReg.Insert("Information", "Bearbetning för inställning av momssatsen i nomenklaturkatalogen");
DataForReg.Insert("Visa", "Ytterligare bearbetning");

CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identifier");
TabZnCommands.Columns.Add("Användning");
TabZnCommands.Columns.Add("Visa");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Öppen bearbetning";
DataForReg.Insert("Kommandon", TabZnCommands);

Returnera DataForReg;

EndFunction

För att bättre förstå vilka fält i registreringsdatastrukturen som behöver användas, låt oss titta på detaljerna i katalogen "Ytterligare rapporter och bearbetning":

Som du kan se är allt ganska enkelt. Endast ett attribut matchar inte: "Startalternativ" – "Använd". Om vi ​​tittar på koden för en av de vanliga modulerna kommer vi att se hur ett gäng av dessa fält uppstår:

För att avgöra vilka fält i en struktur som krävs kan du först inte beskriva den, bara skapa ett tomt och sedan använda felsökaren. Om du spårar moduler vid registrering av bearbetning blir det direkt tydligt vilka fält som är obligatoriska och vilka som inte är det.

Ansluta extern bearbetning i 1C 8.3

För att arbeta med extern bearbetning (och en extern tryckform är också en extern bearbetning) finns ett objekt Extern bearbetning.

Låt oss överväga två möjliga fall:

Extern bearbetning lagras på disken separat från infobasen

För mjukvaruöppning extern bearbetning i 1C måste du veta adressen till dess fil. Genom att veta det kan du antingen öppna ett bearbetningsformulär eller få ett bearbetningsobjekt att utföra med det ytterligare åtgärder(till exempel för att anropa exportfunktioner från en objektmodul).

Öppna ett externt bearbetningsformulär

För att programmatiskt öppna ett externt bearbetningsformulär i 1C, använd funktionen GetForm() objekt Extern bearbetning. Funktionen har flera parametrar. Tänk på en enkel öppning av huvudbearbetningsformuläret:


Form = Externa processer. GetForm(FileAddress) ;
Form. Öppen();

För att öppna ett mindre externt bearbetningsformulär måste du ange dess namn.

//FileAddress-variabeln innehåller den fullständiga sökvägen till den externa bearbetningsfilen
Form = Externa processer. GetForm(FileAddress, "MinorForm") ;
Form. Öppen();

Öppna extern bearbetning som ett objekt

För att ta emot extern bearbetning som ett objekt används en funktion Skapa() objekt Extern bearbetning.

//FileAddress-variabeln innehåller den fullständiga sökvägen till den externa bearbetningsfilen
ProcessingObject = Extern bearbetning. Skapa(Filadress) ;

Som standard öppnas all bearbetning in säkert läge. För att inaktivera det, använd följande alternativ:

//FileAddress-variabeln innehåller den fullständiga sökvägen till den externa bearbetningsfilen

Extern bearbetnings- eller utskriftsformulär sparat i infobas

I många konfigurationer är det möjligt att spara externa tryckta formulär och bearbetning direkt i infobasen. Uppslagsboken används för detta. Extern bearbetning. Själva den externa behandlingen lagras som binär data eller i attribut StorageExternal Processing, eller i tabelldelen Anslutning i rekvisitan StorageExternal Processing.

För att öppna extern bearbetning behöver du:

  1. Få det från lagring.
  2. Spara den bearbetade filen på disk.
  3. Öppna ett formulär eller hämta ett bearbetningsobjekt.
  4. Om vi ​​har att göra med ett externt tryckt formulär kan vi fylla i standarduppgifterna Objektreferens och anropa exportfunktionen Täta.

//RefLink-variabeln innehåller en länk till katalogelementet ExternalProcessings
DvData = RefLink. Extern bearbetningslagring. Skaffa sig() ;
FileAddress = GetTemporaryFileName() ;
DvData. Write(Filadress) ;
ProcessingObject = Extern bearbetning. Create(FileAddress, False) ;