1c vanjska obrada prema rasporedu. Univerzalni regulatorni zadatak. Više o konfiguracijskim proširenjima

Danas vam želimo govoriti o korištenju dodatnih izvješća i obrade, a posebno proširenja konfiguracije u servisnom modelu. Tehnologije ne miruju, servisiranje 1C baza podataka u oblaku postaje sve atraktivnija usluga. Što trebate znati kako bi se funkcionalnosti koje su potrebne vašoj tvrtki implementirale u iznajmljenu bazu podataka te kako taj proces izgleda sa strane pružatelja usluga – o tome možete saznati ispod.

Što su vanjska izvješća i obrada

1C tretmani su različiti, ali u svakom slučaju proširuju funkcionalnost konfiguracije i omogućuju vam brz pristup informacijama pohranjenim u bazi podataka bez mijenjanja konfiguracije i bez uklanjanja podrške. Mogu se ugraditi izravno u konfiguraciju, dodati kao proširenje konfiguracije ili biti vanjske datoteke.

Na temelju funkcionalnosti, obrade se dijele na one koje mogu mijenjati podatke i one koje samo analiziraju informacije i prikazuju rezultat u jednostavnom obliku (izvješća). Kako se standardni izgledi ispisa dokumenata ne bi mijenjali, razvijaju se vanjski ispisni obrasci. Također, vanjska obrada se može izvršiti prema zadanom rasporedu na poslužitelju aplikacija 1C - to su rutinski zadaci.

U Buttonu je razvijeno nekoliko desetaka rješenja za obradu koja našim računovođama omogućuju korištenje "praktične magije". Na primjer, za analizu ispravnosti računovodstva u Buttonu koristi se vanjsko izvješće “Automatska revizija baze podataka”. Lako čitljive tablice daju analizu 120 kriterija stanja i prometa, usklađenost podataka iz poreznih prijava i računovodstvenih podataka, analizu dugotrajne imovine itd.

Primjer vanjskog tiskanog obrasca „Ugovor o zajmu” prema obrascu koji su razvili naši odvjetnici. Postoje slučajevi kada poduzetnik uzima beskamatni kredit od svoje tvrtke kao fizička osoba ili obrnuto, prenosi vlastita sredstva na tvrtku, tada je moguće odmah isprintati ugovor.

Otvara se obrazac za ispunjavanje potrebnih podataka:

I prikazuje se ispisani obrazac ugovora:

Koristimo planiranu obradu (rutinski zadaci), na primjer, za ispravljanje izjava. Buttons su postavili integracije s velikim bankama i posebni roboti učitavaju izvode izravno u 1C. Zahvaljujući tehnologiji strojnog učenja, postotak pogrešaka tijekom pražnjenja smanjen je na 3%. Ali, kao i uvijek, postoje iznimke, na primjer, klijenti koji koriste shemu agencije za prodaju robe; u ovom slučaju pravila za provođenje bankovnog izvoda su individualna. Kako se robot ne bi reprogramirao za određeni slučaj, prije pojave konfiguracijskih proširenja, korišten je rutinski zadatak za ispravljanje izjave robota svakih 10 minuta.

Što su proširenja konfiguracije

Proširenje je mini konfiguracija koja nasljeđuje objekte iz glavne konfiguracije baze podataka i sadrži kod s dodacima ili ispravcima objekata i modula. U tom slučaju glavna konfiguracija ostaje podržana; nema potrebe za omogućavanjem uređivanja, što uvelike pojednostavljuje postupak ažuriranja.

Mehanizam pretpostavlja tri vrste upotrebe, koje su, zapravo, naznačene u polju "Svrha" prilikom izrade proširenja:

Središnja komponenta tehnologije je Voditelj servisa, pohranjuje sve podatke o pretplatnicima, korisnicima, aplikacijama, informacijskim bazama i vezama među njima, a uz njegovu pomoć upravlja se eksternom obradom i konfiguracijskim proširenjima.

Sve datoteke s obradom učitavaju se u poseban direktorij upravitelja usluga. Ali prije nego što prenesete datoteku u imenik, drugim riječima, "objavite je na servisu", ona mora biti pripremljena na poseban način.

Priprema eksternih izvješća i obrada za objavu u servisnom modelu

Dodatno izvješće ili obrada kreira se u konfiguratoru 1C: Enterprise 8 kao standardna vanjska izvješća i obrada i sprema se u datoteku s ekstenzijom - .epf (za dodatnu obradu) ili .erf (za dodatna izvješća).

Objektni modul mora imati postupke i funkcije za definiranje parametara registracije.

Imajte na umu da je važan parametar "Verzija". Ako ste izvršili izmjene u obradi koja je prethodno prenesena u direktorij upravitelja usluge, svakako promijenite broj verzije, inače će upravitelj usluge odbiti učitati datoteku. Prilikom izrade izvješća ili obrade morate uzeti u obzir da korisnici rade u modelu usluge putem web klijenta (dobar članak na blogu 1C). Ako obrada sadrži obrasce, oni moraju raditi u web klijentu pod svim web preglednicima koje podržava tehnološka platforma 1C: Enterprise 8.

Prema standardima usluge 1cfresh.com, dodatni izvještaj ili obrada moraju biti potpuno funkcionalni kada se izvode u sigurnom načinu rada, odnosno raditi bez pristupa objektima izvan konfiguracije.

Dodatno izvješće ili obrada moraju biti pripremljeni za učitavanje u uslugu kao komplet za isporuku. Komplet za isporuku je arhiva (zip datoteka) koja sadrži:

  • dodatno izvješće ili datoteka za obradu;
  • xml manifest datoteku koja sadrži dodatne metainformacije potrebne upravitelju servisa za objavu dodatnog izvješća ili njegovu obradu u servisu.
