Dodavanje eksterne obrade bazi podataka. Dodavanje eksterne obrade bazi podataka Dodatni izvještaji i obrada za 1s 8.2

Idite na gornji meni Servis->->.

Pojavljuje se obrazac liste eksternih direktorija za obradu. U gornjem meniju pritisnite dugme Dodaj.

Pojavit će se obrazac za dodavanje novog objekta. Kliknite na dugme za otvaranje i izaberite datoteku sa željenom obradom. Nakon što odaberete željeni fajl, ako je potrebno, navedite naziv obrade (polje Ime). Nakon toga, potrebno je da kliknete OK da sačuvate napravljene promjene.

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

To je sve! Proces dodavanja obrade u konfiguraciju je završen. Da biste kasnije otvorili ovu obradu, idite starom putanjom: Servis->Dodatni izvještaji i obrada->Dodatna eksterna obrada.

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

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

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

Idemo na odgovarajući dio programa:


Neophodno je da je postavljena zastavica za korišćenje dodatnih izveštaja i obradu prateći hipervezu do liste eksternih objekata:

Na listi kliknite Kreiraj:


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


Kartica za novi eksterni objekat u programu je popunjena, preostaje samo da je konfigurišete smještaj(odjeljci programa iz kojih će biti dostupna obrada):


Odaberite proizvoljan dio (ili nekoliko) za postavljanje:


Upišite i zatvorite karticu eksternog objekta:


Sada otvorimo obradu iz interfejsa:


Lista je prazna, kliknite Prilagodite listu:


Odaberite 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, uzmimo eksternu obradu, koja prilaže skeniranje odabranim elementima direktorija ili sistemskih dokumenata. Početak dodavanja takve obrade se ne razlikuje od prethodne opcije. Razlika je u tome što se u ovom slučaju lokacija popunjava automatski (i to ne programskom sekcijom, već 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 eksternog objekta također mora biti zapisana.

Da biste koristili obradu, morate otići do određenog objekta baze podataka (sa liste plasmana), kliknuti Popunite u komandnoj tabli i odaberite naredbu:

Razmotrimo stvaranje vanjskog izvještaja u 1C 8 bez korištenja sistema za sastav podataka. Za kreiranje eksternog izvještaja koristit ćemo konfiguraciju Računovodstva 2.0, početni podaci: „Napišite izvještaj na računovodstvenom računu 62 u kojem će biti prikazan promet za navedeni period u kontekstu Counterparties I Ugovori ugovornih strana.

1. Kreirajte izvještaj

Pre svega, hajde da napravimo eksterni izveštaj da bismo to uradili, idemo na 1s 8 u režimu Konfigurator, idemo na meni Fajl -> Novo, ili kliknite na ikonu Novi dokument.

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

2. Kreirajte eksterni izgled izvještaja

Za generiranje izvještaja u 1C 8 potreban vam je izgled, ovo je predložak za prikaz podataka u kojem su postavljeni svi potrebni parametri, nacrtane tabele itd. Hajde da dodamo novi izgled da bismo to uradili, izaberite stavku u stablu metapodataka Izgledi i pritisnite dugme Dodaj, prilikom kreiranja, odaberite 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;
  • Podaci o drugoj strani - u ovoj oblasti ćemo prikazati podatke o drugoj strani u tabeli;
  • DataCounterparty Agreement - u ovoj oblasti ćemo prikazati podatke o ugovoru sa drugom stranom u tabeli;
  • Podnožje - u ovom području ćemo prikazati ukupne vrijednosti za cijeli izvještaj za polja Prihodi i Rashodi.

Počnimo kreirati područja rasporeda. Da biste kreirali područje u rasporedu, odaberite potreban broj linija i kliknite Tabela menija -> Imena -> Dodeli ime(Or Ctrl + Shift + N). U regiju Cap Napišimo 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. Koristeći parametre, možete prikazati potrebne podatke u izvještaju, time ćemo se baviti u sljedećoj fazi razvoja, odnosno prilikom pisanja koda izvještaja. Da biste kreirali parametar u izgledu, odaberite željenu ćeliju, upišite naziv parametra u nju (bez razmaka), kliknite desnim klikom na nju, odaberite stavku u izborniku koji se otvara Svojstva. U svojstvima ćelije na kartici Layout odaberite padding Parametar.

Nakon toga, ime parametra u ćeliji će biti zatvoreno u uglastim zagradama ("<>“). Kao rezultat toga, područje Cap trebalo bi izgledati ovako:

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

Na području DataCounterparty Agreement Napravimo parametre za prikaz naziva ugovora, kao i za prihode i rashode za račun 62, koristeći alat Borders dizajniraćemo područje kao red tabele. Napravimo malo uvlačenje ispred parametra Ugovor sa drugom stranom(ovo se može učiniti cijepanjem i spajanjem ćelija. Desni klik na ćeliju -> Spoji ili Razdvojena ćelija), potrebno je kako bi se u izvještaju moglo vidjeti da je linija za ugovor niža u hijerarhiji od linije za drugu stranu.

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

Kao rezultat, trebali bismo dobiti ovakav izgled:

3. Kreirajte obrazac izvještaja

Za prikaz podataka podesite period formiranja i dugme Forma naš izvještaj će zahtijevati obrazac. Da biste kreirali obrazac, pronađite stavku u stablu metapodataka vanjskog izvještaja Forms i pritisnite dugme Dodaj. Na prvoj stranici dizajnera obrasca ne morate da unosite nikakve izmene, potrebno je samo da kliknete na dugme Sledeći.

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

Kao rezultat, dobićemo ovaj obrazac:

Ali mi nismo zadovoljni s tim u ovom obliku;

  • Povucimo dugme Forma od donjeg panela izvještaja do vrha (ovo će biti zgodnije za korisnika);
  • Rastegnite oblik okomito i vodoravno;
  • Uredimo polja Početak perioda I Kraj perioda horizontalno;
  • Dodajmo kontrolni element polja dokumenta proračunske tablice u obrazac (naš izvještaj će biti prikazan u njemu), dajte mu ime TabDoc;
  • Kreirajmo dugme za odabir perioda (kada se klikne, pojaviće se dijalog sa pogodnim izborom željenog perioda). Nećemo još pisati programski kod za njega, pa ćemo samo postaviti dugme pored polja perioda.

Kao rezultat, naš obrazac će izgledati ovako:

4. Programiranje

Nakon kreiranja obrasca izvještaja, krenimo s programiranjem. Prvo, napravimo proceduru za prikaz dijaloga za odabir perioda (već smo kreirali dugme za ovo u prethodnoj fazi). Kliknite desnim tasterom miša na dugme i izaberite stavku menija Svojstva, u svojstvima dugmeta idite na karticu Događaji, gdje ćemo pomoću dugmeta sa ikonom lupe kreirati proceduru Button1Press 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 zajedničkog modula Rad sa dijalozima - HandlerPeriodSettingPress, morate mu proslijediti detalje izvještaja kao parametre Početak perioda I Kraj perioda.

Procedura Button1Press(Element) Rad sa Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Kraj procedure

Sada pređimo na pisanje koda koji će generirati i prikazati naš izvještaj. Modul obrasca već ima proceduru ButtonGeneratePress, koji će se izvršiti kada se pritisne dugme Forma, 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 = FormElements.TabDoc;

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

Layout = GetLayout("Layout" );

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

AreaHeader = Layout.GetArea("Header"); AreaDataAccount = Layout.GetArea( "Podaci o ugovaraču"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

Očistimo polje dokumenta tabele. Ovo je neophodno kako bi svaki put kada se generira novi izvještaj, stari podaci bili izbrisani.

TabDoc.Clear();

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

AreaHeader.Parameters.PeriodStart = Početak perioda; AreaHeader.Parameters.EndPeriod = Kraj Period;

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

TabDoc.Output(Glava područja);

Zatim ćemo napisati upit bazi podataka, uz pomoć kojeg ćemo uzeti promet na računu 62 iz računovodstvenog 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. Pošto pišemo zahtjev za fakturu 62 računovodstvo, tada ćemo prije svega kreirati parametar za njega

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

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

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

Počnimo pisati tekst upita, to ćemo učiniti pomoću dizajnera upita. U mnogim tutorijalima pišu da morate biti u mogućnosti da napišete upit i ručno i pomoću konstruktora, ali u praksi to nije slučaj. U zadacima s kojima se 1C programer stalno susreće, prioritet je brzo i kvalitetno pisati kod, a prilikom ručnog pisanja upita u bazi podataka, to je gotovo nemoguće postići, potrošit ćete mnogo dragocjenog vremena na ispravnu reprodukciju svega strukture upita i pronalaženje grešaka u kucanju koje ste radili prilikom pisanja itd. Stoga nemojte gubiti vrijeme pokušavajući ručno pisati upite, već koristite konstruktor upita. To će vam uštedjeti vrijeme i omogućiti vam da pišete složene upite bez puno truda. Da počnemo pisati tekst zahtjeva, upišimo u kodu:

Request.Text = "" ;

Nakon toga, postavite kursor između navodnika, kliknite desnim tasterom miša i izaberite Konstruktor zahtjev. Otvoriće se prozor dizajnera upita.

Sada moramo odabrati tabelu baze podataka 1C 8 koja nam je potrebna Revolucije računovodstveni registar Samonosivi. Nađimo ga na lijevoj strani prozora dizajnera

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

Popunimo parametre za period koji smo prenijeli na zahtjev. Da biste koristili parametar u tekstu zahtjeva, trebali biste upisati simbol ispred njegovog imena ampersand(&)

Ostaje da se ispuni uslov za računovodstveni račun. računovodstvo. Da biste to učinili, pronađite liniju u parametrima virtualne tablice Stanje računa i tamo ćemo pisati

Račun U HIJERARHIJI (&Račun62)

Takođe možete koristiti konstruktor uslova tako što ćete kliknuti na dugme sa tri tačke.

Nema potrebe da namećete više uslova na virtuelnu tabelu, pa kliknite na dugme OK u prozoru parametara virtuelne tabele. Zatim moramo 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, kliknite na simbol “+” pored njegovog 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 uključena Za drugu stranu ovo je Subconto1, and by Ugovor sa drugom stranom - Subconto2.

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

Popunimo pseudonime polja koja smo odabrali da bismo to uradili, idite 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), mi ćemo konfigurisati prikaz podataka u hijerarhiji koristeći Totals. Idemo na karticu u dizajneru Rezultati. Povucite u grupisanje polja uzastopno Counterparty I Ugovor sa drugom stranom, i u finalu Dolazim I Potrošnja.

Ovo završava rad u konstruktoru upita, kliknite na dugme OK i vidimo da se tekst našeg zahtjeva pojavljuje u programskom kodu.

Query.Text = "ODABIR | Self-supportingTurnover.Subconto1 AS Counterparty, | Self-supportingTurnover.Subconto2 AS Ugovor o drugoj strani, | SamonosiviTurnover.AmountTurnoverDt AS Potvrda, | Samonosivi obrt.IznosTurnoverKt AS Trošak|OD | Računovodstveni registar (&Početak perioda, &Kraj perioda, račun U HIJERARHIJI (&Račun 62)) AS Samoobračunski promet.|RESULTS | AMOUNT (Prihod), | AMOUNT (trošak) |PO | Counterparty, | Ugovor sa drugom stranom";

Nakon što završimo sa pisanjem zahtjeva, krenimo s popunjavanjem polja DataCounterparty, DataAgreementCounterparty I Podrum. Sve ove oblasti ćemo popuniti podacima dobijenim prilikom izvršavanja zahtjeva. Pošto naš upit sadrži grupisanje ( Counterparty I Ugovor sa drugom stranom) odaberite podatke iz njega na sljedeći način:

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

Na ovaj način ćemo dobiti evidenciju sa ukupnim iznosima za sve druge ugovorne strane.

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

TotalIncoming = 0; Ukupna potrošnja = 0;

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

TabDoc.StartAutoGroupingRows();

Sve pripreme su završene, sada krenimo s indeksiranjem rezultata upita. Prelazak ćemo izvršiti pomoću petlje ćao

Dok Select Account.Next() Cycle EndCycle ;

Na početku ciklusa, resetirajte parametre Dolazim I Potrošnja region DataCounterparty. čemu ovo služi? Zamislimo situaciju u kojoj je druga strana Ujak Vasja, prihod je 10, a rashod 5, a za narednu drugu stranu Ujak Petya nema prihoda ni rashoda, u ovom slučaju, ako ne resetujemo parametre Dolazim I Potrošnja, zatim u redu po drugoj strani Ujak Petya biće prihod od 5 i rashod od 10.

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

Nakon toga popunjavamo prostor DataCounterparty uzorak podataka o elementima

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Nakon popunjavanja podataka, možete prikazati područje u tabelarni dokument, Pošto koristimo automatsko grupisanje redova, potrebno je da naznačimo nivo reda u grupisanju (naš izveštaj će imati dva nivoa, za ugovorne strane prvi za ugovore).

TabDoc.Output(AreaDataAccount,1);

Sada ćemo za ovu drugu stranu izvršiti selekciju prema njenim ugovorima.

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

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

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

U ciklusu za ugovore sa drugom stranom, poništimo parametre Dolazim I Potrošnja, ispunite područje DataContract iz uzorka i prikazati ga u dokumentu proračunske tablice na drugom nivou zapisa.

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

Takođe u ovom ciklusu ćemo dodati trenutne vrijednosti varijablama za izračunavanje ukupnih vrijednosti prihoda i rashoda.

TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Ovim se završava izlaz podataka u području DataCounterparty, DataAgreementCounterparty završeno, preostaje samo da se dovrši automatsko grupisanje redova dokumenta tabele.

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); tabelarni dokument.

TabDoc.Output(AreaDataAccount,1);

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

Fill inPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement);

TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense; EndCycle ; EndCycle ; TabDoc.FinishAutoGroupingRows(); Ostaje prikazati konačne podatke u području

Da bih razjasnio ovakva pitanja, kao i da progovorim o korisnim mogućnostima eksterne obrade i eksterne štamparske forme, 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 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 povezati:

  • Dodatna vanjska obrada tabličnih dijelova;
  • Dodatne vanjske tiskarske forme;
  • Dodatni eksterni izvještaji;
  • Dodatna eksterna obrada.

Šta su dodatna eksterna obrada, izveštaji i štampani obrasci?




Za početak, želio bih govoriti općenito o tome šta su to eksterne obrade, izveštaji i štampani obrasci?. Vrlo često, kada radite sa standardnom konfiguracijom, bilo da se radi o 1C ZUP ili 1C Enterprise Accounting ili nekoj drugoj konfiguraciji, postoji potreba za nekom funkcionalnošću koju 1C programeri ne pružaju. Na primjer, možda će vam trebati štampanom obliku, koji nije regulisan, ali se koristi za interne potrebe organizacije. Ili potrebno na određeni način proces (promjena, prilagođavanje) podaci dostupni u bazi podataka. Na primjer, mijenjanje određenih detalja u dokumentima za traženi period, što je nezgodno raditi ručno s velikim količinama informacija.

U ovom slučaju postoje dvije opcije. Prvo, 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 duži i ozbiljniji proces, tako da ćete s ovim pristupom najvjerovatnije morati mjesečno plaćati stručnjaka 1C za ažuriranje programa. Drugo 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 standardnu ​​konfiguraciju. Postoji nezavisno od same konfiguracije. Za njihovo pohranjivanje koriste se posebni direktoriji: stavka glavnog menija “Servis” -> “Dodatni izvještaji i obrada”.

Dodatna eksterna obrada za popunjavanje tabelarnih delova

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

KONTROLA za provjeru obračuna zarada u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Obračun zarada u 1C ZUP 3.1
Korak po korak upute za početnike:

Sada pogledajmo koje mogućnosti će nam dati svaki od četiri dostupna eksterna modula. Počnimo sa vanjska obrada tabelarnih dijelova. Čini mi se da ova obrada tabelarnih delova dokumenata najpotpunije ilustruje kako možete sasvim ozbiljno modifikovati program, a da ne pribegavate uređivanju standardne konfiguracije, već se zadovoljite samo eksternom obradom.

Da bude jasnije, navest ću konkretan primjer iz svoje prakse, u kojem sam riješio problem koji sam koristio vanjska obrada tabelarnih dijelova. U konfiguraciji "1C Upravljanje platama i osobljem" izdanje 2.5 nalazi se dokument "Plaćanje za praznike i vikende"(O ovom dokumentu je detaljno pisano). U svom standardnom obliku, 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 bili predviđeni vikendom, tj. "Rad vikendom".

Ova datoteka je učitana u direktorij "Spoljna obrada tabelarnih delova"(stavka menija “Usluga” -> “Dodatni izvještaji i obrada” -> “Dodatna eksterna obrada tabelarnih dijelova”). Prilikom kreiranja elementa ovog imenika, naznačeno je na koji se dokument odnosi preuzeta obrada - „Uplata za praznike i vikende organizacije“, kao i na koji tabelarni dio – „Zaposleni“. U našem primjeru dokument ima jedan tabelarni dio, ali u drugim dokumentima ih može biti više, pa je potrebno posebno naznačiti na koji se od njih odnosi obrada.

Kao rezultat dodavanja ove obrade u direktorij “Dodatna eksterna obrada za popunjavanje tabelarnih dijelova” u samom dokumentu „Plaćanje za praznike i vikend delove“ pojaviće se dugme „Popuni“ sa padajućom listom u kojoj će biti moguće započeti ovu obradu. U našem slučaju, dugme „Popunjavanje nedelja“ je dostupno na padajućoj listi. Pritiskom na njega pokreće se algoritam koji se nalazi u obradi. U ovom primjeru, tabelarni dio će se popuniti zaposlenima čiji su radni dani padali na slobodan dan. Imajte na umu da ovo dugme ranije nije postojalo (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 realizaciju zadataka klijenata.

Opcione vanjske ploče za štampanje

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

KONTROLA za provjeru obračuna zarada u 1C ZUP 3.1
VIDEO - mjesečna samoprovjera računovodstva:

Obračun zarada u 1C ZUP 3.1
Korak po korak upute za početnike:

Ova opcija je vrlo slična prethodnoj. Vjerovatno ste vidjeli i znate da gotovo svaki dokument, pa čak i neki elementi priručnika, imaju štampane forme. Oni se, po pravilu, nalaze u donjem desnom uglu forme elementa direktorijuma ili dokumenta. Ponekad standardni štampani obrasci nisu dovoljni. Na primjer, organizacija može imati vlastiti oblik ugovora o radu. Podsjećam da je standardni štampani obrazac „Ugovor o radu“ uključen u obrazac imenika „Zaposleni“.

Možete dodati svoje u ove štampane obrasce imenika. U tu svrhu kreira se eksterna štampana forma sa ekstenzijom “.epf”. Zatim se za njega kreira element direktorija "Dodatne vanjske štamparske ploče"(stavka menija “Alati” -> “Dodatni izvještaji i obrada”) i ovom elementu direktorija se dodaje datoteka sa ekstenzijom “.epf”. Također je potrebno naznačiti za koji dokument ili priručnik se obrada dodaje.

Kao rezultat toga, kao dio štampanih obrazaca elemenata imenika "Zaposleni", 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 “.epf” datoteci.

Ova mogućnost dodavanja potrebnih štampanih obrazaca za dokumente i referentne knjige takođe je 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. Ovo je datoteka u “.erf” formatu. Upravo ova datoteka će odrediti izgled izvještaja, koje će konfiguracijske podatke koristiti i koje će 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 priručnika “Dodatni eksterni izvještaji” (stavka menija “Alati” -> “Dodatni izvještaji i obrada”). Oni se ne odnose na određeni dokument ili referentnu knjigu;

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

Također možete pokrenuti eksterni izvještaj koristeći stavku menija “Datoteka” -> “Otvori”. Ova opcija se može koristiti ako vam je zgodnije da eksterne izveštaje čuvate ne kao deo programa, već jednostavno u fasciklama na računaru.

Dodatna eksterna obrada

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 promjenu, uređivanje ili transformaciju podataka baze podataka. Raspon problema koji se rješavaju eksternom obradom prilično je širok.

Na primjer, obrada za učitavanje platnih izvoda. Uprkos prisutnosti standardne obrade u ZUP-u (pročitajte o tome), ponekad može biti neprikladan za određenu banku i razvijena je eksterna obrada koja konvertuje i preuzima informacije u traženom formatu.

Dovest ću te još jedan primjer potpuno jednostavan, ali prilično popularan tretman. Ako u 1C ZUP-u ne održavate dokument „Prenos poreza na dohodak fizičkih lica u budžet“ tokom godine, onda će pri generisanju 2 poreza na dohodak fizičkih lica za godinu, polje „Preneto“ za svakog zaposlenog biti nula, što je obično činjenično netačno. Unošenje dokumenta „Prenos poreza na dohodak građana u budžet“ za cijelu godinu može biti prilično zamorno, s obzirom na specifičnosti samog dokumenta. Ali možete izvršiti eksternu obradu, koja će u generiranom 2-NDFL jednostavno popuniti polje „Navedeno“ za svakog zaposlenika, na osnovu vrijednosti u polju „Izračunato“. Računovođe obično jako vole ovu opciju.

Eksterna obrada ima potpuno iste dvije opcije skladištenja i pokretanja: ili koristite direktorij "Dodatna eksterna obrada"(stavka menija “Alati” -> “Dodatni izvješ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:

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.

Konvolucija baze podataka. (univerzalno)

Izvodi zbir tipičnih konfiguracija za sigurnost informacija:

  • UPP 3.1.
  • BP 1.6.
  • UT 10.3.

Registracija promjena za razmjenu. (univerzalno)

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

Konverzija dnevnika aktivnosti korisnika. (univerzalno)

Pretvara dnevnik 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 sigurnosti informacija.

Postavljanje tehnološkog dnevnika. (univerzalno)

Kreira ili uređuje datoteku dnevnika procesa. Ima mogućnost da konfiguriše kreiranje crash dump-a, konfiguriše uslove i događaje po čijem nastanku će informacije biti zabeležene u ovom dnevniku.

Konzola za posao. (univerzalno)

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

Konverzija eksterne obrade. (univerzalno)

Promjena povjerljivih informacija. (univerzalno)

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

Grupna promjena detalja. (univerzalno)

Mijenja detalje i tabelarne dijelove u dokumentima i referentnim knjigama.

Učitavanje i učitavanje korisnika. (univerzalno)

Učitava i učitava korisnike sigurnosti informacija u XML datoteku.

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

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

  • Istovarite sve
  • Učitavanje promjena (koristi se za sinhronizaciju promjena u radnom IS-u sa IS-om koji prima). Ovaj način rada koristi mehanizme plana razmjene.

Podržava sljedeće DBMS:

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

Prijenos i učitavanje XML podataka. (univerzalno)

Učitava 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 objekata.

Učitavanje podataka iz tabelarnog dokumenta. (univerzalno)

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

Radi u debelom klijentu u normalnom načinu aplikacije.

Konzola zahtjeva. (univerzalno)

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

Za povezivanje eksterne obrade, izveštaja i štampanih obrazaca za platformu 1C:Enterprise 8.2, razvijen je novi standard za rad u upravljanoj aplikaciji (standard iz standardnog bibliotečkog podsistema 8.2). Pojavili su se "čipsi" 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 bazi.

    Jedna obrada može sadržati listu od više operacija (naredbi), tj. možete napraviti jednu obradu, gdje će biti nekoliko stavki menija odjednom: štampanje i otpremnice, š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 nije potrebno) i niste morali zatvarati, niti crtati svoj obrazac, koji je imao potrebna dugmad za odabir potrebna operacija)

    Možete unositi i popunjavati objekte na osnovu nekoliko objekata odjednom, a ne samo jednog

    Možete postaviti raspored za izvršavanje komandi servera (na serveru).

    Možete podesiti način rada na “Safe” ili “Unsafe”, 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 grešaka, koristiti. “Ne koristiti” – nije u funkciji, “Otklanjanje grešaka” – vidljivo samo administratorima, “Koristi u radu”.

    Može se koristiti u objektnim oblicima i u obrascima liste

    Možete povezati obradu ili izvještaj za sve objekte odjednom.

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

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

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

Sa stanovišta platforme, možete se 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 formom*:

  • Dodatna obrada
    • Samo dodatna obrada. Moguće je prilagoditi
  • Dodatni izvještaj
    • Samo dodatni izvještaj
  • Popunjavanje objekta
    • Vlastiti gumbi za popunjavanje objekata (dokumenata), ranije su postojali samo gumbi za popunjavanje tabelarnog dijela.
  • Obrazac za štampanje
    • Dodatni obrazac za štampanje (dodato je dugme „Dodatne forme za štampanje“)
  • Izvještaj
    • Izvještaj priložen objektima (direktoriji i dokumenti).
  • Kreiranje povezanih objekata
    • Vaš vlastiti unos na osnovu (dugme “Kreiraj povezane objekte...” dodaje se u stavku menija “Unos na osnovu”)

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

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

Počnimo s općim zahtjevima za sve vrste obrade i izvještavanja. Da biste kreirali dodatnu eksternu obradu ili izvještaj, morate deklarirati funkciju izvoza InformationOnExternalProcessing() u objektnom modulu, koja mora ispuniti strukturu koja opisuje ponašanje. Primjer ove funkcije:

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

//Dodatna obrada
//Dodatni izvještaj
//Popunjavanje objekta
//Izvještaj
//PrintForm
//Kreiranje povezanih objekata
RegistrationData.Insert("View", "AdditionalProcessing");

Registracijski podaci.Insert("Informacije", "Obrada urađena prema novom standardu za povezivanje eksterne obrade 8.2. Primjer obrade ""Hello Word"" ");

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


stringCommands.Identifier = "1";
stringCommands.View = "komanda ""Zdravo Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

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

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "command""Hello Word""(CallServerMethod)";
stringCommands.ShowAlert = Tačno;
stringCommand.Usage = "CallServerMethod";

RegistrationData.Insert("Commands", tzCommands);

/////////////// namjena (u kojim objektima se koristi) /////////////////////////
//za ispis obrazaca, popunjavanje, unos povezanih objekata
//ArrayAssignments = Novi niz;
//Niz zadataka.Add("Dokument.*"); // svi dokumenti su dodijeljeni
//Niz Assignments.Add("Document.Advance Report");
//Niz Assignments.Add("Document.Buyer's Order");
//Registracijski podaci.Insert("Odredište", Niz odredišta);

Vratiti podatke o registraciji;

EndFunction

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

    Naziv – skraćeni naziv tretmana

    Verzija - informacije o verziji obrade

    Siguran način rada – odgovoran je za to da li obrada treba biti obavljena uzimajući u obzir korisnička prava. Ako je postavljeno na False, obrada ili prijavljivanje će se vršiti bez uzimanja u obzir ograničenja prava (kao i sa punim pravima). Ova karakteristika se pojavila upravo u verziji 8.2, gdje prilikom kreiranja eksterne obrade i izvještaja, drugi parametar određuje način rada.

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

  • Naredbe – tabela vrijednosti koja navodi korištene komande. Kolone tablice vrijednosti:
    • Identifikator – bilo koji niz (identifikator naredbe)
    • Pogled - opis komande
    • Modifikator - niz (koristi se za dodatne štampane forme)
    • Prikaži obavještenje – prozor s obavijesti će se pojaviti prije početka i nakon završetka izvršavanja (za klijentske i serverske komande bez obrasca)
    • Upotreba – način pokretanja obrade:
      • OpenForm – otvoriće se obrazac za obradu
      • CallClientMethod – pozovite metodu izvoza klijenta obrasca
      • Call ServerMethod – pozvati metodu za izvoz 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 ili objektnom modulu. Lista proslijeđenih parametara je također drugačija. Prilažem primjere poziva i korištenja svih vrsta obrade.