1c izvještaji i obrada. Dodavanje eksterne obrade bazi podataka

Idite na vrh menija Servis->->.

Pojavljuje se forma liste referentne knjige eksterne obrade. U gornjem meniju pritisnite dugme Dodati.

Pojavit će se obrazac za dodavanje novog objekta. Pritisnemo dugme za otvaranje i izaberemo datoteku sa željenom obradom. Nakon što ste odabrali željeni fajl, ako je potrebno, navedite naziv tretmana (polje Naziv). Nakon toga, potrebno je da kliknete OK da sačuvate napravljene promjene.

Nakon toga, prozor za kreiranje kataloške stavke se zatvara, a vi se vraćate na obrazac liste, u kojoj već postoji nova obrada.

To je sve! Proces dodavanja obrade u konfiguraciju je završen. Da biste kasnije otvorili ovu obradu, slijedite staru putanju: Servis->Dodatni izvještaji i obrada->Dodatni vanjski tretmani.

Za BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Eksterni tretmani za 1C: Enterprise 8 su nekoliko tipova. U ovom tutorijalu pokazat ću vam kako priložiti obradu za grupnu modifikaciju i obradu za popunjavanje određenih objekata.

Za prvi slučaj, dodajmo obradu za popunjavanje liste akcija iz Excel-a.

Idite na odgovarajući dio programa:


Neophodno je da se postavi oznaka korišćenja dodatnih izveštaja i obrade, pratite hipervezu do liste eksternih objekata:

Na listi kliknite Stvoriti:


U dijaloškom okviru koji se otvori odaberite željenu datoteku s obradom:


Kartica novog eksternog objekta u programu je popunjena, ostaje samo da se konfiguriše smještaj(odjeljci programa iz kojih će biti dostupna obrada):


Odaberite proizvoljan odjeljak (ili nekoliko) kao položaj:


Zapisujemo i zatvaramo karticu vanjskog objekta:


Sada otvorimo obradu iz interfejsa:


Lista je prazna, kliknite Prilagodite listu:


Mi biramo našu obradu:


Sada je dostupan za odabir. Da biste otvorili obradu, potrebno je da kliknete Izvrši:


Sada da vidimo kako se dodaje obrada za popunjavanje (modificiranje) određenih objekata. Na primjer, uzmi eksterna obrada, koji prilaže skeniranja odabranim elementima direktorija ili dokumenata sistema. Početak dodavanja takve obrade ne razlikuje se od prethodne opcije. Razlika je u tome što u ovaj slučaj lokacija se popunjava automatski (i to ne od strane programa, već prema tipovima objekata baze podataka):


Po želji, lista plasmana se može podesiti ( nemojte dodavati dodatni položaj, već uklanjajte nepotrebno):


Da biste prihvatili promjenu, kartica vanjskog objekta također mora biti snimljena.

Da biste koristili obradu, morate otići do određenog osnovnog objekta (sa liste plasmana), kliknuti na stavku Ispuniti u komandnoj tabli i odaberite naredbu:

Pažnja!
Sva obrada sa ITS diskova je namenjena u informativne svrhe i isključivo za registrovane ITS korisnike.

Odabir i obrada objekata. (univerzalno)

Traži objekte u dokumentima i direktorijumima koji ispunjavaju određene uslove. Obrađuje rezultate pretrage.

Preklapanje baze podataka. (univerzalno)

Sažetak informacione sigurnosti tipičnih konfiguracija:

  • SCP 3.1.
  • BP 1.6.
  • UT 10.3.

Registracija promjena za zamjenu. (univerzalno)

Uređuje, u režimu upravljane aplikacije, registraciju promjena u objektima razmjene. Omogućava vam da promijenite trenutnu registraciju na različitim čvorovima. Mijenja brojeve primljenih i poslanih poruka.

Pretvorite dnevnik aktivnosti korisnika. (univerzalno)

Pretvara dnevnik aktivnosti korisnika u ugrađeni program.

Pretraživanje podataka u punom tekstu. (univerzalno)

Indeksiranje i pretraživanje podataka.

Pronalaženje i zamjena vrijednosti. (univerzalno)

Traži i zamjenjuje referentne vrijednosti u IB objektima.

Postavljanje tehnološkog dnevnika. (univerzalno)

Kreira ili uređuje datoteku dnevnika tehnologije. Ima mogućnost da konfiguriše kreiranje dumpa nenormalnog prekida, konfiguriše uslove i događaje po čijem nastanku će se informacije upisivati ​​u ovaj dnevnik.

Quest Console. (univerzalno)

Prati pozadinu i zakazane poslove. Briše, stvara nove.

Konverzija eksternih tretmana. (univerzalno)

Promjena povjerljivih informacija. (univerzalno)

Selektivna promjena ili brisanje sigurnosti informacija od određenih informacija.

Grupna promjena detalja. (univerzalno)

Mijenja rekvizite i tabele u dokumentima i referentnim knjigama.

Iskrcaj i utovar korisnika. (univerzalno)

Učitava i učitava IB korisnike u XML datoteku.

Učitavanje podataka u eksterne baze podataka. (univerzalno)

Učitava strukture podataka u eksterni DBMS koristeći ADO u dva načina:

  • Unload All
  • Upload promjena (koristi se za sinhronizaciju promjena u radnom IS-u, sa IS-om - prijemnikom). Ovaj način rada koristi mehanizme plana razmjene.

Podržava sljedeće DBMS:

  • Microsoft SQL
  • IBM DB2
  • Oracle
  • PostgreSQL
  • MySQL

