Vstúpiť
Všetky počítačové tajomstvá pre začiatočníkov a profesionálov
  • Zmena farby textu a pozadia
  • Vytvorenie vlastnej prezentácie Ako zmeniť pozadie v prezentácii openoffice
  • Ako odstrániť hlavičky a päty v Exceli Vložte hlavičku a päty v Exceli
  • Ako nastaviť, zmeniť, zmeniť rozmery v AutoCADe?
  • Služba FTP - prenos súborov
  • Používanie vrstiev v aplikácii AutoCAD Vytvorenie novej vrstvy v aplikácii AutoCAD
  • Očakáva sa, že namiesto toho bude definovaná funkčná procedúra. Rozšírenie modulu. Viac o konfiguračných rozšíreniach

    Očakáva sa, že namiesto toho bude definovaná funkčná procedúra.  Rozšírenie modulu.  Viac o konfiguračných rozšíreniach

    Hlavným problémom práce s rozšíreniami je neobjektívne hodnotenie počtu pripravovaných vylepšení zo strany vývojárov/implementátorov. Na základe predpokladu „potrebujeme zmeniť iba niekoľko tlačidiel vo formulári“ začína práca s rozšíreniami. Počet vylepšení rastie, rozšírenia sa naďalej používajú na základe správy „rozšírenia už používame, používajme ich ďalej“.

    Potom vzniká potreba pridávať do databázy nové entity a rozširovať štruktúru existujúcich. Alebo zmeňte princíp fungovania akéhokoľvek typického subsystému. Práca s rozšíreniami je čoraz ťažšia až nemožná. Konfigurácia umožňuje možnosť zmeny a začína „mäkkou“ alebo „tvrdou“ modifikáciou štandardnej konfigurácie v závislosti od kvalifikácie vývojárov.

    Toto je moment, kedy do zoo prichádza technológia. Heterogenita, už žijúca v korporátnom systéme, si veselo mädlí ruky, uvedomujúc si, že získala dobrý odrazový mostík z prehľadnosti a jednoduchosti.

    Samozrejme, v tejto chvíli sa môžete zbaviť jedného zo zvierat v technologickej zoo a správne preniesť všetky zmeny do konfigurácie. Potom sa totiž budete musieť „postarať“ o dve beštie – rozšírenia aj úpravy v tej najštandardnejšej konfigurácii. Upratujte po nich, nakŕmte ich, nejako sa medzi sebou zmierte, aby v procese spolupráce nič neporušili, pridajte ďalší riadok do zoznamu požiadaviek pre vývojárov na voľných pozíciách Headhunter.

    Z dobrého dôvodu je potrebné urobiť toto. Heterogenita však vie, že ľudia sú leniví, boja sa dotknúť sa niečoho, čo aspoň ako-tak funguje, vždy „nemajú čas“ a manažment nie je schopný posúdiť potrebu refaktorizácie v tomto kritickom momente na opustenie nepotrebnej technológie. Vylepšovania zmien vykonaných prostredníctvom rozšírení sa naďalej vykonávajú prostredníctvom rozšírení. Vylepšenia vykonané v konfigurácii sa naďalej vykonávajú v konfigurácii. Hlavný nepriateľ architektúry podnikového softvéru je pevne zakorenený v zajatom predmostí.

    Vo všeobecnosti je lepšie dôkladne premyslieť, kým začnete používať vysoko špecializovanú technológiu. Ak existuje riziko, že bude potrebné zmeniť štruktúru objektov alebo pridať nové databázové objekty, je potrebné často a bez problémov spúšťať ladenie, sú ľudia, ktorí rozumejú, ako na začiatku bez problémov zmeniť konfiguráciu pre následné aktualizácie, potom je lepšie sa okamžite rozhodnúť nevytvoriť zoologickú záhradu. Nikto nezobral predefinované moduly, programovú úpravu formulárov a predplatné podujatí. Ak je firma malá a pre zamestnancov je dôležité, aby sa konfigurácia aktualizovala jedným tlačidlom teraz a vždy v budúcnosti, k zásadným zmenám určite nedôjde (naozaj isté?), tak nebude zoo ani s rozšíreniami.

    A samozrejme, rozšírenia sú dobré pre malé pluginy. Na IP sú príklady dobrého využitia, keď sa namiesto cf súboru zverejňujú rozšírenia s návodom na porovnávanie a zlučovanie. To je ale opäť špecifická oblasť a pre pohodlné neustále používanie je lepšie preniesť funkcionalitu do konfigurácie, aby sa nespomalilo spúšťanie v podnikovom režime.

    Dnes vám chceme povedať o využití dodatočných reportov a spracovaní, a najmä konfiguračných rozšírení v modeli služieb. Technológie nestoja, servis 1C databáz v cloude sa stáva čoraz atraktívnejšou službou. Čo potrebujete vedieť, aby sa funkcionalita potrebná pre vašu spoločnosť implementovala do prenajatej databázy a ako tento proces vyzerá zo strany poskytovateľa služieb – o tom sa dozviete pod strihom.

    Čo sú externé správy a spracovanie

    Ošetrenia 1C sú odlišné, ale v každom prípade rozširujú funkčnosť konfigurácie a umožňujú rýchly prístup k informáciám uloženým v databáze bez zmeny konfigurácie a bez odstránenia podpory. Môžu byť zabudované priamo do konfigurácie, pridané ako rozšírenie konfigurácie alebo môžu byť externými súbormi.

    Spracovanie je podľa funkčnosti rozdelené na tie, ktoré dokážu meniť dáta a tie, ktoré jednoducho analyzujú informácie a zobrazia výsledok v užívateľsky príjemnej forme (správy). Aby sa nemenili štandardné rozloženia tlače dokumentov, boli vyvinuté externé tlačové formy. Externé spracovanie je tiež možné vykonávať podľa daného plánu na aplikačnom serveri 1C - ide o rutinné úlohy.

    V Buttone bolo vyvinutých niekoľko desiatok riešení spracovania, ktoré našim účtovníkom umožňujú používať „praktickú mágiu“. Napríklad na analýzu správnosti účtovania v tlačidle sa používa externý prehľad „Automatický audit databázy“. Ľahko čitateľné tabuľky poskytujú analýzu 120 kritérií pre stavy a obraty účtov, súlad údajov z daňových priznaní a účtovných informácií, analýzu dlhodobého majetku atď.

    Príklad externého tlačeného formulára „zmluva o pôžičke“ podľa formulára vypracovaného našimi právnikmi. Sú prípady, keď si podnikateľ ako fyzická osoba zoberie od svojej firmy bezúročnú pôžičku, alebo naopak prevedie do firmy vlastné prostriedky, vtedy je možné zmluvu ihneď vytlačiť.

    Otvorí sa formulár na vyplnenie potrebných údajov:

    A zobrazí sa tlačená forma zmluvy:

    Plánované spracovanie (rutinné úlohy) využívame napríklad na opravu výpisov. Tlačidlá majú nastavené integrácie s veľkými bankami a špeciálne roboty načítavajú výpisy priamo do 1C. Vďaka technológii strojového učenia sa percento chýb pri vybíjaní znížilo na 3 %. Ako vždy však existujú výnimky, napríklad klienti, ktorí na predaj tovaru využívajú agentúrnu schému, v tomto prípade sú pravidlá pre vedenie bankového výpisu individuálne. Aby nedošlo k preprogramovaniu robota pre konkrétny prípad, pred príchodom rozšírení konfigurácie sa použila rutinná úloha na opravu výroku robota každých 10 minút.

    Čo sú rozšírenia konfigurácie

    Rozšírenie je mini konfigurácia, ktorá dedí objekty z hlavnej konfigurácie databázy a obsahuje kód s doplnkami alebo opravami objektov a modulov. V tomto prípade zostáva podporovaná hlavná konfigurácia, nie je potrebné povoliť úpravy, čo značne zjednodušuje proces aktualizácie.

    Mechanizmus predpokladá tri typy použitia, ktoré sú v skutočnosti uvedené v poli „Účel“ pri vytváraní rozšírenia:

    Ústrednou zložkou technológie je Vedúci služby, uchováva všetky informácie o predplatiteľoch, používateľoch, aplikáciách, informačných bázach a spojeniach medzi nimi a s jeho pomocou sú spravované externé spracovateľské a konfiguračné rozšírenia.

    Všetky súbory so spracovaním sa nahrajú do špeciálneho adresára správcu služieb. Ale predtým, ako nahráte súbor do adresára, inými slovami, „zverejníte ho do služby“, musí byť pripravený špeciálnym spôsobom.

    Príprava externých správ a ich spracovanie na zverejnenie v modeli služieb

    Dodatočná zostava alebo spracovanie sa vytvorí v konfigurátore 1C: Enterprise 8 ako štandardné externé zostavy a spracovanie a uloží sa do súboru s príponou - .epf (pre dodatočné spracovanie) alebo .erf (pre dodatočné zostavy).

    Objektový modul musí mať procedúry a funkcie na definovanie registračných parametrov.

    Upozorňujeme, že dôležitým parametrom je „Verzia“. Ak ste vykonali zmeny v spracovaní, ktoré bolo predtým nahrané do adresára správcu služieb, nezabudnite zmeniť číslo verzie, inak správca služieb odmietne načítať súbor. Pri vývoji správy alebo spracovania musíte vziať do úvahy, že používatelia pracujú v modeli služieb prostredníctvom webového klienta (dobrý článok na blogu 1C). Ak spracovanie obsahuje formuláre, musia fungovať vo webovom klientovi pod všetkými webovými prehliadačmi, ktoré podporuje technologická platforma 1C: Enterprise 8.

    Podľa štandardov služby 1cfresh.com musí byť dodatočná správa alebo spracovanie plne funkčné, keď sa vykonáva v núdzovom režime, to znamená pracovať bez prístupu k objektom mimo konfigurácie.

    Na nahranie do služby ako súprava na doručenie je potrebné pripraviť dodatočnú správu alebo spracovanie. Doručovacia súprava je archív (súbor zip), ktorý obsahuje:

    • dodatočná správa alebo súbor spracovania;
    • xml manifest, ktorý obsahuje dodatočné metainformácie potrebné na to, aby manažér služby zverejnil dodatočnú správu alebo ju spracoval v službe.
    Príprava sa vykonáva v lokálne nasadenej infobáze konfigurácie, pre ktorú je určená dodatočná správa alebo spracovanie. Používame špeciálneho asistenta na vytvorenie sady dodávok, externé spracovanie Príprava dodatočných správ a spracovanie publikácií v Servisnom modeli.epf. Viac sa dočítate v dokumentácii k Technológii publikovania riešení 1C Fresh.

    Inštalácia ďalších správ a spracovanie v modeli služby

    Charakteristickým rysom technológie 1C Fresh je, že externú správu alebo spracovanie nemožno načítať priamo do oblasti údajov. Pridávanie môže vykonať iba správca služby prostredníctvom správcu služby. Po príprave archívu zip so súborom spracovania je potrebné ho nahrať do adresára správcu služieb a nainštalovať pre konkrétneho predplatiteľa služby.

    Predplatiteľ služby je skupina používateľov zjednotených podľa nejakého princípu. V súlade s tým sa informačné bázy dostupné určitej skupine používateľov nazývajú predplatiteľské aplikácie.

    Aplikácie môžu mať rôzne konfigurácie 1C (Podnikové účtovníctvo, Mzdový a personálny manažment, Manažment našej spoločnosti atď.), pre ktoré je možné ho použiť v modeli služieb. Dodatočné hlásenie alebo spracovanie je možné nainštalovať iba v aplikáciách predplatiteľa, ktoré sú špecifikované pri sťahovaní súboru.

    Takto vyzerá formulár vlastností pre dodatočnú zostavu s verziami. Pomocou hypertextového odkazu „Inštalovať/Odstrániť“ sa dostaneme do zoznamu aplikácií a vyberieme požadované databázy.

    Po načítaní spracovania a výbere aplikácie manažér služby kontaktuje adresu aplikácie a dá príkaz na jej inštaláciu do informačnej základne.

    Spracovanie spúšťame podľa harmonogramu

    Pri práci s veľkým počtom účtovných databáz je potrebné periodicky vykonávať určité spracovanie. Napríklad raz za mesiac alebo raz za pár minút. Je tiež dôležité automatizovať manuálne a rutinné používateľské operácie. K tomu aktívne využívame rutinné úlohy.

    Spracovanie, ktoré sa bude vykonávať podľa harmonogramu, nemá formu. Celá logika je zapísaná v objektovom module a vyzerá takto.



    Pri príprave doručovacej súpravy si stanovíme harmonogram. Teraz bude naše spracovanie prebiehať každú hodinu.

    Viac o konfiguračných rozšíreniach

    Paralelne s externými správami a spracovaním, ktoré je potrebné pripravovať a spravovať „po starom“, sme začali aktívne využívať mechanizmus rozšírenia konfigurácie. Počnúc platformou 1C Enterprise 8.3.10 nám tento mechanizmus celkom uľahčil život a umožnil zjednodušiť prispôsobenie konfigurácií funkciám tlačidla.

    Vyššie sme napríklad písali o rutinných operáciách pri opravách dokumentov robotmi, ktoré sa spúšťali raz za 10 minút. Teraz môžete použiť rozšírenie na predefinovanie fungovania modulov. Pri evidencii alebo zaúčtovaní dokladu tak môžeme okamžite vykonať potrebné úkony. Je to oveľa optimálnejšie, pretože front úloh v databáze nie je upchatý akciami vykonávanými každých 10 minút a je to efektívnejšie, pretože zmeny sa vykonávajú okamžite.

    Je celkom jednoduché pripraviť nové rozšírenie. Pozrime sa na proces vytvárania rozšírení na konkrétnych príkladoch.
    Na základe pracovných skúseností je lídrom v požiadavkách na úpravy tlačená forma TORG-12. Napríklad musíme urobiť rozšírenie, aby sme mohli vytlačiť dodací list v cudzej mene (štandardne sa dá vygenerovať len v rubľoch).
    Otvorte Menu → Konfigurácia → Rozšírenia konfigurácie
    Vytvárame nové rozšírenie s cieľom „Adaptácia“.

    Rozšírenie vyzerá ako známy konfiguračný strom, ale zatiaľ bez objektov. V prvom rade pridajme nový layout TORG-12, do ktorého sme vložili stĺpce so sumami v mene.

    Keďže faktúra sa tlačí z dokladu „Predaj tovaru a služieb“, tento doklad pridáme do nášho rozšírenia z hlavnej konfigurácie a vykonáme potrebné zmeny v module manažéra. Ak to chcete urobiť, v kontextovej ponuke implementácie vyberte možnosť „pridať do rozšírenia“.

    Teraz môžete upraviť modul manažéra implementácie. Musíme pridať nový formulár do zoznamu tlačív formulárov a vyplniť sumy meny.

    Na zmenu štandardných procedúr používame anotáciu &After, potrebujeme aj niekoľko vlastných funkcií a procedúru.

    Pozrime sa bližšie na anotácie. V rozšíreniach môžete použiť: &Pred, &Po, &Namiesto toho (veľmi opatrne). Princíp činnosti je jednoduchý: chceme, aby sa najskôr spustili naše algoritmy z rozšírenia, vložíme anotáciu &Before a v zátvorkách uvedieme názov procedúry zo štandardnej konfigurácie. Ak sa najskôr spracuje štandardný modul a potom náš, použijeme &Po.

    Anotácie &Pred a &Po nemožno použiť pre funkcie. Preto, ak potrebujeme zmeniť algoritmus funkcie z hlavnej konfigurácie, použijeme namiesto toho anotáciu &.

    Anotácia &Namiesto by sa mala používať čo najmenej, pretože úplne nahrádza vykonanie procedúry a funkcie z hlavnej konfigurácie rozširujúcou procedúrou/funkciou. Pri tejto metóde zachytávania sa procedúra/funkcia z hlavnej konfigurácie prestane vykonávať počas inštalácie rozšírenia, nepomôže ani aktualizácia verzií.

    Záver

    Existuje mnoho rôznych názorov na používanie rozšírení a externých správ/spracovanie. Na základe našich skúseností sme obaja za expanziu. Ide o modernú a adaptívnejšiu technológiu, má oveľa viac možností a ich publikovanie je oveľa jednoduchšie. V rozšírení je umiestnená len nevyhnutná časť kódu, taktiež nie je potrebné dodatočne písať procedúry a funkcie na určenie registračných parametrov, sledovanie verzií a vytvorenie dodávky.

    Pre jednu dátovú oblasť môžete použiť viacero rozšírení.
    Pre špecifiká 1C Fresh pracujúceho v režime separácie dát (jedna konfigurácia, veľa nezávislých oblastí) je metóda rozšírenia vynikajúcim riešením.

    Implementované vo verzii 8.3.9.1818.

    Skrátka, teraz pomocou rozšírení môžete meniť štandardné konfiguračné moduly a pridávať vlastné moduly.

    A podrobnejšie môžete zmeniť ľubovoľné moduly okrem modulov bežných formulárov:

    • Všeobecné moduly;
    • Objektové moduly (objektový modul, manažérsky modul atď.) pre všetky typy objektov;
    • Modul relácie;
    • Modul riadenej aplikácie;
    • Externý spojovací modul;
    • veliteľské moduly;
    • Moduly formulárov;
    • atď.

    Je potrebné poznamenať, že moduly spravovaných formulárov ste mohli zmeniť už predtým, ale teraz sme v tomto procese urobili niekoľko zmien.

    Odpočúvanie
    Môžete zachytiť akékoľvek štandardné konfiguračné metódy, zarámovať ich vlastnými alebo dokonca úplne nahradiť.

    Vlastné manipulátory
    Môžete pridať svoje vlastné obslužné nástroje udalostí konfigurácie. Ak napríklad nie sú priradené v typickej konfigurácii.

    Vlastné moduly
    V rozšírení si môžete vytvoriť vlastné spoločné moduly.

    Zavolajte
    Nakoniec môžete vo svojom rozšírení zavolať akékoľvek štandardné metódy konfigurácie.

    Keď si požičiate a rozšírite štandardný konfiguračný modul, váš rozširujúci modul bude v rovnakom mennom priestore ako štandardný modul. Preto v rozširujúcom module môžete priamo pristupovať ku všetkým premenným a metódam všeobecného modulu.

    Ak sa nachádzate v inom module, ktorý existuje v rozšírení, potom budete mať k dispozícii svoje vlastné exportované premenné a metódy modulu rozšírenia. Pretože sú pridané do výsledného verejného kontextu typového modulu.

    Zachytenie volaní metódy

    Cieľom zachytenia hovoru je vo veľkej väčšine prípadov obklopiť volanie všeobecnej metódy niektorými pred- a/alebo post-akciami. Zároveň sme nevylúčili možnosť úplného prepísania volania na štandardnú metódu a implementovali sme túto možnosť.

    Plne popisujete potrebu zachytiť jednu alebo druhú štandardnú metódu v rozširujúcom module. Za týmto účelom sme do vstavaného jazyka zaviedli nový štruktúrny prvok – anotáciu. Pomocou anotácie umiestnenej pred definíciou metódy určíte, ktorú generickú metódu procedúra/funkcia zachytáva a presne ako. Napríklad:

    Anotácia &Before("Procedure1") znamená, že všeobecný postup s názvom Postup1 je zachytený. Názov anotácie Before znamená, že najskôr sa vykoná procedúra vášho zachytávača Ext_Proc1() a potom generická procedúra1().

    Abstrakt &Pred

    Anotácia s týmto názvom znamená, že váš stíhač bude spustený skôr, ako sa spustí generická metóda.

    Na diagrame sú štandardné a rozširujúce moduly zobrazené ako obdĺžniky a šípka ukazuje postupnosť vykonávania vstavaného jazyka.

    Abstract & After

    Táto anotácia znamená, že váš stíhač sa spustí po vykonaní všeobecnej metódy.

    Abstrakt &Namiesto toho

    Táto anotácia presne implementuje možnosť úplného prekrytia štandardnej metódy. To znamená, že štandardná metóda sa vôbec nevykoná. Namiesto toho bude popravený iba váš stíhač.

    Pre rovnaký štandardný postup môžete do svojho rozšírenia nainštalovať jednu z nasledujúcich kombinácií zachytávačov:

    • &Pred;
    • &Po;
    • &Namiesto;
    • &Pred a po.

    Posledná kombinácia stíhačov (&Pred a &Po) sa vykoná takto:

    Ak zachytávate generickú funkciu a nie procedúru, potom môžete namiesto zachytávača použiť iba &.

    Volanie metódy prepísanej pomocou &namiesto

    Ukazuje sa, že ide o nejakú nespravodlivosť. Postup môžete zakryť alebo zarámovať. A funkcia má byť iba úplne zablokovaná.

    Aby sme sa zbavili tejto nespravodlivosti, implementovali sme novú metódu do vstavaného jazyka – ContinueCall(). Ak zavoláte túto metódu vo svojej funkcii zachytávača, vykoná sa funkcia, ktorú ste prepísali, a potom sa vykonanie kódu vráti do vášho zachytávača:

    Vo vloženom jazyku môže takáto funkcia zachytávača vyzerať takto:

    Takže vaša funkcia zachytávača je rozdelená na dve časti. Časť, ktorá sa vykoná pred vykonaním štandardnej funkcie, a časť, ktorá sa vykoná po štandardnej funkcii.

    Metódu ContinueCall() môžete použiť nielen pri prekrývaní funkcií, ale aj pri prekrývaní procedúr. V tomto prípade bude výsledok jeho použitia významovo rovnaký ako pri použití dvojice zachytávačov &Pred a &Po. Jediný rozdiel bude v tom, že v tomto prípade bude vaša časť „pred“ a časť „po“ existovať v rovnakom kontexte. V niektorých situáciách to môže byť výhodné. Vo vloženom jazyku môže takýto postup zachytávača vyzerať takto:

    Čo je lepšie, &Pred, &Po alebo &Namiesto toho?

    Keď zachytávate generické konfiguračné metódy, je vždy užitočné mať na pamäti dve veci:

    • Po napísaní rozšírenia sa typická konfigurácia zmení;
    • Vaším cieľom je pridať vlastnú funkčnosť a nie navždy opustiť to, čo je a čo bude v štandardnej konfigurácii.

    Z tohto hľadiska je najvýhodnejšie použiť zachytávače &Pred a &Po. Pretože s nimi bude vždy vykonaná zachytená štandardná metóda bez akýchkoľvek podmienok. A ak vývojári štandardnej konfigurácie neskôr urobia zmeny v tejto metóde, tieto zmeny budú pri používaní vášho rozšírenia určite fungovať.

    Je tiež úplne prijateľné použiť namiesto zachytávača a metódu ContinueCall(). Tu však máte príležitosť a pokušenie zavolať štandardnú metódu nie vždy, ale v závislosti od niektorých vašich vlastných podmienok. Musíte k tomu pristupovať opatrne a pamätať na to, že v momente, keď odmietnete volať generickú metódu, odmietate volať nielen metódu, ktorá je teraz v konfigurácii, ale aj všetky jej varianty, ktoré sa objavia v budúcnosti. A v budúcnosti sa v ňom môžu objaviť napríklad dôležité a užitočné zmeny.

    A nakoniec, najviac „zlou“ možnosťou je úplne prepísať štandardnú metódu pomocou &namiesto interceptoru. V tomto prípade sa generický obslužný program určite nespustí ani teraz, ani v budúcich verziách. To znamená, že preberáte plnú zodpovednosť za fungovanie budúcich verzií konfigurácie na seba, na svojom rozšírení. Určite existujú situácie, kedy je takéto úplné pokrytie nevyhnutné, no vyzývame vás, aby ste k jeho použitiu pristupovali veľmi opatrne a opatrne.

    Postupnosť hovorov pri odpočúvaní metód

    Tu, pred rozprávaním, je potrebné urobiť malé objasnenie. Dôležitou, možno povedať „ideologickou“ charakteristikou rozšírení je ich autonómia. To znamená, že rozšírenia by mali byť navrhnuté tak, aby na sebe nezáviseli.

    Ale keď je aplikácia spustená, prirodzene a samozrejme existuje určitá postupnosť volaní pripojených klapiek. Táto postupnosť je známa a teraz vám o nej povieme. Ale nepovieme vám, že na jeho základe môžete vytvárať vzájomne závislé rozšírenia alebo rozšírenia, ktoré zahŕňajú jedinú striktne definovanú postupnosť pripojení. A aby ste mohli analyzovať vzniknuté problémy a ladiť programový kód.

    Keď pripojíte rozšírenia k typickej konfigurácii, vytvorí sa „viacvrstvový koláč“. Na základni tohto koláča je typická konfigurácia a na vrchu je najnovšie pripojené rozšírenie.

    V konfigurátore aj v režime 1C:Enterprise je posledná pripojená pobočka posledná v zozname.

    Takže v tomto príklade je všeobecná v spodnej časti, Extension2 je v hornej časti a Extension1 je medzi nimi. Každé nasledujúce rozšírenie zachytáva (rozširuje) to, čo je pod ním.

    Keď rámec narazí na zachytávače definované v rozšíreniach, proces vykonávania vstavaného jazyka pokračuje zhora nadol v tomto koláči podľa anotácií, ktoré majú zachytávače. Na úroveň, ktorú môže dosiahnuť. Potom sa vráti na začiatok, ak sú tam zachytávače, a vráti sa späť do štandardnej konfigurácie.

    Príklad 1

    Napríklad, ak je tá istá generická metóda zachytená (rámovaná) v dvoch rozšíreniach, potom bude sekvencia volaní handlerov nasledovná:

    • Interceptor z Extension2 bude zavolaný ako prvý, pretože je navrchu. Toto bude &Before interceptor, pretože má túto anotáciu;
    • Interceptor z Extension1 sa potom zavolá, pretože je ďalší v koláči. Znova bude &Before, pretože má túto anotáciu;
    • Potom sa zavolá generická metóda, pretože neexistujú žiadne ďalšie zachytávače, ktoré by jej zabránili v vykonaní;
    • Potom v obrátenom poradí koláča sa zavolá zachytávač &After z Extension1 a &After Interceptor z Extension2.

    Z tohto príkladu môžete jasne pochopiť nasledujúcu vlastnosť: ak sa v jednom z zachytávačov vyskytne neošetrená výnimka, potom sa celý reťazec preruší a výnimka sa ďalej šíri.

    Príklad 2

    Ak zachytávače používajú metódu ContinueCall(), potom platí rovnaký princíp koláča.

    • Interceptor z Extension3 bude zavolaný ako prvý, pretože je navrchu. Bude to zachytávač &Namiesto toho, pretože má túto anotáciu;
    • Keď sa pokúsite zavolať štandardnú metódu, bude sa analyzovať zostávajúci „koláč“. Bude sa analyzovať presne rovnakým spôsobom, ako je opísané v predchádzajúcom príklade;
    • Výsledkom je, že spustenie kódu sa vráti do &namiesto zachytávača a po jeho dokončení sa vráti do štandardnej konfigurácie.

    Príklad 3

    Dôležitým bodom, ktorý je potrebné pochopiť, je skutočnosť, že pri prepisovaní pomocou anotácie &Namiesto toho sa v skutočnosti prepíše nielen volanie hlavnej metódy, ale aj zachytávače umiestnené nižšie v „koláču“.

    Tento príklad spustí iba zachytávač &namiesto rozšírenia Extension2. Pretože pokrýva štandardnú metódu, teda celý „koláč“, ktorý je pod ňou.

    Príklad 4

    Toto je v skutočnosti variácia na tému druhého príkladu, ale keď sa pod horným rozšírením nachádza rozšírenie, ktoré tiež „tlačí“ volanie na štandardný postup.

    V podstate to len znova vizualizuje skutočnosť, že volanie všeobecnej metódy sa vzťahuje na celý „koláč“ pod rozšírením. To je dôvod, prečo po zavolaní interceptora z Extension2 bude zavolaný interceptor z Extension1. Pretože v zostávajúcom „koláču“ je to práve to, čo pokrýva volanie štandardnej metódy, ktorou chcete „dosiahnuť“ Extension2.

    Zachytávanie obsluhy udalostí a vlastných obslužných programov v objektových moduloch, manažéroch atď.

    Zachytenie akýchkoľvek metód v týchto moduloch sa vykonáva presne rovnakým spôsobom, ako je opísané na začiatku. Ak je však zachytávaná procedúra obslužnou rutinou udalosti, existujú určité úvahy. Tieto vlastnosti sú spôsobené skutočnosťou, že v týchto moduloch majú všetky obsluhy udalostí pevné názvy.

    Po prvé, názov zachytenej metódy je názov udalosti. Napríklad BeforeRecording:

    Po druhé, prítomnosť štandardného handlera pre túto udalosť nie je povinná. Ak neexistuje žiadny generický obslužný program, zavolá sa váš stíhač. Vďaka tejto funkcii môžete udalostiam, ktoré nie sú spracované v štandardnej konfigurácii, priradiť vlastné handlery.

    Keďže obsluhy udalostí v objektových moduloch majú pevné názvy a zoznam anotácií je známy, implementovali sme pre vás malú „službu“. Keď vytvoríte obsluhu v rozšírení, otvorí sa dialógové okno, v ktorom môžete vybrať typ hovoru. Potom sa v module vytvorí procedúra zachytávača šablóny.

    Zachytávanie obslužných programov udalostí a vlastných obslužných programov vo formulárových moduloch

    Odpočúvanie akýchkoľvek metód v týchto moduloch sa tiež vykonáva presne rovnakým spôsobom, ako je popísané na začiatku. Existujú však aj funkcie súvisiace so zachytením obsluhy udalostí. Tieto vlastnosti sú spôsobené skutočnosťou, že v týchto moduloch sú všetky obsluhy udalostí priraditeľné a nemajú pevné názvy. Ako asi viete, aby platforma pochopila, ako spracovať konkrétnu udalosť, v konfigurátore, na paneli vlastností, musí existovať väzba konkrétnej procedúry na konkrétnu udalosť.

    Z tohto dôvodu a iba pri zachytávaní obslužných programov udalostí vo formulári musíte namiesto anotácií použiť paletu vlastností. Aj keď pomocou anotácií môžete zachytiť akékoľvek iné metódy modulu, ktoré nie sú obslužnými nástrojmi udalostí.

    Externe vyzerá zachytávač udalostí v module formulára takto:

    To znamená, že anotácia sa nepoužíva a typ zachytávača je uvedený na palete vlastností. To sa robí úplne jednoducho. Keď v rozšírení vytvoríte obslužný program, kliknutím na tlačidlo „lupa“ sa otvorí dialógové okno. Umožňuje vám okrem kontextu určiť aj typ zachytávača (Pred, Po alebo Namiesto).

    Po vytvorení šablóny procedúry sa na palete vlastností vedľa názvu zachytávača zobrazí ikona zobrazujúca typ zachytávania.

    Ak prepíšete generický obslužný program (Namiesto toho), bude to len bodka.

    Ak vytvárate zachytávač Pred alebo Po, bude to bodka vedľa zvislej čiary. Umiestnenie bodky pred alebo za čiarou označuje typ zachytávača. A okrem toho sa na palete vlastností vedľa tejto udalosti objaví druhé (prázdne) pole. S jeho pomocou môžete určiť spárovaný stíhač, ak je potrebné zarámovať typický handler s párom Pred - Po.

    Takto definované zachytávače udalostí budú fungovať, aj keď pre túto udalosť neexistuje štandardná obsluha. Takto môžete priradiť svoje vlastné handlery tým udalostiam formulára, ktoré nie sú spracované v štandardnej konfigurácii.

    Keď už hovoríme o moduloch formulárov, musíme urobiť ešte jednu malú poznámku. Mierne sme zmenili správanie modulov, ktoré rozširujú moduly formulárov, ktoré existovali predtým. Aby bol konzistentný so správaním ostatných modulov a zabezpečil stabilitu programového kódu.

    Predtým boli všetky moduly, ktoré rozširovali modul formulára, a samotný modul formulára v rovnakom priestore názvov. Z najvyššej rozšírenia tak bolo možné volať nielen metódy štandardnej konfigurácie, ale aj metódy základných rozšírení. Teraz sme túto medzeru uzavreli a metódy základných rozšírení už nie sú k dispozícii. Teraz máte prístup len k metódam obsiahnutým vo všeobecnom module, ktorý rozširujete.

    Spoločné moduly

    V rozšírení si môžete vytvoriť ľubovoľný vlastný spoločný modul. Existujú len dve obmedzenia:

    • Nemusia byť globálne na strane servera;
    • Nemali by byť privilegovaní.

    Keď rozširujete bežný modul typickej konfigurácie, existujú aj podobné obmedzenia:

    • Nemôžete si požičať moduly globálneho servera;
    • Kód z vášho rozšírenia bude spustený iba v neprivilegovanom režime (pokiaľ nie je v bezpečnostnom profile povolené inak).

    Samotná operácia vypožičania modulu globálneho servera nie je v konfiguračnom strome zakázaná, ale vo fáze aktualizácie konfigurácie databázy sa zobrazí chyba a aktualizácia sa nevykoná.

    Serverové metódy sa nie vždy rozširujú

    Skutočnosť, že vaše rozšírenie je úspešne pripojené k štandardnej konfigurácii, neznamená, že všetky zachytávače, ktoré sú vo vašom rozšírení, budú použité a začnú sa vykonávať. Tu sú niektoré funkcie súvisiace so zabezpečením.

    Ak aplikačné riešenie funguje vo verzii súboru alebo vo verzii klient-server bez bezpečnostných profilov, potom pri pripájaní vášho rozšírenia:

    • V normálnom režime vykonávania vstavaného jazyka sa rozšíria všetky metódy štandardného riešenia, klient aj server;
    • V režime bezpečného vykonávania vstavaného jazyka sa rozšíria iba klientske metódy a procesory serverových formulárov. Rozšírenie nebude aplikované na iné serverové procedúry/funkcie.

    Keď aplikačné riešenie funguje vo verzii klient-server a pri pripájaní rozšírenia je špecifikovaný špecifický bezpečnostný profil, alebo sú k informačnej báze priradené profily normálneho a bezpečného režimu, potom sa „serverová“ časť rozšírenia použije tak, ako je špecifikované. v príslušnom profile.

    Najjednoduchším z nich je zaškrtávacie políčko na rozbalenie všetkých modulov v skupine Povolený plný prístup. „Jedným ťahom“ umožňuje rozšírenie kontextu servera.

    Existuje aj presnejšie nastavenie pomocou polí Moduly dostupné pre rozšírenie a Moduly nedostupné pre rozšírenie. Predpokladáme, že ich použijete nasledovne:

    • Ak ste nepovolili úplný prístup k rozšíreniam, potom v poli Moduly dostupné pre rozšírenie uvediete názvy tých modulov, pre ktoré je rozšírenie kontextu servera prijateľné a nie nebezpečné;
    • Ak ste povolili úplný prístup k rozšíreniam, potom v poli Moduly nedostupné pre rozšírenie uvediete niektoré moduly, v ktorých ešte nemusíte povoliť rozšírenia o kontext servera.

    Ukázalo sa, že je to celkom relevantné :)

    Dobre, urobme tento víkend užitočným.

    Takže dnes je ďalšia téma „aplikovanej prevádzky 1C“:

    Výsuvný mechanizmus na plošine 8.3.6

    o čom to hovoríme?

    V platforme 8.3.6 bol implementovaný nový mechanizmus - mechanizmus rozšírenia, ktorý uľahčuje prispôsobenie aplikačného riešenia konkrétnemu zákazníkovi.

    Pri použití rozšírení zmena konfigurácie sa vykoná v novej entite- rozšírenie konfigurácie:

    • Rozšírenie je v podstate tiež konfigurácia, ale s určitými obmedzeniami
    • Pripravené rozšírenie je možné pripojiť k pracovnej databáze zákazníka v užívateľskom režime
    • Najdôležitejšie - upravovaná konfigurácia nemusí byť odstránená z podpory, t.j. zostáva typický, bez zmien
    • Aktualizácia upravenej konfigurácie môže používateľ vykonať automaticky

    Zákazník teda dostane ako výsledok možnosť zlepšenia konfigurácie a zároveň - jednoduchá automatická aktualizácia.

    Aby ste to pochopili podrobnejšie, zverejňujeme niekoľko ďalších videí + PDF o rozšíreniach.

    Takže poďme na to:

    Účel rozšírení konfigurácie

    Video pojednáva o novom mechanizme rozšírenia konfigurácie, ktorý sa objavil na platforme 8.3.6. Je určený na dolaďovanie a prispôsobovanie riešení pri implementácii. V tomto prípade zákazník získa jednoduchú automatickú aktualizáciu konfigurácie a možnosť vykonávať úpravy.

    Objekty, ktoré je možné v rozšírení upravovať

    Toto video pojednáva o súčasných obmedzeniach mechanizmu rozšírení. V súčasnosti je možné v rozšíreniach použiť len obmedzený počet objektov.

    Práca s rozšíreniami v konfigurátore

    Toto video pojednáva o vývoji rozšírení v konfigurátore. Rozšírenie je konfigurácia, aj keď trochu obmedzená. Práca s rozšírením sa vykonáva aj v strome objektov metadát. Výslednú príponu je možné uložiť do súboru na disk.

    Požičiavanie predmetov

    Toto video sa zaoberá požičiavaním objektov základnej konfigurácie do rozšírenia. Toto je hlavný mechanizmus potrebný na vývoj samotného rozšírenia. Hovorí aj o kontrolovaných vlastnostiach, ktorých hodnota sa kontroluje pri pripojení rozšírenia.

    Vytváranie vlastných objektov v konfiguračnom rozšírení

    Toto video vysvetľuje, ako môžete v rozšírení vytvárať vlastné objekty. Zoznam takýchto objektov je zatiaľ obmedzený – ide o zostavy, spracovanie a podsystémy. Vývoj takýchto objektov v rozšírení sa vykonáva analogicky s hlavnou konfiguráciou.

    Práca s rozšíreniami v užívateľskom režime

    Toto video pojednáva o tom, ako pripojiť pripravené rozšírenie k pracovnej databáze zákazníka. V tomto prípade je možné pripojenie vykonať z užívateľského režimu bez prístupu ku konfigurátoru.

    Práca so spravovanými formulármi v konfiguračných rozšíreniach

    Toto video ukazuje, ako pracovať so spravovanými formulármi v rozšírení. Upozorňujeme, že zdrojový formulár sa automaticky nesynchronizuje s rozšírením. Vysvetľuje, ako systém generuje výsledný vzhľad formulára, keď je prítomné rozšírenie.

    Modul spravovaného formulára a obslužné rutiny udalostí v rozšíreniach konfigurácie

    Toto video popisuje, ako pracovať s obslužnými programami udalostí vo formulároch rozšírení spravovanej konfigurácie.

    Je demonštrované poradie vykonávania obsluhy udalostí v hlavnej konfigurácii a v rozšírení.