Dom - postavke
Eksterna izvješća 1s 8. Dodavanje eksterne obrade u bazu podataka

Idite na gornji izbornik Servis->->.

Pojavljuje se obrazac popisa direktorija vanjske obrade. U gornjem izborniku pritisnite gumb Dodati.

Pojavit će se obrazac Dodaj novi objekt. Pritisnite gumb za otvaranje i odaberite datoteku sa željenom obradom. Nakon što odaberete željenu datoteku, po potrebi navedite naziv obrade (polje Naziv). Nakon toga morate kliknuti OK kako biste spremili promjene.

Nakon toga se prozor za kreiranje stavke imenika zatvara i vraćate se na obrazac popisa koji već sadrži novu obradu.

To je sve! Proces dodavanja obrade konfiguraciji je završen. Da biste kasnije otvorili ovu obradu, idite starim putem: Servis->Dodatna izvješća i obrade->Dodatni vanjski tretmani.

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

Vanjska obrada za 1C:Enterprise 8 dolazi u nekoliko vrsta. U ovoj uputi ću vam pokazati kako priložiti obradu za grupnu modifikaciju i obradu za popunjavanje određenih objekata.

Za prvi ćemo slučaj dodati obradu za popunjavanje imenika nomenklature iz Excela.

Idemo na odgovarajući odjeljak programa:


Potrebno je postaviti zastavu za korištenje dodatnih izvješća i obrada, slijediti hipervezu na popis vanjskih objekata:

Na popisu kliknite Stvoriti:


U dijaloškom okviru koji se otvori odaberite željenu datoteku za obradu:


Kartica za novi vanjski objekt u programu je popunjena, preostaje samo konfigurirati ga smještaj(dijelovi programa iz kojih će biti dostupna obrada):


Odaberite proizvoljan odjeljak (ili nekoliko) za postavljanje:


Napišite i zatvorite karticu vanjskog objekta:


Sada otvorimo obradu iz sučelja:


Lista je prazna, kliknite Prilagodite popis:


Odaberite našu obradu:


Sada je dostupan za odabir. Za otvaranje obrade potrebno je kliknuti Izvršiti:


Sada da vidimo kako se dodaje obrada za popunjavanje (modificiranje) određenih objekata. Na primjer, uzmimo vanjsku obradu, koja prilaže skenove odabranim elementima direktorija ili dokumenata sustava. Početak dodavanja takve obrade ne razlikuje se od prethodne opcije. Razlika je u tome što se u ovom slučaju lokacija popunjava automatski (i to ne odjeljkom programa, već vrstama objekata baze podataka):


Po želji se popis plasmana može prilagoditi ( nemojte dodavati dodatne položaje, ali uklonite nepotrebne):


Za prihvaćanje promjene potrebno je zapisati i karticu vanjskog objekta.

Za korištenje obrade potrebno je otići na određeni objekt baze podataka (s popisa plasmana), kliknuti Ispunite u naredbenoj ploči i odaberite naredbu:

Razmotrimo stvaranje vanjskog izvješća u 1C 8 bez korištenja sustava za sastavljanje podataka. Za izradu eksternog izvještaja koristit ćemo konfiguraciju Računovodstvo 2.0, početni podatak: „Napisati izvještaj na računovodstvenom kontu 62 u kojem će biti prikazan promet za navedeno razdoblje u kontekstu Protustranke I Ugovori ugovornih strana.

1. Napravite izvješće

Prije svega, napravimo vanjsku datoteku izvješća, idemo na 1s 8 u načinu rada Konfigurator, idemo na jelovnik Datoteka -> Novo, ili kliknite na ikonu Novi dokument.

Odaberite stavku s popisa Vanjski izvještaj. Nakon što izradite vanjsko izvješće, dodijelite mu naziv (na primjer SimplestReport) i spremite ga na disk. Također ćemo dodati dva detalja: Početak razdoblja I Kraj razdoblja tip Datum, trebat će nam da ograničimo vremenski interval za uzorkovanje podataka prilikom generiranja izvješća.

2. Napravite vanjski izgled izvješća

Za generiranje izvješća u 1C 8 potreban vam je izgled, ovo je predložak za prikaz podataka u kojem su postavljeni svi potrebni parametri, nacrtane su tablice itd. Dodajmo novi izgled; odaberite stavku u stablu metapodataka Izgledi i pritisnite tipku Dodati, prilikom izrade odaberite vrstu za izgled dokument proračunske tablice.

Naš izgled će imati 4 područja:

  • Zaglavlje - u ovom području prikazat ćemo naziv izvješća, razdoblje za koje je generirano i zaglavlje tablice;
  • Podaci o drugoj ugovornoj strani - u ovom području tablično ćemo prikazati podatke o drugoj ugovornoj strani;
  • DataCounterparty Agreement - u ovom području tablično ćemo prikazati podatke o ugovoru druge ugovorne strane;
  • Podnožje - u ovom području prikazat ćemo ukupne vrijednosti za cijelo izvješće za polja prihoda i rashoda.

Počnimo stvarati područja izgleda. Kako biste kreirali područje u izgledu, odaberite željeni broj linija i kliknite Tablica izbornika -> Imena -> Dodijeli naziv(Ili Ctrl + Shift + N). U regiju kapa Napišimo naziv izvješća: Promet 62 točke, crtajte pomoću alata Granice zaglavlje izvješća i postavite parametre Početak razdoblja I Kraj razdoblja. Pomoću parametara možete prikazati potrebne podatke u izvješću; time ćemo se pozabaviti u sljedećoj fazi razvoja, naime prilikom pisanja koda izvješća. Da biste kreirali parametar u izgledu, odaberite željenu ćeliju, u nju upišite naziv parametra (bez razmaka), desnom tipkom miša kliknite na njega, odaberite stavku u izborniku koji se otvori Svojstva. U svojstvima ćelije na kartici Raspored odaberite padding Parametar.

Nakon toga, naziv parametra u ćeliji bit će zatvoren u uglaste zagrade ("<>“). Kao rezultat toga, područje kapa trebao bi izgledati ovako:

U području DataCounterparty izradit ćemo parametre za prikaz naziva druge ugovorne strane, kao i za prihode i rashode za konto 62 pomoću alata Granice Dizajnirajmo područje kao red tablice.

U području DataCounterparty Ugovor Kreirajmo parametre za prikaz naziva ugovora, kao i za prihode i rashode za konto 62, pomoću alata Granice područje ćemo oblikovati kao red tablice. Napravimo malu uvlaku ispred parametra Ugovor o drugoj ugovornoj strani(ovo se može učiniti dijeljenjem i spajanjem ćelija. Kliknite desnom tipkom miša na ćeliju -> Spojiti ili Split stanica), potrebno je kako bi se u izvješću moglo vidjeti da je redak za ugovor niži u hijerarhiji od retka za drugu ugovornu stranu.

U području Podrum Kreirajmo parametre za ukupne prihode i rashode.

Kao rezultat, trebali bismo dobiti ovakav izgled:

3. Napravite obrazac za izvješće

Za prikaz podataka postavite razdoblje formiranja i gumb Oblik naše će izvješće zahtijevati obrazac. Da biste stvorili obrazac, pronađite stavku u stablu metapodataka vanjskog izvješća Obrasci i pritisnite tipku Dodati. Na prvoj stranici dizajnera obrasca ne morate raditi nikakve izmjene, samo kliknite na gumb Sljedeći.

Na sljedećoj stranici dizajnera odaberite oba dostupna detalja ( Početak razdoblja, Kraj razdoblja) za postavljanje na obrazac.

Kao rezultat, dobit ćemo ovaj obrazac:

Ali nismo zadovoljni s njim u ovom obliku, napravimo neke promjene u njemu:

  • Povucimo gumb Oblik od donje ploče izvješća do vrha (ovo će biti prikladnije za korisnika);
  • Istegnite oblik okomito i vodoravno;
  • Uredimo terene Početak razdoblja I Kraj razdoblja horizontalno;
  • Dodajmo kontrolni element polja dokumenta proračunske tablice u obrazac (u njemu će se prikazati naše izvješće), dajmo mu naziv TabDoc;
  • Kreirajmo gumb za odabir razdoblja (kada se klikne, pojavit će se dijaloški okvir s prikladnim izborom željenog razdoblja). Nećemo još napisati programski kod za to, pa ćemo samo postaviti gumb pokraj polja s točkama.

Kao rezultat, naš obrazac će izgledati ovako:

4. Programiranje

Nakon izrade obrasca za izvješće, krećemo s programiranjem. Prvo, kreirajmo proceduru za prikaz dijaloškog okvira za odabir razdoblja (već smo kreirali gumb za to u prethodnoj fazi). Desnom tipkom miša kliknite gumb i odaberite stavku izbornika Svojstva, u svojstvima gumba idite na karticu Događaji, gdje ćemo pomoću gumba s ikonom povećala kreirati proceduru Tipka1 Pritisnite u modulu obrasca.

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

Za pozivanje obrasca za odabir razdoblja upotrijebit ćemo standardni postupak Računovodstvo 2.0 iz zajedničkog modula Rad s dijalozima - HandlerPeriodSettingPress, trebate mu proslijediti detalje izvješća kao parametre Početak razdoblja I Kraj razdoblja.

Postupak Button1Press(element) Rad s dijalozima.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Kraj postupka

Sada prijeđimo na pisanje koda koji će generirati i prikazati naše izvješće. Modul obrasca već ima proceduru ButtonGeneratePress, koji će se izvršiti kada se pritisne gumb Oblik, tamo ćemo napisati naš kod. Počnimo inicijaliziranjem potrebnih varijabli. Prije svega, kreirajmo varijablu za polja dokumenta proračunske tablice u koji ćemo ispisivati ​​podatke, to nije potrebno, samo će snimanje poziva prema njemu postati kraće, što znači da će programski kod biti razumljiviji za čitanje.

TabDoc = FormElements.TabDoc;

Uzmimo izgled vanjskog izvješća pomoću funkcije GetLayout(<ИмяМакета>) , proslijediti ćemo ime izgleda kao parametar, a ako takav izgled postoji, funkcija će ga pronaći.

Izgled = GetLayout("Izgled" );

Nakon što je izgled primljen, kreirajmo varijable za svako njegovo područje, upotrijebimo metodu izgleda za ovo GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( "Podaci o izvođaču"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Podnožje" );

Očistimo polje dokumenta proračunske tablice. Ovo je potrebno kako bi se stari podaci brisali svaki put kada se generira novo izvješće.

TabDoc.Clear();

Sada kada je inicijalizacija varijabli dovršena, prijeđimo na popunjavanje i prikazivanje područja izgleda jedno po jedno. Počnimo s zaglavljem. Ako se sjećate, stvorili smo dva parametra u ovom području Početak razdoblja I Kraj razdoblja, tamo ćemo proslijediti vrijednosti razdoblja generiranja izvješća, za to ćemo koristiti svojstvo Mogućnosti područja rasporeda.

AreaHeader.Parameters.PeriodStart = Početak razdoblja; AreaHeader.Parameters.EndPeriod = KrajPeriod;

Nema više akcija s područjem kapa Proizvođač nije potreban, stoga ćemo njegovo polje prikazati u dokumentu proračunske tablice.

TabDoc.Output(AreaHead);

Zatim ćemo napisati upit u bazu podataka, s kojim ćemo uzeti promet po računu 62 iz knjigovodstvenog registra Samonosivi. Definirajmo varijablu u kojoj će se nalaziti naš zahtjev.

Zahtjev = novi Zahtjev;

Prije nego počnemo pisati tekst zahtjeva, proslijedimo mu potrebne parametre. Budući da pišemo zahtjev za fakturu 62 računovodstvo, tada ćemo prije svega stvoriti parametar za to

Request.SetParameter("Account62", Kontni planovi. Samostalni. Pronađi po kodu("62" ));

Također je potrebno unijeti period generiranja izvješća u zahtjev. Ne zaboravite da imamo posebne pojedinosti izvješća za razdoblje generiranja i prosljeđujemo ih kao parametre.

Request.SetParameter("Početak razdoblja", Početak razdoblja); Request.SetParameter("Kraj razdoblja", Kraj razdoblja);

Počnimo pisati tekst upita, to ćemo učiniti pomoću dizajnera upita. U mnogim tutorijalima piše da morate znati napisati upit i ručno i pomoću konstruktora, ali u praksi to nije slučaj. U zadacima s kojima se 1C programer stalno suočava, prioritet je brzo i učinkovito pisanje koda, a kada ručno pišete upit u bazu podataka, to je gotovo nemoguće postići; potrošit ćete puno dragocjenog vremena na ispravnu reprodukciju svih struktura upita i pronalaženje tipfelera koje ste napravili prilikom pisanja, itd. Stoga, nemojte gubiti vrijeme pokušavajući ručno napisati upite, već koristite konstruktor upita. Uštedjet će vam vrijeme i omogućiti pisanje složenih upita bez puno truda. Za početak pisanja teksta zahtjeva, napišimo u kodu:

Zahtjev.Tekst = "" ;

Nakon toga postavite kursor između navodnika, kliknite desnom tipkom miša i odaberite Konstruktor zahtjev. Otvorit će se prozor dizajnera upita.

Sada moramo odabrati tablicu baze podataka 1C 8 koja nam je potrebna Revolucije knjigovodstveni registar Samonosivi. Pronađimo ga na lijevoj strani prozora dizajnera

Premjestimo to na područje Stolovi i počnimo ispunjavati parametre. Za sve virtualne tablice upita postoji poseban skup parametara koji vam omogućuju odabir potrebnih podataka iz glavne tablice (u našem slučaju glavna tablica Računovodstveni registar Samonosivi). Otvorimo prozor s parametrima virtualne tablice.

Ispunimo parametre za razdoblje koje smo proslijedili zahtjevu. Da biste koristili parametar u tekstu zahtjeva, trebali biste napisati simbol ispred njegovog naziva ampersend (&)

Ostalo je ispuniti uvjet za računovodstveni račun. računovodstvo. Da biste to učinili, pronađite redak u parametrima virtualne tablice Stanje računa i tamo ćemo pisati

Račun U HIJERARHIJI (&Račun62)

Također možete koristiti konstruktor uvjeta klikom na gumb s tri točkice.

Nema potrebe postavljati dodatne uvjete virtualnom stolu, pa kliknimo gumb U REDU u prozoru s parametrima virtualne tablice. Zatim moramo odabrati polja koja su nam potrebna iz tablice Samonosivi.Promet(naime: Suprotna ugovorna strana, Ugovor o drugoj ugovornoj strani, Prihodi i rashodi). Da biste vidjeli popis polja dostupnih u tablici koju smo odabrali, kliknite na simbol “+” pored njenog naziva. Nakon toga, povucite potrebna polja u krajnje desno područje dizajnera upita, koje se zove: Polja. Otvorimo li kontni plan vidjet ćemo da za račun 62 analitika na Za drugu ugovornu stranu ovo je Subconto1, i po Ugovor o drugoj ugovornoj strani - Subconto2.

Stoga iz polja virtualne tablice odabiremo Subconto1 I Subconto2. Budući da su nam potrebni prihodi i rashodi po iznosu, odabiremo i polja IznosPrometDt I IznosPrometKt

Ispunimo pseudonime polja koja smo odabrali; idite na karticu Unije/pseudonimi i postavite tražena imena polja.

Budući da će u našem izvješću podaci biti prikazani hijerarhijski (druga strana je na prvoj razini, a svi njeni ugovori na drugoj), prikaz podataka u hijerarhiji ćemo konfigurirati koristeći Totals. Idemo na karticu u dizajneru Rezultati. Povucite redom u polja za grupiranje Protustranka I Ugovor o drugoj ugovornoj strani, a u finalu Dolazak I Potrošnja.

Ovo dovršava rad u konstruktoru upita, kliknite gumb U REDU i vidimo da se tekst našeg zahtjeva pojavljuje u programskom kodu.

Query.Text = "SELECT | Samonosivi promet. Subconto1 AS Druga ugovorna strana, | Self-supportingTurnover.Subconto2 AS ugovor druge strane, | Samonosivi promet.IznosPrometDt AS Potvrda, | Samonosivi Promet.IznosPrometaKt KAO Trošak|OD | Računovodstveni registar Samostalni promet (&Početak razdoblja, &Kraj razdoblja, Račun U HIJERARHIJI (&Račun 62),) AS Samofinancirajući promet.|REZULTATI | IZNOS (prihod), | IZNOS (trošak) |PO | protustranka, | Ugovor o drugoj ugovornoj strani";

Nakon što smo završili s pisanjem zahtjeva, krenimo s popunjavanjem područja DataCounterparty, DataAgreementCounterparty I Podrum. Sva ta područja popunit ćemo podacima primljenim prilikom izvršavanja zahtjeva. Budući da naš upit sadrži grupiranje ( Protustranka I Ugovor o drugoj ugovornoj strani) odaberite podatke iz njega na sljedeći način:

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

Na taj način ćemo dobiti zapise s ukupnim iznosima za sve druge ugovorne strane.

Prije prelaska uzoraka podataka pomoću petlje, inicijaliziramo varijable namijenjene za izračun ukupnih rezultata za izvješće:

TotalIncoming = 0; Ukupna potrošnja = 0;

Kako bi se podaci izvješća prikazivali hijerarhijski (i rotacijama duž "+"), postavimo početak automatskog grupiranja redaka dokumenta proračunske tablice:

TabDoc.StartAutoGroupingRows();

Sve su pripreme završene, sada počnimo indeksirati rezultate upita. Obilazak ćemo izvesti pomoću petlje Bok

Dok Odaberite Account.Next() Cycle EndCycle ;

Na početku ciklusa resetirajte parametre Dolazak I Potrošnja regija DataCounterparty. čemu ovo služi Zamislimo situaciju u kojoj druga ugovorna strana ujak Vasya, prihod je 10, a rashod 5, a za sljedeću protustranku ujak Petya nema ni prihoda ni rashoda, u ovom slučaju, ako ne resetiramo parametre Dolazak I Potrošnja, zatim redom po ugovornoj strani ujak Petya bit će prihod 5, a rashod 10.

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

Nakon toga ispunjavamo područje DataCounterparty ogledni element podataka

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Nakon popunjavanja podataka, možete prikazati područje u dokument proračunske tablice, Budući da koristimo automatsko grupiranje redaka, moramo naznačiti razinu retka u grupiranju (naše izvješće će imati dvije razine, za ugovorne strane prvu za ugovore).

TabDoc.Output(AreaDataAccount,1);

Sada ćemo za ovu drugu ugovornu stranu napraviti odabir prema njenim ugovorima.

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

Obilazak ćemo izvesti pomoću petlje Bok.

Dok SelectionCounterparty Agreement.Next() Loop EndLoop ;

U ciklusu za ugovore druge ugovorne strane, poništimo parametre Dolazak I Potrošnja, ispunite područje DataContract iz uzorka i prikazati ga u dokumentu proračunske tablice na drugoj razini zapisa.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Ispunite PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Također u ovom ciklusu ćemo dodati trenutne vrijednosti varijablama za izračun ukupnih vrijednosti za prihod i rashod.

TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt; Ukupni Troškovi = Ukupni Troškovi + Uzorak Ugovora druge strane. Troškovi;

Time je završen izlaz podataka u tom području DataCounterparty, DataAgreementCounterparty završeno, preostaje samo dovršiti automatsko grupiranje redaka dokumenta proračunske tablice.

TabDoc.FinishAutoGroupingRows();

Puni ciklusi odgovorni za izlaz podataka u područje DataCounterparty I DataAgreementCounterparty izgleda ovako:

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

AreaDataAccount.Parameters.Expense = 0 ; Podrum FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); dokument proračunske tablice.

TabDoc.Output(AreaDataAccount,1);

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

Ispunite PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement);

TabDoc.Output(AreaDataContract,2);
TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt;

Ukupni Troškovi = Ukupni Troškovi + Uzorak Ugovora druge strane. Troškovi;

Kraj ciklusa ; Kraj ciklusa ; TabDoc.FinishAutoGroupingRows();

Ostalo je prikazati konačne podatke u području

i ispisati samo područje na

  • AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = Ukupna potrošnja; TabDoc.Output(AreaFooter);
  • Ovo dovršava proces pisanja vanjskog izvješća za 1C 8 bez korištenja sustava kontrole pristupa. Sada se može generirati u načinu rada 1C:Enterprise 8 i dodati u imenik
  • Vanjska obrada

Datoteku izvješća o kojoj se govori u članku možete preuzeti s adrese .

Pogledajte videozapis o stvaranju vanjskog ispisa za upravljanu aplikaciju:

Pažnja!

Pretvara zapisnik radnji korisnika u program na ugrađenom jeziku.

Pretraživanje cijelog teksta u podacima. (Univerzalno)

Indeksiranje i pretraživanje podataka.

Pronalaženje i zamjena vrijednosti. (Univerzalno)

Traži i zamjenjuje referentne vrijednosti u objektima informacijske sigurnosti.

Postavljanje tehnološkog dnevnika. (Univerzalno)

Stvara ili uređuje datoteku dnevnika procesa. Ima mogućnost konfiguriranja stvaranja crash dump-a, konfiguriranja uvjeta i događaja, po pojavi kojih će se informacije bilježiti u ovaj dnevnik.

Konzola za posao. (Univerzalno)

Prati pozadinske i rutinske zadatke. Briše, stvara nove.

Pretvorba vanjske obrade. (Univerzalno)

Promjena povjerljivih podataka. (Univerzalno)

Selektivna promjena ili brisanje informacijske sigurnosti iz određenih informacija.

Grupna izmjena detalja. (Univerzalno)

Mijenja detalje i tablične dijelove u dokumentima i priručnicima.

Prijenos i učitavanje korisnika. (Univerzalno)

Prenosi i učitava korisnike informacijske sigurnosti u XML datoteku.

Prijenos podataka u vanjske baze podataka. (Univerzalno)

Učitava strukture podataka u vanjske DBMS-ove koristeći ADO u dva načina:

  • Istovari sve
  • Prijenos promjena (koristi se za sinkronizaciju promjena u radnom IS-u s primateljskim IS-om). Ovaj način rada koristi mehanizme plana razmjene.

Podržava sljedeće DBMS-ove:

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

Prijenos i učitavanje XML podataka. (Univerzalno)