Istovar i učitavanje XML podataka. (univerzalno)

Učitava i učitava podatke u IB, u cijelosti i djelomično. Koristi se za prijenos podataka između konfiguracija sa sličnim sastavom objekata.

Učitavanje podataka iz tabelarnog dokumenta. (univerzalno)

Učitava podatke u direktorije i tabelarne sekcije iz tabelarnih dokumenata.

Radi u debelom klijentu kao obična aplikacija.

Konzola upita. (univerzalno)

Pruža ogromnu pomoć u izvještavanju i kreiranju upita.

Često, kada tokom konsultacija postoji potreba da se riješi neki težak problem, predlažem svojim klijentima da ga implementiraju u 1C program koristeći bilo koji eksterna obrada ili spoljna štamparska ploča... I često nailazim na činjenicu da osoba jednostavno nije upoznata sa ovom mogućnošću programa na 1C Enterprise 8. Ponekad me čak i psuju, vjerujući da će razvoj i implementacija takve obrade u njihovoj konfiguraciji dovesti do nemogućnosti automatsko ažuriranje programa. Da morate platiti mnogo novca za ažuriranje programa.

Da razjasnimo takva pitanja, kao i da kažemo o čemu korisne karakteristike dati eksternu obradu i eksterne štamparske ploče Odlučio sam da napišem ovaj članak. U ovom članku neću razmatrati tehničku stranu procesa kreiranja obrade. O tome će najvjerovatnije biti riječi u nekoj drugoj publikaciji. Ovdje ću pokušati objasniti samu suštinu mehanizma i dati konkretne primjere onih slučajeva u kojima eksterna obrada i štampanje formi mogu biti od koristi korisniku.

U članku će se raspravljati o sljedećim opcijama za dodatne vanjske objekte koji se mogu priključiti:

  • Dodatna eksterna obrada tabelarnih sekcija;
  • Dodatne vanjske tiskarske ploče;
  • Dodatno eksterni izvještaji;
  • Dodatni vanjski tretmani.

Šta su dodatna eksterna obrada, izveštaji i obrasci za štampanje




Za početak, želio bih govoriti općenito o tome koji su to eksterni tretmani, izvještaji i obrasci za štampanje... Često, kada radite sa tipičnom konfiguracijom, bilo da je to 1C ZUP ili 1C Enterprise Accounting ili neka druga konfiguracija, postoji potreba za nekom funkcionalnošću koju programeri 1C ne pružaju. Na primjer, možda će vam trebati štampanom obliku, koji nije regulisan, ali se koristi za interne potrebe organizacije. Ili je potrebno na određeni način proces (promjena, ispravan) dostupno u bazi podataka. Na primjer, promijeniti određeni atribut u dokumentima za traženi period, što je nezgodno raditi ručno s velikom količinom informacija.

U ovom slučaju postoje dvije opcije. Prvo, možemo modificirati samu konfiguraciju, sam program. Nakon toga, to će prestati biti tipično i ažurirati ga s tim na jednostavne načine, o čemu sam pisao, neće raditi. Ažuriranje netipične konfiguracije je duži i ozbiljniji proces, stoga ćete s ovim pristupom najvjerovatnije morati mjesečno plaćati 1C stručnjaka za ažuriranje programa. Sekunda opcija je razviti ili zatražiti izradu eksterne obrade ili štampanog obrasca (izvještaja). Ovo je u suštini eksterni modul, koji je takođe razvijen u 1C programskom jeziku u konfiguratoru, ali ne menja tipičnu konfiguraciju. Postoji nezavisno od same konfiguracije. Za njihovo pohranjivanje koriste se posebni priručniki: stavka glavnog menija "Servis" -> "Dodatni izvještaji i obrada".

Dodatna eksterna obrada za popunjavanje tabelarnih sekcija

Seminar "Life hakovi na 1C ZUP 3.1"
Analiza 15 životnih hakova za računovodstvo u 1s ZUP 3.1:

ČEK-LIST za provjeru platnog spiska u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Plate u 1C ZUP 3.1
Korak po korak instrukcije za početnike:

Sada pogledajmo koje su mogućnosti svaka od četiri dostupne eksterni moduli... Počnimo sa eksterna obrada tabelarnih sekcija... Čini mi se da ova obrada tabelarnih sekcija dokumenata najpotpunije ilustruje kako možete sasvim ozbiljno modifikovati program, a da pritom ne pribegavate uređivanju tipične konfiguracije, već koristeći samo eksternu obradu.

Da bi bilo jasnije, navešću konkretan primjer iz svoje prakse, u kojoj sam koristio eksterna obrada tabelarnih sekcija... U konfiguraciji "1C Plaća i upravljanje ljudskim resursima" verzija 2.5 nalazi se dokument "Plaćanje za praznike i vikende"(ovaj dokument je detaljno napisan). V tipična forma ovaj dokument pruža mogućnost automatskog popunjavanja tabelarnog dijela od strane zaposlenih "Rad na praznike".

Računovođa je tražila da se implementira mogućnost popunjavanja ovog dokumenta od strane zaposlenih čiji su radni dani padali vikendom po rasporedu, tj. "Rad vikendom".

Ova datoteka je učitana u direktorij "Spoljna obrada tabelarnih sekcija"(stavka menija "Usluga" -> "Dodatni izvještaji i obrada" -> "Dodatna eksterna obrada tabelarnih sekcija"). Prilikom kreiranja elementa ovog imenika, naznačeno je kojem dokumentu pripada učitana obrada - "Plaćanja za praznike i vikende organizacije", kao i kom tabelarnom dijelu - "Zaposleni". U našem primjeru dokument ima jedan tabelarni dio, ali u drugim dokumentima ih može biti nekoliko, stoga je potrebno posebno naznačiti na koji se od njih obrada odnosi.

Kao rezultat dodavanja ove obrade u direktorij "Dodatna eksterna obrada za popunjavanje tabelarnih sekcija" u dokumentu "Plaćanje prazničnih i vikend dijelova" nalazi se dugme "Popuni" sa padajućom listom u kojoj će biti moguće pokrenuti ovu obradu. U našem slučaju, dugme "Popuni nedjelje" dostupno je na padajućoj listi. Pritiskom na njega pokreće se algoritam koji se obrađuje. U ovom primjeru, tabelarni dio će biti popunjen zaposlenima čiji su radni dani padali na vikend. Imajte na umu da ovo dugme ranije nije bilo (snimak ekrana iznad).

Ovaj mehanizam vam omogućava da rešite veoma širok spektar problema bez potrebe da menjate samu konfiguraciju. Stoga često koristim ovu priliku za implementaciju zadataka klijenata.

Dodatne vanjske štamparske ploče

Seminar "Life hakovi na 1C ZUP 3.1"
Analiza 15 životnih hakova za računovodstvo u 1s ZUP 3.1:

ČEK-LIST za provjeru platnog spiska u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Plate u 1C ZUP 3.1
Korak po korak upute za početnike:

Ova opcija je vrlo slična prethodnoj. Najvjerovatnije ste vidjeli i znate da skoro svaki dokument, pa čak i neki elementi direktorija, imaju forme za štampanje. Oni se, po pravilu, nalaze u donjem desnom uglu forme kataloške jedinice ili dokumenta. Ponekad standardni štampani obrasci nisu dovoljni. Na primjer, organizacija može imati svoj oblik ugovora o radu. Podsjećam da je standardni štampani obrazac „Ugovor o radu“ uključen u obrazac imenika „Zaposleni“.

Ovim štampanim obrascima priručnika možete dodati svoje. Za ovo se kreira eksterni printable sa ekstenzijom “.epf”. Zatim se za njega kreira element direktorija. "Dodatne vanjske štamparske ploče"(stavka menija "Usluga" -> "Dodatni izvještaji i obrada") i ovom elementu priručnika se dodaje datoteka sa ekstenzijom ".epf". Također je potrebno naznačiti za koji dokument ili referencu se dodaje obrada.

Kao rezultat toga, u štampanim formama elemenata imenika "Zaposleni" pojaviće se još jedan obrazac - "Ugovor o radu (DOO Alpha)", koji ranije nije postojao. I ona izgled a popunjavanje podacima definiše programer u “.epf” datoteci.

Ova mogućnost dodavanja potrebnih štampanih obrazaca za dokumente i imenike je takođe vrlo često tražena i, po mom mišljenju, prilično je zgodna funkcionalnost programa na platformi 1C Enterprise.

Dodatni eksterni izvještaji

U ovom slučaju možete se razviti eksterni izvještaj... Ova datoteka je u “.erf” formatu. Upravo ova datoteka će odrediti izgled izvještaja, koje će konfiguracijske podatke koristiti i koje će podatke tražiti od korisnika (na primjer, period, odabir po zaposleniku ili po odjelu). Datoteka se kreira u 1C konfiguratoru u 1C programskom jeziku.

Eksterni izvještaj se može pohraniti kao dio konfiguracije pomoću reference "Dodatni eksterni izvještaji" (stavka menija "Usluga" -> "Dodatni izvještaji i obrada"). Oni se ne odnose na konkretan dokument ili referencu, ove informacije nije potrebno specificirati.

Sa ovom opcijom skladištenja, izvještaj se pokreće iz istog direktorija (dvostrukim klikom).

Također možete pokrenuti vanjski izvještaj koristeći stavku menija "Datoteka" -> "Otvori". Ova opcija se može koristiti ako vam je zgodnije da eksterne izveštaje čuvate ne u okviru programa, već jednostavno u fasciklama računara.

Dodatni vanjski tretmani

Eksterni tretmani imaju približno isto značenje kao i eksterni izvještaji. Ali za razliku od izvještaja, koji se koriste za pregled podataka baze podataka u formatu prilagođenom korisniku, obrada je dizajnirana za izmjenu, uređivanje ili transformaciju podataka. baza informacija... Raspon zadataka koji se mogu riješiti korištenjem eksterne obrade prilično je širok.

Na primjer, obrada za istovar izvoda za plaćanje plate... Uprkos prisutnosti standardne obrade u ZUP-u (pročitajte o tome), ponekad možda nije prikladan za određenu banku i razvijena je eksterna obrada koja konvertuje i istovaruje informacije u traženom formatu.

ja cu dati još jedan primjer potpuno nepretenciozna, ali prilično zahtjevna obrada. Ako u 1C ZUP-u u toku godine ne čuvate dokument "Prenos poreza na dohodak fizičkih lica u budžet", onda će prilikom formiranja 2-poreza na dohodak fizičkih lica za godinu, polje "Popisano" za svakog zaposlenog biti nula, što je obično zapravo netačno. Može biti prilično zamorno unositi dokument "Prenos poreza na dohodak fizičkih lica u budžet" za cijelu godinu, s obzirom na specifičnosti samog dokumenta. Ali možete obaviti eksternu obradu, koja će u generiranom 2-NDFL jednostavno popuniti polje "Nabrojano" za svakog zaposlenika, na osnovu vrijednosti u polju "Izračunato". Obično računovođe zaista vole ovu opciju.

