Domov

Iné Realizované vo verzii 8.3.6.1977. Zaviedli sme zásadne nový adaptačný mechanizmus

aplikačné riešenia

pre konkrétneho spotrebiteľa – predlžovací mechanizmus. Na čo sú rozšírenia dobré? Rozšírenia ponúkajú inú stratégiu zmeny štandardných konfigurácií ako tá existujúca. Pomocou tohto nová stratégia výrazne uľahčí údržbu

štandardné riešenia , ktoré chcete prispôsobiť potrebám konkrétnej realizácie, konkrétneho zákazníka. Ako vyzerá tento proces teraz? Existuje štandardná konfigurácia. Je plne podporovaná dodávateľom. To znamená, že sa to nedá zmeniť. Dodávateľ pravidelne vydáva nové (vylepšené) verzie tejto konfigurácie. V takejto situácii aktualizujte

stará verzia

Konfigurácia pre novú verziu sa vykonáva úplne automaticky. Je to pohodlné a od zákazníka si to nevyžaduje žiadne špeciálne zručnosti alebo znalosti. Často však zákazník chce niečo pridať alebo zmeniť v štandardnej konfigurácii „pre seba“. Za týmto účelom sa zmení režim podpory, konfigurácia sa odstráni z plnej podpory. Potrebné zmeny v ňom vykoná implementačný partner alebo vlastní IT špecialisti zákazníka. Od tohto momentu je plne automatická aktualizácia štandardnej konfigurácie na novú verziu vydanú dodávateľom nemožná. ako samotná štandardná konfigurácia, tak aj vykonané úpravy.

Stratégia, ktorú rozšírenia ponúkajú, je nasledovná. Ak chcete zmeniť štandardnú konfiguráciu, nedotýkajte sa samotnej konfigurácie. Všetky zmeny vykonáte v rozšírení, ktoré je v skutočnosti tiež konfiguráciou.

V režime 1C:Enterprise jednoducho pripojíte vaše rozšírenie k štandardnej konfigurácii. Platforma automaticky v režime 1C:Enterprise kombinuje vaše rozšírenie so štandardnou konfiguráciou. Výsledkom je, že zákazník pracuje so štandardným riešením upraveným podľa svojich predstáv.

Keď dodávateľ vydá novú verziu referenčnej konfigurácie, dôjde k automatickej aktualizácii, pretože režim podpory konfigurácie referenčnej sa nezmenil. Zostala plne podporovaná dodávateľom. A keď spustíte aktualizované aplikačné riešenie, platforma opäť automaticky zlúči zmenenú štandardnú konfiguráciu s vaším rozšírením. A zákazník bude naďalej pracovať so štandardným riešením upraveným podľa svojich predstáv.

Kedy by ste mali používať rozšírenia?

Výsuvný mechanizmus je lákavý svojou univerzálnosťou. Preto je dôležité mať správnu predstavu o tom, aké úlohy má riešiť.

Po prvé, rozšírenia sú nevyhnutné, keď aplikačné riešenie funguje v režime zdieľania údajov. Napríklad v modeli služieb. Jeden z predplatiteľov chce mať niekoľko ďalších správ. Zatiaľ čo ostatní predplatitelia chcú pracovať s nezmenenou štandardnou konfiguráciou.

Potom môžete pre tohto predplatiteľa vyvinúť rozšírenie, v ktorom môžete implementovať všetky jeho želania. Predplatiteľ pripojí toto rozšírenie a bude pracovať so zmenenou konfiguráciou. Zatiaľ čo pre ostatných predplatiteľov nenastanú žiadne zmeny. Pretože všetky rozšírenia sú pripojené a spúšťané na základe aktuálnych hodnôt oddeľovača.

Iná situácia je, keď sa pri implementácii upraví štandardná konfigurácia pre konkrétneho zákazníka. Alebo úpravy štandardnej konfigurácie, ktoré si IT špecialisti zákazníka vykonajú sami. Ak sa v rozšírení urobia všetky tieto vylepšenia, štandardná konfigurácia zostane plne podporovaná, čo výrazne zjednoduší jej ďalšiu údržbu.

Existuje pokušenie používať rozšírenia na vytváranie masovo vyrábaných aplikačných riešení, ale nemalo by sa to robiť. Po prvé, pretože rozšírenia neboli navrhnuté na takéto úlohy. A po druhé, pretože iné mechanizmy platformy, ako napríklad mechanizmy doručovania a podpory, o rozšíreniach nič nevedia.

Ak sa pozriete trochu do histórie vzhľadu rozšírení, potom sme, samozrejme, už predtým videli a vidíme aj teraz, že konfigurácie sú čoraz zložitejšie. Vidíme, že je potrebná ďalšia podpora rôzne úrovne vývoj: knižnica, modulárny a priemysel atď. Všetky tieto úlohy sme analyzovali a dospeli sme k záveru, že majú najvyššiu prioritu momentálne je prispôsobenie konfigurácií želaniam užívateľov počas implementácií.

Pre túto úlohu sme vytvorili mechanizmus rozšírenia. Samozrejme si v ňom môžete všimnúť rôzne črty ostatných uvedených oblastí vývoja. Nie sú však jeho hlavným účelom a nemali by vás zmiasť.

Čo teraz môžete zmeniť pomocou rozšírení?

