Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Način kompatibilnosti proširenja konfiguracije je veći od načina. Proširenja konfiguracije - kako dodati funkcionalnost tipičnoj konfiguraciji bez uklanjanja iz podrške (20 minuta videa)

Način kompatibilnosti proširenja konfiguracije je veći od načina. Proširenja konfiguracije - kako dodati funkcionalnost tipičnoj konfiguraciji bez uklanjanja iz podrške (20 minuta videa)

Kolege, pozdrav svima.

Prije nekoliko dana izašao je test Enterprise Accounting sa onemogućenim načinom kompatibilnosti sa platformom 8.3.6.
To znači da ova verzija koristi novi mehanizam koji prikazuje forme na nov način.
O tome možete pročitati u kroz Zrcalno staklo.

Zajedno sa standardnim, trebali biste preurediti svoja proširenja na novu platformu.
U procesu prevođenja, formirao sam malu kontrolnu listu ili memorandum o tome šta treba da uradim za sebe.

dopis:


1. Prenosimo proširenje na novu platformu

Da biste to učinili, promijenite način kompatibilnosti proširenja u način kompatibilnosti konfiguracije.
U verziji Enterprise Accounting postavljena su sljedeća svojstva:

U proširenju možete postaviti potpuno ista svojstva ili poništiti sve potvrdne okvire.
Odsustvo zastavica znači da ekstenzija neće provjeriti ova svojstva kada je povezana.
Ako se ova svojstva promijene u glavnoj konfiguraciji, proširenje će ipak početi:


2. Uklonite probleme sa vezom

Da biste to učinili, pokrenite konfiguraciju u poslovnom modu i pogledajte da li je uspjela ili ne.
Greške zbog kojih ekstenzija nije mogla biti povezana mogu se vidjeti u evidenciji registracije
(Administracija - Podrška i servis - Dnevnik)
Zanimaju nas događaji - “Session. Greška pri primjeni konfiguracijskog proširenja ":

Najčešće se problem povezivanja rješava uklanjanjem nepotrebnih rekvizita ili objekata.

Glavna poteškoća je u tome što proširenje ne generiše sve greške odjednom (usput, ovaj problem je riješen u 8.3.9).
Stoga je potrebno sekvencijalno pokrenuti konfiguracije nakon ispravljanja svake greške.
Kako bi bilo zgodno pokretanje dnevnika registracije, dodajte ga u favorite:



3. Ažuriranje obrazaca u ekstenziji

Da biste to učinili, u svakom izmijenjenom obrascu kliknite na "Ažuriraj proširenje obrasca"
Ovom naredbom ponovo učitavamo glavni konfiguracijski obrazac u ekstenziju.

U principu će raditi i bez ovoga, ali to je neophodno kako bi obrazac u proširenju izgledao isto kao u glavnoj konfiguraciji.
U verziji 3.0.44, skoro svi obrasci su pretrpeli izmene, pa bi bilo lepo da se te promene unesu u ekstenziju.


4. Dovodimo formu u pravila novog motora.

Preporučujem da pročitate članak - Preporuke za prilagođavanje obrazaca 8.3.7.
Ispituje karakteristike novog motora i daje konkretne preporuke kako da budete sigurni da je sve u redu na novoj platformi.

Sastavio sam sljedeću proceduru:

  • Uklanjamo sve ukrase koji su korišteni za uvlačenje.
    Umjesto njih sada se koriste grupe.
  • Izgleda da sve izgleda dobro.
    Ako je nešto pošlo po zlu, pogledajte članak.
    Ako je sve u redu, onda idite dalje.
  • Provjeravamo svojstva nove platforme“Kombinirano”, “Automatska maksimalna širina” i “Automatska maksimalna visina”.
    Gledamo samo da su standardne postavke platforme postavljene u ovim svojstvima i da se forma zbog toga ne raspršuje.

U ovom članku predlažem da razmotrimo što je "konfiguracijsko proširenje", kako dodati proširenje ili ga onemogućiti. Od verzije 1C 8.6.1977. u platformu je uveden novi mehanizam - konfiguracijske ekstenzije. Prvo, malo teorije.

