Rozšírenie 1c čaká na definíciu funkčného postupu. Rozširujúce moduly

Implementované vo verzii 8.3.9.1818.

Skrátka, teraz pomocou rozšírení môžete meniť moduly typickej konfigurácie a pridávať vlastné moduly.

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

  • Spoločné 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 už možno zmenili, ale teraz sme v tomto procese urobili niekoľko zmien.

Odpočúvanie
Môžete zachytiť akékoľvek metódy typickej konfigurácie, 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 zavolať ktorúkoľvek z typických metód konfigurácie vo vašom rozšírení.

Keď si požičiate a rozšírite generický modul, váš extender bude v rovnakom mennom priestore ako generický modul. Tým, že ste v rozširujúcom module, môžete priamo pristupovať ku všetkým premenným a metódam typického modulu.

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

Zachytenie volaní metód

Úlohou zachytávania hovorov je v drvivej väčšine prípadov obklopiť volanie metódy typu nejakými akciami pred a/alebo po. Zároveň sme nevylúčili možnosť úplného prekrytia volania metódy typu a implementovali túto možnosť.

Plne popisujete potrebu zachytiť konkrétny typ metódy v rozširujúcom module. Na tento účel sme do vloženého jazyka zaviedli nový štruktúrny prvok – anotáciu. Pomocou anotácie umiestnenej pred definíciou metódy určíte, ktorý typ metódy je procedúrou / funkciou zachytený a akým spôsobom. Napríklad:

Anotácia a pred ("Procedure1") znamená, že typický 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 Exp_Proc1 () a potom - typická procedúra1 ().

Abstrakt a predtým

Anotácia s týmto názvom znamená, že váš stíhač bude vykonaný pred začatím vykonávania metódy typu.

V diagrame sú typické a rozširujúce moduly znázornené obdĺžnikmi a šípka ukazuje postupnosť vykonávania vloženého jazyka.

Abstract & After

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

Abstrakt & Namiesto toho

Táto anotácia len implementuje možnosť úplného prekrytia typovej metódy. To znamená, že typická metóda nebude vykonaná vôbec. Namiesto toho vykoná iba váš stíhač.

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

  • &Predná strana;
  • &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, môžete namiesto toho použiť iba zachytávač &.

Namiesto toho volanie metódy prekrytej anotáciou &

Ukazuje sa, že ide o nejakú nespravodlivosť. Postup môžete prekrývať alebo orámovať. A funkcia je len na úplné zakrytie.

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 prekryli, a potom sa spustenie kódu vráti do vášho zachytávača:

V zabudovanom jazyku môže takáto funkcia zachytávača vyzerať takto:

Týmto spôsobom je funkcia vášho zachytávača rozdelená na dve časti. Časť, ktorá sa vykoná pred vykonaním typickej funkcie, a časť, ktorá sa vykoná po typickej 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 aplikácie rovnaký ako pri použití dvojice zachytávačov & Pred a & Po. Jediný rozdiel je v tom, že v tomto prípade budú vaša časť „pred“ a časť „po“ existovať v rovnakom kontexte. V niektorých situáciách to môže byť výhodné. V zabudovanom jazyku môže takýto postup zachytávača vyzerať takto:

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

Vždy je užitočné mať na pamäti dve veci, keď zachytíte typické konfiguračné metódy:

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

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

Je tiež celkom prijateľné použiť metódu interceptor & Namiesto a ContinueCall (). Tu však máte príležitosť a pokušenie zavolať typickú metódu nie vždy, ale v závislosti od niektorých vašich vlastných podmienok. K tomu treba pristupovať opatrne a pamätajte, že v momente, keď odmietnete volať metódu typu, odmietate volať nielen metódu, ktorá je v konfigurácii teraz, ale aj zo všetkých jej variantov, 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 úplné prekrytie metódy typu zachytávačom a namiesto toho. V tomto prípade sa generický obslužný program určite nespustí teraz ani v budúcich verziách. To znamená, že preberáte všetku zodpovednosť za fungovanie budúcich verzií konfigurácie vášho rozšírenia. Určite existujú situácie, kedy je takéto úplné prekrytie 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 je pred rozprávaním príbehu potrebné urobiť malé vysvetlenie. 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á, je prirodzené a zrejmé, že 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 vytvoríte vzájomne závislé rozšírenia alebo rozšírenia, ktoré zahŕňajú jedinú pevne definovanú postupnosť pripojení. A aby ste mohli rozoberať vznikajúce problémy a ladiť programový kód.

Keď zapojíte rozšírenia do typickej konfigurácie, vytvorí sa „vrstvený koláč“. V spodnej časti tohto koláča je typická konfigurácia a v hornej časti je posledná zapojená predlžovacia časť.

Čo je v konfigurátore, čo je v režime 1C: Enterprise, posledné pripojené rozšírenie je posledné v zozname.

V tomto príklade je teda vzorka dole, Extension2 je hore a Extension1 je medzi nimi. Každé nasledujúce rozšírenie zachytáva (rozširuje) to, čo je pod ním.

Keď platforma narazí na zachytávače definované v rozšíreniach, proces vykonávania vloženého jazyka prechádza zhora nadol tohto koláča v súlade s anotáciami, ktoré majú zachytávače. Na úroveň, na ktorú sa môže dostať. 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 metóda rovnakého typu zachytená (zarámovaná) v dvoch rozšíreniach, potom bude postupnosť volaní obslužných rutin nasledovná:

  • Interceptor z Extension2 bude zavolaný ako prvý, pretože je navrchu. Toto bude zachytávač & Before, pretože má takúto anotáciu;
  • Potom sa zavolá interceptor z Extension1, pretože je ďalší v koláči. Opäť to bude & Before, pretože má takú anotáciu;
  • Potom sa zavolá metóda typu, pretože už neexistujú žiadne zachytávače, ktoré by zabránili jej vykonaniu;
  • Potom v obrátenom poradí koláča sa zavolá zachytávač & After z rozšírenia 1 a zachytávač & po z rozšírenia 2.

Pomocou tohto príkladu môžete dobre 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 sa v zachytávačoch používa metóda ContinueCall (), platí rovnaký princíp koláča.

  • Interceptor z Extension3 bude zavolaný ako prvý, pretože je navrchu. Toto bude zachytávač & Namiesto toho, pretože má takúto anotáciu;
  • Ak sa pokúsite zavolať všeobecnú metódu, zostávajúci koláč bude analyzovaný. 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 zachytávača & Namiesto toho a po jeho dokončení do štandardnej konfigurácie.

Príklad 3

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

V tomto príklade sa namiesto z Extension2 spustí iba zachytávač &. Pretože prekrýva typický spôsob, teda celý „koláč“, ktorý je pod ním.

Príklad 4

Toto je v skutočnosti variácia na tému druhého príkladu, ale keď je pod horným nadstavcom predĺženie, „zhodí“ to aj volanie typického postupu.

V skutočnosti je to len ďalšia vizualizácia skutočnosti, že volanie metódy typu 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 on, kto prekrýva volanie metódy typu, ktorou sa chce „dosiahnuť“ Extension2.

Zachytenie obsluhy udalostí a custom handlerov v moduloch objektov, manažérov atď.

Odpočúvanie akýchkoľvek metód v týchto moduloch sa vykonáva rovnakým spôsobom, ako je popísané na začiatku. Ak je však zachytená procedúra obsluhou udalosti, existujú určité zvláštnosti. Tieto vlastnosti sú spôsobené skutočnosťou, že v týchto moduloch majú všetky obsluhy udalostí pevné názvy.

Najprv sa zadá názov udalosti ako názov zachytávanej metódy. Napríklad pred nahrávaním:

Po druhé, prítomnosť generického obslužného programu pre túto udalosť je voliteľná. Ak neexistuje žiadny generický obslužný program, zavolá sa váš stíhač. Vďaka tejto funkcii môžete udalostiam, ktoré nie sú obsluhované v typickej 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“. Po vytvorení obsluhy v pobočke sa otvorí dialógové okno, v ktorom môžete vybrať typ hovoru. Potom sa v module vytvorí šablóna pre postup zachytávača.

Zachytenie obsluhy 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 rovnakým spôsobom, ako je opísané na začiatku. S odpočúvaním obsluhy udalostí však súvisia aj niektoré zvláštnosti. 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 zvládnuť tú či onú udalosť, v konfigurátore na paneli vlastností musí byť naviazanie konkrétnej procedúry na konkrétnu udalosť.

Z tohto dôvodu a iba pri zachytení obsluhy udalostí vo formulári musíte namiesto anotácií použiť paletu Vlastnosti. Hoci akékoľvek iné metódy modulu, ktoré nie sú obsluhou udalostí, môžete zachytiť pomocou anotácií.

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

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

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

Ak prekrývate generický obslužný program (namiesto), je to len bodka.

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

Háčiky udalostí definované týmto spôsobom budú fungovať, aj keď pre túto udalosť neexistuje žiadny všeobecný obslužný program. Takto môžete priradiť svoje vlastné obslužné programy na udalosti formulára, ktoré nie sú spracované v typickej konfigurácii.

Keď hovoríme o moduloch formulárov, je potrebné urobiť ešte jednu malú poznámku. Mierne sme zmenili správanie modulov, ktoré rozširujú moduly formulárov, ktoré existovali predtým. Aby zodpovedal správaniu ostatných modulov a aby bola zabezpečená stabilita programového kódu.

Predtým boli všetky moduly, ktoré rozširujú 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 sa týkať celého servera;
  • Nemusia byť privilegovaní.

Keď rozšírite generický generický konfiguračný modul, existujú podobné obmedzenia:

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

Operácia vypožičiavania samotného 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á.

Metódy na strane servera sa nie vždy rozširujú

Skutočnosť, že vaše rozšírenie bolo úspešne pripojené k typickej konfigurácii, neznamená, že všetky zachytávače, ktoré má vaše rozšírenie, budú použité a začnú sa vykonávať. Existuje niekoľko funkcií súvisiacich so zabezpečením.

Ak použité riešenie funguje vo verzii súboru alebo vo verzii klient-server bez bezpečnostných profilov, potom po pripojení rozšírenia:

  • V normálnom režime vykonávania vstavaného jazyka sa rozšíria všetky metódy štandardného riešenia, klientske aj serverové;
  • V režime bezpečného vykonávania vstavaného jazyka – rozšíria sa iba metódy na strane klienta a obslužné nástroje formulárov na strane servera. Rozšírenie sa nepoužije na zvyšok procedúr/funkcií servera.

Keď aplikačné riešenie funguje vo verzii klient-server a po pripojení rozšírenia, zadaní konkrétneho bezpečnostného profilu, prípadne pri priradení infobázových normálnych a bezpečných profilov, bude „serverová“ časť rozšírenia aplikovaná tak, ako je uvedené v zodpovedajúci profil.

Najjednoduchším z nich je zaškrtávacie políčko pre rozšírenie všetkých modulov v skupine Povolený plný prístup. To "jedným ťahom" umožňuje rozšírenie kontextu servera.

K dispozícii je aj presnejšie nastavenie pomocou polí Moduly dostupné pre rozšírenie a Moduly nedostupné pre rozšírenie. Predpokladáme, že ich využijete nasledujúcim spôsobom:

  • 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 strašidelné;
  • 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 serverového kontextu.

Dnes vám chceme povedať o využití dodatočných reportov a spracovaní a najmä rozšírení konfigurácie v modeli služieb. Technológie nestoja, údržba 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 základne a ako tento proces vyzerá zo strany poskytovateľa služieb - o tom sa dozviete pod rezom.

Čo sú externé správy a spracovanie

Spracovanie 1C sa môže líšiť, 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 jej odstránenia z podpory. Môžu byť vložené priamo do konfigurácie, pridané ako rozšírenie do konfigurácie alebo môžu byť externými súbormi.

Podľa funkčnosti spracovania sa delia na tie, ktoré dokážu meniť údaje a tie, ktoré jednoducho analyzujú informácie a zobrazia výsledok v užívateľsky príjemnej forme (prehľady). Aby sa nemenili štandardné rozloženia pre tlač dokumentov, sú vyvinuté externé tlačové formuláre. Externé spracovanie sa môže vykonávať podľa určeného plánu na aplikačnom serveri 1C - to sú naplánované úlohy.

V Buttone bolo vyvinutých niekoľko desiatok spôsobov liečby, 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áz“. V prehľadných tabuľkách je zobrazená analýza 120 kritérií účtovných zostatkov a obratov, súlad údajov z daňových priznaní a účtovných informácií, analýza dlhodobého majetku atď.

Príklad externej tlačenej „zmluvy o pôžičke“ vo forme vyvinutej našimi právnikmi. Sú chvíle, keď si podnikateľ ako fyzická osoba zoberie bezúročnú pôžičku od svojej firmy, alebo naopak, prevedie do firmy vlastné prostriedky, vtedy je tu možnosť si zmluvu ihneď vytlačiť.

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

A zobrazí sa tlačená forma zmluvy:

Plánované spracovanie (plánované úlohy) používame napríklad na opravu výpisu. V Buttone sa konfigurujú integrácie s veľkými bankami a špeciálne roboty nahrávajú výpis priamo do 1C. Vďaka technológii strojového učenia sa percento chýb počas výpisu znížilo na 3 %. Ako vždy však existujú výnimky, napríklad zákazníci, ktorí na predaj tovaru využívajú agentúrnu schému, v tomto prípade sú pravidlá pre výpis z účtu individuálne. Aby nedošlo k preprogramovaniu robota pre konkrétny prípad, pred objavením sa rozšírení konfigurácie sa použila naplánovaná úloha na opravu príkazu pre 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 hlavná konfigurácia na podpore, nemusíte povoliť úpravy, čo značne uľahč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, užívateľoch, aplikáciách, infobázach a spojeniach medzi nimi, s jej pomocou sa spravujú externé spracovanie a rozšírenia konfigurácie.

Všetky súbory spracovania sa načítajú do špeciálneho adresára správcu služieb. Ale predtým, ako nahráte súbor do katalógu, inými slovami „zverejníte v službe“, musíte ho pripraviť špeciálnym spôsobom.

Príprava externých správ a spracovateľov 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 by mal obsahovať procedúry a funkcie na definovanie registračných parametrov.

Upozorňujeme, že „Verzia“ je dôležitý parameter. 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 stiahnuť tento súbor. Pri vývoji správy alebo jej spracovaní je potrebné mať na pamäti, ž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 externým objektom na konfiguráciu.

Na nahranie do služby ako súprava na doručenie je potrebné pripraviť dodatočnú správu alebo spracovanie. Distribučná 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 požadované manažérom služby na zverejnenie dodatočnej správy alebo jej spracovanie v službe.
Príprava sa vykonáva v lokálne nasadenej infobáze konfigurácie, pre ktorú je určený dodatočný reporting alebo spracovanie. Používame špeciálneho asistenta na vytvorenie doručovacej súpravy, externé spracovanie Príprava dodatočných správ a spracovanie pre publikácie v Servisnom modeli.epf. Viac podrobností nájdete v dokumentácii o 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 vykonáva 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é databázy dostupné pre určitú skupinu 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ď.), ktoré je možné použiť v modeli služieb. Dodatočné hlásenie alebo spracovanie je možné nainštalovať iba v aplikácii predplatiteľa, ktorá sa špecifikuje pri sťahovaní súboru.

Takto vyzerá formulár vlastností dodatočnej správy s verziou. Pomocou hypertextového odkazu „Inštalovať / odinštalovať“ sa dostaneme do zoznamu aplikácií a vyberieme potrebné 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 databázy.

Začíname spracovávať 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 každých pár minút. Je tiež dôležité automatizovať manuálne a typické používateľské operácie. Na tento účel aktívne využívame naplánované úlohy.

Plánované ošetrenia nemajú žiadnu 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 reportmi a spracovaním, ktoré je potrebné pripravovať a spravovať „po starom“, sme začali aktívne využívať mechanizmus konfiguračných rozšírení. Počnúc platformou 1C Enterprise 8.3.10 nám tento mechanizmus výrazne 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 na opravu dokumentov pre roboty, ktoré sa spúšťali každých 10 minút. Teraz môžete pomocou rozšírenia predefinovať, ako moduly fungujú. Okamžite tak môžeme pri evidencii alebo zaúčtovaní dokladu vykonať potrebné úkony. To je oveľa optimálnejšie, pretože rad úloh v databáze nie je upchatý vykonávaním akcií každých 10 minút a rýchlejšie, pretože zmeny sa vykonávajú okamžite.

Je celkom jednoduché pripraviť nové rozšírenie. Poďme sa pozrieť na proces vytvárania rozšírení s konkrétnymi príkladmi.
Tlačená forma TORG-12 je podľa našich skúseností lídrom v požiadavkách na vykonanie úprav. Napríklad musíme urobiť rozšírenie o možnosť tlače nákladného listu v cudzej mene (štandardne sa dá generovať len v rubľoch).
Otvorte Menu → Konfigurácia → Rozšírenia konfigurácie
Vytvoríme nové rozšírenie s úlohou „Adaptácia“.

Rozšírenie vyzerá ako známy konfiguračný strom, no 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 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 v mene.

Na zmenu typických postupov používame anotáciu & After, potrebujeme tiež niekoľko našich funkcií a postup.

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

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

Anotácia & Namiesto toho by sa mala používať čo najšetrnejšie, pretože úplne nahrádza vykonávanie procedúry a funkcie z hlavnej konfigurácie rozšírenou procedúrou / funkciou. Pri tomto spôsobe odpočúvania sa procedúra / funkcia z hlavnej konfigurácie vo všeobecnosti 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/spracovaní. Na základe našich skúseností sme obaja „za“ expanziu. Ide o modernú a adaptívnejšiu technológiu, má oveľa viac funkcií a ich publikovanie je oveľa jednoduchšie. Rozšírenie obsahuje 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 vytváranie distribučného kitu.

Pre rovnakú dátovú oblasť je možné použiť viacero rozšírení.
Pre špecifiká prevádzky 1C Fresh v režime zdieľania údajov (jedna konfigurácia, veľa nezávislých oblastí) je metóda rozšírenia vynikajúcim riešením.

Hlavným problémom pri práci s rozšíreniami je neobjektívne hodnotenie počtu pripravovaných vylepšení zo strany vývojárov / implementátorov. Od správy „áno, potrebujeme zmeniť len 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, pokračujme v nich“.

Potom je potrebné pridávať nové entity do databázy, rozširovať štruktúru existujúcich. Alebo zmeniť princíp fungovania akéhokoľvek typického subsystému. Práca s rozšíreniami je čoraz ťažšia alebo nemožná. V konfigurácii sa zapne možnosť zmeny a začne sa „mäkká“ alebo „tvrdá“ revízia typickej konfigurácie v závislosti od kvalifikácie vývojárov.

Toto je moment, kedy prichádza zoologická záhrada s technológiou. Heterogenita, už žijúca v korporátnom systéme, si veselo mädlí ruky, uvedomujúc si, že si vydobyla dobrú oporu vďaka prehľadnosti a jednoduchosti.

Samozrejme, v tomto momente sa môžete zbaviť jedného zo zvierat v technologickej zoo a všetky zmeny inteligentne preniesť do konfigurácie. Koniec koncov, potom sa budete musieť "postarať" o dve zvieratá - a rozšírenia a úpravy v najtypickejšej konfigurácii. Upratať po nich, nakŕmiť ich, nejako sa medzi sebou zosúladiť, aby v procese spolupráce nič neporušili, pridať ešte jeden riadok do zoznamu požiadaviek na vývojárov k voľným miestam na Headhunter.

V dobrom slova zmysle by sa to malo robiť. Heterogenita však vie, že ľudia sú leniví, boja sa dotknúť niečoho, čo nejako funguje, vždy „nemajú čas“ a šéfovia nedokážu v tomto kritickom momente posúdiť potrebu refaktoringu, aby sa vzdali nepotrebnej technológie. Vylepšovania zmien vykonaných prostredníctvom rozšírení sa naďalej vykonávajú prostredníctvom rozšírení. Úpravy vykonané v konfigurácii - pokračujte v konfigurácii. Hlavný nepriateľ podnikovej softvérovej architektúry je pevne zakotvený v zajatom predmostie.

Vo všeobecnosti je lepšie dôkladne premyslieť použitie vysoko špecializovanej technológie. Ak existuje riziko, že bude potrebné zmeniť štruktúru objektov alebo pridať nové databázové objekty, je potrebné často a bez problémov začať s ladením, sú ľudia, ktorí rozumejú, ako na začiatku bez problémov zmeniť konfiguráciu pre následné aktualizácie, potom je lepsie sa hned rozhodnut nechovat zoologicku. Prepisovateľné moduly, programové úpravy formulárov a odbery akcií nám nikto neprevzal. 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 určite nedôjde k veľkým zmenám (naozaj si istý?), potom nebude zoo s rozšíreniami.

A samozrejme pre malé pluginy sú rozšírenia dobré. Existujú príklady dobrého použitia na IS, keď sa namiesto súboru cf zverejňujú rozšírenia s pokynmi na porovnávanie-zlúčenie. To je ale opäť špecifická oblasť a pre pohodlné trvalé používanie je lepšie preniesť funkcionalitu do konfigurácie, aby sa nespomalilo spúšťanie v podnikovom režime.

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

Dobre, nech je aj tento víkend dobrý.

Takže dnes ešte jedna téma „aplikovaného využívania 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í finalizácia konfigurácie sa vykonáva v novej entite- rozšírenie konfigurácie:

  • Rozšírenie je v skutočnosti tiež konfigurácia, ale s určitými obmedzeniami.
  • Pripravenú nadstavbu je možné prepojiť s výrobnou základňou zákazníka v užívateľskom režime
  • Najdôležitejšia vec - upravenú konfiguráciu nie je potrebné odstrániť z podpory, t.j. zostáva typický, nezmenený
  • Aktualizácia upravenej konfigurácie môže používateľ vykonať v automatickom režime

Zákazník teda dostane ako výsledok možnosť revízie konfigurácia 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, poďme:

Priradenie rozšírení konfigurácie

Video pojednáva o novom mechanizme rozšírení konfigurácie, ktorý sa objavil na platforme 8.3.6. Je určený na revíziu, prispôsobenie riešení pri implementácii. Zákazník zároveň získava jednoduchú automatickú aktualizáciu konfigurácie a možnosť vykonávať vylepšenia.

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

Toto video skúma existujúce obmedzenia mechanizmu rozšírenia. 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 popisuje vývoj 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 popisuje požičiavanie objektov základnej konfigurácie do rozšírenia. Toto je hlavný mechanizmus potrebný na vykonanie vývoja samotného rozšírenia. Popisuje aj kontrolované vlastnosti, ktorých hodnota sa kontroluje pri pripojení rozšírenia.

Vytváranie vlastných objektov v rozšírení konfigurácie

Toto video vám ukáže, ako si môžete v rozšírení vytvoriť 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 skúma, ako pripojiť pripravené rozšírenie k výrobnej základni 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 rozšíreniach konfigurácie

Toto video ukazuje, ako pracovať so spravovanými formulármi v rozšírení. Upozorňujeme, že pôvodný formulár nie je automaticky synchronizovaný s príponou. Vysvetľuje, ako systém formuje výsledný vzhľad formy, keď dôjde k expanzii.

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

Toto video vám ukáže, ako pracovať s obsluhou udalostí v spravovaných formách rozšírenia konfigurácie.

Ukazuje, ako spustiť obsluhu udalostí v hlavnej konfigurácii a v rozšírení.