Eksterna obrada ima potpuno iste dvije opcije za pohranjivanje i pokretanje: ili koristite referencu "Dodatni vanjski tretmani"(stavka menija "Alati" -> "Dodatni izveštaji i obrada"), ili stavka glavnog menija "Datoteka" -> "Otvori".

To je sve za danas!

Kako biste prvi saznali za nove publikacije, pretplatite se na ažuriranja mog bloga:

Razmislite o kreiranju eksternog izvještaja u 1c 8 bez korištenja sistema za sastavljanje podataka. Za kreiranje eksternog izvještaja koristit ćemo konfiguraciju Računovodstva 2.0, početni podaci: „Napišite izvještaj o računu 62 računovodstvo u kojem će u kontekstu biti prikazani prometi za navedeni period Counterparties i Ugovori sa ugovaračem.

1. Kreirajte izvještaj

Prije svega, kreirat ćemo eksternu datoteku izvještaja, za to idemo na 1c 8 u načinu rada Konfigurator, idite na meni Fajl -> Novo, ili kliknite na ikonu novi dokument.

Na listi odaberite stavku Eksterni izvještaj... Nakon kreiranja eksternog izvještaja, dajte mu Naziv (na primjer Najjednostavniji izvještaj) i sačuvajte ga na disk. Takođe ćemo dodati dva rekvizita: Početak perioda i Kraj perioda tip datum, trebat će nam da ograničimo vremenski interval za uzorkovanje podataka prilikom generiranja izvještaja.

2. Kreiranje izgleda za eksterni izvještaj

Za generiranje izvještaja u 1c 8 potreban vam je izgled, ovo je predložak za izlaz podataka u kojem svi željene parametre, crtaju se tabele itd. Dodajmo novi izgled, za to u stablu metapodataka izvještaja odaberite stavku Izgledi i pritisnite dugme Dodati, prilikom kreiranja biramo tip za izgled Tabelarni dokument.

Naš izgled će imati 4 oblasti:

  • Zaglavlje - u ovoj oblasti ćemo prikazati naziv izveštaja, period za koji je generisan i zaglavlje tabele;
  • DataContractor - u ovoj oblasti ćemo prikazati podatke o suprotnoj strani u tabeli;
  • Podaci o ugovoru o ugovaraču - u ovoj oblasti ćemo u tabeli prikazati podatke o ugovoru o ugovornoj strani;
  • Podrum - u ovoj oblasti ćemo prikazati ukupne vrednosti za ceo izveštaj za polja Prihodi i Rashodi.

Počnimo kreirati područja rasporeda. Da biste kreirali oblast u rasporedu, izaberite potreban broj linija i pritisnite Meni tabele -> Imena -> Dodeli ime(Or Ctrl + Shift + N). Na područje Kapa napišite naziv izvještaja: Promet 62 računa, crtanje pomoću alata Granice zaglavlje izvještaja, kao i postavljanje parametara Početak perioda i Kraj perioda... Pomoću parametara možete prikazati potrebne podatke u izvještaju, time ćemo se baviti u sljedećoj fazi razvoja, odnosno prilikom pisanja programskog koda izvještaja. Da biste kreirali parametar u izgledu, izaberite željenu ćeliju, u njega upišite naziv parametra (bez razmaka), kliknite desnim tasterom miša na njega, u meniju koji se otvori izaberite Svojstva... U svojstvima ćelije na obeleživaču Layout izaberite punjenje Parametar.

Nakon toga, naziv parametra u ćeliji će biti zatvoren u uglastim zagradama (”<>“). Kao rezultat toga, područje Kapa trebalo bi izgledati ovako:

Na području DataContractor kreiraćemo parametre za prikaz imena druge ugovorne strane, kao i za prihode i rashode za 62 računa, koristeći alat Granice Uredimo područje u obliku reda tabele.

Na području DataContractor Agreement napravićemo parametre za prikaz naziva ugovora, kao i za primitke i rashode na računu 62, koristeći alat Borders, uredićemo područje u obliku reda tabele. Napravimo malo uvlačenje ispred parametra Ugovor sa ugovaračem(Ovo se može uraditi cijepanjem i spajanjem ćelija. Desnim klikom na ćeliju -> Kombinirati ili Razbij ćeliju), potrebno je kako bi se u izvještaju moglo vidjeti da je linija pod ugovorom niža u hijerarhiji od linije za drugu stranu.

Na području Podrum Kreirajmo parametre za ukupne primitke i izdatke.

Kao rezultat, trebali bismo dobiti ovakav izgled:

3. Kreiranje obrasca izvještaja

Za prikaz podataka podesite period formiranja i dugmad Oblikovati našem izvještaju će biti potreban obrazac. Da biste kreirali obrazac, pronađite stavku u stablu metapodataka vanjskog izvještaja. Forms i pritisnite dugme Dodati... Na prvoj stranici dizajnera obrasca ne morate da unosite nikakve izmene, potrebno je samo da kliknete na dugme Dalje.

On sljedeća stranica konstruktora, biramo oba dostupna rekvizita ( Početak perioda, Kraj perioda) za pozicioniranje na obrascu.

Kao rezultat, dobijamo sljedeći obrazac:

Ali u ovom obliku, nama ne odgovara, napravićemo neke izmene u njemu:

  • Prevucite dugme Oblikovati od donjeg okna izvještaja do gornjeg (ovo će biti zgodnije za korisnika);
  • Rastegnite oblik okomito i vodoravno;
  • Rasporedite polja Početak perioda i Kraj perioda horizontalno;
  • Dodajte u obrazac kontrolni element Polje dokumenta tabele (naš izveštaj će biti prikazan u njemu), dajte mu ime TabDoc;
  • Napravimo dugme za odabir perioda (kada ga pritisnete, prikazaće se dijalog sa pogodnim izborom željenog perioda). Još nećemo pisati programski kod za njega, pa ćemo jednostavno postaviti dugme pored polja perioda.

Kao rezultat, naš obrazac će izgledati ovako:

4. Programiranje

Nakon kreiranja obrasca izvještaja, krenimo s programiranjem. Za početak ćemo kreirati proceduru za prikaz dijaloga za odabir perioda (već smo kreirali dugme za ovo u prethodnom koraku). Kliknite desnim tasterom miša na dugme i izaberite stavku menija Svojstva, u svojstvima dugmeta idite na karticu Razvoj, gde pomoću dugmeta sa ikonom lupe kreirate proceduru Dugme 1 Pritisnite u modulu forme.

Možete se prebacivati ​​između obrasca i njegovog modula pomoću kartica na dnu obrasca

Za pozivanje obrasca za odabir perioda koristićemo standardnu ​​proceduru Računovodstvo 2.0 iz opšteg modula WorkingWith Dialogs - HandlerSettingPeriodPressing, morate mu proslijediti detalje izvještaja kao parametre Početak perioda i Kraj perioda.

Procedura Tipka 1 Pritisnite (element) WorkingWith Dialogues.HandlerPeriodSettingPressing (PeriodBeginning, PeriodEnd); Kraj procedure

Sada pređimo na pisanje koda koji će generirati i prikazati naš izvještaj. Već postoji procedura u modulu obrasca ButtonShapePress koji će se izvršiti kada se pritisne dugme Oblikovati, tu ćemo napisati naš kod. Počnimo sa inicijalizacijom potrebnih varijabli. Prije svega, napravimo varijablu za polja dokumenta tabele u koji ćemo ispisivati ​​podatke, to nije potrebno, samo će snimanje poziva prema njemu biti kraće, što znači da će programski kod biti razumljiviji za čitanje.

TabDoc = Elementi obrasca.TabDoc;

Dobijte izgled vanjskog izvještaja pomoću funkcije Nabavite izgled (<ИмяМакета>) , parametru ćemo proslijediti naziv rasporeda, a ako takav raspored postoji, funkcija će ga pronaći.

Layout = Get Layout ("Layout");

Nakon što je izgled primljen, kreiraćemo varijable za svako njegovo područje, za to ćemo koristiti metodu rasporeda GetArea (<ИмяОбласти>) .

AreaHeat = Layout.GetArea ("Header"); ScopeDataContractor = Layout.GetScope ( "DataContractor"); ScopeDataContract = Layout.GetScope ("ContractData"); AreaFooter = Layout.GetArea ("Footer");

Očistimo polje dokumenta tabele. Ovo je neophodno kako bi se sa svakom novom generacijom izvještaja izbrisali stari podaci.

TabDoc.Clear ();

Sada kada je inicijalizacija varijabli završena, pređimo na naizmenično popunjavanje i prikazivanje područja rasporeda. Počnimo sa kapom. Ako se sjećate, napravili smo dva parametra u ovoj oblasti. Početak perioda i Kraj perioda, tamo ćemo prenijeti vrijednosti perioda generiranja izvještaja, za to ćemo koristiti svojstvo Opcije područje rasporeda.

AreaHead.Parameters.StartPeriod = Početni period; AreaHead.Parameters.EndPeriod = EndPeriod;

Nema više akcije na tom području Kapa proizvođač nije neophodan, pa njegovo polje prikazujemo u dokumentu proračunske tablice.

TabDok.Display (AreaHap);

Zatim ćemo napisati upit u bazu podataka sa kojim ćemo preuzeti promete na računu 62 iz računovodstvenog registra Samonosivi... Definirajmo varijablu u kojoj će se nalaziti naš zahtjev.

Zahtjev = novi zahtjev;

Prije nego što počnemo pisati tekst zahtjeva, proslijedimo mu potrebne parametre. Pošto pišemo zahtjev za fakturom 62 računovodstvo, tada ćemo prije svega kreirati parametar za njega

Request.SetParameter ("Account62", Planovi računa. Samopoduzimajući.FindByCode ("62"));

Također je potrebno prenijeti period generiranja izvještaja u zahtjev. Ne zaboravite da za period formiranja imamo posebne detalje izvještaja, koje prosljeđujemo kao parametre.

Request.SetParameter ("PeriodBeginning", PeriodBeginning); Request.SetParameter ("EndPeriod", EndPeriod);

Počnimo pisati tekst zahtjeva, to ćemo učiniti pomoću konstruktora upita. U mnogima nastavna sredstva napišite da morate biti u mogućnosti napisati upit i ručno i pomoću konstruktora, ali u praksi to nije slučaj. U zadacima s kojima se stalno suočava 1C programer, prioritet je brzo i efikasno pisanje koda, a kada ručno napravite zahtjev bazi podataka, to je gotovo nemoguće postići, potrošit ćete puno dragocjenog vremena pokušavajući ispravno reprodukujte sve konstrukcije upita, pronađite greške u kucanju koje ste uradili tokom pisanja, itd. Stoga nemojte gubiti vreme pokušavajući da ručno pišete upite, već koristite konstruktor upita. To će vam uštedjeti vrijeme i posebne napore pisati složene upite. Za početak pisanja teksta zahtjeva upišite kod:

Request.Text = "";

Nakon toga, postavite kursor između navodnika, pritisnite desnu tipku miša i odaberite stavku Konstruktor zahtjev. Otvoriće se prozor dizajnera upita.

Sada treba da izaberemo tabelu baze podataka 1C 8 koja nam je potrebna. Potrebna nam je virtuelna tabela Promet računovodstveni registar Samonosivi... Nađimo ga na lijevoj strani prozora konstruktora

Premjestimo to na područje Stolovi i popunimo parametre. Za sve virtuelne tabele upita postoji poseban skup parametara koji vam omogućavaju da izaberete željene podatke iz glavne tabele (u našem slučaju, glavna tabela Registar računovodstva Samonosivi). Otvorimo prozor parametara virtuelne tabele.

Popunimo parametre perioda koji smo prenijeli na zahtjev. Da biste koristili parametar u tekstu zahtjeva, upišite simbol ispred njegovog imena ampersand (&)

Ostaje ispuniti uslov za račun bukh. računovodstvo. Da biste to učinili, pronađite liniju u parametrima virtualne tablice Stanje računa i pisati tamo

Račun u HIJERARHIJI (& Račun62)

Takođe možete koristiti konstruktor za crtanje uslova klikom na dugme sa tri tačke.

Nema potrebe da namećete više uslova virtuelnom stolu, pa pritisnite dugme uredu u prozoru parametara virtuelne tabele. Zatim morate odabrati polja koja su nam potrebna iz tabele Samonosivi.Promet(naime: Druga strana, Ugovor sa drugom stranom, Prihodi i rashodi). Da vidite listu polja koja su dostupna u tabeli koju smo odabrali, pritisnite simbol "+" pored njenog naziva. Nakon toga, povucite potrebna polja u krajnje desno područje dizajnera upita, koje se zove Polja. Ako otvorimo kontni plan, to ćemo vidjeti za račun 62 analitika za Druga strana je Subconto1 i po Ugovor sa ugovaračem - Subconto2.

Stoga iz polja virtuelne tabele biramo Subconto1 i Subconto2... Pošto su nam potrebni prihodi i rashodi po iznosu, biramo i polja IznosTurnoverDt i IznosTurnoverKt

Popunite pseudonime polja koja smo odabrali, za to idemo na karticu Sindikati / Aliasi i postavite potrebna imena polja.

Budući da će u našem izvještaju podaci biti prikazani hijerarhijski (Counterparty je na prvom nivou, a svi njegovi ugovori su na drugom), konfigurisaćemo izlaz podataka u hijerarhiji koristeći Totals. Idemo na bookmark u konstruktoru Ishodi... U poljima za grupisanje prevucite uzastopno Counterparty i Ugovor sa ugovaračem, i u finalu Dolazim i Potrošnja.

Ovo završava rad u konstruktoru upita, pritisnite dugme uredu i vidimo da se tekst našeg zahtjeva pojavio u programskom kodu.

Request.Text = "ODABIR | Samonosivi obrti.Subkonto1 AS a Counterparty, | Samonosivi promet.Subkonto2 AS Ugovor sa ugovaračem | SamonosiviTurnover.SumTurnoverDt AS Župa, | SamonosiviTurnover.SumTurnoverKt AS Potrošnja OD | Knjigovodstvo računovodstva. Samonosivi. Promet (& početak perioda, i kraj perioda, račun U HIJERARHIJAMA (& račun62),) AS Samonosivi promet REZULTATI | SUM (Dolazak), | AMOUNT (Potrošnja) | Softver | Counterparty, | Ugovor sa ugovaračem";

Nakon što završimo sa pisanjem zahtjeva, krenimo s popunjavanjem područja DataContractor, DataAgreementContractor i Podrum... Sve ove oblasti ćemo popuniti podacima dobijenim prilikom izvršavanja zahtjeva. Pošto naš upit sadrži grupisanje ( Counterparty i Ugovor sa ugovaračem) odaberite podatke iz njega na sljedeći način:

SelectContractor = Query.Run () Select (QueryResultIndo.OnGroups);

Tako ćemo dobiti evidenciju sa ukupnim iznosima za sve druge ugovorne strane.

Prije prelaska uzoraka podataka pomoću petlje, inicijaliziramo varijable dizajnirane da izračunaju ukupne ukupne vrijednosti za izvještaj:

Ukupan prihod = 0; Ukupna potrošnja = 0;

Kako bi podaci u izvještaju bili prikazani hijerarhijski (i šire duž "+"), postavimo početak automatskog grupisanja redova dokumenta proračunske tablice:

TabDoc.StartAutoGroupLines ();

Sve pripreme su gotove, sada krenimo s obilaženjem rezultata upita. Prelazak ćemo izvršiti pomoću petlje ćao

Dok SampleContractor.Next () Cycle EndCycle;

Na početku ciklusa, postavite parametre na nulu Dolazim i Potrošnja oblasti DataContractor... čemu služi? Zamislite situaciju da za drugu stranu Ujak Vasja, prihod 10, a rashod 5, a za njega sljedeća druga ugovorna strana Ujak Petya nema ni prihoda ni rashoda, u ovom slučaju, ako ne resetujemo parametre Dolazim i Potrošnja, zatim po redu po drugoj strani Ujak Petya dobit će prihod 5 i rashod 10.

ScopeDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0;

Nakon toga popunjavamo prostor DataContractor uzorak podataka

FillPropertyValues ​​(ScopeDataContractor.Parameters, SelectionContractor);

Nakon popunjavanja podataka, možete prikazati područje Tabelarni dokument Pošto koristimo autogrupiranje linija, potrebno je da naznačimo nivo linije u grupisanju (u našem izveštaju će biti dva nivoa, za izvođače prvi za ugovore je drugi).

TabDok.Withdraw (ScopeDataContractor, 1);

Sada ćemo za ovu drugu stranu izvršiti selekciju po njegovim ugovorima.

SelectionContractorAgreement = SelectionContractor.Select (BypassResultResult.On Groups);

Prelazak ćemo izvršiti pomoću petlje ćao.

Dok je Ugovor o odabiru izvođača.Sljedeći () Ciklus Kraj ciklusa;

U ciklusu po ugovorima ugovornih strana, mi ćemo resetirati parametre Dolazim i Potrošnja, ispunite područje Ugovor o podacima iz selekcije i prikazati je u dokumentu proračunske tabele na drugom nivou zapisa.

ScopeDataContract.Parameters.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Ispunite vrijednosti svojstava (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2);

Takođe, u ovom ciklusu dodajemo trenutne vrijednosti varijablama za izračunavanje ukupnih vrijednosti prihoda i rashoda.

Ukupni prihod = Ukupan prihod + Ugovor o izboru izvođača. Prihod; TotalExpense = TotalExpense + SampleContractor Agreement.Expense;

Ovim se završava izlaz podataka u području DataContractor, DataAgreementContractor završeno, ostaje da se završi automatsko grupisanje redova dokumenta tabele.

TabDoc.FinishAutoGroupLines ();

Potpuno petlje odgovorne za izlaz podataka u području DataContractor i DataAgreementContractor izgleda ovako:

TabDoc.StartAutoGroupLines (); Dok SampleContractor.Next () Cycle ScopeDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0; FillPropertyValues ​​(ScopeDataContractor.Parameters, SelectionContractor); TabDok.Withdraw (ScopeDataContractor, 1); SelectionContractorAgreement = SelectionContractor.Select (BypassResultResult.On Groupings); Dok SelectionDogovKontragenta.Sleduyuschiy () Cycle ScopeDataDogov.Parametry.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Ispunite vrijednosti svojstava (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2); Ukupni prihod = Ukupan prihod + Ugovor o izboru izvođača. Prihod; TotalExpense = TotalExpense + SampleContractor Agreement.Expense; Kraj ciklusa; Kraj ciklusa; TabDoc.FinishAutoGroupLines ();

Ostaje da se iznese ukupni iznos u područje Podrum i prikazati samu oblast Tabelarni dokument.

AreaBoard.Parameters.TotalIncoming = TotalIncoming; AreaBoard.Parameters.TotalExpense = TotalExpense; TabDok.Display (Podrum prostora);

Ovim se završava proces pisanja eksternog izvještaja za 1C 8 bez korištenja ACS-a. Sada se može generirati u 1C: Enterprise 8 modu i dodati u direktorij ExternalProcessing Možete preuzeti datoteku izvještaja koja se razmatra u članku.

Pogledajte video o kreiranju eksternog štampača za upravljanu aplikaciju:

Za povezivanje eksternih obrada, izveštaja, obrazaca za štampanje razvijena je platforma 8.2 1C: Enterprise novi standard za rad u upravljanoj aplikaciji (standardno iz podsistema standardne biblioteke 8.2). Bilo je "čipova" kojih ranije nije bilo, i to:

    Proširen je tip obrade: popunjavanje objekta, kreiranje povezanih objekata. Sada u dokumente možete dodati vlastita dugmad za popunjavanje cijelog dokumenta, kao i vlastita dugmad za unos na osnovu.

    Jedna obrada može sadržavati listu od nekoliko operacija (naredbi) odjednom, tj. možete napraviti jednu obradu, gdje će biti nekoliko stavki menija odjednom: štampanje i tovarnog lista, štampanje računa o prodaji, štampanje garantnog lista. (Napomena autora: ranije u starom standardu, da biste radili takve stvari, morali ste sve raditi odjednom (čak i ako niste trebali) i niste trebali zatvarati, niti crtati svoju formu na kojoj postoji bili su potrebni gumbi za odabir potrebne operacije)

    Možete unositi na osnovu i popunjavati objekte odjednom na osnovu više objekata, a ne jednog

    Možete zakazati izvršavanje komandi servera (na serveru).

    Možete podesiti način rada "Safe" ili "Unsecure", tj. započeti obradu uzimajući u obzir ograničenje prava ili ih zanemariti (kao pod punim pravima)

    Možete podesiti način korištenja: Ne koristiti, otklanjati greške, koristiti. "Ne koristiti" - nije u upotrebi, "Debug" - vidljivo samo administratorima, "Koristi na poslu".

    Možete uključiti upotrebu u objektne forme iu listu

    Možete povezati obradu ili izvještaj sa svim objektima odjednom.

    Može se prilagoditi brz pristup na specifične komande za eksternu obradu.

    Moguće je odrediti u kojim se dijelovima sučelja treba pojaviti dodatna obrada i izvještaji.

Dakle, šta se može uključiti u standardne konfiguracije?

Sa stanovišta platforme, možete povezati:

  • eksterna obrada (datoteke sa ekstenzijom “epf”);
  • eksterni izvještaji (datoteke sa ekstenzijom "erf").

Sa stanovišta oblasti aplikacije (konfiguracije), možete povezati eksternu obradu i izveštaje sa pogledom *:

  • Dodatna obrada
    • Samo dodatna obrada. Moguće je prilagoditi
  • Dodatni izvještaj
    • Samo dodatni izvještaj
  • Punjenje objekta
    • Vlastiti gumbi za popunjavanje objekata (dokumenta), ranije su postojali samo gumbi za popunjavanje tabelarnog dijela.
  • Obrazac za štampanje
    • Dodatno za ispis (dodato je dugme "Dodatno za ispis")
  • Izvještaj
    • Izvještaj priložen objektima (direktorijima i dokumentima).
  • Kreiranje povezanih objekata
    • Vaš unos na osnovu (dugme "Kreiraj povezane objekte..." dodaje se u stavku menija "Unos na osnovu")

* na primjeru redakcije „Menadžment malog preduzeća, ur. 1.2"

Pogledajmo kako sve to funkcionira. Za povezivanje eksternih procesora i izveštaja postoji standard koji opisuje interfejs za interakciju sa eksternom obradom i izveštajima, a postoje opšti zahtevi za sve tipove, a postoje specifični za svaku vrstu obrade ili izveštaja.

Počnimo s općim zahtjevima za sve vrste obrade i izvještavanja. Da bi se kreirala eksterna obrada ili izvještaj koji se može priključiti, potrebno je deklarirati eksport funkciju ExternalProcessing Information () u objektnom modulu, koji treba da ispuni strukturu koja opisuje ponašanje. Primjer ove funkcije:

Eksterna obrada informacija () Izvoz funkcije
RegistrationData = Nova struktura;
RegistrationData.Insert ("Ime", "Primjer korištenja eksterne obrade 8.2.");
RegistrationData.Insert ("SafeMode", True);
RegistrationData.Insert ("Verzija", "1.0");

// Dodatna obrada
// Dodatni izvještaj
// FillingObject
//Izvještaj
// Print Form
// Kreiraj povezane objekte
RegistrationData.Insert ("View", "AdditionalProcessing");

RegistrationData.Insert ("Informacije", "Obrada se vrši prema novom standardu za povezivanje eksternih procesora 8.2. Primjer obrade" "Zdravo Word" "");

////////////// naredbe /////////////////////////
tzCommand = Nova tabela vrijednosti;
tzCommand.Columns.Add ("Identifikator");
tzComand.Columns.Add ("Prikaz");
tzComand.Columns.Add ("Modifikator");
tzKomand.Kolonki.Add ("ShowNotification");
tzComand.Columns.Add ("Upotreba");


CommandString.Identifier = "1";
lineCommand.View = "naredba" "Zdravo Word" "(Otvaranje obrasca)";

CommandString.Usage = "Otvaranje obrasca";

CommandString = tzCommand.Add ();
CommandString.Identifier = "2";
CommandString.View = "naredba" "Zdravo Word" "(CallClientMethod)";
CommandString.ShowNotification = Tačno;
CommandString.Usage = "CallClientMethod";

CommandString = tzCommand.Add ();
CommandString.Identifier = "3";
CommandString.View = "command" "Zdravo Word" "(CallServerMethod)";
CommandString.ShowNotification = Tačno;
CommandString.Usage = "CallServerMethod";

RegistrationData.Insert ("Commands", tzKomand);

/////////////// namjena (u kojim objektima se koristi) /////////////////////////
// za ispis obrazaca, popunjavanje, unos povezanih objekata
// Niz dodjele = Novi niz;
//AssignmentArray.Add("Document.* "); // svi dokumenti su dodijeljeni
//AssignmentArray.Add("Document.AvansReport ");
//ArrayAssignments.Add("Document.OrderBuyer ");
//RegistrationData.Insert ("Dodjela", Niz dodjela);

Vratiti podatke o registraciji;

EndFunction

Dakle, kao što možete vidjeti, funkcija popunjava strukturu RegistrationData koja ima sljedeće elemente (parametre):

    Naziv - skraćeni naziv tretmana

    Verzija - informacije o verziji obrade

    Siguran način- odgovoran je za to da li obrada treba biti obavljena uzimajući u obzir prava korisnika. Ako postavite vrijednost na "False", tada će se obrada ili izvještaj izvršiti bez obzira na ograničenja prava (kao pod punim pravima). Ova karakteristika se pojavila u verziji 8.2, gdje je, pri kreiranju eksternih procesa i izvještaja, način naveden kao drugi parametar.

    Pogled - vrsta obrade ili izvještaja. Moguće vrijednosti sam naveo na početku članka, a moguće vrijednosti za postavljanje u kodu su navedene u komentaru

  • Naredbe - Tabela vrijednosti koja navodi korištene komande. Kolone tabele vrednosti:
    • Identifikator - bilo koji niz (identifikator naredbe)
    • Pogled - opis komande
    • Modifikator - niz (koristi se za dodatne obrasce za štampanje)
    • ShowNotification - prozor upozorenja će se pojaviti prije i nakon izvršenja (za klijentske i serverske komande bez obrasca)
    • Upotreba - način pokretanja obrade:
      • Otvaranje obrasca - otvorit će se obrazac za obradu
      • CallClientMethod - pozovite obrazac metode izvoza klijenta
      • ServerMethod Call - poziva metodu izvoza iz modula za obradu

U zavisnosti od vrste obrade ili izveštaja, kao i od načina pokretanja komande "Koristi", pozivaju se metode definisane u modulu obrasca, modulu objekta. Lista proslijeđenih parametara je također drugačija. U prilogu su primjeri poziva i korištenja svih vrsta obrade.