Proširenja u 1C su nešto poput paralelnih konfiguracija koje se automatski kombinuju sa konfiguracijom glavnog dobavljača. Štoviše, u ekstenzijama možete dodati i vlastite objekte i posuditi objekte glavne konfiguracije.

Čemu služe ekstenzije?

Prije svega, ekstenzije su dizajnirane da olakšaju unošenje promjena u program. Odnosno, ako su korisnici tražili da dodaju neku funkcionalnost, prije nego što su se pojavila proširenja, programeri su morali ukloniti konfiguraciju iz pune podrške i promijeniti tipičnu konfiguraciju.

Odustajanje od pune podrške povlači za sobom niz neugodnosti:

  • izgubljena je mogućnost automatskog ažuriranja, što dovodi barem do povećanja vremena za;
  • potrebna je visoka kvalifikacija specijaliste koji opslužuje program;
  • ako su napravljene promjene na standardnim objektima tipične konfiguracije, tada tokom ažuriranja mogu nestati, odnosno mogu se ponovo zamijeniti standardnim objektima dobavljača.

Kada koristite ekstenzije, prilikom unošenja izmjena, programer neće dirati tipičnu konfiguraciju. Sve promjene će se vršiti korištenjem ekstenzija, koje su (kao što sam gore napisao) ujedno i konfiguracije. Stoga će glavna konfiguracija ostati u potpunosti podržana.

Nakon ažuriranja glavne konfiguracije, ako je došlo do bilo kakvih promjena u novom izdanju s objektom koji je prethodno promijenjen ekstenzijom, promjene će i dalje biti preuzete iz ekstenzije. To jest, ekstenzije imaju prednost nad glavnom konfiguracijom.

Video - 1C ekstenzije za 45 minuta

Preuzmite 267 1C video tutorijale besplatno:

Primjer dodavanja ekstenzije u 1C

Da biste pokazali što je proširenje, bolje je dati primjer njegovog kreiranja u 1C konfiguratoru.

U konfiguratoru idite na izbornik "Konfiguracija" i odaberite stavku "Proširenja konfiguracije". Otvoriće se prozor sa listom ekstenzija (ako ih ima). Kliknite na dugme Dodaj i dodajte novu ekstenziju. Sada možete otvoriti konfiguraciju ekstenzije:

Kao što vidite, konfiguracija proširenja ima potpuno istu strukturu kao i glavna. Samo što je u početku potpuno čisto, bez objekata.

Nedavno sam napisao članak o tome kako to učiniti sam. Koristeći njen primjer, želim da to učinim inline koristeći ekstenziju.

U obradi imam polje sa vezom do direktorijuma "Organizacije". Stoga mi je ovaj vodič neophodan. Ali nećemo kreirati novi direktorij "Organizacije", pogotovo zato što platforma to neće dozvoliti. Nemoguće je da konfiguracija ekstenzije sadrži objekte s istim imenom kao objekti u glavnoj konfiguraciji.

Stoga ćemo referencu posuditi iz glavne konfiguracije:

Sada kliknimo desnim tasterom miša na "Obrada" i izaberemo "Ubaci vanjsku obradu, prijavi..." Tako ćemo dodati novu obradu u konfiguraciju ekstenzije. Ako koristite moju obradu, odmah je preimenujte, jer glavna konfiguracija već ima obradu sa ovim imenom.

Pa, završni dodir. Želim da se moja obrada odrazi u meniju Administracija. Da bismo to učinili, posudit ćemo istoimeni podsistem u glavnoj konfiguraciji. Ne zaboravite u obradi naznačiti da pripada ovom podsistemu.

Evo strukture koju sam dobio:

Hajde da vidimo šta imamo. Ažuriramo konfiguraciju baze podataka i pokrećemo program u 1C: Enterprise modu i idemo na meni "Administracija". Da, skoro sam zaboravio, konfiguracija ekstenzije mora biti zatvorena, inače se program neće pokrenuti:

Tema je "uredno" revizija tipičnog konfiguracija je uvijek ažurirana.

Uz pomoć ekstenzija postaje moguće napraviti poboljšanja, ostavljajući konfiguraciju Bez promjena(to je bez skidanja "iz brave").

Kao primjer, mi proširićemo funkcionalnost standarda"1C: Računovodstvo 8" - dodaćemo provjere kompletnosti detalja dokumenata. Kao rezultat, sistem će izdati dijagnostiku ako su detalji popunjeni "pogrešnim" vrijednostima.

Bukvalno za 15 minuta Naučit ćete tehnike koje možete koristiti za rješavanje različitih problema.

Štaviše, u drugom videu ćemo prikazati univerzalni mehanizam na osnovu ekstenzija. I, razvio takav mehanizam jednom, može se povezati na bilo koja tipična konfiguracija.

Dreams of sopstveni neprolazni može postati stvarnost :)

Pa da počnemo:

Video 1. Tehnike za rad s ekstenzijama - na primjer "1C: Računovodstvo 8"

Nakon proučavanja videa, naučit ćete:

  • Kreirajte i povežite se proširenja konfiguracije
  • Ispuni otklanjanje grešaka ekstenzije
  • Izmijenite standardne obrasce obrade / dokumenti koji koriste ekstenzije
  • Presretanje događaja oblici tipične konfiguracije
  • Pohranite podatke nije u IB tabelama (skladištenje postavki)
  • Koristi obradu kao skladište algoritama

Takođe ćemo analizirati optimizacija sastav objekata proširenja i ograničenja proširenja u trenutnim izdanjima platforme.

Video 2. Kreiranje univerzalnih mehanizama korištenjem ekstenzija

U ovom videu ćemo pokazati:

  • Povezivanje ekstenzije u korisničkom načinu rada ( bez konfiguratora)
  • Primjer univerzalni ček punjenje
  • Karakteristike implementacije proširenja - kreiranje obrazaca sa proizvoljnim odabirima i pohranjivanje podataka u ekstenzije

Objavljeno je novo izdanje platforme 8.3.11, koje vam omogućava da dodajete i mijenjate objekte metapodataka putem ekstenzije. Možemo li sada zaista implementirati bilo kakva poboljšanja bez uklanjanja konfiguracije iz podrške? Vrijedi li klijentu obećavati zlatne planine bez ikakvih posljedica?

Prije svega, morate biti svjesni ograničenja koja ekstenzije imaju.

Ograničenje kreiranih objekata

Trenutno možete kreirati:

  • Imenici
  • Dokumentacija
  • Informacioni registri
  • Planovi razmjene

Možete dodati detalje na:

  • Imenici
  • Dokumentacija

Šta ćemo završiti? Ne mogu se dodati sve vrste metapodataka. Najrašireniji i najtraženiji, ali ipak ne svi. Osim toga, nove dimenzije i resursi se ne mogu dodati u registre detalja. Možete kreirati samo potpuno novi registar.

Funkcionalnost ekstenzija ovisi o načinu kompatibilnosti konfiguracije na koju se ekstenzija primjenjuje.

Način kompatibilnosti 8.3.8- možete mijenjati samo forme objekata i njihovih modula, dodavati vlastite izvještaje i obradu.

Način kompatibilnosti 8.3.10- možete promijeniti uobičajene module, objektne i menadžerske module, uloge, koristiti direktive "Prije", "Nakon", "Umjesto" za bilo koje module.

Nemojte koristiti način kompatibilnosti- možete koristiti sve funkcionalnosti ekstenzija, uključujući dodavanje novih objekata.

U ovom trenutku, tipični UT 11.3 ima način kompatibilnosti 8.3.8. U UT 11.4, način kompatibilnosti je 8.3.10, odnosno, na primjer, za UT većina funkcionalnosti ekstenzija nije dostupna, uključujući kreiranje metapodataka objekata.

Čini se da se postavlja pitanje: zašto jednostavno ne biste uklonili root iz podrške, postavili način kompatibilnosti "Ne koristiti" i sigurno koristiti ekstenzije? Promjena načina kompatibilnosti može promijeniti ponašanje obrazaca, rezultate upita, tj. ponašanje sistema u celini. Toplo se preporučuje da ne mijenjate način kompatibilnosti bez prethodnog testiranja. Ali očito je da se čini mogućim u potpunosti testirati (ili barem u dijelu korištenih dokumenata) cjelokupno primijenjeno rješenje. Stoga ne biste trebali koristiti ovu opciju.

Prilikom povezivanja ekstenzije sa standardnom konfiguracijom, pozajmljivanjem standardnih objekata, ekstenzija kontrolira način kompatibilnosti glavne konfiguracije i vrste posuđenih objekata i njihove detalje. Ako se praćena svojstva ne poklapaju, proširenje je onemogućeno i ne radi dok se ne otkloni uzrok. Odnosno, s velikim ažuriranjem, postoji velika vjerovatnoća promjene barem jednog od praćenih svojstava i gubitka funkcionalnosti ekstenzije.


Osim toga, ako su izmjene značajne, mnoge procedure i funkcije tipične konfiguracije su zamijenjene, morat će se pažljivo pratiti i, ako je potrebno, uskladiti sa tipičnom konfiguracijom, zadržavajući promjene napravljene ranije.


U gore navedenim slučajevima, i dalje će vam trebati pomoć programera i, moguće, značajno vrijeme za reviziju (ali još manje nego kada ažurirate konfiguraciju koja je uklonjena iz podrške).

zaključci

  • Novo izdanje platforme pružilo je nove mogućnosti za korištenje ekstenzija, postalo je moguće dodati objekte metapodataka, ali unatoč tome, funkcionalnost ima određena ograničenja.
  • Način kompatibilnosti konfiguracije na koju je proširenje primijenjeno ozbiljno ograničava proširivost; ne preporučuje se mijenjanje načina kompatibilnosti.
  • Velika ažuriranja i dalje zahtijevaju pažnju programera, jer postoji velika vjerovatnoća promjene kontroliranih svojstava.

Implementirano u verziji 8.3.6.1977.

Implementirali smo fundamentalno novi mehanizam za prilagođavanje primijenjenih rješenja konkretnom potrošaču - mehanizam proširenja.

Zašto su ekstenzije dobre?

Proširenja nude različitu strategiju za promjenu tipičnih konfiguracija od postojeće. Upotreba ove nove strategije uvelike će olakšati održavanje standardnih rješenja koja želite prilagoditi potrebama konkretne implementacije, konkretnog kupca.

Kako sada izgleda ovaj proces? Postoji tipična konfiguracija. Ona je u potpunosti podržana od strane dobavljača. To znači da ga ne možete promijeniti. Dobavljač periodično objavljuje nove (poboljšane) verzije ove konfiguracije. U takvoj situaciji, ažuriranje stare verzije konfiguracije na novu verziju se obavlja potpuno automatski. Zgodno je i ne zahtijeva posebne vještine ili znanja od kupca.

Ali često kupac želi nešto dodati ili promijeniti u tipičnoj konfiguraciji "za sebe". Za to se mijenja način podrške, konfiguracija se uklanja iz pune podrške. Partner koji izvodi implementaciju, ili sami IT stručnjaci kupca, unose potrebne izmjene na njemu. Od ovog trenutka, potpuno automatsko ažuriranje tipične konfiguracije na novu verziju koju je izdao dobavljač postaje nemoguće.

Sada je potreban stručnjak za ažuriranje konfiguracije. Štaviše, ako su promjene napravljene po nalogu kupca bile značajne, tada može biti potrebno značajno ulaganje vremena od stručnjaka koji obavlja ažuriranje konfiguracije. I često može biti potrebno vrlo dobro poznavanje i same tipične konfiguracije i napravljenih modifikacija.

Strategija koju predlažu proširenja je sljedeća. Ako želite promijeniti tipičnu konfiguraciju, ne dirajte samu konfiguraciju. Sve promjene koje unosite u ekstenziju, koja je u stvari i konfiguracija.

U načinu rada 1C: Enterprise jednostavno povezujete svoju ekstenziju sa standardnom konfiguracijom. Platforma automatski, u 1C: Enterprise modu, kombinuje vašu ekstenziju sa tipičnom konfiguracijom. Kao rezultat, kupac radi sa modifikovanim, prema njegovim željama, standardnim rešenjem.

Kada dobavljač objavi novu verziju tipične konfiguracije, vrši se automatsko ažuriranje jer se način održavanja za tipičnu konfiguraciju nije promijenio. Ona je ostala u potpunosti podržana od strane dobavljača. A kada pokrenete ažurirano aplikativno rješenje, platforma će automatski ponovo spojiti promijenjenu standardnu ​​konfiguraciju s vašim proširenjem. A kupac će nastaviti da radi sa modifikovanim, prema njegovim željama, standardnim rešenjem.

Kada treba koristiti ekstenzije?

Mehanizam produžetka je primamljiv zbog svoje svestranosti. Stoga je važno pravilno razumjeti za koje zadatke je namijenjen.

Prvo, ekstenzije su nezamjenjive kada aplikacijsko rješenje radi u načinu dijeljenja podataka. Na primjer, u modelu usluge. Jedan od pretplatnika želi imati nekoliko dodatnih izvještaja. Dok ostali pretplatnici žele da rade sa nepromenjenom tipičnom konfiguracijom.

Tada za ovog pretplatnika možete razviti ekstenziju u kojoj možete ostvariti sve njegove želje. Pretplatnik će povezati ovu ekstenziju za sebe i radit će sa promijenjenom konfiguracijom. Dok za ostale pretplatnike neće biti promjena. Zato što su sve ekstenzije povezane i rade u kontekstu trenutnih vrijednosti separatora.

Druga situacija je završetak tipične konfiguracije za određenog kupca u njegovoj implementaciji. Ili modifikacije tipične konfiguracije, koje sami izvode IT stručnjaci kupca. Ako se sva ova poboljšanja naprave u proširenju, tada će tipična konfiguracija ostati u potpunosti podržana, što će uvelike pojednostaviti njeno dalje održavanje.

Postoji iskušenje da koristite ekstenzije za kreiranje komercijalnih aplikacija, ali ne biste trebali. Prvo, zato što ekstenzije nisu dizajnirane za takve zadatke. I drugo, zato što drugi mehanizmi platforme, kao što su mehanizmi isporuke i podrške, ne znaju ništa o ekstenzijama.

Ako pogledate malo u povijest pojavljivanja ekstenzija, onda smo, naravno, vidjeli ranije, a sada vidimo da konfiguracije postaju složenije. Vidimo da je potrebna dodatna podrška na različitim nivoima razvoja: bibliotečkom, modularnom i industrijskom, itd. Analizirali smo sve ove zadatke i došli do zaključka da je trenutno prioritet prilagođavanje konfiguracija željama korisnika tokom implementacije.

Za ovaj zadatak smo kreirali mehanizam proširenja. Naravno, u njemu se mogu uočiti različite karakteristike ostalih navedenih područja razvoja. Ali oni nisu njegova glavna svrha i ne bi vas trebali zbuniti.

Šta sada možete promijeniti s ekstenzijama?

Do sada nije urađeno mnogo od onoga što je planirano da se uradi. Mehanizam će se, naravno, razvijati. Ali ono što je već urađeno može biti korisno u mnogim slučajevima pri raspoređivanju. Sad:

  • Može se promijeniti upravljane forme postoje u tipičnoj konfiguraciji;
  • Možete dodati nove podsistemi... Možete promijeniti sastav podsistema dostupnih u tipičnoj konfiguraciji;
  • Može se promijeniti uloga tipična konfiguracija, dodavanjem objekata kreiranih u ekstenziji;
  • Može se promijeniti komandni interfejs tipična konfiguracija (glavni dio, podsistemi);
  • Možete dodati nove izvještaji i obrada.

U budućnosti planiramo postupno povećavati funkcionalnost ekstenzija i bit će nam drago da dobijemo vaše mišljenje o tome koja funkcionalnost je najtraženija u implementacijama sa manjim modifikacijama.

Kako ekstenzija funkcionira?

Proširenje je vrlo slično uobičajenoj konfiguraciji. Takođe je predstavljen kao stablo objekata. Za rad s ekstenzijom koriste se iste metode rada kao i kod uobičajene konfiguracije.

Važna karakteristika ekstenzije je prisustvo posuđenih predmeta... Možete posuditi bilo koji objekt tipične konfiguracije koristeći naredbu kontekstnog menija:

Posuđeni predmeti nisu uvijek potrebni. Najbolji način da se ovo objasni je korištenjem “svakodnevnog” primjera, ako povučemo analogiju s ručkom u restoranu.

Prva situacija je kada su potrebni posuđeni predmeti.

Navikli ste da večerate u istom restoranu. Uvijek naručujete biftek i čaj. Na primjer, zato što su jako dobri u ovom restoranu. Ili iz nekog drugog razloga. Nije bitno. Važno je samo da ćete ih pojesti i ništa više.

Tada je restoran tipična informativna baza. Vi ste produžetak. Meni restorana je proširiva standardna konfiguracija. Odrezak i čaj su posuđeni predmeti. Pozajmili ste ih (zapamtite da su na meniju).

Kako se ekstenzija povezuje s konfiguracijom i funkcionira? Dođete u restoran i tražite jelovnik. Na meniju vidite da ima odrezaka i čaja. To jest, uspostavljate korespondenciju između posuđenih objekata i objekata tipične konfiguracije. Naravno, prepisku uspostavljate po imenu :). Donesu ti biftek i čaj, a ti ih pojedeš. To jest, ekstenzija se povezuje i radi.

Sedmicu kasnije dolazite, ali je meni restorana promijenjen (promijenjena je standardna konfiguracija). Ipak, na meniju su još uvijek biftek i čaj. Oni su upravo ono što vam treba. Oni ti ih donesu, ti ih pojedeš. To jest, ekstenzija nastavlja raditi s ažuriranom tipičnom konfiguracijom.

Nedelju dana kasnije dođete u restoran i vidite da su biftek i čaj nestali sa menija. Ustajete i odlazite (poruka o grešci pri povezivanju lokala). Zato što si to želeo. A o drugim jelima (predmetima) pojma nemate. Programer vas nije naučio kako pravilno jesti puževe ili jastoge.

Druga situacija je kada možete bez posuđenih predmeta.

Idete u restoran, ali vas ne zanima dostupnost određenih jela. Jer ih ionako nećeš pojesti. Vi samo želite da ih fotografišete. I znate kako slikati bilo koje jelo. Zatim se samo uključite u konfiguraciju i kažete: nosite sve grickalice koje imate na meniju (uzmite kolekciju dokumenata iz metapodataka). Ponovo ću ih objaviti (fotografija).

Ako ovo opišete suhoparnim jezikom programera, ispada da trebate posuditi objekte:

  • Kada su potrebni za vizuelni dizajn. Na primjer, proširite obrazac i dodate rekvizite obrasca kao što je DirectoryCurrencies.Link... Onda bi, naravno, trebalo da pozajmite referencu Valute, tako da prilikom povezivanja na tipičnu konfiguraciju, budite sigurni da takav direktorij još uvijek postoji u njemu.
  • Kada su potrebni da kod radi. Na primjer, u kodu ekstenzije upućujete na referentni atribut Nomenklatura - Uvoznik... Tada se i ovaj atribut mora posuditi kako bi prilikom povezivanja bili sigurni da takav atribut još uvijek postoji u priručniku u standardnoj konfiguraciji Nomenklatura.

Produžna veza

Vi kreirate ekstenziju u konfiguratoru. Kada se otkloni greške i testiraju, možete ga odbiti tako što ćete spremiti ekstenziju u *.cfe datoteku.

