Parametri vanjske obrade 1s 8.3. Dodavanje vanjske obrade u bazu podataka. Opis funkcije "Informacije o vanjskoj obradi"

25.10.2019 Savjet

Blog tvrtke 1C GOODWILL

Razmotrimo u ovom članku upute korak po korak za stvaranje vanjske obrade u 1C 8.3 u načinu upravljane aplikacije, u skladu s tim koristit ćemo upravljane obrasce. I što je najvažnije, naučit ćemo kako ga povezati s mehanizmom "vanjske obrade" 1C konfiguracija izgrađenih na biblioteci standardnih podsustava verzije 2.0 i novije.

Zadatak će biti sljedeći: stvoriti najjednostavniji vanjska obrada, koji će izvršiti grupnu akciju na imeniku „Artikl“, odnosno postaviti odabrani postotak stope PDV-a za navedenu grupu artikala.

Uključivanje mehanizma eksterne obrade u programu

Da bismo to učinili, odmah ćemo napraviti potrebne postavke u programu (razmatramo konfiguraciju 1C 8.3: "Enterprise Accounting 3.0" na kontrolirani oblici).

Označavanjem ovog okvira dobivamo mogućnost korištenja vanjske obrade.

Stvaranje nove vanjske obrade u 1C 8.3 pomoću primjera

Sada idemo na konfigurator. U izborniku "Datoteka" odaberite "Novo...". Otvorit će se prozor za odabir vrste datoteke za izradu. Odaberite "Vanjska obrada":

Otvorit će se novi prozor za vanjsku obradu. Dajmo joj odmah ime. Bit će ponuđeno prilikom spremanja obrade na disk:

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

Na obrascu ćemo imati dva detalja:

Pojedinosti stvaramo u stupcu "Svojstva" u gornjem desnom prozoru. Povucite ih mišem u gornji lijevi prozor. Novi detalji trebali bi se odmah pojaviti na donjem obrascu.

Redoslijed detalja može se promijeniti pomoću strelica "gore" - "dolje":

Sve što preostaje je dodati gumb "Instaliraj". U upravljanim obrascima ne možete samo dodati gumb u obrazac. Čak i ako ga dodate u strukturu elemenata forme, neće biti vidljiv na samom obrascu. Gumb mora biti povezan s naredbom koju će izvršiti. Idite na karticu "Naredbe" i dodajte naredbu "Postavi stopu PDV-a". U svojstvima naredbe kreirajte radnju. Odaberite rukovatelja naredbama “Na klijentu”. Formi se također može dodati naredba jednostavnim povlačenjem u odjeljak s elementima forme.

U modulu forme kreirat će se istoimena procedura. U njemu ćemo pozvati proceduru na poslužitelju:

&NaKlijentu

Postupak Postavljanje stope PDV-a (naredba)

PostaviVATRateOnServer();

Kraj postupka

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

&Na poslužitelju

Procedura SetVATRateOnServer()

Zahtjev = Novi zahtjev;

Zahtjev.Tekst =

| Imenik.Nomenklatura AS Nomenklatura

| A NE Nomenklatura.OznakaBrisanje

| A NE nomenklatura. Ovo je grupa”;

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

ResRequest = Request.Execute();

SelectRecordDet = ResRequest.Select();

Dok SelectRecordDet.Next() Petlja

SprNomObject.VATRate = OdaberiteVATRate;

SprNomObject.Write();

Iznimka

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

|» + OpisPogreška());

EndAttempt;

EndCycle;

Kraj postupka

Vraćamo se na karticu "Obrazac", dodajemo gumb u obrazac i povezujemo ga s naredbom:

Kao takva, naša obrada je spremna za upotrebu. Da biste ga pozvali, u načinu rada "1C Enterprise" morate otići na izbornik "Datoteka" - "Otvori" i odabrati stvorenu datoteku.

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

Tome služi odjeljak "Dodatna izvješća i obrada".

Ali da bismo tu dodali našu obradu, prvo joj moramo dati opis i reći programu njena svojstva.

Opis funkcije "Informacije o vanjskoj obradi"

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

Funkcija InformationOnExternalProcessing() Izvoz

DataForReg = Nova struktura();

DataForReg.Insert("Ime", "Postavka stope PDV-a");

DataForReg.Insert("SafeMode", True);

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

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

DataForReg.Insert("Prikaz", "Dodatna obrada");

CommandTable = NovaValueTable;

TabZnCommands.Columns.Add("Identifikator");

TabZnCommands.Columns.Add("Upotreba");

TabZnCommands.Columns.Add("View");

NewRow = TabZnCommands.Add();

NewString.Identifier = "OpenProcessing";

NewRow.Use = "OpenForm";

NewRow.View = "Otvorena obrada";

DataForReg.Insert("Naredbe", TabZnNaredbe);

Vrati DataForReg;

EndFunction

Kako bismo bolje razumjeli koja polja strukture podataka o registraciji treba koristiti, pogledajmo pojedinosti direktorija "Dodatna izvješća i obrada":

Kao što vidite, sve je vrlo jednostavno. Samo jedan atribut ne odgovara: “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 možete ne opisati, jednostavno stvoriti prazno, a zatim koristiti program za ispravljanje pogrešaka. Ako pratite module prilikom registracije obrade, odmah postaje jasno koja polja su potrebna, a koja nisu.

Povezivanje vanjske obrade u 1C 8.3

Prijeđimo sada na način rada "1C Enterprise" i dodamo vanjsku obradu:

Nakon snimanja obrade u imeniku, klikom na gumb "Pokreni" otvara se za izvršenje. Ovdje možete odrediti u kojim dijelovima (podsustavima) programa ovu obradu i za koje korisnike.

Post Kako kreirati vanjsku obradu u 1C 8.3 (upravljane forme) prvi put se pojavio na blogu tvrtke 1C GOODWILL.

Odjeljak konfiguracije: Objekti aplikacije

Odmah ću rezervirati: ovaj je materijal prikladniji za konfiguracije razvijene pomoću kontroliranih oblika. Štoviše generalni principi isti su za sve oblike.

Za izradu eksterne obrade ili izvješća potrebno je samo odabrati izbornik File/New i odabrati vrstu obrade ili izvješća. Nakon izrade obrade, u načelu je već možete koristiti. Ali da biste ga povezali sa standardnom konfiguracijom kao dodatna obrada ili izvještaj nije dovoljan.

Da biste to učinili, morate registrirati nekoliko postupaka u modulu za obradu. Njihovo opće značenje svodi se na to da konfiguraciji dajete do znanja o kakvoj se obradi radi (obrada, izvješće, ispis obrasca, popunjavanje tabelarnog dijela i sl.), te naznačite u kojem se podsustavu treba nalaziti.

Ovaj kod je dan 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, morate odrediti podsustav gdje će se nalaziti ili određeni objekt (imenik, dokument).
Također vrsta obrade i način korištenja. Siguran način rada ne dopušta izmjene baze podataka.

Funkcija InformationOnExternalProcessing() Izvoz
// Deklarirajmo varijablu u kojoj ćemo spremati i vraćati potrebne podatke "vani"
Parametri registracije = Nova struktura;

// Deklarirajmo još jednu varijablu koja će nam trebati u nastavku
ArrayDestinations = Novi niz;

// Prvi parametar koji moramo navesti je koju vrstu obrade sustav treba registrirati.
// Važeće vrste: AdditionalProcessing, AdditionalReport, FillingObject, Report, PrintForm, CreatingLinkedObjects
Parametri registracije.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 sustavu,
// koji podržavaju VPF mehanizam
Array of Assignments.Add("Subsystems.RegulatedAccounting");
Parametri registracije.Insert("Destination", Array of Destination);

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

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

// Sljedeća dva parametra imaju više informacijsku ulogu, tj. to je ono što će korisnik vidjeti u informacijama za obradu
Parametri registracije.Insert("Version", "1.0");
Parametri registracije.Insert("Informacije", "Analiza negativnih stanja po registrima");

// Napravite tablicu naredbi (pogledajte detalje u nastavku)
Tablica naredbi = GetCommandTable();

// Dodaj naredbu u tablicu
Dodaj naredbu(Tablica naredbi, "Analiza minusa po očevidnicima", "Analiza minusa po očevidnicima", "Otvorni obrazac");

// Spremite tablicu naredbi u parametre registracije obrade
Parametri registracije.Insert("Naredbe", Tablica naredbi);

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

Funkcija GetTableCommand()

// Kreirajte praznu tablicu naredbi i stupce u njoj
Naredbe = Nova tablica vrijednosti;

// Kako će opis ispisanog obrasca izgledati za korisnika
Commands.Columns.Add("View", NewTypeDescription("Red"));

// Naziv našeg izgleda, kako bismo mogli razlikovati pozvanu naredbu u obradi ispisa
Commands.Columns.Add("Identifier", New TypeDescription("String"));

// Ovim se postavlja kako se naredba za obradu treba pozvati
// Moguće opcije:
// - OpeningForm - u ovom slučaju stupac identifikatora treba označavati naziv obrasca koji će sustav otvoriti
// - CallClientMethod - poziva proceduru izvoza klijenta iz modula obrasca obrade
// - Call ServerMethod - poziva poslužiteljsku eksportnu proceduru iz modula objekta obrade
Commands.Columns.Add("Upotreba", New TypeDescription("Red"));

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

// Za ispisani obrazac, mora sadržavati niz PrintMXL
Commands.Columns.Add("Modifikator", New TypeDescription("Red"));
Tim za povratak;
EndFunction

Procedura AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
// Dodavanje naredbe u tablicu naredbi prema proslijeđenom opisu.
// Parametri i njihove vrijednosti mogu se vidjeti u funkciji GetCommandTable
NovaNaredba = Tablica naredbi.Dodaj();
NewCommand.View = Pogled;
NewCommand.Identifier = Identifikator;
NewCommand.Use = Koristi;
NewCommand.ShowAlert = Prikaži upozorenje;
NewCommand.Modifier = Modifikator;

Idite na gornji izbornik Servis->->.

Pojavljuje se obrazac popisa direktorija vanjske obrade. U gornji izbornik pritisni gumb Dodati.

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

Nakon toga se zatvara prozor za kreiranje stavke imenika, a vi se vraćate 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 da je postavljena zastavica za korištenje dodatnih izvješća i obrada, slijedite 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:

U ovom ćemo članku napisati obradu za popunjavanje tabličnog odjeljka u 1C 8.3 za tipičnu konfiguraciju 1C:ERP 2.1. Pretpostavimo da je cilj zadatka postaviti ručni popust od 5% za sve stavke nomenklature ovog dokumenta. Primjer iz članka možete preuzeti s ili drugu sličnu obradu s.

Ova uputa dizajniran za upravljane obrasce (8.2 i 8.3). Za obične obrasce (8.1, 8.2) možete koristiti .

Stvorite i spremite novu obradu na svoje računalo. Prvo morate napraviti neke korake registracije.

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

U okviru ovog članka nećemo se detaljno baviti registracijom vanjske obrade i tiskani obrasci u 1C. Sve ove informacije nalaze se u našim drugim člancima.

Popunjavanje tabelarnog dijela dokumenta

Kreirajmo nova uniforma obrada.

Sada moramo dodati novu naredbu u kreirani obrazac. Pretpostavlja se da će automatski mijenjati podatke u tabelarnom dijelu jednog i više dokumenata (njihovih popisnih obrazaca) istovremeno, bilježeći ih naknadno.

U našem primjeru će se obrađivati ​​već postojeći tablični dio “Proizvodi”. Ručno će se odrediti popust od 5% za svaku liniju. Također, izračunat ćemo sam iznos ovog popusta, jednak količini robe u liniji pomnoženoj s 0,05.

&Na poslužiteljskoj proceduri Izvrši naredbu (naredba, Objekti dodjele) Za svaku narudžbu korisnika iz Objekta dodjele Ciklus Customer OrderObject = Narudžba kupca. GetObject() ; Za svaku TK liniju iz Customer OrderObject-a. Ciklus proizvoda LineTZ. ManualDiscountPercent = 5; LineTZ. Iznos ručnog popusta = TK linija. Iznos * 0 . 05 ; Kraj ciklusa ; CustomerOrderObject. Write() ; Kraj ciklusa ; Kraj postupka

Registracija vanjske obrade

Pokrenite 1C u načinu rada "Enterprise" i otvorite direktorij "Dodatna izvješća i obrada". Pronađimo ga kroz izbornik "Sve funkcije".

Stvoriti novi element u direktoriju koji se otvori i kliknite istoimeni gumb, učitajte svoju obradu iz datoteke. Postavimo ga istovremeno i na obrazac popisa i na obrazac same kartice dokumenta.

Sada će se u obrascu popisa dokumenata “Narudžba kupca” pojaviti gumb “Popunjavanje...” koji će vam omogućiti promjenu ručnih popusta na proizvode za nekoliko dokumenata odjednom.

Ovaj će gumb također biti dostupan na samoj kartici dokumenta.

U ovom ćemo članku razmotriti upute korak po korak za stvaranje vanjske obrade u 1C 8.3 u načinu upravljane aplikacije; u skladu s tim koristit ćemo upravljane obrasce. I što je najvažnije, naučit ćemo kako ga povezati s mehanizmom "vanjske obrade" 1C konfiguracija izgrađenih na biblioteci standardnih podsustava verzije 2.0 i novije.

Zadatak će biti sljedeći: izraditi najjednostavniju vanjsku obradu koja će izvršiti grupnu akciju na imeniku „Artikal“, odnosno postaviti odabrani postotak stope PDV-a za navedenu grupu artikala.

Da bismo to učinili, odmah ćemo izvršiti potrebne postavke u programu (razmatramo konfiguraciju 1C 8.3: "Enterprise Accounting 3.0" na upravljanim obrascima).

Označavanjem ovog okvira dobivamo mogućnost korištenja vanjske obrade.

Stvaranje nove vanjske obrade u 1C 8.3 pomoću primjera

Sada idemo na konfigurator. U izborniku "Datoteka" odaberite "Novo...". Otvorit će se prozor za odabir vrste datoteke za izradu. Odaberite "Vanjska obrada":

Otvorit će se novi prozor za vanjsku obradu. Dajmo joj odmah ime. Bit će ponuđeno prilikom spremanja obrade na disk:

Dodajmo novi obrazac za kontroliranu obradu. Navodimo da je ovo oblik obrade i da je glavni:

Na obrascu ćemo imati dva detalja:

  • Grupa Nomenklatura – poveznica na imenik „Nomenklatura”;
  • SelectVATRate – poveznica na prijenos stope PDV-a.

Pojedinosti stvaramo u stupcu "Svojstva" u gornjem desnom prozoru. Povucite ih mišem u gornji lijevi prozor. Novi detalji trebali bi se odmah pojaviti na donjem obrascu.

Redoslijed detalja može se promijeniti pomoću strelica "gore" - "dolje":

Besplatno nabavite 267 video lekcija o 1C:

Sve što preostaje je dodati gumb "Instaliraj". U upravljanim obrascima ne možete samo dodati gumb u obrazac. Čak i ako ga dodate u strukturu elemenata forme, neće biti vidljiv na samom obrascu. Gumb mora biti povezan s naredbom koju će izvršiti. Idite na karticu "Naredbe" i dodajte naredbu "Postavi stopu PDV-a". U svojstvima naredbe kreirajte radnju. Odaberite rukovatelja naredbama “Na klijentu”. Formi se također može dodati naredba jednostavnim povlačenjem u odjeljak s elementima forme.

U modulu forme kreirat će se istoimena procedura. U njemu ćemo pozvati proceduru na poslužitelju:

&NaKlijentu

Postupak Postavljanje stope PDV-a (naredba)

PostaviVATRateOnServer();

Kraj postupka

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

&Na poslužitelju

Procedura SetVATRateOnServer()

Zahtjev = Novi zahtjev;
Zahtjev.Tekst =
„IZABIRAJ
| Nomenklatura.Link
|OD
| Imenik.Nomenklatura AS Nomenklatura
|GDJE
| Nomenklatura. Veza U HIJERARHIJI (&Grupa nomenklature)
| A NE Nomenklatura.OznakaBrisanje
| A NE nomenklatura. Ovo je grupa”;

Request.SetParameter("Grupa stavki", Grupa stavki);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

Dok SelectRecordDet.Next() Petlja

Pokušaj
SprNomObject.Write();
Iznimka
Report("Greška pri pisanju objekta """ + SprNomObject + """!
|» + OpisPogreška());
EndAttempt;

EndCycle;

Kraj postupka

Vraćamo se na karticu "Obrazac", dodajemo gumb u obrazac i povezujemo ga s naredbom:

Kao takva, naša obrada je spremna za upotrebu. Da biste ga pozvali, u načinu rada "1C Enterprise" morate otići na izbornik "Datoteka" - "Otvori" i odabrati stvorenu datoteku.

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

Tome služi odjeljak "Dodatna izvješća i obrada".

Ali da bismo tu dodali našu obradu, prvo joj moramo dati opis i reći programu njena svojstva.

Opis funkcije "Informacije o vanjskoj obradi"

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

Funkcija InformationOnExternalProcessing() Izvoz

DataForReg = Nova struktura();
DataForReg.Insert("Ime", "Postavka stope PDV-a");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("Verzija", "ver.: 1.001");
DataForReg.Insert("Informacija", "Obrada za postavljanje stope PDV-a u imeniku Nomenklatura");
DataForReg.Insert("Prikaz", "Dodatna obrada");

CommandTable = NovaValueTable;
TabZnCommands.Columns.Add("Identifikator");
TabZnCommands.Columns.Add("Upotreba");
TabZnCommands.Columns.Add("View");

NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "Otvorena obrada";
DataForReg.Insert("Naredbe", TabZnNaredbe);

Vrati DataForReg;

EndFunction

Kako bismo bolje razumjeli koja polja strukture podataka o registraciji treba koristiti, pogledajmo pojedinosti direktorija "Dodatna izvješća i obrada":

Kao što vidite, sve je vrlo jednostavno. Samo jedan atribut ne odgovara: “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 možete ne opisati, jednostavno stvoriti prazno, a zatim koristiti program za ispravljanje pogrešaka. Ako pratite module prilikom registracije obrade, odmah postaje jasno koja polja su potrebna, a koja nisu.

Povezivanje vanjske obrade u 1C 8.3