Priprema se vrši u lokalno postavljenoj informacijskoj bazi konfiguracije za koju je namijenjeno dodatno izvješće ili obrada. Koristimo posebnog pomoćnika za kreiranje kompleta za isporuku, vanjsku obradu Izrada dodatnih izvješća i Obrada publikacija u Servisnom modelu.epf. Više možete pročitati u dokumentaciji o Tehnologiji izdavanja 1C Fresh rješenja.

Instalacija dodatnih izvješća i obrada u servisnom modelu

Posebnost tehnologije 1C Fresh je da se vanjsko izvješće ili obrada ne mogu učitati izravno u područje podataka. Dodavanje može izvršiti samo administrator usluge putem upravitelja usluge. Nakon što se pripremi zip arhiva s datotekom za obradu, potrebno ju je učitati u imenik upravitelja usluga i instalirati za određenog pretplatnika usluge.

Pretplatnik usluge je skupina korisnika ujedinjenih prema nekom principu. Sukladno tome, informacijske baze dostupne određenoj skupini korisnika nazivaju se pretplatničkim aplikacijama.

Aplikacije mogu imati različite konfiguracije 1C (Računovodstvo poduzeća, Upravljanje plaćama i osobljem, Upravljanje našom tvrtkom itd.), za koje ju je moguće koristiti u servisnom modelu. Dodatna izvješća ili obrade mogu se instalirati samo u pretplatničkim aplikacijama koje su navedene prilikom preuzimanja datoteke.

Ovako izgleda obrazac svojstava za dodatno izvješće s verzijama. Pomoću hiperveze "Instaliraj/Ukloni" dolazimo do popisa aplikacija i odabiremo potrebne baze podataka.

Nakon učitavanja obrade i odabira aplikacije, voditelj usluge kontaktira adresu aplikacije i daje naredbu za instaliranje iste u informacijsku bazu.

Pokrećemo obradu prema rasporedu

Kada se radi s velikim brojem računovodstvenih baza podataka, neke obrade moraju se izvoditi povremeno. Na primjer, jednom mjesečno ili jednom svakih nekoliko minuta. Također je važno automatizirati ručne i rutinske korisničke operacije. Da bismo to učinili, aktivno koristimo rutinske zadatke.

Obrada koja će se odvijati prema rasporedu nema obrazac. Sva logika je zapisana u objektnom modulu i izgleda ovako.



Prilikom pripreme kompleta za isporuku postavljamo raspored. Sada će se naša obrada obavljati svaki sat.

Više o konfiguracijskim proširenjima

Paralelno s vanjskim izvješćima i obradama koje je potrebno pripremiti i administrirati „na starinski način“, počeli smo aktivno koristiti mehanizam proširenja konfiguracije. Počevši od platforme 1C Enterprise 8.3.10, ovaj mehanizam nam je prilično olakšao život i omogućio pojednostavljenje prilagodbe konfiguracija značajkama Buttona.

Na primjer, gore smo pisali o rutinskim operacijama ispravljanja dokumenata od strane robota koji su pokrenuti svakih 10 minuta. Sada možete koristiti proširenje za redefiniranje rada modula. Tako možemo odmah izvršiti potrebne radnje prilikom snimanja ili knjiženja dokumenta. Ovo je puno optimalnije, jer red čekanja zadataka u bazi podataka nije zatrpan radnjama koje se izvode svakih 10 minuta, a učinkovitije je jer se promjene vrše odmah.

Vrlo je jednostavno pripremiti novi nastavak. Pogledajmo proces stvaranja proširenja na konkretnim primjerima.
Na temelju radnog iskustva, vodeći u zahtjevima za prilagodbu je tiskani obrazac TORG-12. Na primjer, moramo napraviti proširenje kako bismo mogli ispisati dostavnicu u stranoj valuti (prema zadanim postavkama može se generirati samo u rubljima).
Otvorite Izbornik → Konfiguracija → Proširenja konfiguracije
Izrađujemo novu ekstenziju sa svrhom “Prilagodba”.

Proširenje izgleda kao poznato konfiguracijsko stablo, ali još bez objekata. Prije svega, dodajmo novi izgled TORG-12 u koji smo umetnuli stupce s iznosima u valuti.

Budući da se faktura ispisuje iz dokumenta “Prodaja roba i usluga”, ovaj ćemo dokument dodati u našu ekstenziju iz glavne konfiguracije i unijeti potrebne izmjene u modul upravitelja. Da biste to učinili, odaberite "dodaj proširenju" u kontekstnom izborniku implementacije.

Sada možete modificirati modul upravitelja implementacije. Moramo dodati novi obrazac na popis obrazaca za ispis i ispuniti iznose u valutama.

Za promjenu standardnih procedura koristimo napomenu &After; također trebamo nekoliko vlastitih funkcija i procedure.

Pogledajmo pobliže primjedbe. U proširenjima možete koristiti: &prije, &poslije, &umjesto (vrlo pažljivo). Princip rada je jednostavan: želimo da se prvi izvrše naši algoritmi iz ekstenzije, stavimo napomenu &Before i u zagradi navedemo naziv procedure iz standardne konfiguracije. Ako se prvo obrađuje standardni modul, a zatim naš, koristimo &Nakon.

Bilješke &prije i &poslije ne mogu se koristiti za funkcije. Stoga, ako trebamo promijeniti algoritam funkcije iz glavne konfiguracije, koristimo napomenu & Umjesto toga.