Zatiaľ sa toho veľa neurobilo, čo sa plánuje urobiť. Mechanizmus sa bude, samozrejme, vyvíjať. Ale to, čo sa už urobilo, môže byť v mnohých prípadoch užitočné počas implementácií. teraz:

  • Dá sa zmeniť riadené formuláre existujúci v štandardnej konfigurácii;
  • Môžete pridať nové subsystémy. Môžete zmeniť zloženie subsystémov dostupných v štandardnej konfigurácii;
  • Dá sa zmeniť rolíštandardná konfigurácia, pridanie objektov vytvorených v rozšírení k nim;
  • Dá sa zmeniť príkazové rozhranie typická konfigurácia (hlavný oddiel, podsystémy);
  • Môžete pridať nové správy A spracovanie.

V budúcnosti plánujeme funkcionalitu rozšírení postupne zvyšovať a radi si vyžiadame váš názor na to, ktorá funkcionalita je v implementáciách s menšími úpravami najžiadanejšia.

Ako rozšírenie funguje?

Rozšírenie je veľmi podobné bežnej konfigurácii. Je tiež reprezentovaný ako strom objektov. Na prácu s rozšírením sa používajú rovnaké pracovné metódy ako pri bežnej konfigurácii.

Dôležitou vlastnosťou rozšírenia je prítomnosť požičané predmety. Pomocou príkazu kontextového menu si môžete požičať ľubovoľný objekt štandardnej konfigurácie:

Požičané predmety nie sú vždy potrebné. Najlepšie to vysvetlíme na príklade „každodennosti“, ak nakreslíme analógiu s obedom v reštaurácii.

Prvá situácia je, keď sú potrebné požičané predmety.

Ste zvyknutí obedovať v tej istej reštaurácii. Vždy si objednáte steak a čaj. Napríklad preto, že v tejto reštaurácii sú veľmi dobrí. Alebo z iného dôvodu. To je jedno. Dôležité je len to, že ich budete jesť a nič iné.

Potom je reštaurácia typickou informačnou základňou. Ste rozšírenie. Menu reštaurácie je rozšíriteľná štandardná konfigurácia. Biftek a čaj sú vypožičané predmety. Požičali ste si ich (pamätali ste si, že boli v ponuke).

Ako sa rozšírenie pripája ku konfigurácii a funguje? Prídete do reštaurácie a požiadate o menu. Na jedálnom lístku vidíte, že je tu steak a čaj. To znamená, že vytvoríte súlad medzi vypožičanými objektmi a objektmi štandardnej konfigurácie. Prirodzene, zhodujete sa podľa mena :). Prinesú vám steak a čaj, zjete ich. To znamená, že rozšírenie sa pripojí a funguje.

O týždeň neskôr prídete, ale menu reštaurácie sa zmenilo (štandardná konfigurácia bola aktualizovaná). Steak a čaj sú však stále v ponuke. Sú presne to, čo potrebujete. Prinesú vám ich, vy ich zjete. To znamená, že rozšírenie naďalej funguje s aktualizovanou štandardnou konfiguráciou.

O týždeň prídete do reštaurácie a uvidíte, že steak a čaj zmizli z ponuky. Vstanete a odídete (chyba pri pripojení rozšírenia). Pretože to ste chceli. A o iných jedlách (predmetoch) nemáte ani potuchy. Vývojár vás nenaučil, ako správne jesť slimáky alebo homáre.

Ďalšia situácia, kedy sa zaobídete bez požičaných predmetov.

Idete do reštaurácie, no dostupnosť konkrétnych jedál vás nezaujíma. Pretože ich aj tak nezjete. Chceš ich len odfotiť. A viete odfotiť akékoľvek jedlo. Potom sa už len pripojíte ku konfigurácii a poviete: prineste všetko občerstvenie, ktoré máte v ponuke (z metadát získate zbierku dokumentov). Presmerujem ich (odfotím).

Ak to opíšeme suchým jazykom vývojárov, ukáže sa, že si musíte požičať predmety:

  • Keď sú potrebné pre vizuálny dizajn. Napríklad rozšírite formulár a pridáte rekvizity formulára, napr Adresár Meny.Odkaz. Potom by ste si samozrejme mali požičať referenčnú knihu Meny, takže pri pripojení k štandardnej konfigurácii máte istotu, že takýto adresár stále existuje.
  • Keď sú potrebné na fungovanie kódu. Napríklad v kóde rozšírenia máte prístup k atribútu adresára Nomenklatúra - Dovozca. Potom si musíte požičať aj tento atribút, aby ste pri pripájaní mali istotu, že v štandardnej konfigurácii takýto atribút v adresári stále existuje Nomenklatúra.

Pripojenie rozšírenia

Rozšírenie vytvoríte v konfigurátore. Po odladení a otestovaní ho môžete odmietnuť uložením prípony do súboru *.cfe.

Tento súbor môžete odoslať zákazníkovi. Zákazník si ho nezávisle nahrá do svojej informačnej základne v režime 1C:Enterprise pomocou štandardnej funkcie Správa rozšírení konfigurácie.

Práca s rozšíreniami je dostupná zo vstavaného jazyka, takže v aplikačnom riešení si môžete vytvoriť vlastné spracovanie, ktoré bude rozšírenia načítavať. Aby sme zabránili každému hrať sa s rozšíreniami, pridali sme nové právo - Správa rozšírení konfigurácie.

Keď načítate príponu zo súboru, uloží sa do informačnú základňu. Okrem toho sa uloží v kontexte aktuálnych hodnôt oddeľovača použitých v tejto relácii.

Aby rozšírenie fungovalo, relácia sa musí reštartovať. Keď sa relácia začne, tesne pred vyvolaním udalosti Nastavenie parametrov relácie, všetky rozšírenia uložené v informačnej databáze a zodpovedajúce aktuálnym hodnotám oddeľovača pre túto reláciu budú pripojené.

Výsledkom je, že pri práci v režime zdieľania údajov sa rozšírenie použije iba na používateľov tohto konkrétneho predplatiteľa. A ak sa nepoužije oddelenie údajov, rozšírenie bude fungovať pre všetkých používateľov infobázy.

Pri pripájaní rozšírenia, ako sme už povedali, sa kontroluje, či požičané objekty existujú v štandardnej konfigurácii. Objekty sa zhodujú podľa názvu.

Okrem toho je možné jemnejšie ovládanie. Ovládať môžete nielen samotný fakt existencie predmetov, ale aj stav ich jednotlivých vlastností. To znamená, že ak premýšľate o reštaurácii a steaku, môže byť pre vás dôležitá nielen prítomnosť nejako prepečeného steaku, ale práve to, že sa tu varí vzácne, „vzácne“.

Vráťme sa k rozšíreniu, štandardne neovláda vlastnosti vypožičaných objektov. V prípade potreby však môžete niektoré vlastnosti nastaviť tak, aby boli ovládateľné. Napríklad pre váš algoritmus je dôležité, aby existoval nielen adresár Nomenklatúra, ale aj to, že jeho kód má typ Linka.

Potom, ak v typickej konfigurácii dodávateľ zmení typ kódu tohto adresára na číslo, vaše rozšírenie to zistí v čase pripojenia a nahlási chybu.

Zaujímavý bod súvisí s premenovaním štandardných konfiguračných objektov. Napríklad ste prišli do reštaurácie a namiesto toho Steak napísané Steak. To znamená, že pri pripájaní ku konfigurácii v nej rozšírenie nenájde adresár Nomenklatúra, pretože ho predajca premenoval na Tovar.

Teraz pre vás táto situácia nie je problém. A nemusíte „vyhadzovať“ celý kód rozšírenia tak, aby namiesto toho Nomenklatúra písať Tovar. Tiež to funguje. Preto stačí zmeniť názov požičaného predmetu na Tovar a platforma vykoná ostatné zmeny v rozšírení sama. Alebo s vašou minimálnou pomocou.

Operácia rozšírenia

O vlastnostiach rozširovania rôznych objektov, o vlastnostiach fungovania samotných rozšírení môžete hovoriť pomerne dlho. Sme ale limitovaní rozsahom recenzného článku, takže sa dotkneme len kľúčových a najodhaľujúcich bodov.

Hlavnou „krásou“ rozšírení nie je, samozrejme, to, že do štandardnej konfigurácie môžete pridať niečo, čo tam nie je. A faktom je, že v rozšírení môžete zmeniť to, čo je už v štandardnej konfigurácii. To znamená, že môžete meniť vlastnosti vypožičaných predmetov.

Základný koncept, ktorý sa používa, keď konfigurácia a rozšírenie spolupracujú, možno opísať nasledovne. Na tých miestach, kde sa nepretínajú, rozšírenie dopĺňa konfiguráciu. V miestach, kde sa „pretínajú“, sa uplatňuje expanzia.

Podrobnejšie to možno vidieť na príklade spravovaných formulárov. Môžete si požičať formulár z hlavnej konfigurácie a upravovať ho v rozšírení bez obmedzení. Pre vizuálnu časť formulára a pre jeho modul sa používajú dve rôzne stratégie kombinovania.

Vizuálna časť tlačiva je fixovaná v nadstavci v čase jeho zapožičania. A v režime 1C:Enterprise sa pre každý prvok formulára analyzujú zmeny súvisiace s týmto stavom v štandardnej konfigurácii a v rozšírení.

Ak nenastali žiadne zmeny alebo boli iba v štandardnej konfigurácii, použije sa hodnota zo štandardnej konfigurácie. V ostatných prípadoch sa použije hodnota z rozšírenia.

Ak ste teda do formulára v rozšírení pridali nový príkaz, uvidíte ho spolu s ostatnými príkazmi formulára. A ak ste zmenili názov existujúcej skupiny, potom uvidíte svoj názov, aj keď názov tejto skupiny v štandardnej konfigurácii zmení dodávateľ.

Moduly formulárov používajú iný prístup. Pre vypožičaný formulár si rozšírenie vytvorí vlastný modul s vlastnými handlermi pre všetky udalosti. V režime 1C:Enterprise sú oba moduly formulára (zo štandardnej konfigurácie a z rozšírenia) kombinované v jednom kontexte. Z tohto dôvodu má každé rozšírenie svoju vlastnú predponu, ktorá sa pridáva ku všetkým obslužným programom udalostí v module formulára. Aby neboli náhody s handlermi zo štandardnej konfigurácie. Potom sa sekvenčne a synchrónne volajú obslužné programy udalostí a príkazov. Najprv psovod z predĺženia. Potom zo štandardnej konfigurácie. Túto sekvenciu môžete zmeniť alebo úplne zakázať vykonávanie handlera zo štandardnej konfigurácie.

Vo všeobecnosti, pokiaľ ide o spolupráce konfigurácie a rozšírenia v režime 1C:Enterprise, existujú v spoločnom mennom priestore. To platí nielen pre jednotlivé moduly, ale aj pre samotné stromy metadát. Preto v režime 1C:Enterprise neexistuje žiadny spôsob, ako určiť, či je tento objekt „natívny“ pre štandardnú konfiguráciu, alebo či pochádza z rozšírenia.

Čo sa týka ostatných objektov, ktoré môžete v rozšírení použiť, všetko pre ne vyzerá oveľa jednoduchšie.

V rozšírení si môžete vytvárať vlastné podsystémy. Pomocou vypožičaných objektov môžete rozšíriť existujúce podsystémy: pridať k nim objekty a podsystémy, ktoré sú už v štandardnej konfigurácii, alebo tie, ktoré ste vytvorili v rozšírení. Nemôžete niečo odstrániť z existujúceho podsystému.

Roly môžete rozšíriť iba pridaním objektov vytvorených v rozšírení. Z existujúcej roly tiež nemôžete nič odstrániť. To isté platí pre príkazové rozhranie.

Rozšírenie je takmer konfigurácia

Na začiatku sme povedali, že rozšírenie je podobné bežnej konfigurácii. Preto by som na záver rád povedal pár slov o tom, ako sú rozšírenia integrované s inými mechanizmami platformy.

Rozšírenie (ako bežná konfigurácia) má hlavnú konfiguráciu a konfiguráciu databázy. Mechanizmus porovnávania a spájania konfigurácií funguje s rozšíreniami rovnako ako s bežnými konfiguráciami.

Príponu môžete nahrať do súboru (hoci s inou príponou *.cfe) a načítať zo súboru. Rozšírenia je možné nahrať/načítať vo formáte XML.

Mechanizmy na globálne vyhľadávanie, nahradzovanie a úpravu textov rozhrania fungujú aj s rozšíreniami.

Pribudli nové parametre príkazového riadku pre prácu s rozšíreniami, ako aj nové udalosti v protokole.

V zabudovanom jazyku je hlavným objektom pre prácu s rozšíreniami ExtensionManagerConfiguration.

Mechanizmus rozšírenia konfigurácie je špeciálny mechanizmus určený na úpravu rozšíriteľnej konfigurácie bez zmeny tejto konfigurácie (vrátane bez odstránenia podpory).

Pri zvažovaní mechanizmu rozšírenia konfigurácie sa použijú nasledujúce výrazy:

  • Rozšíriteľná konfigurácia– hlavná konfigurácia informačnej databázy, pre ktorú sa rozšírenie používa alebo pre ktorú sa rozšírenie vyvíja.
  • Rozšírenie konfigurácie– množina konfiguračných objektov pripojených k rozšíriteľnej konfigurácii a obsahujúcich množinu objektov pridaných do rozšíriteľnej konfigurácie. Rozšírenie môže zahŕňať objekty rozšírenej konfigurácie aj objekty, ktoré nie sú v rozšírenej konfigurácii.
  • Vlastný objekt– samostatný konfiguračný objekt, ktorý môže byť umiestnený v rozšíriteľnej konfigurácii aj v rozšírení (zostava, spracovanie alebo subsystém).
  • Požičaný predmet– vlastný objekt pridaný do rozšírenia konfigurácie.
  • Rozšíriteľný objekt– vlastný objekt, u ktorého boli v požičanom objekte zmenené akékoľvek parametre (vlastnosti, formy a pod.).
  • Rozširujúci sa objekt je vypožičaný objekt, ktorý bol upravený vzhľadom na objekt, ktorý sa rozširuje. To, že má vypožičaný predmet iba kontrolované vlastnosti, neznamená, že je vypožičaný predmet rozšíriteľný.
  • Výsledný objekt– toto je vlastný objekt plus spojenie všetkých predlžujúcich sa objektov (ak existuje viacero rozšírení). Ak neexistujú žiadne rozširujúce objekty pre jeho vlastný objekt, stáva sa výsledným objektom „bez zmien“. Tie. v konfigurácii, s ktorou používateľ pracuje - výsledné sú všetky objekty bez ohľadu na prítomnosť a počet nainštalovaných rozšírení.
  • Rozširujúca sa vlastnosť– vlastnosť vypožičaného predmetu, ktorá mení rovnomennú vlastnosť rozšíreného predmetu.
  • Kontrolovaný majetok– vlastnosť vypožičaného objektu, ktorej hodnota sa kontroluje pri pripájaní rozšírenia k rozšírenej konfigurácii. Ak sa pri pripájaní rozšírenia (v režime 1C:Enterprise) hodnota kontrolovanej vlastnosti v rozšírení nezhoduje s hodnotou rovnakej vlastnosti v konfigurácii, ktorá sa rozširuje, rozšírenie sa nepripojí.
  • Upraviteľná vlastnosť– vlastnosť požičaného predmetu, ktorej hodnotu vo výslednom predmete získame z prístavby.

Vlastnosť vypožičaného predmetu nemôže byť súčasne kontrolovaná a modifikovaná.

Hlavným účelom rozšírenia konfigurácie je upraviť aplikačné riešenie počas implementácie (alebo v „cloude“) tak, aby vyhovovalo potrebám klienta. V tomto prípade modifikovanú konfiguráciu nie je potrebné odstrániť z podpory. Výsledkom je, že je stále jednoduché aktualizovať štandardné aplikačné riešenie, ktoré je podporované, s potrebou vykonať úpravy. Pri vývoji rozšírenia by ste mali pochopiť niektoré funkcie toho, ako rozšírenie konfigurácie funguje. Rozšíriteľnú konfiguráciu je teda možné kedykoľvek zmeniť, napríklad v dôsledku aktualizácie. Vývojár rozšírenia zároveň nemôže žiadnym spôsobom ovplyvniť možnosť alebo nemožnosť aktualizácie. Mali by ste tiež vziať do úvahy skutočnosť, že v systéme môže fungovať viac ako jedno rozšírenie a autor každého rozšírenia (vo všeobecnosti) nevie, ako funguje druhé rozšírenie.

Prípona je vytvorená v konfigurátore, uložená v informačnej databáze a môže byť uložená do súboru. Na pridanie (pripojenie) rozšírenia uloženého v súbore do konkrétneho klientskeho aplikačného riešenia nie je potrebné používať konfigurátor. Rozšírenie môžete pripojiť pomocou špeciálnej štandardnej funkcie (Všetky funkcie – Štandardné – Spravovať rozšírenia konfigurácie). Rozšírenie môžete pripojiť aj pomocou súpravy nástrojov aplikačného riešenia, ktorá využíva programovacie rozhranie poskytované platformou. Pripojenie rozšírenia (interaktívne alebo zo vstavaného jazyka) je možné buď v nezabezpečenom režime, alebo v prípade, že bezpečnostný profil, pod ktorým relácia beží, umožňuje prístup k pripojenej pobočke.

Rozšíriteľné objekty môžu byť:

  • Spravované formuláre;
  • Role;
  • Subsystémy;
  • Nastavenia pre domovskú stránku (pracovnú plochu) aplikačného riešenia;
  • Všeobecné moduly;
  • Objektové moduly pre všetky typy objektov;
  • Manažérske moduly pre všetky typy objektov;
  • Modul relácie;
  • Modul riadenej aplikácie;
  • Externý spojovací modul;
  • Príkazové moduly.

Nasledujúce objekty môžu fungovať ako vaše vlastné objekty rozšírenia:

  • Subsystémy;
  • Spracovanie;
  • správy;
  • Podrobnosti, tabuľkové časti a detaily tabuľkových častí v požičaných spracovaní a správach;
  • Role;
  • balíky XDTO;
  • Webové služby;
  • služby HTTP;
  • WS odkazy;
  • Všeobecné rozloženie;
  • Všeobecné príkazy;
  • Spoločné moduly (okrem globálneho servera a privilegovaných spoločných modulov);
  • Tímové skupiny;
  • Všeobecné obrázky;
  • Formuláre, rozloženia a príkazy vypožičaných predmetov:
  • Výmenné plány;
  • Kritériá výberu;
  • Ukladanie nastavení;
  • Adresáre;
  • dokumenty;
  • Záznamy dokumentov;
  • Prevody;
  • správy;
  • Spracovanie;
  • Registre informácií;
  • Akumulačné registre;
  • Účtovné registre;
  • Výpočtové registre;
  • Plány pre typy charakteristík;
  • Účtovné osnovy;
  • Plány pre typy výpočtov;
  • Obchodné procesy;
  • úlohy;
  • Tabuľky externých zdrojovúdaje;
  • Kocky externých dátových zdrojov;
  • Tabuľky dimenzií z externých zdrojov údajov.

Medzi kontrolovanými vlastnosťami je potrebné osobitne spomenúť:

  • Zloženie plánu výmeny;
  • Preddefinované prvky pre referenčné knihy, plány charakteristických typov, účtové osnovy a plány kalkulačných typov.

Základné verzie aplikačných riešení nepodporujú prácu s rozšíreniami.

Od vydania 8.3.6 platformy 1C:Enterprise sa v ňom objavil mechanizmus konfiguračné rozšírenia.

Umožňuje vám zaviesť nové a predefinovať existujúce funkcie bez zmeny hlavnej (rozšíriteľnej) konfigurácie. Máme teda veľa nových príležitostí, ktoré boli predtým nedostupné.

Nové funkcie

Obmedzenia

Samozrejme existujú obmedzenia:

  • Rozšírenia môžu pridávať iba obmedzený počet nových metadát. Sú to podsystémy, roly, zostavy, spracovanie a niektoré ďalšie.
  • V niektorých situáciách môžu nastať problémy s ladením.

Príklad použitia

Pozrime sa na príklad, ako môžete prepísať bežnú procedúru modulu pomocou konfiguračného rozšírenia. To je prípad, keď potrebujeme rýchlo opraviť nejakú chybu bez vydania vydania a aktualizácie hlavnej konfigurácie. Povedzme teda, že máme spoločný modul professia1c_ry_Extensions.

A obsahuje najjednoduchší postup, ktorý zobrazí správu:

Procedúra OutputMessage() Exportovať správu = New MessageToUser; Správa. Text ="Toto je základná konfigurácia"

; Správa. Správa() ;


Koniec procedúry Teraz zobrazme ďalšiu správu pomocou rozšírenia. V prvom rade si samozrejme musíme vytvoriť samotné rozšírenie. V ponuke konfigurátora vyberte Konfigurácia - Rozšírenie konfigurácie V okne, ktoré sa otvorí, kliknite na tlačidlo A Pridať a vyplňte polia s vlastnosťami rozšírenia. Polia Meno Synonymum nie sú potrebné žiadne komentáre. Predpona sa použije pre názov procedúry rozšírenia, ktorá nahradí pôvodnú procedúru. A na zoznameÚčel z troch:

možné možnosti (Oprava, Prispôsobenie, Pridanie) vyberte A Oprava:


Takto sme vytvorili rozšírenie. Ak ho ale otvoríme dvojitým kliknutím, uvidíme, že jeho strom metadát je prázdny. A teraz musíme do rozšírenia pridať všeobecný modul.

Ak to chcete urobiť, v hlavnom konfiguračnom strome metadát kliknite pravým tlačidlom myši na požadovaný spoločný modul a vyberte "Pridať do rozšírenia":


A teraz bude naše rozšírenie vyzerať takto:

Ak sa však pozrieme na kód spoločného rozširujúceho modulu, vidíme, že je prázdny. A ďalším krokom je pridať k tomu postup. Opäť prejdeme do hlavnej konfigurácie, otvoríme kód spoločného modulu, klikneme pravým tlačidlom myši na postup, znova vyberieme položku "Pridať do rozšírenia" a v okne, ktoré sa otvorí, vyberte typ hovoru Namiesto toho zavolajte:

V dôsledku toho sa do modulu všeobecného rozšírenia pridá procedúra s nasledujúcim kódom:

&Namiesto("OutputMessage") Procedure Messages_OutputMessage() // Vložte obsah metódy. ContinueCall() ;

Koniec procedúry

&Namiesto("OutputMessage") Ako vidíte, názov procedúry obsahuje predponu, ktorá bola zadaná pri vytváraní rozšírenia. Teraz už zostáva len upraviť kód procedúry, ako potrebujeme:

Procedure Messages_OutputMessage_() Message = Nová správa pre používateľa;

Správa. Text = "Toto je rozšírenie" ;

Správa. Správa() ;

  • Koniec procedúry
  • A teraz sa môžeme ľahko uistiť, že namiesto hlavného konfiguračného kódu spustíme kód rozšírenia, ak spustíme nasledujúci kód: Professia1c_ry_Extensions. OutputMessage() ; Po preštudovaní skúseností s používaním predchádzajúcich verzií programu a pri zohľadnení skutočnosti, že bez ohľadu na to, aké univerzálne a komplexné je konkrétne riešenie, v konečnom dôsledku v 90% prípadov vyžaduje úpravu pre koncového používateľa. Vývojári verzie 8 programu 1C implementovali niekoľko zásadne nových riešení, aby minimalizovali potrebu meniť štandardné konfiguračné mechanizmy:
  • Doslova od prvých verzií programu majú prvky mnohých adresárov teraz možnosť vytvárať ďalšie vlastnosti a kategórie pomocou vhodného plánu pre typy charakteristík a informačný register;
  • Dodatočné

Čo sú rozšírenia konfigurácie 1C, ako s nimi pracovať, obmedzenia pri používaní - to je rozsah problémov, ktoré sa pokúsime pokryť v našom článku.

Trochu teórie

Pred príchodom mechanizmu rozšírenia proces aktualizácie štandardných konfigurácií do značnej miery závisel od toho, či bola konfigurácia podporovaná alebo či v nej boli vykonané zmeny. V druhom prípade musel vývojár:

  1. Porovnajte typickú a existujúcu štruktúru metadát;
  2. Ak existujú významné rozdiely medzi štandardnými prvkami, uistite sa, že sú správne aktualizované;
  3. Po aktualizácii vykonajte príslušné zmeny.

To všetko značne skomplikovalo proces aktualizácie, predĺžilo čas spracovania a často pripravilo organizáciu o možnosť aktualizovať štandardné moduly za drahé náklady. softvér.

Mechanizmus rozšírenia umožňuje upravovať mnohé z jeho prvkov bez odstránenia štandardnej konfigurácie z podpory.

V skutočnosti si vývojár na základe štandardného riešenia vytvorí vlastnú konfiguráciu, ktorá je shellom pre štandardné riešenie. V tomto prípade prebieha proces aktualizácie štandardnej časti automaticky a po spustení koncovým používateľom platforma pre používateľa kombinuje obe riešenia.

Situácie, v ktorých je možné použiť rozšírenia

  • Ako každý iný nástroj, aj mechanizmus rozšírenia má množstvo charakteristík a obmedzení, ktoré určujú rozsah ich použitia:
  • Rozšírenia môžu pracovať so spravovanými formulármi;
  • Mechanizmus podporuje modifikáciu a pridávanie existujúcich subsystémov;
  • Pred vydaním platformy 8.3.8 mohli rozšírenia po aktualizácii meniť iba existujúce roly, umožňovali pridávanie nových, čím obmedzovali prístup aj k hlavným databázovým objektom; Existujúci mechanizmus umožňuje podľa ľubovôle
  • zmeniť príkazové rozhranie podsystémov a hlavnú konfiguračnú časť;
  • Táto súprava nástrojov vám tiež umožňuje pridať spracovanie a zostavy bez vykonania zmien v štruktúre databázy;

Vo verzii platformy 8.3.9.718 bol výrazne prepracovaný mechanizmus diagnostiky kompatibility rozšírenia a hlavnej konfigurácie.

  1. Z vyššie uvedeného je zrejmé, že:
  2. Pri práci s bežnými formulármi je funkčnosť rozšírení výrazne obmedzená;
  3. Tento mechanizmus je vhodné použiť v prípadoch, keď je potrebná diferenciácia vzhľad a funkcie používané rôznymi používateľmi, alebo keď sa štandardná konfigurácia, ktorá je podporovaná, sama upraví.

Prejdime k praxi. Ako počiatočný základ použijeme konfiguráciu „Mzdy a riadenie ľudských zdrojov“ verzia 3.1.3.223, práca bude prebiehať na platforme 8.3.10.2561, prevádzkový režim je súbor.

Vytvorenie rozšírenia

V konfigurátore prejdite do ponuky Konfigurácia->Rozšírenia konfigurácie, otvorí sa formulár (obr. 1).

Tu môžete vytvoriť nové rozšírenie. Kliknite na tlačidlo „Pridať“. Tu je okno nového rozšírenia (obr. 2)

Obr.2

Pozrime sa na jeho prvky:

  • Názov – na rozdiel od ostatných konfiguračných prvkov nie je vytvorený podľa systémových štandardov, t.j. môže začínať číslom alebo symbolom, môže obsahovať medzeru;
  • Synonymum – rovnako ako ostatné prvky metadát obsahuje výraz reprezentujúci objekt;
  • Prefix – umožňuje identifikovať obslužné nástroje udalostí v module formulára, pretože hlavný modul konfiguračného formulára a modul rozšírenia formulára sú kombinované, keď platforma funguje v spoločnom kontexte (v predvolenom nastavení sa najskôr spracuje rozšírenie, tj obslužné nástroje s predpona, potom hlavné manipulátory);
  • Účel.

Zoznam poľa „Cieľ“ pozostáva z troch hodnôt, ktoré popíšeme v poradí vykonávania:

  1. Oprava - rozšírenia tohto účelu sú vytvorené na opravu drobných nepresností a chýb vo vypožičaných predmetoch;
  2. Prispôsobenie – predvolená hodnota, rozšírenia tohto typu sú určené na prispôsobenie štandardných objektov požiadavkám konkrétneho používateľa (ak bolo rozšírenie vytvorené vo verzii programu nižšej ako 8.3.9, po aktualizácii platformy bude mať presne tento účel) ;
  3. Doplnok – vnášajú do štandardného riešenia úplne novú funkcionalitu.

Spustenie rozšírenia

Dvojitým kliknutím na názov rozšírenia v okne z obr. 1 sa otvorí okno rozšírenia (obr. 3)


Ako vidíme, je to strom podobný stromu hlavnej konfigurácie. A tu vyvstáva jedna otázka: v akých prípadoch by sa mal predmet požičať?

Požičiavať je potrebné len tie objekty (adresáre, dokumenty, detaily a pod.), ktoré budú použité v rozšírení formulára, prípadne v kóde jeho modulu a bez požičania, pri ktorých môže dôjsť k chybe v prevádzke rozšírenia.

To znamená, že ak náš vývoj vyžaduje podrobnosti „TIN“ adresára „ Jednotlivci“, ak sa má použiť vo formulárovom module, musíme si ho požičať z hlavnej databázy. V tomto prípade sa pri každom spustení rozšírenia vykoná kontrola prítomnosti tohto atribútu v hlavnom konfiguračnom adresári a zhoda typu údajov v zdrojovej databáze a v rozšírení.

Ak po aktualizácii alebo pri vývoji novej funkcionality dôjde k nesúladu medzi typom údajov rozšírenia a konfigurácie alebo k iným chybám, systém o tom používateľa informuje (obr. 4).

Okno v pravom dolnom rohu označuje neštandardná situácia pri pripájaní rozšírenia sa otvorí dvojitým kliknutím naň podrobné informácie. V tomto prípade sme jednoducho zmenili typ hodnoty atribútu TIN z hodnoty „String“ na hodnotu „Boolean“ pri požičanom objekte, ale oveľa častejšie nastáva opačná situácia - pri aktualizácii štandardného produktu dochádza k zmene resp. odstránenie atribútu hlavnej databázy.

Po otestovaní rozšírenia na kópii databázy ho môžete nahrať do samostatného súboru, v okne (obr. 5) musíte kliknúť na tlačidlo „Konfigurácia“ a vybrať možnosť „Uložiť do súboru; možnosť “. Na rozdiel od bežných konfiguračných súborov, ktoré majú príponu cf, konfiguračný súbor bude mať masku *.cfe.

Ako vidíte na obrázku vyššie, nové funkcie si môžete stiahnuť z toho istého okna alebo z hlavného okna programu.

Na pripojenie rozšírenia v režime 1C.Enterprise musí mať používateľ povolený režim „Všetky funkcie“ a prihlásiť sa do programu s právami správcu.

Cesta na pripojenie úprav je nasledovná: Všetky funkcie->Štandardné->Spravovať rozšírenia konfigurácie. Okno, ktoré sa otvorí, je znázornené na obr. 6

Obr.6

Kliknutím na tlačidlo „Pridať“ sa otvorí dialógové okno na výber súboru, v ktorom musíte vybrať náš upload. Ak je zaškrtnuté políčko pre spracovanie (obr. 7) a rozšírenie obsahuje chybu, funkcia sa zruší a program ohlási výnimku.

Obr.7

Aby naša funkcionalita po úspešnom pridaní fungovala, je potrebné program reštartovať.

Požičiavanie predmetov a poradie, v ktorom moduly strieľajú

Aby sme mohli sledovať postupnosť vykonávania handlerov, umožníme možnosť meniť našu konfiguráciu a dopĺňať ju nová liečba, ktorej funkcionalita bude pozostávať len z jednej veci - bude hlásiť, že bola spustená z hlavnej konfigurácie, kód je na obr.8.

Obr.8

Pridajme toto spracovanie do rozšírenia.

Postup:

  • Kliknutím pravým tlačidlom myši aktivujete kontextové menu spracovateľského formulára (obr. 9);

Obr.9

  • Vyberte možnosť „Pridať do rozšírenia“;
  • V dodatočnom konfiguračnom strome sa objaví samotná liečba aj duplikát jej formy;
  • Po otvorení formulára zistíme, že príkaz, ktorý správu spôsobuje, je tam tiež, ale nie je mu priradený handler;
  • Pridaním akcie príkazu sa zobrazí dialógové okno (obr. 10), v ktorom sa okrem hlavných direktív, kde sa príkaz vykoná, nachádza aj skupina „Typ hovoru“.

Obr.10

Pre existujúci postup máme tri typy výzvy;

  • Call before – vykonávanie kódu rozšírenia sa spustí pred vykonaním hlavnej konfigurácie;
  • Call after – upravený postup bude číslo dva;
  • Namiesto toho zavolať – procedúra z hlavnej konfigurácie sa vôbec nevykoná.

Typ hovoru ponechajme v pozícii „Call after“ a pridáme procedúru „Ext1_NotifyAfter(Command)“ (obr. 11).

Obr.11

Výsledkom spustenia nášho spracovania budú dve frázy hlásené za sebou (obr. 12), to znamená, že dodatočná konfiguračná správa sa zobrazí po hlavnej. Ak by sme vybrali „Namiesto toho“, prvý riadok by sme vôbec nevideli.

Obr.12

Od verzie 8.3.9.1818 obsahovala funkcionalita programu mechanizmus na zmenu štandardných modulov, ako aj pridávanie vlastných modulov. A tu boli vývojári konfrontovaní s veľmi špecifickou úlohou: ako určiť, v akom poradí by sa mali vypožičané postupy a funkcie vykonávať nielen vo vzťahu k hlavnej konfigurácii, ale aj vo vzťahu k rozšíreniam, ktoré sú už v konfigurácii pripojené.

Nástroj anotácií

Predstavme si situáciu, že k jednej konfigurácii je pripojených viacero nadstavieb, to znamená, že okno na ich výber v konfigurátore vyzerá ako na (obr. 13)

Obr.13

Pri pridávaní každého nového rozšírenia systém nezávisle zostavuje poradie ich vykonávania.

Poradie vykonávania ďalších modulov sa konfiguruje nielen na základe času, kedy bol modul pridaný (neskôr pridaný, neskôr vykonaný), ale aj na základe účelu úpravy („Spustenie“ bude vždy pred „Prispôsobenie“).

Okrem toho je možné pomocou anotácií upraviť postupnosť vykonávania procedúr pridaných modulov:

  • &Before("Názov procedúry");
  • &After("Názov procedúry");
  • &Namiesto("Názov procedúry").

Ako vidíte, ich sada je podobná tomu, čo bolo demonštrované v predchádzajúcej časti, a podobná je aj funkčnosť.

Keďže požičaný modul a donorový modul sú v rovnakom mennom priestore, nie sú v tomto prípade potrebné žiadne ďalšie definície premenných typu a metód.

Situácia s funkciami je trochu iná ako s procedúrami. Faktom je, že vykonanie štandardnej procedúry môže byť, ako to bolo, lemované kódom rozšírenia, to znamená, že môžete vložiť niektoré akcie pred kód procedúry, niektoré algoritmy za, ale pre funkcie to nebude fungovať. Ak je hlavná funkcia vykonaná po rozširujúcom kóde, návratová hodnota náhradnej funkcie nebude prijatá, ale ak je pred modifikovaným algoritmom, hodnota hlavnej funkcie nebude prijatá a anotácia &Po bude fungovať ako &Namiesto toho.

Na odstránenie tejto „nespravodlivosti“ bola vytvorená metóda ContinueCall().

Vo všeobecnosti je použitie anotácie „Namiesto“ trochu nesprávne, hoci niekedy je to potrebné. Jeho použitím výrazne obmedzujeme funkcionalitu, ktorú je možné v štandardných konfiguráciách výrazne meniť a upravovať.

Vykonávanie zmien v objektovom module

Mechanizmus predplatného udalosti značne uľahčil prácu vývojárom, no bolo tu jedno vážne ALE.

Na jeho použitie ste si však často museli vytvoriť vlastný spoločný modul, v ktorom by boli uložené procedúry na spracovanie určitých akcií s údajmi. V súčasnosti používanie rozšírení umožnilo výrazne prepracovať túto funkcionalitu.

Povedzme, že počas našej práce sme potrebovali pridať nejaké spracovanie pre štandardný dokument„Nájom“ pri nahrávaní. Predtým by sme prešli do predplatného a pracovali sme odtiaľ, teraz môžeme tento dokument pridať do rozšírenia:

  • V konfigurátore vyberieme „Recepcia do práce“ a z jeho kontextového menu ho pridáme do nášho rozšírenia (mimochodom, tento mechanizmus má kombináciu klávesových skratiek Alt+Shift+F2);
  • Po výbere vhodného doplnku dostaneme obrázok ako na obr. 14;

Obr.14

  • Nás bude zaujímať žlto zvýraznený prvok „Object Module“, otvoríme ho najskôr aktivovaním príslušného checkboxu (obr. 15);

Obr.15

  • dostaneme prázdna bridlica softvérový modul, pozrime sa na horný panel, presnejšie na prvok uvedený na obr. 16, rozbaľovací zoznam tu predstavuje udalosti, ktoré je možné pre tento objekt spracovať;

Obr.16

  • Skúsme v správe zobraziť číslo dokladu pri jeho zaznamenaní výberom príslušnej udalosti;
  • Dostaneme formulár na výber typu hovoru (obr. 17), určíme, kedy sa číslo zobrazí;

Obr.17

  • Kód procedúry je znázornený na obr. 18;

Obr.18

V niektorých prípadoch sa rozšírenie nepodarí pripojiť, pretože je začiarknuté políčko „Núdzový režim“.

Malý oznam

V blízkej budúcnosti 1C plánuje vydať platformu 8.3.11, v ktorej oznámili možnosť pridať svoje vlastné:

  • dokumenty;
  • Adresáre;
  • Výmenné plány;
  • Registre informácií.

Implementovaná by mala byť aj možnosť pridávať detaily a tabuľkové časti. Vývojári zároveň zohľadnili možnosť zmeny štandardných riešení, čo by mohlo viesť k nefunkčnosti rozšírenia.

Údaje zadané do rozšírenia sa nikde nestratia a kým sa nevyrieši problém s kompatibilitou, do hlavného konfiguračného adresára upraveného rozšírením nebude možné zapisovať.