Prenosi i učitava podatke u informacijsku sigurnost, potpuno i djelomično. Koristi se za prijenos podataka između konfiguracija koje su slične u sastavu objekta.

Učitavanje podataka iz dokumenta proračunske tablice. (Univerzalno)

Učitava podatke u direktorije i tablične dijelove iz tabličnih dokumenata.

Radi u debelom klijentu u normalnom načinu rada aplikacije.

Konzola zahtjeva. (Univerzalno)

Pruža veliku pomoć u izvješćivanju i stvaranju upita.

Vrlo često, kada se tijekom konzultacija pojavi potreba za rješavanjem nekog složenog problema, predlažem svojim klijentima da ga implementiraju u program 1C koristeći ili vanjska obrada, ili vanjska tiskarska ploča. I često se susrećem s činjenicom da ljudi jednostavno nisu upoznati s ovom mogućnošću programa na platformi 1C Enterprise 8 Ponekad me čak i psuju, vjerujući da će razvoj i implementacija takve obrade kao dijela njihove konfiguracije dovesti do nemogućnost automatskog ažuriranja programa. Da ćete morati platiti puno novca za ažuriranje programa.

Da bih razjasnio takva pitanja, kao i da bih govorio o tome koje korisne mogućnosti pružaju eksterna obrada i eksterni ispisni obrasci, odlučio sam napisati ovaj članak. U ovom članku neću razmatrati tehničku stranu procesa stvaranja obrade. O tome će najvjerojatnije biti riječi u nekoj drugoj publikaciji. Ovdje ću pokušati objasniti samu bit mehanizma i dati konkretne primjere slučajeva u kojima eksterna obrada i ispis formi mogu biti od koristi korisniku.

U članku će se raspravljati o sljedećim opcijama za dodatne vanjske povezive objekte:

  • Dodatna vanjska obrada tabličnih dijelova;
  • Dodatne vanjske tiskarske forme;
  • Dodatna vanjska izvješća;
  • Dodatna vanjska obrada.

Što su dodatne vanjske obrade, izvješća i tiskani obrasci?




Za početak, želio bih govoriti općenito o što su te vanjske obrade, izvješća i tiskani obrasci?. Vrlo često, kada radite sa standardnom konfiguracijom, bilo da se radi o 1C ZUP-u ili 1C Računovodstvu poduzeća ili nekoj drugoj konfiguraciji, postoji potreba za nekim funkcionalnostima koje programeri 1C-a ne pružaju. Na primjer, možda će vam trebati tiskani obrazac, koji nije reguliran, već se koristi za interne potrebe organizacije. Ili zahtijeva na određeni način obraditi (promijeniti, prilagoditi) podaci dostupni u bazi podataka. Na primjer, mijenjanje određenih detalja u dokumentima za potrebno razdoblje, što je nezgodno raditi ručno s velikim količinama informacija.

U ovom slučaju postoje dvije mogućnosti. Prvi, možemo modificirati samu konfiguraciju, sam program. Nakon toga će prestati biti tipičan i neće ga biti moguće ažurirati prilično jednostavnim metodama o kojima sam pisao. Ažuriranje nestandardne konfiguracije je dulji i ozbiljniji proces, tako da ćete s ovim pristupom najvjerojatnije morati plaćati stručnjaku 1C mjesečno za ažuriranje programa. Drugi Opcija je izraditi ili zatražiti izradu vanjske obrade ili tiskanog obrasca (izvješća). Ovo je u biti vanjski modul, koji je također razvijen u 1C programskom jeziku u konfiguratoru, ali ne mijenja standardnu ​​konfiguraciju. Postoji neovisno o samoj konfiguraciji. Za njihovo pohranjivanje koriste se posebni imenici: stavka glavnog izbornika “Servis” -> “Dodatna izvješća i obrada”.

Dodatna vanjska obrada za popunjavanje tabelarnih dijelova

Seminar “Lifehacks za 1C ZUP 3.1”
Analiza 15 životnih hakova za računovodstvo u 1C ZUP 3.1:

KONTROLNA LISTA za provjeru obračuna plaća u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Obračun plaća u 1C ZUP 3.1
Korak po korak upute za početnike:

Sada pogledajmo pojedinačno koje će nam mogućnosti pružiti svaki od četiri dostupna vanjska modula. Počnimo s vanjska obrada tabličnih dijelova. Čini mi se da ove obrade tabelarnih dijelova dokumenata najpotpunije ilustriraju kako možete prilično ozbiljno modificirati program bez pribjegavanja uređivanju standardne konfiguracije, već se snalaziti samo s vanjskom obradom.

Da bi bilo jasnije, dat ću konkretan primjer iz moje prakse, u kojem sam riješio problem koji sam koristio vanjska obrada tabličnih dijelova. U konfiguraciji "1C Upravljanje plaćama i osobljem" izdanje 2.5 nalazi se dokument "Plaćanje za praznike i vikende"(O ovom dokumentu je pisano u detalje). U svom standardnom obliku ovaj dokument pruža mogućnost automatskog popunjavanja tabelarnog dijela od strane zaposlenika „Rad na praznicima“.

Računovođa je zatražio da se provede mogućnost popunjavanja ovog dokumenta od strane zaposlenika čiji su radni dani zakazani za vikende, tj. "Radim vikendom".

Ova je datoteka prenesena u direktorij "Vanjska obrada tabličnih dijelova"(stavka izbornika “Servis” -> “Dodatna izvješća i obrade” -> “Dodatna vanjska obrada tabelarnih dijelova”). Prilikom izrade elementa ovog imenika naznačeno je na koji se dokument odnosi preuzeta obrada - „Plaćanje za praznike i vikende organizacije“, kao i na koji tablični dio - „Zaposlenici“. U našem primjeru dokument ima jedan tabularni dio, ali u drugim dokumentima može ih biti više, pa je potrebno posebno naznačiti na koji se od njih obrada odnosi.

Kao rezultat dodavanja ove obrade u imenik “Dodatna vanjska obrada za popunjavanje tabelarnih dijelova” u samom dokumentu “Uplata za praznike i vikend dijelove” pojavit će se tipka “Ispuni” sa padajućim popisom u kojem će biti moguće pokrenuti ovu obradu. U našem slučaju, gumb "Popunjavanje nedjeljama" dostupan je na padajućem popisu. Pritiskom na njega pokreće se algoritam sadržan u obradi. U ovom primjeru tablični dio će biti popunjen zaposlenicima čiji radni dan pada na slobodan dan. Imajte na umu da ovaj gumb prije nije postojao (gornji snimak zaslona).

Ovaj mehanizam vam omogućuje da riješite vrlo širok raspon problema bez potrebe za mijenjanjem same konfiguracije. Stoga često koristim ovu priliku za provedbu zadataka klijenata.

Opcijske vanjske tiskarske ploče

Seminar “Lifehacks za 1C ZUP 3.1”
Analiza 15 životnih hakova za računovodstvo u 1C ZUP 3.1:

KONTROLNA LISTA za provjeru obračuna plaća u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Obračun plaća u 1C ZUP 3.1
Korak po korak upute za početnike:

Ova je opcija vrlo slična prethodnoj. Vjerojatno ste vidjeli i znate da gotovo svaki dokument, pa čak i neki elementi priručnika imaju tiskane obrasce. Oni se u pravilu nalaze u donjem desnom kutu obrasca elementa imenika ili dokumenta. Ponekad standardni tiskani obrasci nisu dovoljni. Na primjer, organizacija može imati vlastiti oblik ugovora o radu. Podsjećam da se standardni tiskani obrazac „Ugovor o radu“ nalazi u obrascu imenika „Zaposlenici“.

Ovim tiskanim obrascima imenika možete dodati svoj vlastiti. U tu svrhu kreira se vanjski ispisani obrazac s ekstenzijom “.epf”. Zatim se za njega kreira element imenika "Dodatne vanjske tiskarske ploče"(stavka izbornika “Alati” -> “Dodatna izvješća i obrade”) i ovom elementu imenika dodaje se datoteka s ekstenzijom “.epf”. Također je potrebno naznačiti za koji se dokument ili priručnik dodaje obrada.

Kao rezultat toga, kao dio tiskanih obrazaca elemenata imenika "Zaposlenici", pojavit će se još jedan obrazac - "Ugovor o radu (Alpha LLC)", koji prije nije postojao. A njegov izgled i popunjavanje podataka određuje programer u datoteci “.epf”.

Ova mogućnost dodavanja potrebnih tiskanih obrazaca za dokumente i referentne knjige također je vrlo često tražena i, po mom mišljenju, prilično je prikladna funkcionalnost programa na platformi 1C Enterprise.

Dodatna vanjska izvješća

U ovom slučaju, možete se razvijati vanjsko izvješće. Ovo je datoteka u ".erf" formatu. Upravo će ta datoteka odrediti izgled izvješća, koje će konfiguracijske podatke koristiti i koje će tražiti od korisnika (primjerice, razdoblje, odabir po djelatniku ili po odjelu). Datoteka se kreira u 1C konfiguratoru u 1C programskom jeziku.

Eksterno izvješće može se pohraniti kao dio konfiguracije pomoću priručnika “Dodatna vanjska izvješća” (stavka izbornika “Alati” -> “Dodatna izvješća i obrada”). Oni nisu povezani s određenim dokumentom ili referentnom knjigom; ove informacije nisu potrebne.

S ovom opcijom pohrane, izvješće se pokreće iz istog direktorija (dvoklikom).

Također možete pokrenuti vanjsko izvješće pomoću stavke izbornika “Datoteka” -> “Otvori”. Ova se opcija može koristiti ako vam je prikladnije pohraniti vanjska izvješća ne kao dio programa, već jednostavno u mape računala.

Dodatni vanjski tretmani

Vanjski tretmani imaju približno isto značenje kao i vanjska izvješća. Ali za razliku od izvješća, koja se koriste za pregled podataka infobaze u formatu jednostavnom za korištenje, obrada je dizajnirana za promjenu, uređivanje ili transformaciju podataka infobaze. Raspon problema koji se rješavaju vanjskom obradom prilično je širok.

Na primjer, obrada za učitavanje izvoda plaća. Unatoč prisutnosti standardne obrade u ZUP-u (pročitajte o tome), ponekad ona možda nije prikladna za određenu banku pa se razvija vanjska obrada koja pretvara i preuzima informacije u traženom formatu.

dovest ću te drugi primjer potpuno jednostavan, ali vrlo popularan tretman. Ako u 1C ZUP-u tijekom godine ne vodite dokument “Prijenos poreza na dohodak u proračun”, tada će kod generiranja 2-poreza za godinu polje “Preneseno” za svakog zaposlenika biti nula, što je obično činjenično netočno. Unošenje dokumenta “Prijenos poreza na dohodak u proračun” za cijelu godinu može biti dosta zamorno s obzirom na specifičnosti samog dokumenta. Ali možete izvršiti vanjsku obradu, koja će u generiranom 2-NDFL jednostavno ispuniti polje "Navedeno" za svakog zaposlenika, na temelju vrijednosti u polju "Izračunato". Računovođe obično jako vole ovu opciju.

Vanjska obrada ima potpuno iste dvije mogućnosti pohranjivanja i pokretanja: ili koristite imenik "Dodatna vanjska obrada"(stavka izbornika “Alati” -> “Dodatna izvješća i obrade”), ili stavka glavnog izbornika “Datoteka” -> “Otvori”.

To je sve za danas!

Da biste prvi saznali o novim publikacijama, pretplatite se na ažuriranja mog bloga:

Za povezivanje eksterne obrade, izvješća i tiskanih obrazaca za platformu 1C:Enterprise 8.2 razvijen je novi standard za rad u upravljanoj aplikaciji (standard iz podsustava standardne knjižnice 8.2). Pojavili su se “čipovi” kojih prije nije bilo, naime:

    Vrsta obrade je proširena: popunjavanje objekta, stvaranje povezanih objekata. Sada u dokumentima možete dodati vlastite gumbe za popunjavanje cijelog dokumenta, kao i vlastite gumbe za unos na bazu.

    Jedna obrada može sadržavati popis od nekoliko operacija (naredbi), tj. možete napraviti jednu obradu, gdje će biti nekoliko stavki izbornika odjednom: ispis i otpremnica, ispis računa, ispis jamstvenog lista. (Napomena autora: prije u starom standardu, da biste radili takve stvari, morali ste učiniti sve odjednom (čak i ako nije bilo potrebno) i niste morali zatvarati ili crtati vlastiti obrazac, koji je imao potrebne gumbe za odabir potrebna operacija)

    Možete unositi na temelju i ispunjavati objekte na temelju nekoliko objekata odjednom, umjesto samo jednog

    Možete postaviti raspored za izvršavanje naredbi poslužitelja (na poslužitelju).

    Možete postaviti način na "Siguran" ili "Nesiguran", tj. pokrenuti obradu uzimajući u obzir ograničena prava ili ih zanemariti (kao s punim pravima)

    Možete postaviti način korištenja: Ne koristiti, otklanjanje pogrešaka, koristiti. “Ne koristi” - nije u funkciji, “Uklanjanje pogrešaka” - vidljivo samo administratorima, “Koristi u radu”.

    Može se koristiti u oblicima objekata i u oblicima popisa

    Obradu ili izvješće možete povezati sa svim objektima odjednom.

    Možete konfigurirati brzi pristup određenim vanjskim naredbama za obradu.

    Moguće je odrediti u kojim se dijelovima sučelja trebaju pojaviti dodatne obrade i izvješća.

Dakle, što se može povezati sa standardnim konfiguracijama?

Sa stajališta platforme, možete povezati:

  • vanjska obrada (datoteke s ekstenzijom “epf”);
  • vanjski izvještaji (datoteke s ekstenzijom “erf”).

Sa stajališta aplikativnog područja (konfiguracija) možete povezati vanjsku obradu i izvješća s formom*:

  • Dodatna obrada
    • Samo dodatna obrada. Moguće je prilagoditi
  • Dodatno izvješće
    • Samo dodatno izvješće
  • Ispunjavanje objekta
    • Vlastiti gumbi za popunjavanje objekata (dokumenata), prije su postojali samo gumbi za popunjavanje tabelarnog dijela.
  • Obrazac za ispis
    • Dodatni obrazac za ispis (dodan je gumb “Dodatni obrasci za ispis”)
  • Izvješće
    • Izvješće priloženo objektima (imenicima i dokumentima).
  • Stvaranje povezanih objekata
    • Vaš vlastiti unos na temelju (gumb “Stvori povezane objekte...” dodan je u stavku izbornika “Unos na temelju”)

*na primjeru redakcije “Menadžment malog poduzeća ur. 1,2"

Pogledajmo kako to sve funkcionira. Za povezivanje eksterne obrade i izvješćivanja postoji standard koji opisuje sučelje za interakciju s eksternom obradom i izvješćivanjem te postoje opći zahtjevi za sve vrste, a postoje i posebni za svaku vrstu obrade ili izvješća.

Počnimo s općim zahtjevima za sve vrste obrade i izvješćivanja. Kako biste kreirali dodatnu vanjsku obradu ili izvješće, morate deklarirati eksportnu funkciju InformationOnExternalProcessing() u objektnom modulu, koji mora ispuniti strukturu koja opisuje ponašanje. Primjer ove funkcije:

Funkcija InformationOnExternalProcessing() Izvoz
RegistrationData = Nova struktura;
Registration Data.Insert("Ime", "Primjer korištenja vanjske obrade 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Verzija", "1.0");

//Dodatna obrada
//Dodatno izvješće
//Popunjavanje objekta
//Izvješće
//Ispiši obrazac
//Stvaranje povezanih objekata
RegistrationData.Insert("View", "AdditionalProcessing");

Registration Data.Insert("Information", "Obrada urađena prema novom standardu za povezivanje vanjske obrade 8.2. Primjer obrade ""Hello Word"" ");

///////////// naredbe //////////////////////////
tzCommand = Nova tablica vrijednosti;
tzCommand.Columns.Add("Identifikator");
tzCommand.Columns.Add("Prikaz");
tzCommand.Columns.Add("Modifikator");
tzCommand.Columns.Add("Prikaži upozorenje");
tzCommand.Columns.Add("Upotreba");


stringCommands.Identifier = "1";
stringCommands.View = "naredba ""Hello Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "command""Hello Word""(CallClientMethod)";
stringCommands.ShowAlert = True;
stringCommand.Use = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "command""Hello Word""(CallServerMethod)";
stringCommands.ShowAlert = True;
stringCommand.Use = "CallServerMethod";

RegistrationData.Insert("Naredbe", tzNaredbe);

////////////// namjena (u kojim objektima se koristi) //////////////////////////
//za ispis formulara, ispunjavanje, unos povezanih objekata
//ArrayAssignments = Novi niz;
//Niz zadataka.Dodaj("Dokument.*"); // svi dokumenti su dodijeljeni
//Niz zadataka.Dodaj("Dokument.Unaprijed izvješće");
//Niz dodjela.Dodaj("Dokument.Narudžba kupca");
//Registracijski podaci.Insert("Odredište", Niz odredišta);

Vratite podatke o registraciji;

EndFunction

Dakle, kao što vidite, funkcija ispunjava strukturu podataka o registraciji, koja ima sljedeće elemente (parametre):

    Naziv – kratki naziv tretmana

    Verzija - informacija o verziji obrade

    Siguran način rada – odgovoran je za to hoće li se obrada izvršiti uzimajući u obzir prava korisnika. Ako se postavi na False, obrada ili izvješćivanje izvršit će se bez uzimanja u obzir ograničenja prava (kao s punim pravima). Ova značajka pojavila se upravo u 8.2, gdje kod kreiranja vanjske obrade i izvješća, drugi parametar određuje način rada.

    Vrsta – vrsta obrade ili izvješća. Moguće vrijednosti naveo sam na početku članka, a moguće vrijednosti za postavljanje u kodu navedene su u komentarima

  • Naredbe – tablica vrijednosti koja navodi korištene naredbe. Stupci tablice vrijednosti:
    • Identifikator – bilo koji niz (identifikator naredbe)
    • Pogled - opis naredbe
    • Modifikator - niz (koristi se za dodatne tiskane obrasce)
    • Prikaži obavijest – prozor obavijesti pojavit će se prije početka i nakon završetka izvođenja (za klijentske i poslužiteljske naredbe bez obrasca)
    • Upotreba – način početka obrade:
      • OpenForm – otvorit će se obrazac za obradu
      • CallClientMethod – poziva klijentsku eksportnu metodu obrasca
      • Call ServerMethod – poziv metode izvoza iz modula za obradu

Ovisno o vrsti obrade ili izvješća, kao i načinu pokretanja naredbe “Use”, pozivaju se metode definirane u modulu forme ili objektnom modulu. Popis proslijeđenih parametara također je drugačiji. Prilažem primjere poziva i korištenja svih vrsta obrada.



 


Pročitajte:



Kako otkazati pretplatu na Megogo na TV-u: detaljne upute Kako otkazati pretplatu na megogo pretplate

Kako otkazati pretplatu na Megogo na TV-u: detaljne upute Kako otkazati pretplatu na megogo pretplate

Karakteristike i prednosti usluge Megogo Jedna od najvećih video usluga u istočnoj Europi i ZND-u je Megogo. Katalog sadrži više od 80 tisuća...

Kako particionirati disk s instaliranim Windowsima bez gubitka podataka Particionirajte disk 7

Kako particionirati disk s instaliranim Windowsima bez gubitka podataka Particionirajte disk 7

Dijeljenje tvrdog diska na particije pomoću sustava Windows7 Particioniranje diska C:\ u sustavu Win7 Kada kupujete novo računalo ili prijenosno računalo s...

Zašto izdavači ne mogu uređivati ​​sve stranice

Zašto izdavači ne mogu uređivati ​​sve stranice

Korisnici koji često rade u programu Microsoft Word mogu se s vremena na vrijeme susresti s određenim problemima. Već smo razgovarali o rješenju mnogih od njih...

Pandao promotivni kodovi za bodove

Pandao promotivni kodovi za bodove

Ponekad, kada pokušate ući u službenu trgovinu digitalnog diva, Play Market piše za aktiviranje promotivnog koda. Kako biste dobili sveobuhvatan...

feed-image RSS