Napomenu &Instead trebalo bi koristiti što je rjeđe moguće, budući da u potpunosti zamjenjuje izvršenje procedure i funkcije iz glavne konfiguracije procedurom/funkcijom proširenja. S ovom metodom presretanja, procedura/funkcija iz glavne konfiguracije prestat će se uopće izvršavati dok je proširenje instalirano, čak ni ažuriranje verzija neće pomoći.

Zaključak

Postoji mnogo različitih mišljenja o korištenju ekstenzija i vanjskih izvješća/obrade. Na temelju našeg iskustva, oboje smo za proširenje. Ovo je modernija i prilagodljivija tehnologija, ima mnogo više mogućnosti, a njihovo objavljivanje je puno lakše. U ekstenziju se stavlja samo potreban dio koda; također nema potrebe dodatno pisati procedure i funkcije za određivanje parametara registracije, praćenje verzija i izradu kompleta za isporuku.

Možete koristiti više proširenja za jedno podatkovno područje.
Za specifičnosti rada 1C Fresh u načinu odvajanja podataka (jedna konfiguracija, mnogo neovisnih područja), metoda proširenja je izvrsno rješenje.

2017-12-19T18:29:06+00:00

Za ažuriranje nije obavezno biti otvoren cijelo vrijeme ili se izvoditi kao usluga kako bi se planirane operacije mogle pokrenuti.

Zakazano pokretanje funkcionira putem standardnog mehanizma sustava Windows koji se zove "Planer zadataka".

A kada korisnik postavi postavke rasporeda...

Program za ažuriranje automatski stvara potrebne zadatke u rasporedu:

Što ne smijete zaboraviti

Izbor korisnika

Ne smijemo zaboraviti da korisnik kojeg odredimo za pokretanje planiranih operacija...

Mora imati sistemska prava za "Prijavu kao skupni posao".

Kako provjeriti ima li korisnik potrebna prava?

Najlakša opcija je da desnom tipkom miša kliknete kreirani zadatak u planeru i odaberete "Pokreni":

Ako je nakon završetka zadatka rezultat njegovog pokretanja uspješan...

Ako to nije slučaj, tada kontaktiramo administratora sustava da u sigurnosnoj politici označi (naš korisnik ili njegova grupa) u stavci " Prijava kao skupni posao", a također isključeno iz stavka " Odbij prijavu kao skupni posao".

Mora imati lozinku koja nije prazna. Ovo je sigurnosni zahtjev za Windows. Ako ste suočeni s ovim određenim ograničenjem, tada bi najispravnije rješenje bilo:

  • ili dodijelite lozinku trenutnom korisniku pod kojim ćete pokrenuti ažuriranje prema rasporedu
  • ili kreirajte zasebnog korisnika u sustavu s lozinkom, koji će biti registriran u rasporedu ažuriranja

Pa, najjednostavnije (ali netočno sa sigurnosne točke gledišta) rješenje za ovo ograničenje bilo bi onemogućiti opciju "Dopusti korištenje praznih lozinki samo tijekom prijave na konzolu" u politici sigurnosti lokalnog računala.

Odabir baza

Također, ne smijemo zaboraviti da u planiranim operacijama sudjeluju samo one baze podataka koje su odabrane na popisu baza podataka koje sudjeluju u rasporedu:

U ovom slučaju nije važno nalazi li se kvačica pored baze na općem popisu:

Ovi potvrdni okviri (na općem popisu) namijenjeni su samo za ručno pokretanje operacija i ni na koji način ne utječu na planirano pokretanje.

Redoslijed pokretanja

I na kraju, još jedna nevidljiva točka. Prilikom pokretanja planiranog zadatka, program za ažuriranje prvo provjerava izvodi li se neki drugi planirani zadatak. A ako se izvrši, prvo će pričekati njegov završetak pa tek onda izvršiti novi.

To znači da ako npr. trebamo konfigurirati arhiviranje da se odvija u 22-00, a baze podataka ažurirati odmah po njegovom završetku, tada je dovoljno odrediti vrijeme početka arhiviranja u 22-00, a za ažuriranje , na primjer, 22-01.

Što ako trebate složeniji raspored?

Što ako nam ne treba samo redovito lansiranje u određeno vrijeme određenim danima? Što ako želimo, recimo, namjestiti da počinje u 5 sati svakih pola sata ili nešto slično?

U ovom slučaju moramo iskoristiti svu moć raspoređivača zadataka.

Prvo postavljamo raspored putem programa za ažuriranje, naznačujući da će određeni raspored biti konfiguriran u rasporedu:

I tek tada otvorite svojstva zadataka koje je kreirao program za ažuriranje u Windows Scheduler-u:

A na odgovarajućim karticama konfiguriramo sve što naše srce želi:

Kako isključiti bazu podataka iz nekih planiranih operacija

Pretpostavimo da imamo raspored konfiguriran za ažuriranje i arhiviranje:

Ali u isto vrijeme želimo da jedna baza podataka sudjeluje u planiranom arhiviranju, ali ne i da sudjeluje u planiranom ažuriranju.

Kako to postići - uostalom, imamo isti popis baza koje sudjeluju u rasporedu:

I to je vrlo jednostavno za napraviti.

Idite na svojstva baze podataka koju želite isključiti iz zakazanih ažuriranja i na samom dnu prozora pronađite stavku "Isključi neke operacije...":

Kliknite na njega i isključite ažuriranje ove baze podataka iz planiranog pokretanja:

Trebalo bi izgledati ovako:

Je li moguće pokrenuti prema rasporedu s drugim parametrima?

Želio bih skrenuti posebnu pozornost na činjenicu da je zadatak u rasporedu zadataka redovito pokretanje programa za ažuriranje s određenim parametrima naredbenog retka:

A program za ažuriranje ima mnogo parametara za pokretanje putem naredbenog retka.

Koristeći ih, automatizaciju možete prilagoditi mnogo suptilnije i prema svojim potrebama. Samo nemojte mijenjati parametre naredbenog retka u već stvorenom zadatku programa za ažuriranje - inače će ih svejedno vratiti na početne vrijednosti prilikom ažuriranja zakazanih postavki pokretanja. Umjesto toga kopirajte stvoreni zadatak u planer (tako da ima svoje ime) i promijenite ga.

O svim prekidačima naredbenog retka programa za ažuriranje.

Kako saznati je li program za ažuriranje pokrenut prema rasporedu

Događa se da se čini da je raspored postavljen, ali nešto pođe po zlu.

I nismo uopće sigurni je li ažuriranje pokrenuto te noći.

Prije svega, želim vam skrenuti pozornost na područje u glavnom prozoru programa za ažuriranje gdje se prikazuje status zakazanih operacija:

Ovdje vidimo prije koliko dana je pokrenut odgovarajući. planirana operacija; koliko je baza podataka uključeno i je li bilo grešaka. Štoviše, kliknemo li lijevom tipkom miša na ove poveznice, otvorit će se odgovarajuće izvješće.

Također možemo otići na potpuni zapisnik izvješća ažuriranja...

I vidjeti jesu li zadaci izvršeni.

Ali najpouzdaniji način da saznate je li se program pokrenuo i shvatite razloge njegovog neuspjeha u pokretanju ili iznenadnog prekida je omogućiti zapis svih zadataka u Windows Scheduler-u. Prema zadanim postavkama onemogućen je i preporučujem da ga uključite kako biste uvijek mogli otkriti problematične situacije.

Da biste omogućili zapisnik Windows Scheduler-a, idite na dijaloški okvir "Pokreni prema rasporedu" i kliknite gumb "Otvori Windows Scheduler":

To se također može učiniti s upravljačke ploče sustava Windows (odjeljak za administraciju).

Ovdje nalazimo i kliknemo stavku "Omogući dnevnik svih zadataka":

Spreman! Sada možemo vidjeti povijest bilo kojeg zadatka u rasporedu.

Na primjer, istaknimo jedan od zadataka ažuriranja:

Kako postaviti sustav nadzora u oblaku za pokretanje zadataka ažuriranja

Sada ću vam reći o načinu da se osigurate od situacije - "oh, ispalo je da naše baze podataka nisu arhivirane (ažurirane, testirane...) cijeli tjedan."

Ova situacija je vrlo moguća ako smo konfigurirali arhiviranje da počne prema rasporedu, a zatim:

  • drugi administrator poslužitelja oduzeo je našem računu prava za pokretanje arhiviranja iz planera i u ovom slučaju ažurirač nam neće moći čak ni poslati obavijest e-poštom, jer za to treba pokrenuti, ali nema prava za to tako...
  • ili su se dogodile neke druge greške i nema interneta na poslužitelju da bi nam updater poslao poruku o pogrešci...
  • ili smo mi sami greškom isključili zakazano arhiviranje u ažuriranju...
  • nikad ne znaš što se može dogoditi...

Osim postavljanja obavijesti o pogreškama putem e-pošte, trebate samo postaviti sustav u oblaku za praćenje pokretanja našeg ažuriranja. Što je to i kako djeluje?

Ovo je, po mom mišljenju, apsolutno briljantna stvar koja se zove healthchecks.io. Ovi dečki također imaju plaćene planove, ali njihov besplatni plan nam odgovara.

Ideja je sljedeća. Registriramo se na njihovoj web stranici i na svom osobnom računu imamo priliku reći:

  • Hej, HealthChecks, daj mi jedinstveni Url (adresu internetskog izvora).
  • HealthChecks, ako nitko ne pokuca (zatraži) na ovu adresu u tom i tom periodu, obavijesti me o tome na taj i taj mail.

Zatim ćemo navesti ovu adresu u ažuriranju i on će je zatražiti, na primjer, na kraju svakog zakazanog arhiviranja. A ako se u nekom trenutku iznenada prestane pokretati ili se sruši, usluga HealthChecks će nas o tome obavijestiti. Čak i ako naš server izgori, bit će ukraden i rastavljen na sitne komadiće..., o tome ćemo prvi saznati iz HealthChecksa

Mislim da je ovo briljantna ideja. Ako ne mislite tako, izgleda da niste u potpunosti shvatili smisao ove stvari - molim vas da još jednom pročitate moj nezgrapni tekst.

Posebno ću spomenuti da opisani sustav nadzora ne poništava, već nadopunjuje obavijesti e-poštom o pogreškama, koje je također potrebno konfigurirati u updateru za potpunu kontrolu nad situacijom.

Najjednostavniji scenarij za postavljanje HealthChecks s programom za ažuriranje

Postavimo dnevno arhiviranje na poslužitelju pod nazivom DataServer koja pripada poduzeću DOO "Romashka":

I želimo da nas HealthChecks obavijesti ako ažuriranje iznenada prestane raditi radi arhiviranja ili takva pokretanja završe neuobičajeno.

3. Registrirajte se s email adresom na koju želite primati obavijesti.

3. Idite na odjeljak "Čekovi" i kliknite veliki zeleni gumb "Dodaj ček".

5. Promijenimo naziv ove provjere u OOO "Romashka" (DataServer, arhiviranje). To je potrebno učiniti kako bismo razumjeli na što se točno odnosi ova provjera (arhiviranje na poslužitelju pod nazivom DataServer u tvrtki Romashka LLC):

6. Navedite period provjere (arhiviranje treba pokrenuti jednom dnevno, sam proces arhiviranja može trajati do 12 sati):

Drugi klizač (grace) je upravo dopušteni prekoračenje roka, odnosno vremena u kojem može trajati proces arhiviranja.

Dodatno ograničenje od 12 sati (grace) sam naveo namjerno, jer updater postavlja zahtjev sustavu za nadzor na kraju svog rada, a vrijeme završetka može varirati ovisno o različitim uvjetima.

Na primjer, ako zakazamo početak ažuriranja u 22:00, danas to ažuriranje može završiti u 23:00, a sutra (mnoga su nova ažuriranja objavljena) trajat će do 4 ujutro.

Otuda dodatna margina od 12 sati kako bi se izbjegli lažni pozitivni rezultati HealthChecks-a.

Rezultat postavljanja razdoblja bit će ovakav:

7. Ali kao što vidite, polje Zadnji ping je prazno (Nikad). Ažurirat će se jer ovoj adresi bude pristupao program za ažuriranje tijekom arhiviranja. A ako nema zahtjeva dulje od 1 dana i 12 sati, HealthChecks će oglasiti alarm i obavijestiti nas e-poštom.

Pitanje: Problem s pristupom dodatnoj obradi u Zup3


napravio dodatnu obradu i smjestio je u odjeljak plaća. Korisnik s pravima višeg kadrovskog službenika ne može pokrenuti računovođu, piše "nedovoljna prava pristupa". Kako postaviti dozvole za pokretanje dodatne obrade?

Upravljanje plaćama i osobljem, izdanje 3.0 (3.0.24.115) ()
Autorska prava © LLC "1C", 2007-2014. Sva prava pridržana
()

Odgovor:

Pitanje: Pokretanje dodatne obrade prema rasporedu


Pozdrav svima. Tek učim programirati, pa me nemojte previše grditi što postavljam pogrešna pitanja. 1C Retail 2.2.5.27 Stvorena je vanjska obrada koja, kada kliknete gumb, učitava podatke iz datoteke u registar informacija. Ručno sve radi dobro, ali sada je zadatak osigurati da ova obrada počne prema rasporedu i bez otvaranja obrasca. Odnosno u pozadini tako da radi.
Obrada se povezuje u obrascu "Dodatna izvješća i obrade".

Kod u modulu obrasca

Funkcija InformationOnExternalProcessing() ExportRegistrationParameters = Nova struktura; Parametri registracije.Insert("View", "AdditionalProcessing"); Parametri registracije.Insert("Naziv", "Stanja učitavanja (PCService(C))"); Parametri registracije.Insert("Version", "1.0"); Parametri registracije.Insert("SafeMode", False); Parametri registracije.Insert("Informacije", "Učitavanje preostalih"); Parametri registracije.Insert("BSPVersion", "2.3.2.33"); Tablica naredbi = GetCommandTable(); AddCommand(CommandTable, "Učitavanje stanja (PCService(C))", "1", "OpenForm", True,""); AddCommand(CommandTable, "Bilance opterećenja (PCService(C))", "2", "CallServerMethod", True,""); TeamId = "2"; Parametri registracije.Insert("Naredbe", Tablica naredbi); ReturnRegistrationParameters; Funkcija EndFunction Naredbe GetTableCommands() = NewValueTable; Commands.Columns.Add("View", NewTypeDescription("Red")); Commands.Columns.Add("Identifier", New TypeDescription("String")); Commands.Columns.Add("Upotreba", New TypeDescription("Red")); Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean")); Commands.Columns.Add("Modifikator", New TypeDescription("Red")); Tim za povratak; EndFunction postupak AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "") NewCommand = CommandTable.Add(); NewCommand.View = Pogled; NewCommand.Identifier = Identifikator; NewCommand.Use = Koristi; NewCommand.ShowAlert = Prikaži upozorenje; NewCommand.Modifier = Modifikator; Kraj postupka &Na poslužitelju Procedura Izvrši naredbu (ID naredbe, objekti dodjele) Izvoz Kraj postupka

Kada kliknete na gumb za izvršavanje s opcijom pokretanja "Otvori formu", forma se otvara i program se odmah izvršava (izvršava se odmah jer je na formi u događajima "When CreatedOnServer" naznačeno da je glavni kod program će se izvršiti)
Kada kliknete na gumb Izvrši s opcijom pokretanja "Call ServerMethod", to ne proizvodi nikakve pogreške, ali nema rezultata.
Što radim krivo??

Odgovor:

Sve sam popušio. Ovdje sam morao kopirati kod za koji sam želio da se izvrši bez otvaranja obrasca

Pitanje: Retail 2.2 pokretanje dodatne obrade prema rasporedu


Lijepi pozdrav. Retail 2.2, omogućena je dodatna obrada i postavljeno zakazano izvršenje. Promatram izvršenje kroz - Podršku i održavanje - rutinske zadatke, moj zadatak se ili pokreće ili prestaje izvoditi prema rasporedu, neko vrijeme radi točno prema rasporedu i prestaje se izvoditi sam od sebe. Nije stvar u samoj obradi jer ona ne daje grešku, nego se zadatak jednostavno ne pokreće. Zatim počinje samostalno raditi normalno. Što može utjecati na početak rutinskog zadatka?
Pokušao sam postaviti različite rasporede, ali nije išlo.

Odgovor:

Problem je riješen ponovnom instalacijom platforme na svim računalima

Pitanje: Dodatna obrada


Dobar dan svima.
Upravljanje našom tvrtkom, verzija 1.6 (1.6.12.4)

Recite mi, je li moguće dodati dodatnu obradu podsustavu bez dodirivanja konfiguratora?
Oni. Trebam da se obrada poziva ne kroz Dodatnu obradu, već kao vanjsko izvješće, odmah na listi podsustava.

Odgovor:

Izradite izvješće u proširenju, dodajte željeni (postojeći) podsustav u proširenje, napravite poveznicu na izrađeno izvješće u “proširenom” podsustavu.

Pitanje: Korištenje web servisa u dodatnoj obradi pomoću BSP-a


Dobar dan
U svježe je potrebno ugraditi dodatnu obradu koja će pristupiti web servisu druge baze podataka. Obrada je, naravno, u sigurnom načinu rada, međutim, “dopušteno je koristiti proširenje sigurnog načina biblioteke standardnih podsustava (mogućnost rada s datotekama, internetskim resursima itd.) putem specijaliziranog softverskog sučelja uz registraciju dopuštenja potrebna za dodatno izvješćivanje/obradu.” Međutim, u trenutnoj verziji BSP-a ne mogu pronaći kako to konfigurirati. pomoć, molim Svježa verzija baze podataka: Enterprise Accounting, izdanje 3 .0 (3 .0 .59 .45) BSP 2 .4 .5 .31

Odgovor: oO

Pitanje: ZUP se ruši prilikom pokretanja određene obrade, što da radim?


Postoji dodatak koji ažurira dokumente o obračunu unesene temeljem otkaza. Kada se ova obrada pokrene, program se glupo zatvori bez ikakvih poruka. Ne vidim ništa u alatu za ispravljanje pogrešaka. Na dan testa za koji je napravljen 1 dokument, on prolazi. Što još trebam učiniti? Izvršio sam testiranje i činilo se da nema grešaka.

Odgovor: super, ali zašto je bio potreban ciklus? Ako imate bilo kakvih unosa, napišite, ne znam, u dnevnik ili nešto drugo, ne, onda mijenjajte ili ne radite ništa

Pitanje: Planirani zadatak Dodatne obrade


Alfa-Auto konfiguracija: Auto salon + Auto servis + Auto dijelovi CORP. Izdanje 6.
Kreirana vanjska obrada. Povezao sam ga kao Dodatnu obradu.
Postavite zakazano izvršenje. Ali ne počinje greškom:
Rutinski zadatak "Pokreni dodatnu obradu" ne može se izvršiti zbog nedostatka postavki u proceduri RoutineTasksOverridden.WhenDefiningRegularTaskSettings(). Kontaktirajte svog administratora sustava!
Tko mi može reći što nije u redu s obradom ili postavljanjem baze.

Odgovor:() Dakle, pogledate što postoji u RoutineTasksOverridden.WhenDefiningSettingsofRoutineTasks()
U BSP-u ova procedura je obično prazna. U Alfi je možda nešto poboljšano.

Pitanje: Automatski početak vanjske obrade


Dobar dan svima. Molim vas pomozite, dragi 1C programeri, riješite ovaj problem.
Postoji vanjska obrada, ima dva gumba, "Pokreni" i "Pošalji". Klikom na gumb "Pokreni" popunjava se tablični dio.
Klikom na gumb "Pošalji" šalje se e-mail s podacima iz tabelarnog dijela i priloženom datotekom.

Pitanje: je li moguće da se ova obrada automatski izvodi svaki dan? ONI. na primjer: u 08:00 ujutro svakog dana, pokrenut je postupak gumba "Pokreni" i "Pošalji"? Baza poslužitelja. Bit će mi drago za svaku pomoć i sve opcije.

Odgovor:() I s ovom opcijom pokretanja, hoće li se 1C proces zatvoriti nakon obrade? ili treba prekinuti obradu putem ShutdownSystem(False)?

Dobro jutro, recite mi skriptu da se pokrene prema rasporedu obrade, odnosno problem je što vam treba skripta (batch file) koja bi startala 1s 77, ali nakon provjere, ako normalno pokretanje ne uspije, onda će biti ekskluzivno s reindeksiranjem. I po mogućnosti s otvaranjem vanjske obrade. Potreban je za automatske učitavanja, ali vremena slanja svugdje su drugačije postavljena. i to uglavnom noću.

Odgovor: bilo koji planer nncron xstarter

Vanjska obrada vrlo je prikladan alat za tvrtke koje koriste standardne konfiguracije na 1C:Enterprise 8.3. Omogućuju vam da ne gubite trud i novac na ažuriranja 1C, omogućujući ažuriranje baza podataka jednim gumbom u jednostavnom korisničkom načinu rada. Korištenjem mehanizma knjižnice standardnog podsustava, možete dodati različite gumbe dokumentima i referentnim knjigama bez mijenjanja standardne konfiguracije. Razmotrimo primjer stvaranja i povezivanja vanjske obrade u jednoj od konfiguracija 1C.

Izrađujemo vanjsku obradu u 1C 8.3

Za izradu nove vanjske obrade koristimo konfigurator. Kroz izbornik "Datoteka" odaberite naredbu za kreiranje "Novo..." i odredite da ćemo kreirati vanjsku obradu. U prozoru koji se otvori postavite naziv i kada pritisnete “Enter” automatski se popunjava. Sustav će vam također ponuditi ovo ime kao naziv datoteke prilikom spremanja.

Dodajmo obrazac za obradu klikom na gumb s povećalom u odgovarajućem prozoru. Na primjer, stvorimo obradu koja pokazuje koje narudžbe kupaca koriste određenu stavku. Da bismo to učinili, moramo postaviti na obrazac:

  • Atributi – polje za postavljanje nomenklature;
  • Gumb koji će pozvati kod.

Dodajte atribut “Nomenklatura” s tipom podataka “DirectoryLink.Nomenclature” u odgovarajući odjeljak i gumb “Prikaži” u izborniku “Naredbe” -> “Naredbe obrazaca”.

Kako bi se dodani podaci reflektirali na obrascu, morate ih povući u elemente obrasca koji se nalaze u gornjem lijevom dijelu. Moguće je mijenjati elemente pomoću plavih strelica. Kako bi gumb koji smo izradili radio ono što je namjeravao, potrebno mu je dodijeliti proceduru. Kroz kontekstni izbornik odaberite "Akcija naredbe", a na pitanje gdje je potreban rukovatelj, odgovorit ćemo: "Stvori na klijentu i proceduru na poslužitelju."


Fragment 1

&OnClient postupak Show(Command) ShowOnServer(); Kraj procedure &OnServer procedura ShowOnServer() //Umetnite sadržaj rukovatelja. Kraj postupka

Odlučili smo kreirati proceduru na poslužitelju jer kao rezultat želimo dobiti uzorak iz baze podataka. Nemamo ovu opciju na klijentu pa ćemo se morati spojiti na server koji razmjenjuje podatke s bazom. Sada moramo napisati kod koji implementira ono što smo planirali. Koristit će se zahtjev i izlaz svih dokumenata kroz funkciju “Izvješće()”.


Fragment 2

&OnClient Procedure Show(Command) ShowOnServer(Nomenclature); EndProcedure &OnServer Procedure ShowOnServer(Nomenclature) Zahtjev = Novi zahtjev; Query.Text = "SELECT VARIOUS | Customer OrderComposition.Link AS Link | FROM | Document.Customer Order.Composition AS Customer OrderComposition | WHERE | Customer OrderComposition.Nomenclature = &Nomenclature"; Request.SetParameter("Nomenklatura", Nomenklatura); RequestResult = Request.Execute(); SelectionDetailRecords = QueryResult.Select(); Dok SelectionDetailedRecords.Next() Loop Report(SelectionDetailedRecords.Link); EndCycle; Kraj postupka

U trenutnoj fazi možemo otvoriti vanjsku obradu u pokrenutoj bazi podataka 1C kao običnu datoteku i ona će već biti operativna. Ali ako imamo mnogo korisnika, morat ćemo poslati ovu datoteku svima, dajući im upute o tome kako je zapravo otvoriti u 1C, što je izuzetno nezgodno. Da bismo to izbjegli, naša bi se obrada trebala nalaziti unutar jednog od odjeljaka 1C. Da bismo to učinili, moramo ga još malo modificirati kroz konfigurator, navodeći određene postavke.

Za smještaj vanjske obrade u odjeljak 1C potrebno je u objektnom modulu registrirati proceduru “Informacije O vanjskoj obradi”. U glavnom izborniku za obradu kliknite Radnje i odaberite Modul objekta. Ovdje morate registrirati sve postavke potrebne za 1C kako bi sustav razumio što se od njega traži i kakva je datoteka ispred njega. Snimka zaslona prikazuje kôd za funkciju "Informacije O vanjskoj obradi".

Funkcija InformationOnExternalProcessing() Export DataForReg = New Structure(); DataForReg.Insert("Naziv","Nova vanjska obrada"); DataForReg.Insert("SafeMode", True); DataForReg.Insert("Verzija", "ver.: 1.001"); DataForReg.Insert("Prikaz", "Dodatna obrada"); 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 vanjska obrada"; DataForReg.Insert("Naredbe", TabZnNaredbe); Vrati DataForReg; EndFunction

Fragment 3

Povezivanje vanjske obrade u 1C

Prije povezivanja vanjske obrade sa standardnom konfiguracijom, morate omogućiti korištenje ovog alata. U “Administraciji” u podstavci “Ispisani obrasci, izvješća i obrada” postavite oznaku nasuprot mehanizma koji nam je potreban. Postaje nam dostupan gumb za odlazak u imenik dodatnih obrada i izvješća.


Kad odemo na popis, u njemu ćemo stvoriti novi redak, a sustav će od vas tražiti da odaberete datoteku. Odaberemo obradu koju smo napravili i spremili, a 1C konfiguracija samostalno ispunjava većinu polja. Pomoću gumba "Pokreni" već možemo provjeriti funkcionalnost naše obrade, ali to nije baš zgodno za druge korisnike. Kako bi korisnici imali našu naredbu i mogli uputiti poziv, moramo:

  • Navedite lokaciju objekta. Klikom na “Nedefinirano” otvaramo prozor sekcija i označavamo u kojim će sekcijama operacija biti dostupna;
  • Odaberite korisnike za koje će se ova naredba pojaviti u izborniku “Dodatna obrada” odabranih odjeljaka bez nepotrebnih postavki. Da biste to učinili, u tabličnom odjeljku morate odabrati stavku "Brzi pristup" i dodati odgovorne korisnike u desnu polovicu;
  • Na kartici "Dodatne informacije" možete odrediti mapu u kojoj će se nalaziti preuzeta obrada;
  • Nakon što pritisnu tipku “Write” u odabranom odjeljku u izborniku “Additional Processing”, korisnici će pronaći našu naredbu i moći će je koristiti.

Ako želimo napraviti promjene u našoj obradi, prvo je moramo isprazniti iz baze podataka. Da biste to učinili, pronađite traženi redak u direktoriju "Dodatna obrada i izvješća" i upotrijebite naredbu "Učitaj u datoteku...". Napravite promjene, spremite obradu i upotrijebite gumb "Učitaj iz datoteke..." da pronađete izmijenjenu epf datoteku bez mijenjanja parametara. Nakon snimanja svi će korisnici vidjeti učinjene promjene.

Ako koristite nestandardnu ​​ili ukinutu 1C bazu podataka, iskoristite priliku za preuzimanje obrade putem konfiguratora. U objektnom stablu, u odjeljku “Obrade”, kreirajte novu obradu i kroz kontekstni izbornik odaberite “Zamijeni vanjskom obradom, izvješće...”. Ostaje samo konfigurirati pokretanje vanjske obrade iz željenog odjeljka, uključujući dodatnu obradu u željenom podsustavu.


Rad s vanjskom obradom vrlo je zgodan i omogućuje vam izbjegavanje mnogih sukoba. Njihov jedini značajan nedostatak je što se ne ažuriraju automatski zajedno s konfiguracijom. To jest, ako su programeri promijenili naziv dokumenta ili referentne knjige u glavnoj konfiguraciji, morat ćemo ručno konfigurirati obradu.

Stvaranje rutinskog zadatka

Kreirajmo rutinski zadatak "Izvrši obradu".

Onemogućimo korištenje planiranog zadatka tako da se prilikom ažuriranja konfiguracije ne pokreće automatski.

Dodijelimo proceduru koja će se pokrenuti kada se pokrene rutinski zadatak:Modul RoutineTasks.RoutineTaskExecutionProcessing.

Sama procedura izgleda ovako:

Procedura RoutineTaskExecutionProcessing(Key) Export

Parametri RoutineTasks.PerformProcessingWithParameters(Key);

Kraj postupka

Izrađujemo priručnik za rutinske zadatke

Naš rutinski zadatak može proizvesti mnogo pozadinskih procesa - po jedan za svaku obradu. Svaki zadatak u platformi 1C8 ima ključ. Ali metoda planiranog posla ne poznaje ključ pozadinskog posla, tako da trebate koristiti parametre pozadinskog posla. Kao rezultat toga, možemo vidjeti pozadinski posao u konzoli poslova, ali ne možemo ručno kreirati pozadinski posao iz ove konzole, jer poslovi s parametrima se ne kreiraju ručno.

Referentna knjiga "Parametri planiranih zadataka" :

Rekviziti :

· Kod prije pokretanja- neograničeni niz - kod na 1C jeziku koji se mora izvršiti prije pokretanja.

· Obrada iz konfiguracije - linija (100) - identifikator obrade iz konfiguracije

· Obrada iz imenika - linija (100) - poveznica na element imenika “Vanjska obrada”, ako postoji u konfiguraciji

· Izvršite kroz 1C aplikaciju - Boolean - kreirat će se zasebna 1C aplikacija iu njoj će se pokrenuti rutinski zadatak. Stvoreno za 8.1, gdje nisu sve metode aplikacije dostupne na poslužitelju na kojem se izvodi zakazani posao.

· Pokreni kod- - neograničen broj linija - kod u 1C jeziku koji će se izvršiti kada se pokrene planirani zadatak.

Kreirajmo oblik elementa :

Klikom na opciju “Create Reg. zadatak" rutinski zadatak s ključnim kodom kreira se programski:

Procedura BasicActionsFormCreateReglTask(Button)

Varijabilni posao;

Ključ = AbbrLP(Kod);

Zadatak = RoutineTasks.CreateRoutineTask("Izvrši obradu");

Task.Name = ključ;

Task.Key = Ključ;

Parametri = Novi niz();

Parameters.Add(Key);

Task.Parameters = Parametri;

Task.Write();

Kraj postupka

Pokretanje planiranog zadatka

Svaki rutinski zadatak koji kreiramo ima ključ:

Ovaj ključ odgovara kodu u direktoriju “Parametri rutinskih zadataka”; koristi se za pretraživanje prilikom pokretanja zadatka. Ako se unos u imeniku ne pronađe, zadatak se ne izvršava.

Dalje, ako je šifra danaKod prije pokretanja tada će se ovaj kod izvršiti. Dalje, ako je varijabla Ispuniti procijeni na false, zadatak neće biti dovršen. Varijabla dostupna za analizu Mogućnosti, gdje je pohranjena poveznica na pronađeni element imenika “Parametri rutinskih zadataka”.

Ovisno o odabranim vrijednostima detalja, ili će se pokrenuti kod na jeziku 1C, ili će se pokrenuti obrada iz konfiguracije, ili će se pokrenuti obrada iz standardne referentne knjige "Vanjska obrada".

Za 1C81, izvršenje je omogućeno u novoj aplikaciji - tako da možete koristiti kod koji je dostupan samo na klijentu, uključujući korištenje vanjske obrade. Da biste to učinili, morate potvrditi okvir "Pokretanje kroz aplikaciju 1C". U protivnom će se zakazani zadatak izvršiti na poslužitelju.

Preporučujem postavljanje korisnika u polje "Korisnik" za novostvoreni rutinski zadatak, tako da se zadatak izvršava pod određenim pravima. Preporučujem da takvom korisniku date puna prava. Koristim korisnika "robot».

Raspored rutinskih zadataka kreira se pomoću hiperveze "Raspored" iz obrasca rutinskih zadataka. Možete koristiti obradu "Konzole rutinskih zadataka".