Ovu datoteku možete prenijeti kupcu. Kupac će ga samostalno učitati u svoju bazu podataka u 1C: Enterprise modu koristeći standardnu ​​funkciju Upravljanje proširenjima konfiguracije.

Rad sa ekstenzijama je dostupan iz ugrađenog jezika, tako da u aplikacijskom rješenju možete kreirati vlastitu obradu koja će učitavati ekstenzije. Da se svi ne upuštaju u ekstenzije, dodali smo novo pravo - Administriranje konfiguracijskih ekstenzija.

Kada se ekstenzija učita iz datoteke, ona se pohranjuje u infobazu. Štaviše, pohranjuje se u kontekstu trenutnih vrijednosti separatora koji se koriste u ovoj sesiji.

Sesija se mora ponovo pokrenuti da bi ekstenzija radila. Na početku sesije, neposredno prije saziva događaja SettingSessionParameters, sve ekstenzije pohranjene u bazi podataka i koje odgovaraju trenutnim vrijednostima graničnika ove sesije će biti povezane.

Kao rezultat toga, kada radite u načinu dijeljenja podataka, ekstenzija će se primjenjivati ​​samo na korisnike tog određenog pretplatnika. A ako se ne koristi razdvajanje podataka, proširenje će raditi za sve korisnike baze podataka.

Prilikom povezivanja ekstenzije, kao što smo već rekli, kontrolira se da posuđeni objekti postoje u tipičnoj konfiguraciji. Objekti se podudaraju po imenu.

Osim toga, moguća je finija kontrola. Možete kontrolirati ne samo postojanje objekata, već i stanje njihovih pojedinačnih svojstava. Odnosno, ako razmišljate o restoranu i bifteku, može vam biti važno ne samo prisustvo nekako kuvanog odreska, već upravo to da se on ovde kuva nekuvan, „s krvlju“.

Vraćajući se na ekstenziju, ona po defaultu ne kontrolira svojstva posuđenih objekata. Ali ako je potrebno, neke osobine možete učiniti kontroliranim. Na primjer, za vaš algoritam je važno da ne postoji samo referenca Nomenklatura, ali i da je njegov kod tipa Linija.

Zatim, ako u tipičnoj konfiguraciji dobavljač promijeni tip koda ove reference Broj, vaša ekstenzija će to otkriti u trenutku povezivanja i prijaviti grešku.

Zanimljiva stvar je vezana za preimenovanje standardnih konfiguracijskih objekata. Na primjer, došli ste u restoran, a umjesto Odrezak napisano Odrezak... To jest, kada se povezuje na konfiguraciju, ekstenzija ne nalazi referencu u njoj. Nomenklatura jer ga je prodavac preimenovao u Proizvodi.

Sada vam ova situacija ne predstavlja problem. I ne morate da "lopate" sav kod ekstenzije, tako da umjesto Nomenklatura pisati Proizvodi... Radovi i. Stoga samo trebate promijeniti ime posuđenog objekta u Proizvodi, a ostale promjene u ekstenziji će izvršiti sama platforma. Ili uz vašu minimalnu pomoć.

Rad na proširenju

Možete dugo razgovarati o značajkama proširenja različitih objekata, o karakteristikama rada samih ekstenzija. Ali ograničeni smo opsegom članka za pregled, pa ćemo se dotaknuti samo ključnih i najotkrivajućih točaka.

Glavna "čar" ekstenzija nije, naravno, u tome što tipičnoj konfiguraciji možete dodati nešto čega nema. A činjenica je da u proširenju možete promijeniti ono što je već u standardnoj konfiguraciji. Odnosno, možete promijeniti svojstva posuđenih objekata.

Osnovni koncept koji se koristi kada konfiguracija i proširenje rade zajedno može se opisati na sljedeći način. Tamo gdje se ne preklapaju, proširenje nadopunjuje konfiguraciju. Na onim mjestima gdje se "sijeku" - primjenjuje se proširenje.

To se može detaljnije vidjeti na primjeru upravljanih formi. Možete posuditi obrazac iz glavne konfiguracije i urediti ga u ekstenziji bez ograničenja. Dvije različite strategije spajanja koriste se za vizualni dio obrasca i za njegov modul.

Vizualni dio forme je fiksiran u ekspanziji u trenutku pozajmljivanja. A u režimu 1C: Enterprise, za svaki element obrasca analiziraju se promjene u odnosu na ovo stanje u standardnoj konfiguraciji i proširenju.

Ako nije bilo promjena, ili su bile samo u tipičnoj konfiguraciji, primjenjuje se vrijednost iz tipične konfiguracije. U suprotnom se koristi vrijednost iz ekstenzije.

Stoga, ako ste dodali novu naredbu obrascu u ekstenziji, vidjet ćete je zajedno s ostalim naredbama obrasca. A ako ste promijenili naslov postojeće grupe, vidjet ćete svoj naslov čak i ako provajder promijeni naslov ove grupe u standardnoj konfiguraciji.

Za module obrazaca koristi se drugačiji pristup. Za posuđeni obrazac, proširenje kreira vlastiti modul sa vlastitim rukovateljima za sve događaje. U 1C: Enterprise modu, oba modula obrasca (iz tipične konfiguracije i iz proširenja) kombiniraju se u jednom kontekstu. Iz tog razloga, svaka ekstenzija ima svoj vlastiti prefiks, koji se dodaje svim rukovateljima događaja u modulu obrasca. Tako da nema poklapanja sa rukovaocima iz tipične konfiguracije. Rukovaoci događaja i komandi se tada pozivaju sekvencijalno i sinhrono. Prvo rukovalac iz ekstenzije. Zatim iz tipične konfiguracije. Možete promijeniti ovu sekvencu ili potpuno zabraniti izvršavanje rukovatelja iz tipične konfiguracije.

Općenito, što se tiče zajedničkog rada konfiguracije i proširenja u 1C: Enterprise modu, oni postoje u zajedničkom prostoru imena. Ovo se ne odnosi samo na pojedinačne module, već i na sama stabla metapodataka. Stoga, u 1C: Enterprise modu ne postoji način da se utvrdi da li je ovaj objekt "nativni" za tipičnu konfiguraciju ili je došao iz ekstenzije.

Što se tiče ostalih objekata koje možete koristiti u ekstenziji, za njih sve izgleda mnogo jednostavnije.

U proširenju možete kreirati svoje podsisteme. Koristeći posuđene objekte, možete proširiti postojeće podsisteme: dodati im objekte i podsisteme koji su već u standardnoj konfiguraciji ili one koje ste kreirali u proširenju. Ne možete izbrisati nešto iz postojećeg podsistema.

Uloge možete proširiti samo dodavanjem objekata kreiranih u ekstenziji. Ne možete ništa ukloniti ni iz postojeće uloge. Isto važi i za komandni interfejs.

Proširenje je gotovo konfiguracija

Na početku smo rekli da proširenje izgleda kao obična konfiguracija. Stoga, u zaključku, želio bih reći nekoliko riječi o tome kako su proširenja integrirana s drugim mehanizmima platforme.

Ekstenzija (kao obična konfiguracija) ima osnovnu konfiguraciju i konfiguraciju baze podataka. Mehanizam za upoređivanje i spajanje konfiguracija radi sa ekstenzijama na isti način kao i sa redovnim konfiguracijama.

Možete ukloniti ekstenziju u datoteku (iako s drugom ekstenzijom * .cfe) i učitati iz datoteke. Ekstenzije se mogu isprazniti/učitati u XML-u.

Mehanizmi globalne pretrage, zamene, uređivanja tekstova interfejsa takođe rade sa ekstenzijama.

Postoje novi parametri komandne linije za rad sa ekstenzijama, kao i novi događaji u dnevniku.

U ugrađenom jeziku, glavni objekt za rad sa ekstenzijama je Extension Manager.

Top srodni članci