Predložak eksternog izvještaja 1s 8.3 upravljana aplikacija. Kako kreirati eksternu obradu za tipičnu konfiguraciju

15.12.2023

U sklopu ovog članka napisat ćemo obradu za popunjavanje tabelarnog dijela u 1C 8.3 for tipična konfiguracija 1C:ERP 2.1. Pretpostavimo da je cilj zadatka postaviti ručni popust od 5% za sve artikle proizvoda ovog dokumenta. Primjer iz članka može se preuzeti sa ili sa druge slične obrade.

Ovo uputstvo dizajniran za upravljane forme (8.2 i 8.3). Za pravilnih oblika(8.1, 8.2) se mogu koristiti.

Kreirajte i sačuvajte na svom računaru novi tretman. Prvo morate izvršiti neke korake registracije.

Otvorite objektni modul i napišite kod ispod (može se uzeti i iz gore navedene obrade). Generalno, struktura se neće mijenjati ovisno o situaciji. Uređuju se samo neki parametri podešavanja, kao i nazivi varijabli, ako je potrebno.

U ovom članku nećemo se detaljno zadržavati na registraciji vanjske obrade i tiskanih obrazaca u 1C. Sve ove informacije nalaze se u našim drugim člancima.

Popunjavanje tabelarnog dela dokumenta

Kreirajmo nova uniforma obrada.

Sada treba da dodamo kreirani obrazac novi tim. Pretpostavlja se da će automatski mijenjati podatke u tabelarnom dijelu i jednog i više dokumenata (njihove liste) istovremeno, s tim da će ih naknadno evidentirati.

U našem primjeru će se obraditi već postojeći tabelarni dio „Proizvodi“. Za svaku liniju biće postavljen ručni popust od 5%. Takođe, izračunaćemo i sam iznos ovog popusta, jednak količini robe u redu pomnoženoj sa 0,05.

&Na serverskoj proceduri Izvrši naredbu (naredba, objekti dodjele) Za svaki nalog klijenta iz objekata dodjeljivanja ciklusa Objekat narudžbe kupca = Narudžba kupca. GetObject() ;

Za svaku TK liniju iz Customer OrderObject. Proizvodi Cycle LineTZ. ManualDiscountPercent = 5 ;

LineTZ. Ručni iznos popusta = TK linija. Iznos * 0 . 05 ;

Napravite novi element u direktorijumu koji se otvori i kliknite na dugme istog imena da učitate svoju obradu iz datoteke. Postavimo ga istovremeno i na obrazac liste i na obrazac same kartice dokumenta.

Sada će se u obrascu liste dokumenata „Narudžba kupca“ pojaviti dugme „Popunjavanje...“ koje će vam omogućiti da promijenite ručne popuste na proizvode za nekoliko dokumenata odjednom.

Ovo dugme će takođe biti dostupno na samoj kartici dokumenta.

1C GOODWILL blog kompanije

Razmotrimo u ovom članku upute korak po korak za kreiranje eksterne obrade u 1C 8.3 u načinu upravljanja aplikacijom, u skladu s tim ćemo koristiti upravljane obrasce. I što je najvažnije, naučit ćemo kako ga povezati s mehanizmom „vanjske obrade“ 1C konfiguracija izgrađenih na biblioteci standardnih podsistema verzije 2.0 i novije.

Zadatak će biti sljedeći: stvoriti najjednostavniji eksterna obrada, koji će izvršiti grupnu radnju na direktorijumu „Artikal“, odnosno postaviti izabrani procenat PDV stope za navedenu grupu artikala.

Omogućavanje mehanizma eksterne obrade u programu

Da bismo to učinili, odmah ćemo izvršiti potrebna podešavanja u programu (razmatramo konfiguraciju 1C 8.3: „Računovodstvo preduzeća 3.0“ na kontrolisane forme).

Označavanjem ovog polja dobijamo priliku da koristimo eksternu obradu.

Kreiranje nove vanjske obrade u 1C 8.3 koristeći primjer

Sada idemo na konfigurator. U meniju "Datoteka" izaberite "Novo...". Otvara se prozor za odabir vrste datoteke koja se kreira. Odaberite “Spoljna obrada”:

Otvoriće se novi prozor za eksternu obradu. Hajdemo joj odmah dati ime. Biće ponuđeno prilikom snimanja obrade na disk:

Dodajmo novi obrazac za kontroliranu obradu. Navodimo da je ovo oblik obrade, a on je glavni:

Na obrascu ćemo imati dva detalja:

Detalje kreiramo u koloni “Svojstva” u gornjem desnom prozoru. Prevucite ih mišem u gornji lijevi prozor. Novi detalji bi se trebali odmah pojaviti na donjem obrascu.

Redoslijed detalja se može promijeniti pomoću strelica “gore” – “dolje”:

Ostaje samo da dodate dugme "Instaliraj". U upravljanim obrascima, ne možete samo dodati dugme u obrazac. Čak i ako ga dodate strukturi elemenata obrasca, neće biti vidljiv na samom obrascu. Dugme mora biti povezano sa komandom koju će izvršiti. Idite na karticu “Komande” i dodajte naredbu “Postavi stopu PDV-a”. U svojstvima naredbe kreirajte akciju. Odaberite rukovatelj naredbama “Na klijentu”. Naredba se također može dodati u obrazac jednostavnim prevlačenjem u odjeljak sa elementima obrasca.

U modulu obrasca biće kreirana procedura istog imena. U njemu pozivamo proceduru na serveru:

&OnClient

Procedura Postavljanje stope PDV-a (naredba)

SetVATRateOnServer();

Kraj procedure

U proceduri na serveru ćemo napisati mali zahtjev i radnje vezane za postavljanje stope PDV-a:

&OnServer

Procedura SetVATRateOnServer()

Zahtjev = Novi zahtjev;

Request.Text =

| Imenik.Nomenklatura AS Nomenklatura

| A NE Nomenklatura.MarkDeletion

| A NE Nomenklatura Ovo je Grupa”;

Request.SetParameter("Grupa stavki", Grupa stavki);

ResRequest = Request.Execute();

SelectRecordDet = ResRequest.Select();

Dok SelectRecordDet.Next() petlja

SprNomObject.VATRate = SelectVATRate;

SprNomObject.Write();

Izuzetak

Report("Greška u pisanju objekta """ + SprNomObject + """!

|» + DescriptionError());

EndAttempt;

EndCycle;

Kraj procedure

Vraćamo se na karticu "Obrazac", dodamo dugme u obrazac i povezujemo ga sa naredbom:

Kao takva, naša obrada je spremna za upotrebu. Da biste ga pozvali, u režimu „1C Enterprise“ morate otići na meni „Datoteka“ - „Otvori“ i odabrati kreiranu datoteku.

Međutim, rad u ovom načinu rada je zgodan za obradu otklanjanja grešaka, ali nije u potpunosti prikladan za korisnika. Korisnici su navikli da im sve bude „na dohvat ruke“, odnosno u samoj bazi podataka.

Tome služi odjeljak „Dodatni izvještaji i obrada“.

Ali da bismo tamo dodali našu obradu, prvo mu moramo dati opis i reći programu njegova svojstva.

Opis funkcije “Informacije o vanjskoj obradi”

Navest ću primjer sadržaja ove funkcije. Mora se izvoziti i, shodno tome, nalaziti u modulu za obradu:

Funkcija InformationOnExternalProcessing() Izvoz

DataForReg = Nova struktura();

DataForReg.Insert("Naziv", "Postavljanje stope PDV-a");

DataForReg.Insert("SafeMode", True);

DataForReg.Insert("Verzija", "ver.: 1.001");

DataForReg.Insert("Informacije", "Obrada za postavljanje stope PDV-a u imeniku Nomenklature");

DataForReg.Insert("View", "AdditionalProcessing");

CommandTable = NovaValueTable;

TabZnCommands.Columns.Add("Identifier");

TabZnCommands.Columns.Add("Upotreba");

TabZnCommands.Columns.Add("View");

NewRow = TabZnCommands.Add();

NewString.Identifier = "OpenProcessing";

NewRow.Use = "OpenForm";

NewRow.View = "Otvorena obrada";

DataForReg.Insert("Commands", TabZnCommands);

Return DataForReg;

EndFunction

Da bismo bolje razumjeli koja polja strukture podataka registracije treba koristiti, pogledajmo detalje direktorija "Dodatni izvještaji i obrada":

Kao što vidite, sve je prilično jednostavno. Samo jedan atribut se ne podudara: “Opcija pokretanja” – “Koristi”. Ako pogledamo kod jednog od uobičajenih modula, vidjet ćemo kako nastaje gomila ovih polja:

Da biste odredili koja su polja strukture potrebna, prvo je ne možete opisati, jednostavno kreirati prazno, a zatim koristiti program za otklanjanje grešaka. Ako pratite module prilikom registracije obrade, odmah postaje jasno koja polja su obavezna, a koja nisu.

Povezivanje vanjske obrade u 1C 8.3

Pređimo sada na način rada "1C Enterprise" i dodamo eksternu obradu:

Nakon snimanja obrade u direktorij, klikom na dugme „Pokreni“ otvara se za izvršenje. Ovdje možete odrediti u kojim dijelovima (podsistemima) programa ovu obradu i za koje korisnike.

Objava Kako kreirati eksternu obradu u 1C 8.3 (upravljani obrasci) prvi put se pojavila na blogu kompanije 1C GOODWILL.

Odjeljak za konfiguraciju: Objekti aplikacije

Odmah da rezerviram da je ovaj materijal prikladniji za konfiguracije razvijene pomoću kontroliranih oblika. Ipak opšti principi isti su za sve forme.

Za kreiranje eksterne obrade ili izvještaja potrebno je samo odabrati meni Datoteka/Novo i odabrati vrstu obrade ili izvještaja. Nakon kreiranja obrade, u principu je već možete koristiti. Ali da bismo ga povezali sa standardnom konfiguracijom kao dodatnu obradu ili izvještavanje, to nije dovoljno.

Da biste to učinili, morate registrirati nekoliko procedura u modulu za obradu. Njihovo opšte značenje se svodi na to da konfiguraciji date do znanja o kakvoj se obradi radi (obrada, izveštaj, štampani obrazac, popunjavanje tabelarnog dela itd.), a takođe naznačite u kom podsistemu treba da se nalazi.

Ovaj kod je dat u nastavku. Za vašu obradu morate promijeniti nekoliko parametara.

Pa, prije svega, ovo je verzija i naziv obrade, kao i naziv naredbe. Kao što sam već napisao, potrebno je naznačiti podsistem gdje će se nalaziti ili određeni objekt (direktorij, dokument).
Također vrsta obrade i način korištenja. Sigurni način rada ne dozvoljava promjene u bazi podataka.

Funkcija InformationOnExternalProcessing() Izvoz
// Deklarišemo varijablu u koju ćemo sačuvati i vratiti potrebne podatke "napolje"
Parametri registracije = Nova struktura;

// Hajdemo deklarisati drugu varijablu koja će nam biti potrebna u nastavku
ArrayDestinations = Novi niz;

// Prvi parametar koji moramo navesti je koji tip obrade sistem treba da registruje.
// Važeće vrste: AdditionalProcessing, AdditionalReport, FillingObject, Report, PrintForm, CreatingLinkedObjects
Registracijski parametri.Insert("View", "AdditionalProcessing");

// Sada trebamo proslijediti u obliku niza imena na što će naš VPF biti povezan
// Imajte na umu da naziv možete postaviti u sljedećem obliku: Dokument.* - u ovom slučaju obrada će biti povezana sa svim dokumentima u sistemu,
// koji podržavaju VPF mehanizam
Niz Assignments.Add("Subsystems.RegulatedAccounting");
Registracijski parametri.Insert("Odredište", Niz odredišta);

// Sada postavimo ime pod kojim će VPF biti registriran u vanjskom direktoriju za obradu
Parametri registracije.Insert("Naziv", "Analiza negativnih stanja po registru");

// Postavite pravo obrade za korištenje siguran način rada. Više detalja možete pronaći u pomoći platforme (metoda SetSafeMode)
Registracijski parametri.Insert("SafeMode", True);

// Sljedeća dva parametra igraju više informativna uloga, tj. ovo je ono što će korisnik vidjeti u informacijama za obradu
Parametri registracije.Insert("Verzija", "1.0");
Parametri registracije.Insert("Informacije", "Analiza negativnih stanja po registrima");

// Kreirajte tabelu naredbi (pogledajte detalje ispod)
CommandTable = GetCommandTable();

// Dodaj naredbu u tablicu
Dodaj naredbu(Tabela naredbi, "Analiza negativnih stanja po registrima", "Analiza negativnih stanja po registrima", "Otvaranje Obrazca");

// Spremi tablicu naredbi u parametre registracije obrade
Parametri registracije.Insert("Commands", CommandTable);

// Sada vratimo naše parametre u sistem
ReturnRegistrationParameters;
EndFunction

Funkcija GetTableCommand()

// Kreirajte praznu tabelu komandi i kolone u njoj
Naredbe = Nova tablica vrijednosti;

// Kako će izgledati opis ispisane forme za korisnika
Commands.Columns.Add("View", NewTypeDescription("Row"));

// Naziv našeg rasporeda, tako da možemo razlikovati pozvanu naredbu u obradi ispisa
Commands.Columns.Add("Identifier", New TypeDescription("String"));

// Ovo postavlja kako treba pozvati naredbu za obradu
// Moguće opcije:
// - OpeningForm - u ovom slučaju kolona identifikatora treba da naznači ime obrasca koji će sistem otvoriti
// - CallClientMethod - pozivanje procedure izvoza klijenta iz modula obrasca za obradu
// - Call ServerMethod - pozivanje procedure izvoza servera iz modula objekta obrade
Commands.Columns.Add("Usage", New TypeDescription("Row"));

// Sljedeći parametar određuje hoće li se obavijest prikazati kada posao obrade započne i završi. Nema smisla pri otvaranju obrasca
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));

// Za ispisani obrazac, mora sadržavati string PrintMXL
Commands.Columns.Add("Modifikator", New TypeDescription("Row"));
Return Team;
EndFunction

Procedura AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
// Dodajte naredbu u tablicu naredbi prema prenesenom opisu.
// Parametri i njihove vrijednosti mogu se vidjeti u funkciji GetCommandTable
NewCommand = CommandTable.Add();
NewCommand.View = Pogled;
NewCommand.Identifier = Identifikator;
NewCommand.Use = Koristi;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modifikator;

Eksterna obrada je vrlo zgodan alat za kompanije koje koriste standardne konfiguracije na 1C:Enterprise 8.3. Omogućuju vam da ne trošite trud i novac na ažuriranja 1C, što omogućava ažuriranje baza podataka jednim gumbom u jednostavnom korisničkom načinu rada. Koristeći mehanizam standardne biblioteke podsistema, možete dodati različite tipke dokumentima i referentnim knjigama bez promjene standardne konfiguracije. Razmotrimo primjer kreiranja i povezivanja vanjske obrade u jednoj od 1C konfiguracija.

Kreiramo eksternu obradu u 1C 8.3

Za kreiranje nove vanjske obrade koristimo konfigurator. Preko menija „Datoteka“ izaberite komandu za kreiranje „Novo...“ i odredite da ćemo kreirati eksternu obradu. U prozoru koji se otvori postavite naziv, a kada pritisnete „Enter“, on se automatski popunjava. Sistem će vam takođe ponuditi ovo ime kao ime datoteke prilikom snimanja.

Dodajmo obrazac za obradu klikom na dugme sa lupom u odgovarajućem prozoru. Kao primjer, napravimo obradu koja pokazuje koje narudžbe kupaca koriste određeni artikl. Da bismo to uradili, potrebno je da na formular postavimo:

  • Atributi – polje za postavljanje nomenklature;
  • Dugme koje će pozvati kod.

Dodajte atribut “Nomenclature” sa tipom podataka “DirectoryLink.Nomenclature” u odgovarajućem odeljku i dugme “Prikaži” u meniju “Commands” -> “Form Commands”.

Da bi se dodani podaci odrazili na obrazac, morate ih prevući u elemente obrasca koji se nalaze u gornjem lijevom dijelu. Moguće je zamijeniti elemente pomoću plavih strelica. Da bi dugme koje smo kreirali radilo ono što je nameravalo, potrebno mu je dodeliti proceduru. Kroz kontekstni meni Odaberemo "Command Action", a na pitanje gdje je potreban rukovalac, odgovorit ćemo: "Kreiraj na klijentu i proceduru na serveru."


Fragment 1

&OnClient procedura Prikaži(komanda) ShowOnServer(); Kraj procedure &OnServer Procedura ShowOnServer() //Ubacite sadržaj rukovaoca. Kraj procedure

Odlučili smo da kreiramo proceduru na serveru jer želimo da dobijemo uzorak iz baze podataka kao rezultat. Ovu opciju nemamo na klijentu, pa ćemo se morati povezati na server koji razmjenjuje podatke sa bazom podataka. Sada treba da napišemo kod koji implementira ono što smo planirali. Zahtjev i izlaz svih dokumenata putem funkcije “Report()” će se koristiti.


Fragment 2

&OnClient procedura Prikaži (naredba) ShowOnServer(nomenklatura); EndProcedure &OnServer Procedura ShowOnServer(nomenklatura) Zahtjev = Novi zahtjev;

Query.Text = "IZABIR RAZLIČITIH | Sastav narudžbe kupca.Veza KAO Veza | FROM | Document.Narudžba kupca.Sastav KAO Sastav narudžbe korisnika | WHERE | Sastav narudžbe kupca.Nomenklatura = &Nomenklatura";

Za postavljanje eksterne obrade u sekciju 1C potrebno je registrovati proceduru „Informacije o eksternoj obradi“ u objektnom modulu. U glavnom izborniku za obradu kliknite na Akcije i odaberite Objektni modul. Ovdje morate registrirati sve postavke potrebne za 1C tako da sistem razumije šta se od njega traži i kakva je datoteka ispred njega. Snimak ekrana prikazuje kod za funkciju “Informacije o vanjskoj obradi”.

Funkcija InformationOnExternalProcessing() Izvoz DataForReg = Nova struktura();

DataForReg.Insert("Ime","Nova eksterna obrada");

DataForReg.Insert("SafeMode", True);

DataForReg.Insert("Verzija", "ver.: 1.001"); DataForReg.Insert("View", "AdditionalProcessing"); CommandTable = NovaValueTable;


TabZnCommands.Columns.Add("Identifikator"); TabZnCommands.Columns.Add("Upotreba"); TabZnCommands.Columns.Add("View");

  • NewRow = TabZnCommands.Add();
  • NewString.Identifier = "NewExternalProcessing"; NewRow.Use = "OpenForm"; NewRow.View = "Nova eksterna obrada"; DataForReg.Insert("Commands", TabZnCommands); Return DataForReg; EndFunction
  • Fragment 3 Povezivanje vanjske obrade u 1C Prije povezivanja vanjske obrade na standardnu ​​konfiguraciju, morate omogućiti korištenje ovog alata. U "Administracija" u pododjeljku "
  • Nakon pritiska na dugme „Napiši“ u odabranom delu menija „Dodatna obrada“, korisnici će pronaći našu komandu i moći će da je koriste.

Ako želimo da izvršimo promene u našoj obradi, prvo je moramo izbaciti iz baze podataka. Da biste to učinili, pronađite potrebnu liniju u direktoriju “Dodatna obrada i izvještaji” i koristite naredbu “Prenesi u datoteku...”. Napravite izmjene, sačuvajte obradu i koristite dugme „Učitaj iz datoteke...“ da biste pronašli promijenjenu epf fajl bez promjene parametara. Nakon snimanja, svi korisnici će vidjeti napravljene promjene.

Ako koristite nestandardnu ​​ili ukinutu 1C bazu podataka, iskoristite priliku za preuzimanje obrade putem konfiguratora. U stablu objekata, u odeljku „Obrada“, kreirajte novu obradu i preko kontekstnog menija izaberite „Zameni spoljnom obradom, izvesti...“. Ostaje samo da konfigurišete pokretanje eksterne obrade iz željeni dio, omogućavajući dodatnu obradu u željenom podsistemu.


Rad sa eksternom obradom je veoma zgodan i omogućava vam da izbegnete mnoge konflikte. Njihov jedini značajan nedostatak je što se ne ažuriraju automatski zajedno sa konfiguracijom. To jest, ako su programeri promijenili naziv dokumenta ili referentne knjige u glavnoj konfiguraciji, morat ćemo ručno konfigurirati obradu.

Idite na gornji meni Servis->->.

Pojavljuje se obrazac liste eksternih direktorija za obradu. IN top meni pritisnite dugme Dodaj.

Pojavit će se obrazac za dodavanje novog objekta. Kliknite na dugme za otvaranje i izaberite datoteku sa željenom obradom. Nakon što ste odabrali potreban 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, a vi se vraćate 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 se postavi 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: