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

Danas vam želimo reći o korištenju dodatnih izvještaja i obradi, a posebno konfiguracijskih ekstenzija u modelu usluge. Tehnologije ne miruju, servisiranje 1C baza podataka u oblaku postaje sve atraktivnija usluga. Šta trebate znati da bi funkcionalnost potrebnu za vašu kompaniju bila implementirana u iznajmljenoj bazi podataka i kako ovaj proces izgleda sa strane pružatelja usluga - o tome možete saznati ispod.

Šta su eksterni izvještaji i obrada

1C tretmani su različiti, ali u svakom slučaju proširuju funkcionalnost konfiguracije i omogućavaju vam brz pristup informacijama pohranjenim u bazi podataka bez promjene konfiguracije i bez uklanjanja podrške. Mogu se ugraditi direktno u konfiguraciju, dodati kao konfiguracijska ekstenzija ili biti vanjski fajlovi.

Na osnovu funkcionalnosti, obrada se dijeli na one koje mogu mijenjati podatke i one koje jednostavno analiziraju informacije i prikazuju rezultat u obliku prilagođenom korisniku (izvještaji). Kako se ne bi mijenjali standardni izgledi za štampu dokumenata, razvijene su eksterne forme za štampu. Također, vanjska obrada se može izvršiti prema zadanom rasporedu na 1C aplikacijskom serveru - to su rutinski zadaci.

U Buttonu je razvijeno nekoliko desetina rješenja za obradu koja omogućavaju našim računovođama korištenje “praktične magije”. Na primjer, za analizu ispravnosti računovodstva u Buttonu koristi se eksterni izvještaj „Automatska revizija baze podataka“. Lako čitljive tabele pružaju analizu 120 kriterijuma stanja i prometa na računu, usklađenost podataka iz poreskih prijava i računovodstvenih informacija, analizu osnovnih sredstava itd.

Primjer eksternog štampanog obrasca „ugovor o kreditu“ prema obrascu koji su izradili naši advokati. Postoje slučajevi kada preduzetnik podiže beskamatni kredit od svoje firme kao fizičko lice, ili obrnuto, prebacuje sopstvena sredstva kompaniji, tada je moguće odmah ispisati ugovor.

Otvara se obrazac za popunjavanje potrebnih podataka:

I prikazuje se štampani obrazac ugovora:

Koristimo planiranu obradu (rutinske zadatke), na primjer, da ispravimo izjave. Dugmad je uspostavila integracije sa velikim bankama i specijalnim robotima učitavaju izjave direktno u 1C. Zahvaljujući tehnologiji mašinskog učenja, procenat grešaka tokom pražnjenja smanjen je na 3%. Ali, kao i uvijek, postoje izuzeci, na primjer, klijenti koji koriste shemu agencije za prodaju robe; u ovom slučaju, pravila za vođenje bankovnog izvoda su individualna. Kako se robot ne bi reprogramirao za određeni slučaj, prije pojave konfiguracijskih ekstenzija korišten je rutinski zadatak da se svakih 10 minuta ispravi robotova izjava.

Šta su konfiguracijske ekstenzije

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

Mehanizam pretpostavlja tri vrste upotrebe, koje su, zapravo, naznačene u polju „Svrha“ prilikom kreiranja ekstenzije:

Centralna komponenta tehnologije je Service Manager, pohranjuje sve informacije o pretplatnicima, korisnicima, aplikacijama, bazama podataka i vezama među njima, a uz njegovu pomoć se upravlja eksternom obradom i konfiguracijskim ekstenzijama.

Sve datoteke s obradom se učitavaju u poseban direktorij servis menadžera. Ali prije nego što otpremite datoteku u direktorij, drugim riječima, "objavite je na servisu", ona mora biti pripremljena na poseban način.

Priprema eksternih izvještaja i obrada za objavljivanje u modelu usluge

Dodatni izvještaj ili obrada kreira se u konfiguratoru 1C: Enterprise 8 kao standardni eksterni izvještaji i obrada i pohranjuje se u datoteku sa ekstenzijom - .epf (za dodatnu obradu) ili .erf (za dodatne izvještaje).

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

Imajte na umu da je važan parametar “Verzija”. Ako ste izvršili promjene u obradi koja je prethodno učitana u direktorij upravitelja usluga, obavezno promijenite broj verzije, inače će upravitelj usluga odbiti učitati datoteku. Prilikom izrade izvještaja ili obrade morate uzeti u obzir da korisnici rade u uslužnom modelu preko web klijenta (dobar članak na 1C blogu). Ako obrada sadrži obrasce, onda oni moraju raditi u web klijentu pod svim web preglednicima koji su podržani od strane tehnološke platforme 1C: Enterprise 8.

Prema standardima servisa 1cfresh.com, dodatni izvještaj ili obrada mora biti potpuno funkcionalna kada se izvršava u sigurnom načinu rada, odnosno raditi bez pristupa objektima izvan konfiguracije.

Dodatni izvještaj ili obrada mora biti pripremljena za učitavanje u servis kao komplet za isporuku. Komplet za isporuku je arhiva (zip datoteka) koja sadrži:

  • dodatni izvještaj ili fajl obrade;
  • xml manifest fajl, koji sadrži dodatne metainformacije neophodne da bi menadžer servisa objavio dodatni izveštaj ili ga obradio u servisu.
Priprema se vrši u lokalno raspoređenoj info bazi konfiguracije za koju je dodatni izvještaj ili obrada namijenjena. Koristimo specijalnog pomoćnika za kreiranje kompleta isporuke, eksternu obradu, pripremu dodatnih izvještaja i obradu publikacija u Service Model.epf. Više možete pročitati u dokumentaciji o Tehnologiji za objavljivanje 1C Fresh rješenja.

Instaliranje dodatnih izvještaja i obrada u modelu usluge

Karakteristična karakteristika 1C Fresh tehnologije je da se eksterni izvještaj ili obrada ne mogu učitati direktno u područje podataka. Dodavanje može izvršiti samo administrator servisa preko servis menadžera. Nakon što se pripremi zip arhiva sa datotekom za obradu, ona se mora učitati u direktorij servis menadžera i instalirati za određenog pretplatnika usluge.

Pretplatnik usluge je grupa korisnika udruženih po nekom principu. Shodno tome, informacione baze koje su dostupne određenoj grupi korisnika nazivaju se pretplatničkim aplikacijama.

Aplikacije mogu imati različite 1C konfiguracije (Knjigovodstvo preduzeća, Upravljanje platama i kadrovima, Menadžment naše kompanije, itd.), za koje je moguće koristiti u servisnom modelu. Dodatno izvještavanje ili obrada može se instalirati samo u pretplatničkim aplikacijama koje su specificirane prilikom preuzimanja datoteke.

Ovako izgleda obrazac svojstava za dodatni izvještaj sa verzijama. Koristeći hipervezu “Instaliraj/ukloni” dolazimo do liste aplikacija i biramo potrebne baze podataka.

Nakon učitavanja obrade i odabira aplikacije, servis manager kontaktira adresu aplikacije i daje naredbu da se ona instalira u bazu podataka.

Pokrećemo obradu prema rasporedu

Kada se radi sa velikim brojem računovodstvenih baza podataka, neke obrade moraju se vršiti periodično. Na primjer, jednom mjesečno ili 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 vršiti po planu 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 svakih sat vremena.

Više o konfiguracijskim proširenjima

Paralelno sa eksternim izvještajima i obradom koje je potrebno pripremiti i administrirati „na starinski način“, počeli smo aktivno koristiti mehanizam proširenja konfiguracije. Počevši od 1C Enterprise platforme 8.3.10, ovaj mehanizam nam je prilično olakšao život i omogućio pojednostavljenje prilagođavanja konfiguracija karakteristikama dugmeta.

Na primjer, gore smo pisali o rutinskim operacijama ispravljanja dokumenata od strane robota koji su se pokretali svakih 10 minuta. Sada možete koristiti ekstenziju da redefinirate rad modula. Tako možemo odmah izvršiti potrebne radnje prilikom snimanja ili postavljanja dokumenta. Ovo je mnogo optimalnije, jer red zadataka u bazi podataka nije zakrčen radnjama koje se izvode svakih 10 minuta, a efikasnije je jer se promjene vrše odmah.

Prilično je lako pripremiti novi nastavak. Pogledajmo proces kreiranja ekstenzija na konkretnim primjerima.
Na osnovu radnog iskustva, vodeći u zahtevima za prilagođavanje je štampani obrazac TORG-12. Na primjer, potrebno je napraviti proširenje da bismo mogli ispisati otpremnicu u stranoj valuti (podrazumevano se može generirati samo u rubljama).
Otvorite Meni → Konfiguracija → Proširenja konfiguracije
Kreiramo novu ekstenziju sa svrhom “Prilagodba”.

Ekstenzija izgleda kao poznato stablo konfiguracije, ali još bez objekata. Prije svega, dodajmo novi izgled TORG-12, u koji smo ubacili kolone sa iznosima u valuti.

S obzirom da se faktura ispisuje iz dokumenta „Prodaja robe i usluga“, ovaj dokument ćemo dodati u našu ekstenziju iz glavne konfiguracije i izvršiti promjene koje su nam potrebne u modulu menadžera. Da biste to učinili, odaberite "dodaj u ekstenziju" u kontekstualnom izborniku implementacije.

Sada možete modificirati modul menadžera implementacije. Moramo dodati novi obrazac na listu obrazaca za štampanje i popuniti iznose u valuti.

Da bismo promijenili standardne procedure, koristimo napomenu &After; također nam je potrebno nekoliko vlastitih funkcija i procedura.

Pogledajmo bliže napomene. U ekstenzijama možete koristiti: &prije, &poslije, &umjesto (vrlo pažljivo). Princip rada je jednostavan: želimo da se naši algoritmi iz ekstenzije prvo izvrše, stavimo napomenu &Before i u zagradi naznačimo naziv procedure iz standardne konfiguracije. Ako se prvo obradi standardni modul, a zatim naš, koristimo &After.

Oznake &prije i &nakon ne mogu se koristiti za funkcije. Stoga, ako trebamo promijeniti algoritam funkcije iz glavne konfiguracije, koristimo bilješku &Umjesto toga.

Oznaku &Umjesto treba koristiti što je rjeđe moguće, jer u potpunosti zamjenjuje izvršenje procedure i funkcije iz glavne konfiguracije sa procedurom/funkcijom proširenja. Sa ovom metodom presretanja, procedura/funkcija iz glavne konfiguracije će uopće prestati da se izvršava 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 eksternih izvještaja/obrada. Na osnovu našeg iskustva, oboje smo za proširenje. Ovo je moderna i prilagodljivija tehnologija, ima mnogo više mogućnosti, a njihovo objavljivanje je mnogo lakše. U ekstenziju se stavlja samo neophodan dio koda, također nema potrebe za dodatnim pisanjem procedura i funkcija za određivanje parametara registracije, praćenje verzija i kreiranje kompleta za isporuku.

Možete koristiti više ekstenzija za jedno područje podataka.
Za specifičnosti 1C Fresh-a koji radi u načinu odvajanja podataka (jedna konfiguracija, mnogo nezavisnih područja), metoda proširenja je odlično rješenje.

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

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

Planirano pokretanje radi kroz standardni Windows mehanizam koji se zove "Task Scheduler".

A kada korisnik postavi postavke rasporeda...

Ažurer automatski kreira potrebne zadatke u planeru:

Šta ne biste trebali zaboraviti

Odabir korisnika

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

Mora imati sistemska prava na "Prijava kao skupni posao".

Kako provjeriti da li korisnik ima potrebna prava?

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

Ako je nakon obavljenog zadatka rezultat njegovog pokretanja uspješan...

Ako to nije slučaj, onda kontaktiramo administratora sistema kako bi on u sigurnosnoj politici naznačio (naš korisnik ili njegova grupa) u stavku " Prijava kao skupni posao", a takođe isključen iz stava " Odbiti prijavu kao skupni posao".

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

  • ili dodijelite lozinku trenutnom korisniku pod kojim ćete pokrenuti program za ažuriranje prema rasporedu
  • ili kreirajte zasebnog korisnika u sistemu sa lozinkom, koji će biti registrovan u rasporedu ažuriranja

Pa, najjednostavnije (ali netačno sa sigurnosne tačke gledišta) rješenje za ovo ograničenje bilo bi onemogućiti opciju „Dozvoli korištenje praznih lozinki samo tokom prijavljivanja na konzolu“ u lokalnoj politici sigurnosti računala.

Odabir baza

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

U ovom slučaju nije bitno da li je kvačica pored baze na opštoj listi:

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

Redoslijed pokretanja

I na kraju, još jedna neočigledna stvar. Prilikom pokretanja zakazanog zadatka, program za ažuriranje prvo provjerava da li je trenutno pokrenut drugi zakazani zadatak. A ako se izvrši, prvo će čekati da se završi, a tek onda će izvršiti novi.

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

Šta ako vam treba složeniji raspored?

Šta ako nam ne treba samo redovno lansiranje u određeno vrijeme i određene dane? Šta ako želimo da, recimo, postavimo da počinje u 5 sati svakih pola sata ili tako nešto?

U ovom slučaju, moramo iskoristiti punu snagu planera zadataka.

Prvo, postavljamo raspored kroz program za ažuriranje, što ukazuje da će određeni raspored biti konfiguriran u planeru:

I tek tada otvorite svojstva zadataka kreiranih od strane ažuriranja u Windows Scheduler-u:

I na odgovarajućim karticama konfiguriramo sve što nam srce želi:

Kako isključiti bazu podataka iz nekih planiranih operacija

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

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

Kako to postići - na kraju krajeva, imamo istu listu baza koje učestvuju u rasporedu:

I to je vrlo lako za napraviti.

Idite na svojstva baze podataka koju želite da isključite iz planiranih 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:

Da li je moguće pokrenuti po rasporedu s drugim parametrima?

Želio bih posebno skrenuti pažnju na činjenicu da je zadatak u rasporedu zadataka redovno pokretanje ažuriranja s određenim parametrima komandne linije:

A program za ažuriranje ima mnogo parametara za pokretanje preko komandne linije.

Koristeći ih, možete prilagoditi automatizaciju mnogo suptilnije i prema vašim potrebama. Samo nemojte mijenjati parametre komandne linije u već kreiranom zadatku ažuriranja - inače će ih i dalje vratiti na početne prilikom ažuriranja zakazanih postavki pokretanja. Umjesto toga, kopirajte kreirani zadatak u planer (tako da ima svoje ime) i promijenite ga.

O svim prekidačima komandne linije programa za ažuriranje.

Kako saznati da li je ažuriranje pokrenuto prema rasporedu

Dešava se da izgleda da je raspored postavljen, ali nešto krene po zlu.

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

Prije svega, želim da vam skrenem pažnju na područje u glavnom prozoru ažuriranja gdje se prikazuje status zakazanih operacija:

Ovdje vidimo prije koliko dana je pokrenut odgovarajući. planirani rad; koliko je baza podataka bilo uključeno i da li je bilo grešaka. Štaviše, ako kliknemo levim tasterom miša na ove veze, otvoriće se odgovarajući izveštaj.

Možemo ići na cijeli dnevnik izvještaja ažuriranja...

I vidi da li su zadaci obavljeni.

Ali najpouzdaniji način da otkrijete da li je program pokrenut i da razumete razloge njegovog neuspeha ili iznenadnog prekida jeste da omogućite evidenciju svih zadataka u Windows Planeru. Po defaultu je onemogućen i preporučujem da ga uključite kako biste uvijek mogli shvatiti problematične situacije.

Da biste omogućili dnevnik Windows Scheduler-a, idite na dijalog “Pokreni prema rasporedu” i kliknite na dugme “Otvori Windows Scheduler”:

Ovo se takođe može uraditi sa Windows kontrolne table (odeljak Administracija).

Ovdje nalazimo i kliknemo na stavku "Omogući zapisnik svih zadataka":

Spremni! Sada možemo vidjeti historiju bilo kojeg zadatka u planeru.

Na primjer, istaknimo jedan od zadataka ažuriranja:

Kako postaviti sistem za praćenje oblaka za izvršavanje zadataka ažuriranja

Sada ću vam reći o načinu da se osigurate od ove situacije – “oh, ispostavilo se da naše baze podataka nisu arhivirane (ažurirane, testirane..) čitavu sedmicu.”

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

  • drugi administrator servera je oduzeo prava sa našeg naloga za početak arhiviranja iz planera i u ovom slučaju updateer neće moći da nam pošalje ni obaveštenje e-poštom, jer za to treba da se pokrene, ali nema prava za to pa...
  • ili je došlo do nekih drugih grešaka i nema interneta na serveru da bi nam updater poslao poruku o grešci...
  • ili smo sami greškom isključili planirano arhiviranje u ažuriranju...
  • nikad ne znaš šta može da se desi...

I sve što treba da uradite, pored podešavanja obaveštenja o greškama putem e-pošte, jeste da postavite cloud sistem za praćenje pokretanja našeg ažuriranja. Šta je to i kako funkcionira?

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

Ideja je sljedeća. Registrujemo se na njihovoj web stranici i na našem ličnom računu imamo priliku reći:

  • Hej, HealthChecks, daj mi jedinstveni URL (adresu internetskog izvora).
  • HealthChecks, ako niko ne kuca (zahteva) na ovu adresu u tom i tom periodu, obavesti me o tome tim i takvim mejlom.

Zatim ćemo navesti ovu adresu u programu za ažuriranje i on će je tražiti, na primjer, na kraju svakog zakazanog arhiviranja. A ako u nekom trenutku iznenada prestane da se pokreće ili se sruši, usluga HealthChecks će nas o tome obavijestiti. Čak i ako naš server izgori, bit će ukraden i rastavljen na male komadiće..., prvi ćemo o tome saznati od HealthChecksa

Mislim da je ovo briljantna ideja. Ako ne mislite tako, izgleda da niste u potpunosti shvatili značenje ove stvari - molim vas, ponovo pročitajte moj neugodni tekst.

Posebno ću pomenuti da opisani sistem praćenja ne poništava, već dopunjuje, email obavještenja o greškama, koja se također moraju konfigurirati u updateeru za potpunu kontrolu nad situacijom.

Najjednostavniji scenario za postavljanje HealthChecks-a sa programom za ažuriranje

Postavimo dnevno arhiviranje na serveru pod nazivom DataServer koja pripada kompaniji DOO "Romashka":

I želimo da nas HealthChecks obavijesti ako program za ažuriranje iznenada prestane raditi za arhiviranje ili se takva pokretanja nenormalno završe.

3. Registrujte se sa e-mail adresom na koju želite da primate obaveštenja.

3. Idite na odjeljak “Provjere” i kliknite na veliko zeleno dugme “Dodaj ček”.

5. Promijenimo naziv ove provjere u OOO "Romashka" (DataServer, arhiviranje). To je potrebno učiniti kako bismo shvatili na šta se tačno odnosi ova provjera (arhiviranje na serveru pod nazivom DataServer u kompaniji Romashka LLC):

6. Navedite period verifikacije (arhiviranje treba započeti jednom dnevno, sam proces arhiviranja može trajati do 12 sati):

Drugi klizač (grace) je upravo dozvoljeni višak perioda, odnosno vremena tokom kojeg proces arhiviranja može trajati.

Namjerno sam naznačio dodatno ograničenje od 12 sati (grejs), jer updater šalje zahtjev sistemu za praćenje na kraju svog rada, a vrijeme završetka može varirati u zavisnosti od različitih uslova.

Na primjer, ako planiramo da ažuriranje počne u 22:00, danas ovo ažuriranje može završiti u 23:00, a sutra (mnogo novih ažuriranja je objavljeno) će trajati do 4 sata ujutro.

Otuda dodatna margina od 12 sati da se izbjegnu lažno pozitivni rezultati HealthChecks-a.

Rezultat postavljanja perioda će biti ovakav:

7. Ali kao što vidite, polje Last Ping je prazno (Nikad). Biće ažurirana pošto ovoj adresi pristupi program za ažuriranje tokom arhiviranja. A ako nema zahtjeva duže od 1 dan i 12 sati, HealthChecks će oglasiti alarm i obavijestiti nas putem e-pošte.

Pitanje: Problem sa pristupom dodatnoj obradi u Zup3


kreirali dodatnu obradu i smjestili je u odjeljak za plate. Korisnik sa 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?

Plaća i upravljanje kadrovima, izdanje 3.0 (3.0.24.115) ()
Copyright © LLC "1C", 2007-2014. Sva prava zadržana
()

odgovor:

Pitanje: Pokretanje dodatne obrade prema rasporedu


Zdravo svima. Upravo učim da programiram, pa me nemojte previše koriti što postavljam pogrešna pitanja. 1C Retail 2.2.5.27 Kreiran eksternu obradu koja, kada kliknete na dugme, učitava podatke iz datoteke u registar informacija. Ručno sve radi dobro, ali sada je zadatak osigurati da ova obrada počne po rasporedu i bez otvaranja obrasca. Odnosno, u pozadini tako da radi.
Obrada je povezana u obrascu "Dodatni izvještaji i obrada".

Kod u modulu obrasca

Funkcija InformationOnExternalProcessing() ExportRegistrationParameters = Nova struktura; Registracijski parametri.Insert("View", "AdditionalProcessing"); Registracijski parametri.Insert("Ime", "Stanje učitavanja (PCService(C))"); Parametri registracije.Insert("Verzija", "1.0"); Registracijski parametri.Insert("SafeMode", False); Registracijski parametri.Insert("Informacije", "Preostalo učitavanje"); Registracijski parametri.Insert("BSPVersion", "2.3.2.33"); CommandTable = GetCommandTable(); AddCommand(CommandTable, "Učitavanje stanja (PCService(C))", "1", "OpenForm", True,""); AddCommand(CommandTable, "Stanje opterećenja (PCService(C))", "2", "CallServerMethod", Tačno,""); TeamId = "2"; Parametri registracije.Insert("Commands", CommandTable); ReturnRegistrationParameters; Funkcija EndFunction GetTableCommands() Commands = NewValueTable; Commands.Columns.Add("View", NewTypeDescription("Row")); Commands.Columns.Add("Identifier", New TypeDescription("String")); Commands.Columns.Add("Usage", New TypeDescription("Row")); Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean")); Commands.Columns.Add("Modifikator", New TypeDescription("Row")); Return Team; Procedura EndFunction AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "") NewCommand = CommandTable.Add(); NewCommand.View = Pogled; NewCommand.Identifier = Identifikator; NewCommand.Use = Koristi; NewCommand.ShowAlert = ShowAlert; NewCommand.Modifier = Modifikator; Kraj procedure &na serverskoj proceduri Izvrši naredbu (identifikator naredbe, objekti dodjele) Izvoz Kraj procedure

Kada kliknete na dugme execute sa opcijom pokretanja „Otvori obrazac“, otvara se obrazac i program se odmah izvršava (odmah se izvršava jer je na obrascu u događajima „When CreatedOnServer“ naznačeno da je glavni kod program će se izvršiti)
Kada kliknete na dugme Izvrši s opcijom pokretanja “Call ServerMethod” ne proizvodi nikakve greške, ali nema rezultat.
Šta radim pogrešno??

odgovor:

Popušio sam sve. Ovdje sam morao kopirati kod koji sam htio izvršiti bez otvaranja obrasca

Pitanje: Maloprodaja 2.2 pokretanje dodatne obrade prema rasporedu


Pozdrav. Retail 2.2, omogućena je dodatna obrada i postavljeno planirano izvršenje. Gledam izvršenje kroz - Podrška i Održavanje - rutinske zadatke, moj zadatak ili radi ili prestaje da radi po rasporedu, neko vrijeme radi tačno po rasporedu i prestaje da radi sam. Nije stvar u samoj obradi jer ne daje grešku, već zadatak jednostavno ne počinje. Tada počinje normalno da radi sam od sebe. Šta može uticati na početak rutinskog zadatka?
Pokušao sam postaviti različite rasporede, ali nije išlo.

odgovor:

Problem je rešen ponovnom instalacijom platforme na svim računarima

Pitanje: Dodatna obrada


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

Recite mi, da li je moguće dodati dodatnu obradu u podsistem bez dodirivanja konfiguratora?
One. Treba mi da obrada bude pozvana ne kroz dodatnu obradu, već kao eksterni izvještaj, odmah na listi podsistema.

odgovor:

Kreirajte izvještaj u ekstenziju, dodajte željeni (postojeći) podsistem u ekstenziju, napravite link do kreiranog izvještaja u “proširenom” podsistemu.

Pitanje: Korišćenje Web usluga u dodatnoj obradi koristeći BSP


Dobar dan
U svježem je potrebno ugraditi dodatnu obradu koja će pristupiti Web servisu druge baze podataka. Obrada je, naravno, u bezbednom režimu, međutim, „dozvoljeno je korišćenje proširenja bezbednog režima biblioteke standardnih podsistema (mogućnost rada sa datotekama, internet resursima, itd.) preko specijalizovanog softverskog interfejsa sa registracijom potrebne dozvole za dodatno izvještavanje/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 pri pokretanju određene obrade, šta da radim?


Postoji dodatak kojim se ažuriraju dokumenti o poravnanju uneseni na osnovu otkaza. Kada se ova obrada pokrene, program se glupo zatvara bez ikakvih poruka. Ne vidim ništa u debugeru. Na datum testiranja za koji je napravljen 1 dokument, on prolazi. Šta još da radim? Pokrenuo sam testiranje i činilo se da nema grešaka.

odgovor: super, ali zasto je bio potreban ciklus?Ako imas neke unose onda pisi neznam u dnevnik ili nesto drugo,ne onda mijenjaj ili ne radi nista

Pitanje: Planirani zadatak dodatne obrade


Alfa-Auto konfiguracija: Salon automobila + Auto servis + Auto dijelovi CORP. Izdanje 6.
Kreirana eksterna obrada. Povezao sam ga kao dodatnu obradu.
Postavite planirano izvršenje. Ali ne počinje sa greškom:
Rutinski zadatak "Pokreni dodatnu obradu" ne može se izvršiti zbog nedostatka postavki u proceduri RoutineTasksOverridden.WhenDefiningRegularTaskSettings(). Obratite se svom administratoru sistema!
Ko mi može reći šta nije u redu sa obradom ili postavljanjem baze.

odgovor:() Pa pogledaj šta se nalazi 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 eksterne obrade


Dobar dan svima. Pomozite, dragi 1C programeri, da riješite ovaj problem.
Postoji eksterna obrada, ima dva dugmeta, “Run” i “Submit”. Kada kliknete na dugme „Pokreni“, popunjava se tabelarni deo.
Kada kliknete na dugme "Pošalji", šalje se email sa podacima iz tabelarnog dela i priloženom datotekom.

Pitanje: da li je moguće da se ova obrada automatski obavlja svaki dan? TIH. na primjer: u 08:00 ujutro svakog dana, postupak dugmadi "Pokreni" i "Pošalji" je pokrenut? Baza servera. Bit će mi drago svakoj pomoći i svim opcijama.

odgovor:() A sa ovom opcijom pokretanja, hoće li se 1C proces zatvoriti nakon obrade? ili je potrebno prekinuti obradu putem ShutdownSystem(False)?

Dobro jutro recite mi skriptu da se pokrene po rasporedu obrade, tacnije problem je sto vam treba skripta (batch fajl) koja bi pocela 1s 77, ali nakon provjere, ako normalno pokretanje ne uspije, onda ce biti ekskluzivno sa ponovnim indeksiranjem. I po mogućnosti sa otvaranjem vanjske obrade. Potreban je za automatsko slanje, ali vremena slanja su svuda različita. i to uglavnom noću.

odgovor: bilo koji nncron xstarter planer

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 stvaranja i povezivanja vanjske obrade u jednoj od 1C konfiguracija.

Kreiramo eksternu obradu u 1C 8.3

Za kreiranje nove eksterne 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. Na primjer, napravimo obradu koja pokazuje koje narudžbe kupaca koriste određenu stavku. 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. Preko kontekstnog menija izaberite „Command Action“, a na pitanje gde je potreban rukovalac, odgovorić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(komanda) 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"; Request.SetParameter("Nomenklatura", Nomenklatura); RequestResult = Request.Execute(); SelectionDetailRecords = QueryResult.Select(); Dok SelectionDetailedRecords.Next() Loop Report(SelectionDetailedRecords.Link); EndCycle; Kraj procedure

U trenutnoj fazi možemo otvoriti eksternu obradu u pokrenutoj 1C bazi podataka kao običnu datoteku i ona će već biti operativna. Ali ako imamo mnogo korisnika, moraćemo da pošaljemo ovu datoteku svima, dajući im uputstva kako da je zaista otvore u 1C, što je izuzetno nezgodno. Da bi se to izbjeglo, naša obrada treba biti smještena unutar jedne od 1C sekcija. Da bismo to učinili, moramo ga još malo izmijeniti kroz konfigurator, navodeći određene postavke.

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 podtački "Štampani obrasci, izvještaji i obrada" postavite zastavicu nasuprot mehanizma koji nam je potreban. Postaje nam dostupno dugme za odlazak u imenik dodatne obrade i izveštaja.


Kada odemo na listu, kreiraćemo novi red u njoj, a sistem će od vas tražiti da odaberete datoteku. Odabiremo obradu koju smo napravili i sačuvali, a 1C konfiguracija samostalno popunjava većinu polja. Pomoću dugmeta „Pokreni“ već možemo provjeriti funkcionalnost naše obrade, ali to nije baš zgodno za druge korisnike. Da bi korisnici imali našu komandu i mogli da upućuju poziv, potrebno je:

  • Odredite 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 komanda pojaviti u meniju „Dodatna obrada“ odabranih sekcija bez nepotrebnih podešavanja. Da biste to učinili, u tabličnom dijelu trebate odabrati stavku "Brzi pristup" i dodati odgovorne korisnike u desnu polovinu;
  • Na kartici "Dodatne informacije" možete odrediti mapu u kojoj će se nalaziti preuzeta obrada;
  • 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 modifikovani epf fajl bez promene 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 se konfiguriše pokretanje eksterne obrade iz željene sekcije, uključujući i dodatnu obradu u željenom podsistemu.


Rad sa eksternom obradom je veoma zgodan i omogućava vam da izbegnete mnoge konflikte. Njihova jedina značajna mana 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.

Kreiranje rutinskog zadatka

Kreirajmo rutinski zadatak "Izvrši obradu".

Onemogućimo korištenje zakazanog zadatka kako se prilikom ažuriranja konfiguracije ne bi automatski pokrenuo.

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

Sama procedura izgleda ovako:

Procedura RoutineTaskExecutionProcessing(Key) Izvoz

Parametri RoutineTasks.PerformProcessingWithParameters(Key);

Kraj procedure

Kreiramo priručnik za rutinske zadatke

Naš rutinski zadatak može pokrenuti mnoge pozadinske procese - po jedan za svaku obradu. Svaki zadatak na 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.

Priručnik “Parametri planiranih zadataka” :

Requisites :

· CodeBefore Launch- neograničen niz - kod na 1C jeziku koji se mora izvršiti prije pokretanja.

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

· Obrada iz direktorija - red (100) - veza do elementa direktorija “Spoljna obrada”, ako postoji u konfiguraciji

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

· Launch code- - neograničena linija - kod na 1C jeziku koji će se izvršiti kada se pokrene planirani zadatak.

Kreirajmo oblik elementa :

Klikom na „Kreiraj reg. zadatak" rutinski zadatak sa šifrom ključa kreira se programski:

Procedura BasicActionsFormCreateReglTask(Button)

Variable Job;

Ključ = AbbrLP(Kod);

Zadatak = RoutineTasks.CreateRoutineTask("PerformProcessing");

Task.Name = Ključ;

Task.Key = Ključ;

Parametri = Novi niz();

Parameters.Add(Key);

Task.Parameters = Parametri;

Task.Write();

Kraj procedure

Pokretanje planiranog zadatka

Svaki rutinski zadatak koji kreiramo ima ključ:

Ovaj ključ odgovara kodu u direktoriju “Parametri rutinskih zadataka”; koristi se za pretraživanje pri pokretanju zadatka. Ako unos direktorija nije pronađen, zadatak se ne izvršava.

Dalje, ako je kod datCodeBefore Launch tada će se ovaj kod izvršiti. Zatim, ako je varijabla Ispuni procijeni na false, zadatak neće biti dovršen. Varijabla dostupna za analizu Opcije, gdje je pohranjena veza do pronađenog elementa direktorija “Parametri rutinskih zadataka”.

Ovisno o odabranim vrijednostima detalja, pokrenut će se ili kod na 1C jeziku, ili će se pokrenuti obrada iz konfiguracije ili će se pokrenuti obrada iz standardne referentne knjige „Spoljna 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 eksterne obrade. Da biste to učinili, morate označiti potvrdni okvir "Pokreni kroz 1C aplikaciju". U suprotnom, planirani zadatak će se izvršiti na serveru.

Preporučujem da postavite korisnika u polje „Korisnik“ za novokreirani 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 rutinskog zadatka. Možete koristiti obradu „Rutinske konzole zadataka“.