Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

Uppmärksamhet!
All behandling från ITS-diskar är avsedd för informationsändamål och uteslutande för registrerade ITS-användare.

Urval och bearbetning av objekt. (Universell)

Söker efter objekt i dokument och kataloger som uppfyller vissa villkor. Bearbetar sökresultat.

Konvolution av informationsbasen. (Universell)

Utför informationssäkerhetssamling av typiska konfigurationer:

  • UPP 3.1.
  • BP 1,6.
  • UT 10.3.

Registrera ändringar för utbyte. (Universell)

Redigerar, i hanterat applikationsläge, registreringen av ändringar av utbytta objekt. Låter dig ändra aktuell registrering på olika noder. Ändrar antalet mottagna och skickade meddelanden.

Konvertering av användaraktivitetslogg. (Universell)

Konverterar en logg över användaråtgärder till ett program på ett inbyggt språk.

Fulltextsökning i data. (Universell)

Indexering och sökning av data.

Hitta och ersätta värden. (Universell)

Söker efter och ersätter referensvärden i informationssäkerhetsobjekt.

Skapa en teknisk logg. (Universell)

Skapar eller redigerar en processloggfil. Den har förmågan att konfigurera skapandet av en kraschdump, konfigurera villkor och händelser, vid uppkomsten av vilka information kommer att registreras i den här loggen.

Jobbkonsol. (Universell)

Övervakar bakgrund och rutinuppgifter. Tar bort, skapar nya.

Konvertering av extern bearbetning. (Universell)

Ändra konfidentiell information. (Universell)

Selektiv förändring eller rensning av informationssäkerhet från viss information.

Gruppändring av detaljer. (Universell)

Ändrar detaljer och tabelldelar i dokument och referensböcker.

Laddar upp och laddar användare. (Universell)

Laddar upp och laddar informationssäkerhetsanvändare till en XML-fil.

Ladda upp data till externa databaser. (Universell)

Laddar upp datastrukturer till externa DBMS med ADO i två lägen:

  • Lasta ur allt
  • Ladda upp ändringar (används för att synkronisera ändringar i den fungerande IS med den mottagande IS). Detta läge använder utbytesplanmekanismer.

Stöder följande DBMS:

  • Microsoft SQL
  • IBM DB2
  • Orakel
  • PostgreSQL
  • MySQL

Ladda upp och ladda XML-data. (Universell)

Laddar upp och laddar data till informationssäkerhet, både helt och delvis. Används för att överföra data mellan konfigurationer som liknar objektsammansättningen.

Laddar data från ett kalkylarksdokument. (Universell)

Laddar data till kataloger och tabelldelar från tabelldokument.

Fungerar i en tjock klient i normalt applikationsläge.

Begär konsol. (Universell)

Ger stor hjälp med rapportering och skapande av frågor.

Ganska ofta, när det under en konsultation uppstår behov av att lösa något komplext problem, föreslår jag att mina kunder implementerar det i 1C-programmet med antingen extern bearbetning, eller extern tryckplåt. Och jag stöter ofta på det faktum att människor helt enkelt inte är bekanta med den här möjligheten till program på 1C Enterprise 8-plattformen. Ibland svär de till och med på mig och tror att utvecklingen och implementeringen av sådan bearbetning som en del av deras konfiguration kommer att leda till oförmåga att automatiskt uppdatera programmet. Att du kommer att behöva betala mycket pengar för att uppdatera programmet.

För att klargöra sådana frågor, samt för att prata om vilka användbara möjligheter extern bearbetning och externa tryckformulär ger, bestämde jag mig för att skriva den här artikeln. I den här artikeln kommer jag inte att överväga den tekniska sidan av bearbetningsprocessen. Detta kommer med största sannolikhet att diskuteras i en annan publikation. Här ska jag försöka förklara själva essensen av mekanismen och ge specifika exempel på fall där externa bearbetnings- och tryckformulär kan gynna användaren.

Artikeln kommer att diskutera följande alternativ för ytterligare externa anslutningsbara objekt:

  • Ytterligare extern bearbetning av tabellformade delar;
  • Ytterligare externa tryckformulär;
  • Ytterligare externa rapporter;
  • Ytterligare extern bearbetning.

Vad är ytterligare extern bearbetning, rapporter och tryckta formulär?




Till att börja med skulle jag vilja prata generellt om vad är dessa externa bearbetningar, rapporter och tryckta formulär?. Ganska ofta, när man arbetar med en standardkonfiguration, vare sig det är 1C ZUP eller 1C Enterprise Accounting eller någon annan konfiguration, finns det ett behov av någon funktionalitet som inte tillhandahålls av 1C-utvecklare. Till exempel kan du behöva tryckt formulär, som inte är reglerad, utan används för organisationens interna behov. Eller krävs på ett visst sätt process (ändra, justera) tillgängliga data i databasen. Till exempel att ändra vissa detaljer i dokument för den erforderliga perioden, vilket är obekvämt att göra manuellt med stora mängder information.

I det här fallet finns det två alternativ. Första, kan vi ändra själva konfigurationen, själva programmet. Efter det kommer det att sluta vara typiskt och det kommer inte att vara möjligt att uppdatera det med de ganska enkla metoderna som jag skrev om. Att uppdatera en icke-standardkonfiguration är en längre och mer seriös process, så med detta tillvägagångssätt kommer du med största sannolikhet att behöva betala en 1C-specialist varje månad för att uppdatera programmet. Andra Ett alternativ är att utveckla eller be om att utveckla en extern bearbetning eller tryckt formulär (rapport). Detta är i huvudsak en extern modul, som också är utvecklad i programmeringsspråket 1C i Configurator, men som inte gör ändringar i standardkonfigurationen. Den existerar oberoende av själva konfigurationen. För att lagra dem används speciella kataloger: huvudmenyalternativ "Service" -> "Ytterligare rapporter och bearbetning".

Ytterligare extern bearbetning för att fylla i tabelldelar

Seminarium "Lifehacks for 1C ZUP 3.1"
Analys av 15 life hacks för redovisning i 1C ZUP 3.1:

CHECKLISTA för kontroll av löneberäkningar i 1C ZUP 3.1
VIDEO - månatlig självkontroll av bokföring:

Löneberäkning i 1C ZUP 3.1
Steg-för-steg-instruktioner för nybörjare:

Låt oss nu ta en titt på vilka funktioner var och en av de fyra tillgängliga externa modulerna kommer att ge oss. Låt oss börja med extern bearbetning av tabelldelar. Det förefaller mig som om denna bearbetning av tabelldelar av dokument mest fullständigt illustrerar hur man på ett seriöst sätt kan modifiera ett program, utan att behöva redigera standardkonfigurationen, utan nöja sig med endast extern bearbetning.

För att göra det tydligare kommer jag att ge ett specifikt exempel från min praktik där jag kan lösa problemet jag använde extern bearbetning av tabelldelar. I konfigurationen "1C Lön och personalhantering" utgåva 2.5 finns ett dokument "Betalning för helgdagar och helger"(Detta dokument har skrivits i detalj). I sin standardform ger detta dokument möjligheten att automatiskt fylla i tabelldelen av anställda "Arbetar på helgdagar."

Revisorn bad om att implementera möjligheten att fylla i detta dokument av anställda vars arbetsdagar var planerade att infalla på helger, d.v.s. "Jobbar i helgen".

Den här filen har laddats upp till katalogen "Extern bearbetning av tabelldelar"(menypunkt ”Service” -> ”Ytterligare rapporter och bearbetning” -> ”Ytterligare extern bearbetning av tabelldelar”). När du skapade ett element i denna katalog indikerades vilket dokument den nedladdade behandlingen avser - "Betalning för organisationens helgdagar och helger", samt vilken tabelldel - "Anställda". I vårt exempel har dokumentet en tabelldel, men i andra dokument kan det finnas flera av dem, så det är nödvändigt att specifikt ange vilka av dem som behandlingen avser.

Som ett resultat av att lägga till denna bearbetning i katalogen "Ytterligare extern bearbetning för att fylla i tabelldelar" i själva dokumentet "Betalning för semester- och helgdelar" kommer en "Fyll"-knapp upp med en rullgardinslista där det kommer att vara möjligt att starta denna bearbetning. I vårt fall är knappen "Fylla söndagar" tillgänglig i rullgardinsmenyn. Om du trycker på den startar algoritmen som ingår i bearbetningen. I detta exempel kommer tabelldelen att fyllas i med anställda vars arbetsdagar inföll på en ledig dag. Observera att den här knappen inte fanns tidigare (skärmdump ovan).

Denna mekanism låter dig lösa ett mycket brett spektrum av problem utan att behöva ändra själva konfigurationen. Därför utnyttjar jag ganska ofta den här möjligheten för att genomföra klienternas uppgifter.

Externa tryckplåtar som tillval

Seminarium "Lifehacks for 1C ZUP 3.1"
Analys av 15 life hacks för redovisning i 1C ZUP 3.1:

CHECKLISTA för kontroll av löneberäkningar i 1C ZUP 3.1
VIDEO - månatlig självkontroll av bokföring:

Löneberäkning i 1C ZUP 3.1
Steg-för-steg-instruktioner för nybörjare:

Detta alternativ är mycket likt det föregående. Du har med största sannolikhet sett och vet att nästan varje dokument och även vissa delar av referensböcker har tryckta formulär. De är som regel placerade i det nedre högra hörnet av formen av ett katalogelement eller dokument. Ibland räcker det inte med vanliga tryckta blanketter. Till exempel kan en organisation ha sin egen form av anställningsavtal. Låt mig påminna dig om att standardformuläret "Anställningsavtal" ingår i katalogformuläret "Anställda".

Du kan lägga till dina egna i dessa tryckta formulär i katalogen. För detta ändamål skapas ett externt tryckt formulär med tillägget ".epf". Sedan skapas ett katalogelement för det "Ytterligare externa tryckplåtar"(menyalternativet "Verktyg" -> "Ytterligare rapporter och bearbetning") och en fil med tillägget ".epf" läggs till i detta katalogelement. Det är också nödvändigt att ange för vilket dokument eller uppslagsbok bearbetningen läggs till.

Som ett resultat, som en del av de utskrivna formulären för elementen i katalogen "Anställda", kommer ett annat formulär att visas - "Anställningsavtal (Alpha LLC)", som inte fanns tidigare. Och dess utseende och datafyllning bestäms av programmeraren i ".epf"-filen.

Denna förmåga att lägga till de nödvändiga tryckta formulären för dokument och referensböcker är också mycket efterfrågad och är, enligt min mening, en ganska bekväm funktionalitet för program på 1C Enterprise-plattformen.

Ytterligare externa rapporter

I det här fallet kan du utvecklas extern rapport. Detta är en fil i formatet ".erf". Det är denna fil som kommer att avgöra rapportens utseende, vilken konfigurationsdata den kommer att använda och vilken den kommer att begära från användaren (till exempel period, urval av anställd eller avdelning). Filen skapas i 1C-konfiguratorn i 1C-programmeringsspråket.

En extern rapport kan lagras som en del av konfigurationen med hjälp av referensboken "Ytterligare externa rapporter" (menyalternativet "Verktyg" -> "Ytterligare rapporter och bearbetning"). De är inte relaterade till ett specifikt dokument eller uppslagsbok. Denna information krävs inte.

Med detta lagringsalternativ startas rapporten från samma katalog (genom att dubbelklicka).

Du kan också starta en extern rapport med menyalternativet "Arkiv" -> "Öppna". Det här alternativet kan användas om det är bekvämare för dig att lagra externa rapporter inte som en del av programmet, utan helt enkelt i datormappar.

Ytterligare extern bearbetning

Externa behandlingar har ungefär samma innebörd som externa rapporter. Men till skillnad från rapporter, som används för att visa infobasdata i ett användarvänligt format, är bearbetning utformad för att ändra, redigera eller transformera infobasdata. Utbudet av problem som löses med extern bearbetning är ganska brett.

Till exempel, bearbetning för uppladdning av löneutdrag. Trots förekomsten av standardbearbetning i ZUP (läs om det) kanske det ibland inte är lämpligt för en viss bank och extern bearbetning utvecklas som konverterar och laddar ner information i det format som krävs.

Jag tar med dig ett annat exempel helt enkel, men ganska populär bearbetning. Om du i 1C ZUP inte upprätthåller dokumentet "Överföring av personlig inkomstskatt till budgeten" under året, kommer fältet "Överförd" för varje anställd att vara noll när du genererar 2-personskatt för året, vilket är vanligtvis felaktigt i sak. Att ange dokumentet "Överföring av personlig inkomstskatt till budgeten" för hela året kan vara ganska tråkigt, med tanke på detaljerna i själva dokumentet. Men du kan göra extern bearbetning, som i den genererade 2-NDFL helt enkelt kommer att fylla i fältet "Listed" för varje anställd, baserat på värdena i fältet "Beräknat". Revisorer gillar vanligtvis det här alternativet.

Extern bearbetning har exakt samma två lagrings- och startalternativ: använd antingen katalogen "Ytterligare extern bearbetning"(menyalternativet "Verktyg" -> "Ytterligare rapporter och bearbetning"), eller huvudmenyn "Arkiv" -> "Öppna".

Det var allt för idag!

För att vara den första att veta om nya publikationer, prenumerera på mina blogguppdateringar:

För att koppla ihop extern bearbetning, rapporter och tryckta formulär för 1C:Enterprise 8.2-plattformen har en ny standard utvecklats för att arbeta i en hanterad applikation (en standard från standardbiblioteksundersystemet 8.2). "Chips" har dykt upp som inte fanns där tidigare, nämligen:

    Typen av bearbetning har utökats: fylla ett objekt, skapa relaterade objekt. Nu i dokument kan du lägga till dina egna knappar för att fylla i hela dokumentet, samt dina egna knappar för inmatning på basen.

    En bearbetning kan innehålla en lista med flera operationer (kommandon), d.v.s. du kan göra en bearbetning, där det kommer att finnas flera menyalternativ samtidigt: utskrift och följesedel, utskrift av försäljningskvitto, utskrift av garantikort. (Författarens anmärkning: tidigare i den gamla standarden, för att göra sådana saker, var du tvungen att göra allt på en gång (även om det inte var nödvändigt) och behövde inte stänga, eller rita ditt eget formulär, som hade de nödvändiga knapparna att välja den nödvändiga operationen)

    Du kan ange baserat på och fylla objekt baserat på flera objekt samtidigt, snarare än bara ett

    Du kan ställa in ett schema för att utföra serverkommandon (på servern).

    Du kan ställa in läget på "Säkert" eller "Osäkert", dvs. kör bearbetning med hänsyn till begränsade rättigheter eller ignorera dem (som med fullständiga rättigheter)

    Du kan ställa in användningsläge: Använd inte, felsökning, använd. "Använd inte" - inte i drift, "Felsökning" - endast synlig för administratörer, "Använd i drift".

    Kan användas i objektformer och i listformer

    Du kan binda en bearbetning eller rapport till alla objekt samtidigt.

    Du kan konfigurera snabb åtkomst till vissa externa bearbetningskommandon.

    Det är möjligt att ange i vilka delar av gränssnittet ytterligare bearbetning och rapporter ska förekomma.

Så vad kan kopplas till standardkonfigurationer?

Ur plattformssynpunkt kan du ansluta:

  • extern bearbetning (filer med tillägget "epf");
  • externa rapporter (filer med tillägget "erf").

Ur applikationsområdets synvinkel (konfiguration) kan du koppla extern bearbetning och rapporter med formuläret*:

  • Ytterligare bearbetning
    • Bara lite extra bearbetning. Det går att anpassa
  • Ytterligare rapport
    • Bara en ytterligare rapport
  • Fyller ett objekt
    • Egna knappar för att fylla i objekt (dokument), tidigare fanns bara knappar för att fylla i tabelldelen.
  • Utskrivbart formulär
    • Ytterligare utskrivbara formulär (en knapp "Ytterligare utskrivbara formulär" läggs till)
  • Rapportera
    • En rapport kopplad till objekt (kataloger och dokument).
  • Skapa länkade objekt
    • Din egen inmatning baserad på (knappen "Skapa relaterade objekt..." läggs till i menyalternativet "Input baserat på")

*med hjälp av exemplet från redaktionen ”Management of a small company red. 1,2"

Låt oss ta en titt på hur det hela fungerar. För att koppla ihop extern bearbetning och rapportering finns en standard som beskriver gränssnittet för interaktion med extern bearbetning och rapportering och det finns generella krav för alla typer och det finns specifika för varje typ av bearbetning eller rapport.

Låt oss börja med de allmänna kraven för alla typer av behandling och rapportering. För att skapa en plug-in extern bearbetning eller rapport måste du deklarera exportfunktionen InformationOnExternalProcessing() i objektmodulen, som måste fylla i en struktur som beskriver beteendet. Ett exempel på denna funktion:

Funktion InformationOnExternalProcessing() Export
RegistrationData = Ny struktur;
Registration Data.Insert("Namn", "Exempel på användning av extern bearbetning 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Version", "1.0");

//Ytterligare bearbetning
//Ytterligare rapport
//Fyllning av objektet
//Rapportera
//PrintForm
//Skapa relaterade objekt
RegistrationData.Insert("Visa", "Ytterligare bearbetning");

Registration Data.Insert("Information", "Bearbetning utförd enligt den nya standarden för anslutning av extern bearbetning 8.2. Exempel på bearbetning ""Hej Word"" ");

///////////// kommandon ////////////////////////
tzCommand = Ny värdetabell;
tzCommand.Columns.Add("Identifier");
tzCommand.Columns.Add("Visa");
tzCommand.Columns.Add("Modifier");
tzCommand.Columns.Add("Visa varning");
tzCommand.Columns.Add("Användning");


stringCommands.Identifier = "1";
stringCommands.View = "kommando ""Hej Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "kommando""Hej Word""(CallClientMethod)";
stringCommands.ShowAlert = Sant;
stringCommand.Use = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "kommando""Hej Word""(CallServerMethod)";
stringCommands.ShowAlert = Sant;
stringCommand.Use = "CallServerMethod";

RegistrationData.Insert("Kommandon", tzCommands);

////////////// syfte (i vilka objekt det används) /////////////////////////
//för utskrift av formulär, fyllning, inmatning av relaterade objekt
//ArrayAssignments = Ny array;
//Array of Assignments.Add("Dokument.*"); // alla dokument är tilldelade
//Array of Assignments.Add("Document.Advance Report");
//Array of Assignments.Add("Document.Buyer's Order");
//Registration Data.Insert("Destination", Array of Destination);

Returnera registreringsdata;

EndFunction

Så, som du kan se, fyller funktionen registreringsdatastrukturen, som har följande element (parametrar):

    Namn – kortnamn på behandlingen

    Version - information om bearbetningsversionen

    Säkert läge – ansvarig för om bearbetning ska utföras med hänsyn till användarrättigheter. Om den är inställd på Falsk, kommer bearbetning eller rapportering att utföras utan att ta hänsyn till rättighetsbegränsningar (som med fullständiga rättigheter). Denna funktion dök upp exakt i 8.2, där den andra parametern anger läget när du skapar extern bearbetning och rapporter.

    Typ – typ av bearbetning eller rapport. Jag listade de möjliga värdena i början av artikeln, och de möjliga värdena att ställa in i koden anges i kommentarerna

  • Kommandon - en värdetabell som listar de kommandon som används. Värdetabellskolumner:
    • Identifierare – valfri sträng (kommandoidentifierare)
    • Visa - kommandobeskrivning
    • Modifierare - sträng (används för ytterligare tryckta formulär)
    • Visa meddelande – meddelandefönstret visas före start och efter slutet av körningen (för klient- och serverkommandon utan formulär)
    • Användning – bearbetningsstartläge:
      • OpenForm – bearbetningsformuläret öppnas
      • CallClientMethod – anropa formulärets klientexportmetod
      • Call ServerMethod – anropa exportmetoden från bearbetningsmodulen

Beroende på typen av bearbetning eller rapport, såväl som på startläget för kommandot "Använd", anropas metoder som definieras i formulärmodulen eller objektmodulen. Listan över godkända parametrar är också annorlunda. Jag bifogar exempel på samtal och användning av alla typer av handläggning.

Gå till toppmenyn Service->->.

Listformuläret för extern bearbetningskatalog visas. Tryck på knappen i toppmenyn Tillägga.

Formuläret Lägg till nytt objekt visas. Klicka på öppna-knappen och välj filen med önskad bearbetning. När du har valt den önskade filen, ange om nödvändigt ett bearbetningsnamn (namnfält). Efter detta måste du klicka på OK för att spara ändringarna.

Efter detta stängs fönstret för att skapa ett katalogobjekt och du tas tillbaka till listformuläret som redan innehåller den nya behandlingen.

Det var allt! Processen att lägga till bearbetning i konfigurationen är klar. För att öppna denna bearbetning senare, gå längs den gamla vägen: Service->Ytterligare rapporter och bearbetning->Ytterligare extern bearbetning.

För BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Extern bearbetning för 1C:Enterprise 8 finns i flera typer. I den här instruktionen kommer jag att visa dig hur du bifogar bearbetning för gruppmodifiering och bearbetning för att fylla specifika objekt.

För det första fallet kommer vi att lägga till bearbetning för att fylla i nomenklaturkatalogen från Excel.

Låt oss gå till lämplig del av programmet:


Det är nödvändigt att flaggan för att använda ytterligare rapporter och bearbetning är inställd följ hyperlänken till listan över externa objekt:

Klicka i listan Skapa:


I dialogrutan som öppnas väljer du önskad fil för bearbetning:


Kortet för det nya externa objektet i programmet är ifyllt, det återstår bara att konfigurera det logi(sektioner av programmet från vilka bearbetning kommer att vara tillgänglig):


Välj en godtycklig sektion (eller flera) för placering:


Skriv och stäng det externa objektkortet:


Låt oss nu öppna bearbetning från gränssnittet:


Listan är tom, klicka Anpassa listan:


Välj vår bearbetning:


Den är nu tillgänglig för val. För att öppna bearbetning måste du klicka Utföra:


Låt oss nu se hur bearbetning för att fylla (modifiera) specifika objekt läggs till. Låt oss till exempel ta extern bearbetning, som bifogar skanningar till utvalda delar av kataloger eller systemdokument. Början av att lägga till sådan bearbetning skiljer sig inte från det tidigare alternativet. Skillnaden är att i det här fallet fylls platsen i automatiskt (och inte av programdelen, utan av typen av databasobjekt):


Om så önskas kan placeringslistan justeras ( lägg inte till ytterligare placering, utan ta bort onödiga):


För att acceptera ändringen måste även det externa objektkortet skrivas ned.

För att använda bearbetning måste du gå till ett specifikt databasobjekt (från placeringslistan), klicka Fylla i i kommandopanelen och välj kommandot:

Låt oss överväga att skapa en extern rapport i 1C 8 utan att använda ett datasammansättningssystem. För att skapa en extern rapport kommer vi att använda Accounting 2.0-konfigurationen, de initiala uppgifterna: "Skriv en rapport på redovisningskonto 62 där omsättningen för den angivna perioden kommer att visas i sammanhanget Motparter Och Motpartsavtal.

1. Skapa en rapport

Först av allt, låt oss skapa en extern rapportfil för att göra detta, låt oss gå till 1s 8 i läget Konfigurator, låt oss gå till menyn Arkiv -> Ny, eller klicka på ikonen Nytt dokument.

Välj objektet från listan Extern rapport. När du har skapat den externa rapporten, ge den ett namn (till exempel Enklaste Rapport) och spara den på disk. Vi kommer också att lägga till två detaljer: Periodens början Och Periodens slut typ Datum, kommer vi att behöva dem för att begränsa tidsintervallet för datasampling när vi genererar en rapport.

2. Skapa en extern rapportlayout

För att generera en rapport i 1C 8 behöver du en layout, detta är en mall för att visa data där alla nödvändiga parametrar är inställda, tabeller ritas, etc. Låt oss lägga till en ny layout för att göra detta, välj objektet i rapportens metadataträd Layouter och tryck på knappen Tillägga, när du skapar, välj typ för layouten kalkylarksdokument.

Vår layout kommer att ha 4 områden:

  • Rubrik - i detta område kommer vi att visa namnet på rapporten, perioden för vilken den genererades och tabellhuvudet;
  • Motpartsdata - i detta område kommer vi att visa data om motparten i en tabell;
  • Datamotpartsavtal - i detta område kommer vi att visa data om motpartsavtalet i en tabell;
  • Sidfot - i detta område kommer vi att visa de totala värdena för hela rapporten för fälten Inkomst och Kostnad.

Låt oss börja skapa layoutområden. För att skapa ett område i layouten, välj önskat antal rader och klicka Menytabell -> Namn -> Tilldela namn(Eller Ctrl + Shift + N). Till regionen Lock Låt oss skriva namnet på rapporten: Omsättning 62 räknas, rita med hjälp av verktyget Gränser rapporthuvudet och även ställa in parametrarna Periodens början Och Periodens slut. Med hjälp av parametrar kan du visa nödvändig data i rapporten. Vi kommer att hantera detta i nästa utvecklingsstadium, nämligen när du skriver rapportkoden. För att skapa en parameter i layouten, välj önskad cell, skriv namnet på parametern i den (utan mellanslag), högerklicka på den, välj objektet i menyn som öppnas Egenskaper. I cellegenskaperna på fliken Layout välj stoppning Parameter.

Efter detta kommer parameternamnet i cellen att omges av vinkelparenteser("<>"). Som ett resultat av området Lock ska se ut så här:

I området Datamotpart vi kommer att skapa parametrar för att visa namnet på motparten, samt för intäkter och kostnader för konto 62, med hjälp av verktyget Gränser Låt oss utforma området som en tabellrad.

I området Datamotpartsavtal Låt oss skapa parametrar för att visa namnet på kontraktet, samt för intäkter och kostnader för konto 62, med hjälp av Gränsverktyget kommer vi att utforma området som en tabellrad. Låt oss göra ett litet indrag före parametern Motpartsavtal(detta kan göras genom att dela och slå samman celler. Högerklicka på cellen -> Slå ihop eller Dela cell), behövs det så att rapporten kan se att raden för kontraktet är lägre i hierarkin än raden för motparten.

I området Källare Låt oss skapa parametrar för totala intäkter och kostnader.

Som ett resultat bör vi få en layout så här:

3. Skapa ett rapportformulär

För att visa data, ställ in formationsperioden och knappen Form vår rapport kommer att kräva ett formulär. För att skapa ett formulär, leta reda på objektet i metadataträdet för extern rapport Blanketter och tryck på knappen Tillägga. På den första sidan av formulärdesignern behöver du inte göra några ändringar, du behöver bara klicka på knappen Nästa.

På nästa sida av designern, välj båda tillgängliga detaljer( Periodens början, Periodens slut) för placering på formuläret.

Som ett resultat kommer vi att få detta formulär:

Men vi är inte nöjda med det i denna form; låt oss göra några ändringar i det:

  • Låt oss dra knappen Form från den nedre panelen i rapporten till toppen (detta kommer att vara bekvämare för användaren);
  • Låt oss sträcka formen vertikalt och horisontellt;
  • Låt oss ordna fälten Periodens början Och Periodens slut vågrätt;
  • Låt oss lägga till ett kalkylbladsdokumentfältkontrollelement i formuläret (vår rapport kommer att visas i det), ge det ett namn TabDoc;
  • Låt oss skapa en periodvalsknapp (när du klickar på den visas en dialogruta med ett bekvämt val av önskad period). Vi kommer inte att skriva programkoden för det än, så vi placerar bara knappen bredvid periodfälten.

Som ett resultat kommer vårt formulär att se ut så här:

4. Programmering

Efter att ha skapat rapportformuläret, låt oss börja programmera. Låt oss först skapa en procedur för att visa en periodvalsdialog (vi skapade redan en knapp för detta i föregående steg). Högerklicka på knappen och välj menyalternativet Egenskaper, i knappens egenskaper gå till fliken Händelser, där vi använder knappen med en förstoringsglasikon skapar en procedur Knapp 1Tryck i formulärmodulen.

Du kan växla mellan formuläret och dess modul med hjälp av flikarna längst ner i formuläret

För att anropa periodvalsformuläret använder vi standardförfarandet Bokföring 2.0 från en gemensam modul Arbeta med dialoger - HandlerPeriodSettingPress måste du skicka rapportinformationen till den som parametrar Periodens början Och Periodens slut.

Förfarande Knapp 1 Tryck (Element) Arbeta med Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Slutprocedur

Låt oss nu gå vidare till att skriva koden som kommer att generera och visa vår rapport. Formulärmodulen har redan en procedur KnappGenereraTryck, som kommer att utföras när knappen trycks ned Form, det är där vi skriver vår kod. Låt oss börja med att initiera de nödvändiga variablerna. Först och främst, låt oss skapa en variabel för kalkylbladsdokumentfält i vilken vi kommer att mata ut data, detta är inte nödvändigt, det är bara att inspelningen av samtal till den kommer att bli kortare, vilket innebär att programkoden blir mer förståelig för läsning.

TabDoc = FormElements.TabDoc;

Låt oss få layouten på den externa rapporten med hjälp av funktionen GetLayout(<ИмяМакета>) , kommer vi att skicka namnet på layouten som en parameter, och om det finns en sådan layout kommer funktionen att hitta den.

Layout = GetLayout("Layout" );

Efter att layouten har tagits emot, låt oss skapa variabler för vart och ett av dess områden, använd layoutmetoden för detta GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( "Entreprenörsdata"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Sidfot" );

Låt oss rensa fältet i kalkylarksdokumentet. Detta är nödvändigt för att varje gång en ny rapport genereras, raderas den gamla informationen.

TabDoc.Clear();

Nu när initieringen av variablerna är klar, låt oss gå vidare till att fylla och visa layoutområdena en efter en. Låt oss börja med rubriken. Om du kommer ihåg skapade vi två parametrar på detta område Periodens början Och Periodens slut, vi skickar dit värdena för rapportgenereringsperioden, för detta kommer vi att använda fastigheten Alternativ layoutområden.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Inga fler åtgärder med området Lock Tillverkaren behövs inte, så vi kommer att visa dess fält i ett kalkylarksdokument.

TabDoc.Output(AreaHead);

Därefter kommer vi att skriva en fråga till databasen, med vilken vi tar kontoomsättningen 62 från bokföringsregistret Självförsörjande. Låt oss definiera en variabel där vår begäran kommer att finnas.

Request = ny begäran;

Innan vi börjar skriva förfrågningstexten, låt oss skicka de nödvändiga parametrarna till den. Eftersom vi skriver en begäran om en faktura 62 redovisning, då skapar vi först en parameter för det

Request.SetParameter("Konto62", Kontoplan. Självförsörjande. Hitta efter kod("62" ));

Det är också nödvändigt att överföra rapportgenereringsperioden till begäran. Glöm inte att vi har särskilda rapportdetaljer för genereringsperioden, och vi skickar dem som parametrar.

Request.SetParameter("Start of Period", Start of Period); Request.SetParameter("End of Period", End of Period);

Låt oss börja skriva frågetexten, vi kommer att göra detta med hjälp av frågedesignern. I många tutorials skriver de att man måste kunna skriva en fråga både manuellt och med hjälp av en konstruktor, men i praktiken är det inte så. I de uppgifter som en 1C-programmerare ständigt står inför, är prioritet att snabbt och effektivt skriva kod, och när du skriver en fråga till databasen manuellt, är detta nästan omöjligt att uppnå och hitta stavfel som du gjorde när du skrev, etc. Slösa därför inte din tid med att försöka skriva frågor manuellt, utan använd frågekonstruktorn. Det sparar tid och låter dig skriva komplexa frågor utan större ansträngning. För att börja skriva begärantexten, låt oss skriva i kod:

Request.Text = "" ;

Efter det, placera markören mellan citattecken, högerklicka och välj Konstruktör begäran. Frågedesignerfönstret öppnas.

Nu måste vi välja den 1C 8-databastabell vi behöver. Vi behöver en virtuell tabell Revolutioner redovisningsregister Självförsörjande. Låt oss hitta den på vänster sida av designerfönstret

Låt oss flytta den till området Tabeller och låt oss börja fylla i parametrarna. För alla virtuella frågetabeller finns det en speciell uppsättning parametrar som låter dig välja nödvändiga data från huvudtabellen (i vårt fall huvudtabellen Accounting Register Självförsörjande). Låt oss öppna fönstret för virtuella tabellparametrar.

Låt oss fylla i parametrarna för perioden som vi skickade till begäran. För att använda en parameter i förfrågningstexten bör du skriva symbolen före dess namn et-tecken(&)

Det återstår att fylla i villkoret för redovisningskontot. bokföring. För att göra detta, hitta raden i parametrarna för den virtuella tabellen Kontots skick och vi skriver där

Konto I HIERARKI (&Account62)

Du kan också använda villkorskonstruktorn genom att klicka på knappen med tre punkter.

Det finns inget behov av att införa fler villkor för det virtuella bordet, så låt oss klicka på knappen OK i fönstret för virtuella tabellparametrar. Därefter måste vi välja de fält vi behöver från tabellen Självförsörjande.Omsättning(nämligen: Motpart, Motpartsavtal, Intäkter och kostnader). För att se listan över tillgängliga fält i tabellen vi har valt, klicka på "+"-symbolen bredvid dess namn. Efter det, dra de obligatoriska fälten till området längst till höger i frågedesignern, som kallas: Fält. Om vi ​​öppnar kontoplanen ser vi det för kontot 62 analyser på För motparten är detta Subconto1, och av Motpartsavtal - Subconto2.

Därför väljer vi från fälten i den virtuella tabellen Subconto1 Och Subconto2. Eftersom vi behöver inkomster och utgifter efter belopp väljer vi även fälten BeloppOmsättningDt Och BeloppOmsättningKt

Låt oss fylla i aliasen för de fält vi har valt för att göra detta, gå till fliken Fackföreningar/Alias och ställ in de obligatoriska fältnamnen.

Eftersom data i vår rapport kommer att visas hierarkiskt (Motparten är på den första nivån och alla dess kontrakt är på den andra), kommer vi att konfigurera visningen av data i hierarkin med hjälp av Totals. Låt oss gå till fliken i designern Resultat. Dra in i grupperingsfält sekventiellt Motpart Och Motpartsavtal, och i finalen Kommande Och Konsumtion.

Detta slutför arbetet i frågekonstruktorn, klicka på knappen OK och vi ser att texten i vår begäran visas i programkoden.

Query.Text = "VÄLJ | SjälvförsörjandeTurnover.Subconto1 AS Motpart, | SjälvförsörjandeTurnover.Subconto2 AS motpartsavtal, | SjälvförsörjandeTurnover.AmountTurnoverDt AS-kvitto, | SjälvförsörjandeOmsättning.BeloppOmsättningKt AS Kostnad|FRÅN | Bokföringsregister Egenredovisning Omsättning (&Början av Period, &Periodslut, Konto I HIERARKI) SOM EgenredovisningOmsättning.|RESULTAT | BELOPP(Intäkt), | BELOPP(Utgift) |PO | Motpart, | Motpartsavtal";

När vi har skrivit klart förfrågan, låt oss börja fylla i områdena Datamotpart, DataAgreement Motpart Och Källare. Vi kommer att fylla alla dessa områden med de uppgifter som vi mottog när vi utför begäran. Eftersom vår fråga innehåller grupperingar( Motpart Och Motpartsavtal) välj data från den enligt följande:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

På så sätt kommer vi att ta emot poster med summor för alla motparter.

Innan vi går igenom exempeldatan med en loop, initierar vi variablerna som är avsedda för att beräkna de övergripande resultaten för rapporten:

Totalt inkommande = 0; Totalförbrukning = 0;

För att rapportdata ska visas med en hierarki (och rotationer längs "+"), låt oss ställa in början på den automatiska grupperingen av rader i kalkylarksdokumentet:

TabDoc.StartAutoGroupingRows();

Alla förberedelser är slutförda, låt oss nu börja genomsöka frågeresultaten. Vi kommer att utföra traverseringen med hjälp av en slinga Hejdå

Medan Välj Account.Next() Cycle EndCycle ;

Återställ parametrarna i början av cykeln Kommande Och Konsumtion område Datamotpart. Vad är detta till för? Låt oss föreställa oss en situation där motparten Farbror Vasya, inkomsten är 10 och kostnaden 5, och för nästa motpart Farbror Petya det finns inga intäkter eller kostnader, i det här fallet, om vi inte återställer parametrarna Kommande Och Konsumtion, sedan i linje efter motpart Farbror Petya det blir en inkomst på 5 och en kostnad på 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Efter det fyller vi området Datamotpart exempelelementdata

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Efter att ha fyllt i uppgifterna kan du visa området i kalkylarksdokument, Eftersom vi använder automatisk gruppering av rader måste vi ange nivån på raden i grupperingen (vår rapport kommer att ha två nivåer, för motparter den första för kontrakt).

TabDoc.Output(AreaDataAccount,1);

Nu för denna motpart kommer vi att göra ett urval enligt dess kontrakt.

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Vi kommer att utföra traverseringen med hjälp av en slinga Hejdå.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

I cykeln för motpartsavtal, låt oss återställa parametrarna Kommande Och Konsumtion, fyll området Datakontrakt från provet och visa det i ett kalkylarksdokument på den andra nivån av poster.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Fyll iPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Även i denna cykel kommer vi att lägga till de aktuella värdena till variablerna för att beräkna de totala värdena för intäkter och kostnader.

TotalReceipt = TotalReceipt + Urval Motpartsavtal.Kvitto; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Detta avslutar produktionen av data i området Datamotpart, DataAgreement Motpart slutfört, allt som återstår är att slutföra den automatiska grupperingen av raderna i kalkylarksdokumentet.

TabDoc.FinishAutoGroupingRows();

Fullständiga cykler ansvarar för att mata ut data till området Datamotpart Och DataAgreement Motpart se ut så här:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ;

AreaDataAccount.Parameters.Expense = 0 ; Källare FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); kalkylarksdokument.

TabDoc.Output(AreaDataAccount,1);

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ;

Fyll iPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement);



Sony Ericsson WT19i Hemliga koder Vad är fjärrupplåsning av telefon
DELA: