Renginių abonementai 1c 8.2 Valdos tvarkymas. Įvykių tvarkyklių priskyrimas naudojant įvykių prenumeratas. „Renginio studijos“ programos naudojimo instrukcijos

Kuriant ar modifikuojant taikomųjų programų sprendimus 1C:Enterprise 8.x platformoje, labai dažnai tenka atlikti kokį nors standartinį veiksmą konfigūracijos objektų grupei (pavyzdžiui, katalogams). Kad nebūtų aprašyti kiekvieno objekto modulyje atliekami veiksmai, kūrėjas gali naudoti standartinį platformos mechanizmą – įvykių prenumerata.

Įvykių prenumerata leidžia perimti konfigūracijos objektų įvykius, pvz., žinynus, dokumentus, charakteristikų tipų planus ir kt. Šiandien straipsnyje mes apsvarstysime įvykių prenumeratos tvarkyklių vykdymo sekos klausimą, taip pat išanalizuosime platformos elgesį, kai vienam veiksmui (pavyzdžiui, įrašant) yra kelios įvykių prenumeratos.

Standartinis elgesys

Mūsų pavyzdyje naudojamas koks nors katalogas „SimpleDirectory“. Jame yra renginių prenumeratos kiekvienam įvykiui, į kurį kūrėjas gali įsikišti. Įvykių apdorojimo procedūros yra atitinkamame serverio bendrame modulyje.

Prenumeratos tvarkyklių iškvietimo tvarka yra tokia pati kaip standartinėje platformos elgsenoje dirbant su nurodytu objektu. Kadangi mūsų pavyzdyje svarstome galimybę dirbti su žinynu, siūlau apsvarstyti tvarkytojų iškvietimo schemą, atsižvelgiant į veiksmus su objektu (žr. tolesnę ekrano kopiją).

Kaip matome, pradiniame etape įvykių tvarkyklės yra iškviečiamos „ProcessingFill“ (kurti naują elementą) arba „OnCopy“ (sukurti elementą pagal esamą). Abiem atvejais, iškvietus įvardytus tvarkytojus, vykdoma procedūra „OnSettingNewCode“, kai kūrėjas gali nustatyti kode priešdėlį arba nepaisyti platformos elgesio priskirdamas naują kodą.

Rašant katalogo elementą, nesvarbu, ar tai naujas, ar esamas, vadinami trys tvarkyklės: „ProcessingFill Check“ (šiuo etapu tvarkytojas gali patikrinti įvestų duomenų teisingumą ir, jei yra klaidų, atsisakyti rašyti), „BeforeWrite“ (kol objektas neįrašytas į duomenų bazę, galima koreguoti detalių reikšmes ir patikrinti papildomas sąlygas) ir tada „On Write“ (įrašas buvo padarytas į duomenų bazę, bet operacija nėra uždarytas, kūrėjas gali patikrinti duomenis po įrašo ir, jei reikia, atšaukti operaciją).

Įvykis „BeforeDeletion“ įvyksta tik tuo atveju, jei objektas ištrinamas tiesiogiai iš informacijos bazės. Paprastai nė vienas vartotojas neturi tiesioginių trynimo teisių be nuorodos vientisumo patikrinimo. Ištrynimas visada turi būti atliekamas naudojant „Pažymėtų objektų trynimą“. Pastaruoju atveju taip pat iškviečiama „BeforeDelete“ tvarkytuvė.

Taigi, jei sukursime katalogo elementą ir įrašysime jį į informacijos bazę, platforma nurodyta tvarka iškvies šias įvykių tvarkykles:

Kalbant apie kitus konfigūracijos objektus, įvykių prenumeratos mechanizmo veikimas bus panašus, gali skirtis tik įvykiai ir jų tvarka. Norėdami gauti daugiau informacijos, žr. sintaksės pagalbininką.

Nedokumentuota pusė

Dabar apsvarstykite įdomią situaciją. Tarkime, kad mūsų žinynui „SimpleCatalog“ yra apibrėžtos trys įvykio „BeforeWrite“ prenumeratos:

Kaip manote, kokia tvarka bus kviečiami šių prenumeratų tvarkytojai? Nespėkime. Pateiksiu elemento rašymo rezultatą, kur kiekvienos prenumeratos tvarkytojas rodo pranešimą su skambintos prenumeratos pavadinimu (žr. toliau pateiktą ekrano kopiją).

Iš ekrano kopijos nesunku atspėti, kad įvykių prenumeratos tvarkyklės procedūrų iškvietimo tvarka atitinka „Įvykių prenumeratos“ šakoje esančių metaduomenų objektų tvarką. Ši funkcija nėra aprašyta jokioje informacinėje literatūroje apie 1C:Enterprise platformą, todėl ją naudodami ir konfigūruodami turėtumėte būti atsargūs, nes nedokumentuotos funkcijos gali keistis įvairiose 1C:Enterprise versijose ir tuo pačiu metu nėra programos pakeitimų sąraše.

Atsitraukti

Jūs klausiate: "Kodėl sukurti kelias prenumeratas vienam konfigūracijos objekto įvykiui?". Atsakymas paprastas. Jei kuriant dalyvauja keli žmonės, kišimasis į vienas kito sukurtus mechanizmus gali lemti netinkamą programos veikimą. Tokiais atvejais logiškiausia būtų kiekvienam kūrėjui pagal užduotį sukurti atskiras renginių prenumeratas. Žinoma, gali būti, kad ateityje jie bus sujungti į vieną tvarkytojo procedūrą.

Šis straipsnis yra pranešimas apie naujas funkcijas.
Nerekomenduojama naudoti šio straipsnio turinio norint išmokti naujų funkcijų.
Išsamus naujos funkcijos aprašymas bus pateiktas atitinkamos versijos dokumentacijoje.
Visas naujos versijos pakeitimų sąrašas pateikiamas faile v8Update.htm.

Įdiegta EDT 1.7.0.567 versijoje.

1C:Enterprise Development Tools (EDT) įdiegėme naujo įrankio prototipą. Darbinis šio įrankio pavadinimas yra redaktorius Visi renginių prenumeratos. Tai padės patogiai analizuoti visų įvykių, kurie yra programos sprendime, prenumeratas.

Renginių prenumerata

1C:Enterprise platforma leidžia kurti konfigūracijos objektų įvykių prenumeratas taikomosios programos sprendime. Prenumerata yra procedūra, kuri bus vykdoma po to, kai įvykdys pradinė įvykių tvarkytoja. Prenumeratos patogumas slypi tame, kad viena procedūra gali būti „užsiprenumeruota“ įvairiems konfigūracijos objektams priklausančiam įvykiui. Taigi, jei yra algoritmas, kurį reikia vykdyti ir registruojant organizaciją, ir įrašant skyrių, jį galima įdėti į prenumeratą ir tada net nereikia keisti šio įvykio tvarkyklių pačiuose objektuose .

Pasirodo, abonementas yra patogus ir universalus mechanizmas. Tačiau dideliuose programų sprendimuose renginių prenumeratų skaičius gali siekti kelis šimtus. Pasidaro nepatogu juos analizuoti konfigūracijos medyje, tiesiniame sąraše. Pavyzdžiui, taikomame sprendime 1C: įmonės valdymas (ERP) virš 340 renginių prenumeratų.

EDT šiek tiek palengvina darbą su prenumeratais, rodydamas jas skydelyje Schema kai atidaromas bet kurio taikomosios programos objekto modulis.


Šis prenumeratų rodymas patogus atliekant daugybę užduočių, susijusių su modulio redagavimu. Tačiau jis vis tiek netinka, kai reikia greitai surasti ir išanalizuoti visus algoritmus, kurie vykdomi prenumeratose įvykus įvykiui.

Visi renginių prenumeratos

Siekdami atsikratyti aukščiau išvardytų nepatogumų, įdiegėme bendrą būdą pateikti prenumeratas, įvykius, konfigūracijos objektus ir procedūras, kurios įgyvendina prenumeratos algoritmus.


Dėl to galite paskambinti redaktoriui Visi renginių prenumeratos visai konfigūracijai arba tik vienam objektui - skirtumas bus tik tam tikru būdu filtruotų duomenų sudėtyje.


Kairėje pusėje redaktorius rodo visus įvykius ir kiekviename įvykyje visas jo prenumeratas. Kai pasirenkama konkreti prenumerata, viršuje dešinėje rodomas konfigūracijos objektų, kuriems prenumerata yra „prenumeruojama“, sąrašas. O apačioje dešinėje rodomas modulis ir procedūra, kurioje yra prenumeratos algoritmas. Dukart spustelėję procedūrą, galite ją atidaryti integruotoje kalbos rengyklėje.

Būdami redaktoriuje galite analizuoti ne tik atskiras prenumeratas, bet ir visas su tuo pačiu įvykiu susijusias prenumeratas. Jei pasirinksite įvykį, redaktorius parodys visus modulius ir visas procedūras, užprenumeruotas šiam įvykiui valdyti.


Jei konfigūracijos objekte iškviečiate redaktorių, bus rodomi tik to objekto įvykiai ir prenumeratos, o pats objektas šaltinio sąraše visada bus paryškintas raudonai. Taigi galite greitai patikrinti, pavyzdžiui, ar jūsų pasirinkta prenumerata tinka visiems konfigūracijos objektams, kuriems to reikia.


Redagavimo priemonės iškvietimas kontekstine komanda (konfigūracijos objekte) leidžia iš karto sumažinti redaktoriuje rodomų prenumeratų skaičių. Pavyzdžiui, galite peržiūrėti tik tų įvykių, kurie apdorojami objekto modulyje arba valdytojo modulyje, prenumeratas.


Be to, redaktoriuje yra universalus filtras, su kuriuo galite savavališkai tinkinti objektų, įvykių ir procedūrų sudėtį.


Atminkite, kad naudodami šį filtrą galite pasirinkti ne tik konkrečius objektus, kurie yra įvykių šaltinis, bet ir tipų rinkinius, pvz. DirectoryObject, DocumentObject ir kiti. Tokie tipų rinkiniai apima visus katalogus arba visus konfigūracijoje esančius dokumentus.

Naudodami eilučių paiešką galite greitai rasti tik tas prenumeratas, kurios taikomos jus dominančiam varikliui.


Bet kuriuo metu galite greitai filtruoti turinį pagal redagavimo priemonėje rodomą įvykį arba šaltinį. Pavyzdžiui, radote prenumeratą Patikrinkite formulės skaičiavimą. Jo šaltinis yra skaičiavimo tipų planas Laiko.


Naudodami kontekstinę skaičiavimo tipų plano komandą, galite greitai pamatyti tik tas prenumeratas, kurios yra susietos su jos įvykiais.


Automatinis lūžio taškų pridėjimas

Vienas įprastas įvykių prenumeratos analizės būdas yra nuosekliai peržiūrėti visas iškviestas procedūras derinimo priemonėje ta tvarka, kuria jos buvo vykdomos. Norėdami tai padaryti, redaktorius suteikia patogų įrankį, leidžiantį automatiškai pridėti lūžio taškus prie tvarkyklių.

Visų pirma, galite iškviesti šį įrankį tiesiai į redaktorių.


Galite rasti ir pasirinkti jus dominantį objektą, pasirinkti vieną iš jo įvykių ir pažymėti, pavyzdžiui, visus tvarkytojus. Paspaudus Gerai lūžio taškai bus pridėti prie kiekvienos patikrintos tvarkyklės pirmosios vykdomosios eilutės ir visos šios lūžio taškai bus rodomi skydelyje Lūžio taškai perspektyvoje Derinimas.


Kitas būdas įtraukti lūžio taškus patogus tada, kai jau suradote jus dominantį objektą ar įvykį redaktoriuje. Tokiu atveju galite iškviesti jums tinkamą komandą iš kontekstinio meniu.


Ir galiausiai, trečiasis būdas, kurį galite naudoti, yra automatiškai pridėti lūžio taškus jau derinimo procese. Tokiu atveju redaktoriaus atidaryti nereikia, nes komanda pridėti yra tiesiai skydelyje Lūžio taškai.


Taigi redaktorius Visi renginių prenumeratos yra universalus įrankis, leidžiantis naudoti įvairius analizės scenarijus. Jis bus naudingas ne tik gerai taikomą sprendimą išmanantiems kūrėjams, bet ir diegimo specialistams ar IT specialistams, kuriems reikia susidurti su nepažįstamu funkcionalumu.

Sprendžiant įvairias vartotojų užduotis, kartais iškyla poreikis jau suformuotus dokumentų judėjimus (būtent tam tikrus registrų rinkinius) pakoreguoti.

Šiems tikslams labai tinka objektas „Renginių prenumerata“, leidžiantis atlikti kai kuriuos veiksmus, kai tam tikras įvykis įvyksta dideliam skaičiui objektų (pavyzdžiui, įrašant mokėjimo dokumentus ar nustatant naują katalogų skaičių, susijusį su mokesčių apskaita).

Taip pat renginio prenumerata patogu, nes leidžia atlikti įvairius veiksmus nekeičiant skirtinguose moduliuose aprašytų tipinių mechanizmų.

Pavyzdžiui, iškilo užduotis - reikia įrašyti tam tikrus duomenis (informaciją apie įmonės veiklą) mokėjimo dokumentuose suformavus pagrindinius dokumento judesius (suformuojamus renginyje „Apdorojimas“). Užduotis bus įgyvendinta konfigūracijoje „Gamybos įmonės valdymas“ red. 1.3.

Pažvelkime į sprendimą išsamiau:

Sukurkime naują renginio „Mokėjimo krypties įrašymas“ prenumeratą. Prenumerata turi keletą savybių, kurios nulems jos elgesį:

Šaltinis yra objektas (pavyzdžiui, dokumentas arba dokumentų sąrašas), kuriam bus iškviestas veiksmas. Mūsų atveju mes pasirenkame Išeinantis mokėjimo nurodymas ir Gaunamas mokėjimo nurodymas

Renginiai- pats veiksmas, po kurio bus vykdomas mūsų kodas. Pagal problemos sąlygas pasirenkame Apdorojimas

Prižiūrėtojas- nurodymas, kokia tvarka bus atliktas apdorojimas. Šiems tikslams pasirenkame bendrąjį modulį Pagrindinis tikslas.

Pasiekus aukščiau nurodytus tikslus, sukuriama procedūra, kurios metu reikia įdėti kodą, kad būtų užpildyti duomenys apie kryptį (tarkime, kad tokia informacija jau yra mokėjimo nurodymuose).

Apsvarstykite jo parametrus:

Šaltinis– šis DirectoryObject arba DocumentObject tipo objektas, dėl kurio atliekamas veiksmas.

Atsisakymas- parametras, leidžiantis tam tikromis sąlygomis atšaukti dokumento paskelbimą.

Laikymo režimas- vykdymo parinktys (operacinės ar neveikiančios), leidžiančios įvairiais būdais kurti apdorojimo algoritmus.

Sustokime ties parametru Šaltinis. Mūsų užduočiai šio parametro tipas bus - DocumentObject. Šiam tipui yra kolekcija judesiai A, kuriame yra visi registro įrašų rinkiniai, kuriems šis dokumentas yra registratorius.

Šioje kolekcijoje yra įrašų rinkinys Atsiskaitymai su sandorio šalimis Nustatykite įrašus kas mus domina. Tarkime, kad registre yra sukurta dimensija Kryptis, kurią turime užpildyti iš dokumento.

Parašykime tokį kodą:

Rinkiniai = Šaltinis. judesiai; Skaičiavimai = rinkiniai. Atsiskaitymai su rangovais; Kiekvienam puslapiui iš skaičiavimų ciklo puslapio. Kryptis = Šaltinis. Kryptis; EndIf ;

Kaip matome, įgyvendinimas yra gana paprastas, apdorojus veiksmą, norint parašyti rinkinį, nereikia atlikti papildomo veiksmo – renginio prenumerata atliekama kaip ProcessingPerforming įvykio operacijos dalis, ją užbaigus rinkinys bus parašytas automatiškai.

Šio metodo pranašumai: duomenų apdorojimas už standartinių algoritmų ribų, sumažėjęs darbo kiekis ieškant ir perkeliant pakeitimus atnaujinimų metu, didesnis matomumas – visas kodas vienoje procedūroje.

Šio požiūrio trūkumas: pailgėja dokumentų tvarkymo ir žinynų elementų įrašymo laikas.

Tikiuosi, kad ši informacija bus naudinga ir pradedantiesiems programuotojams, ir jų labiau patyrusiems kolegoms kaip akiračio pratęsimas.

Kai vartotojas atlieka bet kokius veiksmus, 1C platforma generuoja programos įvykius. Paprastai generuojamas ne vienas įvykis, o visa įvykių grandinė. Programuotojo užduotis yra teisingai įdėti programos kodą į įvykius, kad būtų pasiektas laukiamas programos elgesys. Tačiau pradedantiesiems 1C programuotojui tai padaryti nebus lengva dėl toliau išvardytų priežasčių.

Įvykiai gali būti generuojami valdoma forma: OnReadOnServer, OnCreateOnServer, OnOpen ir kt.

Valdomos formos įvykiai generuojami kliente ir serveryje: BeforeWrite, BeforeWriteOnServer.

Įvykiai iškviečiami skirtinguose moduliuose: ItemForm, ObjectModule, ManagerModule.

Kai kurie įvykiai gali būti iškviesti kelis kartus, jei sąraše yra keli nuorodos elementai, pavyzdžiui: ProcessingViewReceiving.

Valdoma forma gali būti atidaryta atliekant skirtingus vartotojo veiksmus, o įvykių iškvietimo grandinės skirsis. Bet kuriam iš šių vartotojo veiksmų su katalogu bus atidaryta valdoma forma: naujo elemento kūrimas, elemento kopijavimas, esamo katalogo elemento keitimas.

Įvykius taip pat generuoja formos elementai: kai eilutė pridedama prie lentelės sekcijos, kai redaguojama lentelės skilties eilutė, kai aktyvuojama eilutė ar laukas, kai įvesties lauke pasirenkamas paieškos elementas ir kt.

Norėdami geriau suprasti suaktyvintų įvykių logiką ir seką, galite naudoti prie šio straipsnio pridėtą „Įvykio tyrimo“ plėtrą. Žinant įvykio kontekstą, įvykių seką ir veiksmus, kuriuos vartotojas atliks, bus lengviau suprasti, kokiam įvykių tvarkytojui geriausia patalpinti savo programos kodą.

„Renginio studijos“ programos naudojimo instrukcijos

Programa „Event Study“ rodo įvykius, kuriuos 1C platforma generuoja interaktyvių vartotojo veiksmų metu. Veikimo principas yra toks, vartotojas atidaro katalogą, programa rodo įvykių grandinę. Vartotojas pažymi katalogo elementą ištrinti, programa rodo įvykusių įvykių seką. Įvykiai rodomi su trumpu numatytuoju 3 sekundžių delsa, tai būtina norint atskirti vieną įvykių grandinę nuo kitos įvykių grandinės. Todėl interaktyvius veiksmus reikia atlikti „lėtai“.

Visi įvykiai rodomi specialiame lange „Naujausi įvykiai“. Tai leidžia įjungti arba išjungti įvykių įrašymą. Pagal numatytuosius nustatymus, kai atidarote jį pirmą kartą, įvykių registravimas įjungiamas. Patariu iškart paleidus programą ekrano apačioje pataisyti langą „Paskutiniai įvykiai“, kad būtų patogu peržiūrėti įvykius.

Pati programa negali nustatyti, koks veiksmas sukėlė įvykių grandinę, patariu įvesti paskutinių veiksmų pavadinimus iš klaviatūros į lauką „Veiksmo priežastis“, pavyzdžiui, „Katalogų sąrašo forma atidaryta“, „Elementas katalogų sąraše yra pažymėta ištrinti“ ir kt. Tai palengvins vėlesnę veiksmų ir įvykių analizę.

Įvykiai įrašomi ir rodomi objektams, patalpintiems skyriuje Įvykių sekimas, jei formoje Naujausi įvykiai įgalintas įvykių įrašymas.

Visus įrašytus įvykius galima peržiūrėti per „Įvykių ataskaitą“, esančią skiltyje „Paslauga“.

Norėdami greitai išvalyti visus įrašytus veiksmus ir įvykius skiltyje „Paslauga“, pasirinkite „Išvalyti įvykius ir veiksmus“.

Įvykių prenumeratos mechanizmas skirtas priskirti įvykių tvarkyklę vienam ar keliems 1C:Enterprise konfigūracijos objektams. Straipsnyje aptariami keli šio mechanizmo taikymo pavyzdžiai. Perskaitę straipsnį sužinosite:

  • Kas yra renginių abonementas ir kaip juo naudotis praktiškai?
  • Kaip patikrinti, ar rašant katalogo elementą nedubliuojamas pavadinimas, nekeičiant paties katalogo modulių?
  • Kaip naudojantis renginio abonementu užtikrinti judesių formavimąsi kaupimo registre talpinant dokumentą?
  • Kaip užtikrinti pagrindinės dokumento formos pakeitimą?

Pritaikomumas

Straipsnyje aptariama 1C:Enterprise platforma, 8.3 versija. Pateikta informacija yra susijusi su dabartiniais platformos leidimais.

Renginių prenumerata

Straipsnyje aptariami keli vieno iš pagalbinių 1C:Enterprise 8 platformos objektų naudojimo pavyzdžiai - renginių prenumeratos.

Įvykių prenumeratos leidžia į bendrinamus modulius įdėti išorines tvarkykles, kurios bus vykdomos įvykdžius konkrečią įvykių tvarkyklę objekto modulyje arba valdytojo modulyje.

Kuriame neprivaloma atlikti objekto modulio arba valdytojo modulio pakeitimus. Taigi programinės įrangos galimybė modulių plėtiniai be jų modifikavimo– Tai labai naudinga technika keičiant standartinius sprendimus.

Renginių prenumerata aprašyta temoje Yra dažni konfigūracijos objekto langai (1 pav.).

Jei konfigūracija sukuria tam tikro objekto įvykio prenumeratą, pavyzdžiui, įvykio Prieš rašant () dokumento objektas, tada, kai įvyksta šis įvykis, platforma atlieka tokią veiksmų seką.

  1. Vykdoma įvykių tvarkyklė Prieš rašant () dokumento objekto modulyje.
  2. Jei tvarkyklės vykdymo metu parametras Atsisakymasįgauna vertę Tiesa arba daroma išimtis, įvykių tvarkymas nutraukiamas.
  3. Jei įvykio apdorojimas nebuvo nutrauktas atliekant antrąjį veiksmą, tada vykdomi išoriniai tvarkyklės (įvykių prenumeratos), nustatytos įvykiui. Prieš rašant ().
  4. Jei išorinės tvarkyklės vykdymo metu parametras Atsisakymasįgauna vertę Tiesa arba išmetama išimtis, išorinio prižiūrėtojo vykdymas nutraukiamas.

Prenumeruodami renginius galite organizuoti atliekant įvairius patikrinimus, kurios vykdomos, kai objektai įrašomi į duomenų bazę.

1 užduotis

Rašydami katalogo „Rangovės“ elementą, patikrinkite, ar nėra vardo dubliavimo – nekeičiant paties katalogo modulių.

Norėdami išspręsti problemą, turite sukurti bendrą modulį Įvykių prenumeratos tvarkytojai. Nustatykite vėliavėlę modulio ypatybių paletėje Serveris ir klientas (įprasta programa). Antroji vėliavėlė reikalinga tam, kad renginio prenumerata veiktų įprastoje programoje.

Vėliava Klientas (įprasta programa) galima, jei konfigūratoriaus parametruose nustatytas redagavimo režimas Valdoma programa, palyginti su įprasta programa.

Filiale Yra dažni konfigūracijos objektų lange sukuriama nauja įvykių prenumerata. Įveskite prenumeratos pavadinimą ypatybių paletėje Katalogo pavadinimo tikrinimas. Pasirinkimo laukelyje Šaltinis pažymėti duomenų tipą DirectoryObject.Contractors. Pasirinkimo laukelyje Renginys pasirinkite įvykį Prieš rašant (). Apdorojus šį įvykį, bus suaktyvinta įvykio prenumeratos apdorojimo procedūra (2 pav.).

Pasirinkimo laukelyje Prižiūrėtojas nurodytas bendrasis modulis, kuriame yra įvykių prenumeratos tvarkytuvas. Šiame lauke spustelėkite mygtuką Atidaryti, pasirinkite modulį Įvykių prenumeratos tvarkytojai ir paspauskite Gerai. Sistema automatiškai sukurs procedūrą bendrame modulyje su parametrais Šaltinis Ir Atsisakymas. Pagal parametrą Šaltinis objektas, kuriam kuriama renginio prenumerata, perduotas - DirectoryObject. . Pagal parametrą Atsisakymas perduodamas atsisakymo rašyti elementą ženklas.

Procedūroje Tikrinamas katalogo pavadinimasPrieš rašant() pateikiama užklausa į katalogą Sandorio šalys. Įrašyto žodyno elemento pavadinimas perduodamas kaip užklausos parametras Sandorio šalys. Jei elementas tokiu pačiu pavadinimu jau yra duomenų bazėje, tada parametras Atsisakymas nustatyti į vertę Tiesa(elemento įvedimas atšauktas) ir rodomas atitinkamas diagnostikos pranešimas.

Procedūrų sąrašas Tikrinamas katalogo pavadinimasPrieš rašant()

Praktikoje galite susidurti su užduotimi atlikti judesius papildomuose registruose, kai skelbiate standartinės konfigūracijos dokumentus. Papildomų registrų sukūrimas leidžia išvengti esamų registrų modifikavimo ir tuo pačiu gauti galimybę papildomai tvarkyti duomenis vykdant standartinius dokumentus.

2 užduotis

Sukurti kaupimo apyvartos registrą „Lėšų disponavimas“ ir užtikrinti judėjimų formavimą šiame registre, registruojant dokumentą „Išlaidų kasos orderis“, naudojant renginių prenumeratos mechanizmą.

Sukurkite naują apyvartos registrą pavadinimu Grynųjų pinigų išleidimas. Pasirinkite registratorių „Išlaidų kasos orderis“. Pridėti registro matmenis:

Sukurti registro šaltinį:

Suma, tipas Skaičius, Ilgis – 15, Tikslumas – 2.

Dokumente „Išlaidų grynųjų pinigų orderis“ sukurkite rekvizitą StraipsnisJudėjimas su duomenų tipu HandbookLink.Straipsniai Pinigų judėjimai.

Vardas - Grynųjų pinigų išleidimo judesiai;
Šaltinis – DocumentObject.RKO;
Renginys - Apdorojimas.

Bendrajame modulyje Įvykių prenumeratos tvarkytojai sukurti tvarkyklę . Tvarkytojas apeina lentelinę dokumento dalį „Išlaidų kasos orderis“ ir generuoja judesius kaupimo registre Grynųjų pinigų išleidimas.

Procedūrų sąrašas Grynųjų pinigų išmetimo judėjimaiProcessingConducting()

Įprastose konfigūracijose gali prireikti patobulinti pagrindinę kurio nors objekto formą, pavyzdžiui, dokumentą. Šią užduotį galima išspręsti naudojant renginių prenumeratas. Taip sukuriama pagrindinės dokumento formos kopija. Naujoje formoje atliekami būtini pakeitimai. Naudojant įvykių prenumeratos mechanizmą, vietoj pagrindinės formos atidaroma nauja forma. Šiuo atveju pagrindinė forma, kuri yra palaikoma, lieka nepakitusi.

3 užduotis

Pateikite pagrindinės dokumento formos „Išlaidų pinigų orderis“ pakaitalą.

Sukurkite naują dokumento formą „Kasos išlaidų orderis“ su pavadinimu FormDocumentClient. Atlikite savavališkus formos pakeitimus, pavyzdžiui, pakeiskite valdiklių tvarką. Norėdami iškviesti šią formą, turite naudoti renginio prenumeratą Gavimo formos tvarkymas () dokumentų tvarkyklės modulyje „Išeinantis kasos pavedimas“.

Sukurkite naują renginio prenumeratą:

Vardas - Pagrindinė RKO forma;
Šaltinis – DocumentManager.RKO;
Renginys - ProcessingReceivingForm.

Bendrajame modulyje Įvykių prenumeratos tvarkytojai sukurti tvarkyklę . Į tvarkyklę kaip parametrą Pasirinkta forma perduodamas atidarytos formos pavadinimas.
Parametras Standartinis apdorojimas yra nustatytas Melas norėdami išjungti pagrindinės formos atidarymą.

Procedūrų sąrašas Pagrindinės formos RKOProcessingGettingForm()

Norėdami ieškoti tam tikram konfigūracijos objektui apibrėžtų įvykių prenumeratų, galite naudoti objektų nuorodos paieškos mechanizmą. Norėdami tai padaryti, konfigūracijos objektų lange pasirinkite objektą ir kontekstiniame meniu vykdykite komandą Nuorodų į objektą paieška. Įvykdžius komandą, paslaugų pranešimo lange bus rodomas objektų sąrašas su nuorodomis į ieškomą objektą.

Taigi renginių prenumeratos suteikia galimybę pridėti naujų funkcijų nekeičiant esamų objektų modulių. Renginių prenumeratos trūkumai yra šie:

  • Algoritmų sudėtingumo didinimas.
  • Galite užsiprenumeruoti tik objektų ir objektų valdytojų renginius.

Jei reikia modifikuoti bet kurį formos įvykį, įvykio prenumeratos mechanizmas nepasiekiamas. Tokiu atveju turite atlikti pačios formos pakeitimus arba nukopijuoti formą ir atlikti naujo objekto pakeitimus.



Turite klausimų?

Pranešti apie rašybos klaidą

Tekstas siunčiamas mūsų redaktoriams: