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

Način kompatibilnosti konfiguracijskog proširenja veći je 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 s onemogućenim načinom kompatibilnosti s platformom 8.3.6.
To znači da ova verzija koristi novi mehanizam koji generira oblike na nov način.
O tome možete pročitati u kroz Zrcalno staklo.

Uz standardna, trebali biste preurediti svoja proširenja na novu platformu.
U procesu prevođenja napravio sam mali popis za provjeru ili bilješku o tome što treba učiniti za sebe.

dopis:


1. Proširenje prenosimo na novu platformu

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

U proširenju možete postaviti potpuno ista svojstva ili poništiti sve potvrdne okvire.
Odsutnost zastavica znači da proširenje neće provjeravati ta svojstva kada je spojeno.
Ako se ova svojstva promijene u glavnoj konfiguraciji, proširenje će se ipak pokrenuti:


2. Uklonite probleme s povezivanjem

Da biste to učinili, pokrenite konfiguraciju u poslovnom načinu rada i pogledajte je li uspjela ili ne.
Pogreške zbog kojih se proširenje nije moglo povezati mogu se vidjeti u zapisniku registracije
(Administracija - Podrška i servis - Dnevnik)
Zanimaju nas događaji - “Session. Pogreška pri primjeni konfiguracijskog proširenja ":

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

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



3. Ažuriranje obrazaca u proširenju

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

U principu će raditi i bez toga, ali to je potrebno kako bi obrazac u proširenju izgledao isto kao u glavnoj konfiguraciji.
U verziji 3.0.44 gotovo svi obrasci su doživjeli izmjene, pa bi bilo lijepo unijeti te promjene u ekstenziju.


4. Formu dovodimo u pravila novog motora.

Preporučam da pročitate članak - Preporuke za prilagodbu obrazaca 8.3.7.
Ispituje značajke novog motora i daje konkretne preporuke kako se uvjeriti da je sve u redu na novoj platformi.

Sastavio sam sljedeću proceduru:

  • Uklonimo sve ukrase koji su služili za uvlačenje.
    Umjesto njih sada se koriste grupe.
  • Gledamo da sve izgleda dobro.
    Ako je nešto pošlo po zlu, pogledajte članak.
    Ako je sve u redu, idite dalje.
  • Provjera novih svojstava platforme"Kombinirano", "Automatska maksimalna širina" i "Automatska maksimalna visina".
    Gledamo samo da su zadane postavke platforme postavljene u ovim svojstvima i da se obrazac zbog toga ne raspršuje.

U ovom članku predlažem da razmotrimo što je "proširenje konfiguracije", 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 nešto su poput paralelnih konfiguracija koje se automatski kombiniraju s konfiguracijom glavnog dobavljača. Štoviše, u proširenjima možete dodati i vlastite objekte i posuditi objekte glavne konfiguracije.

Čemu služe ekstenzije?

Prije svega, proširenja su osmišljena kako bi se olakšale izmjene programa. Odnosno, ako su korisnici tražili da dodaju neku funkcionalnost, tada su prije pojave proširenja programeri morali ukloniti konfiguraciju iz pune podrške i promijeniti standardnu ​​konfiguraciju.

Odustajanje od pune podrške podrazumijeva niz neugodnosti:

  • izgubljena je sposobnost automatskog ažuriranja, što dovodi barem do povećanja vremena za;
  • potrebna je visoka kvalifikacija stručnjaka koji služi program;
  • ako su napravljene promjene na standardnim objektima tipične konfiguracije, tada tijekom ažuriranja mogu nestati, odnosno mogu se ponovno zamijeniti standardnim objektima od dobavljača.

Kada koristite proširenja, prilikom unošenja izmjena, programer neće dirati tipičnu konfiguraciju. Sve promjene će se izvršiti korištenjem ekstenzija, koje su (kao što sam gore napisao) također 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 proširenjem, promjene će i dalje biti preuzete iz proširenja. To jest, proširenja imaju prednost nad glavnom konfiguracijom.

Video - 1C ekstenzije za 45 minuta

Besplatno nabavite 267 1C video tutoriale:

Primjer dodavanja proširenja u 1C

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

U konfiguratoru idite na izbornik "Konfiguracija" i odaberite stavku "Proširenja konfiguracije". Otvorit će se prozor s popisom ekstenzija (ako ih ima). Kliknite gumb Dodaj i dodajte novo proširenje. Sada možete otvoriti konfiguraciju proširenja:

Kao što možete vidjeti, konfiguracija proširenja ima potpuno istu strukturu kao i glavna. Samo što je u početku potpuno čisto, bez predmeta.

Nedavno sam napisao članak o tome kako to učiniti sam. Koristeći njezin primjer, želim ga učiniti umetnutim pomoću ekstenzije.

U obradi imam polje s vezom na imenik "Organizacije". Stoga mi je ovaj vodič neophodan. Ali nećemo stvoriti novi imenik "Organizacije", pogotovo jer platforma to neće dopustiti. Nemoguće je da konfiguracija proširenja sadrži objekte s istim imenom kao objekti u glavnoj konfiguraciji.

Stoga ćemo referencu posuditi iz glavne konfiguracije:

Sada kliknimo desnom tipkom miša na "Obrada" i odaberite "Umetni vanjsku obradu, izvješće..." Tako ćemo dodati novu obradu u konfiguraciju proširenja. Ako koristite moju obradu, odmah je preimenujte, jer glavna konfiguracija već ima obradu s ovim imenom.

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

Evo strukture koju sam dobio:

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

Tema je "uredna" revizija tipičnih konfiguracija je uvijek ažurirana.

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

Kao primjer, mi proširit ćemo funkcionalnost standarda"1C: Računovodstvo 8" - dodat ćemo provjere potpunosti detalja dokumenata. Kao rezultat toga, sustav će izdati dijagnostiku ako su detalji ispunjeni "pogrešnim" vrijednostima.

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

Štoviše, u drugom videu ćemo prikazati univerzalni mehanizam na temelju ekstenzija. I, razvio takav mehanizam jednom, može se spojiti na bilo koju tipičnu konfiguraciju.

Snovi o vlastito neprolazno može postati stvarnost :)

Pa da počnemo:

Video 1. Tehnike rada s proširenjima - na primjer "1C: Računovodstvo 8"

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

  • Stvorite i povežite se proširenja konfiguracije
  • Ispuniti otklanjanje pogrešaka proširenja
  • Izmijenite standardne obrasce obrade / dokumenti koji koriste ekstenzije
  • Presreti događaje oblici tipične konfiguracije
  • Pohranite podatke nije u IB tablicama (skladištenje postavki)
  • Koristite obradu kao pohranu algoritama

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

Video 2. Stvaranje univerzalnih mehanizama pomoću ekstenzija

U ovom videu ćemo pokazati:

  • Spajanje proširenja u korisničkom načinu ( bez konfiguratora)
  • Primjer univerzalna provjera punjenje
  • Značajke implementacije proširenja - stvaranje obrazaca s proizvoljnim odabirima i pohranjivanje podataka u ekstenzije

Objavljeno je novo izdanje platforme 8.3.11 koje vam omogućuje dodavanje i promjenu metapodataka putem proširenja. Možemo li sada stvarno implementirati bilo kakva poboljšanja bez uklanjanja konfiguracije iz podrške? Isplati li se klijentu obećati zlatne planine bez ikakvih posljedica?

Prije svega, morate biti svjesni ograničenja koja proširenja imaju.

Ograničenje kreiranih objekata

Trenutno možete kreirati:

  • Imenici
  • Dokumenti
  • Informacijski registri
  • Planovi razmjene

Možete dodati detalje u:

  • Imenici
  • Dokumenti

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

Funkcionalnost proširenja ovisi o načinu kompatibilnosti konfiguracije na koju se proširenje primjenjuje.

Način kompatibilnosti 8.3.8- možete mijenjati samo oblike objekata i njihove module, dodavati vlastita izvješća i obradu.

Način kompatibilnosti 8.3.10- možete mijenjati uobičajene module, objekte i module upravitelja, uloge, koristiti direktive "Prije", "Nakon", "Umjesto" za sve module.

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

Trenutno tipični UT 11.3 ima način kompatibilnosti 8.3.8. U UT 11.4, način kompatibilnosti je 8.3.10, to jest, na primjer, za UT, većina funkcionalnosti proširenja nije dostupna, uključujući stvaranje metapodataka objekata.

Čini se da se postavlja pitanje: zašto jednostavno ne uklonite root s podrške, postavite način kompatibilnosti "Ne koristiti" i sigurno koristiti proširenja? Promjena načina kompatibilnosti može promijeniti ponašanje obrazaca, rezultate upita, tj. ponašanje sustava u cjelini. Preporučljivo je da ne mijenjate način kompatibilnosti bez prethodnog testiranja. No, očito je da se čini mogućim u potpunosti (ili barem u dijelu korištenih dokumenata) testirati cijelo primijenjeno rješenje. Stoga ne biste trebali koristiti ovu opciju.

Prilikom spajanja proširenja na standardnu ​​konfiguraciju, posuđujući standardne objekte, proširenje kontrolira način kompatibilnosti glavne konfiguracije i vrste posuđenih objekata i njihove pojedinosti. Ako se nadzirana svojstva ne podudaraju, proširenje je onemogućeno i ne radi dok se ne otkloni uzrok. Odnosno, s velikim ažuriranjem postoji velika vjerojatnost promjene barem jednog od praćenih svojstava i gubitka funkcionalnosti proširenja.


Osim toga, ako su izmjene značajne, mnogi postupci i funkcije tipične konfiguracije su zamijenjeni, morat će se pažljivo pratiti i, ako je potrebno, uskladiti s 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 kod ažuriranja konfiguracije koja je uklonjena iz podrške).

zaključke

  • Novo izdanje platforme pružilo je nove mogućnosti za korištenje proširenja, postalo je moguće dodati objekte metapodataka, ali unatoč tome, funkcionalnost ima određena ograničenja.
  • Način kompatibilnosti konfiguracije na koju se proširenje primjenjuje 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 vjerojatnost promjene kontroliranih svojstava.

Implementirano u verziji 8.3.6.1977.

Implementirali smo temeljno novi mehanizam za prilagodbu 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. Korištenje 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č povremeno objavljuje nove (poboljšane) verzije ove konfiguracije. U takvoj situaciji ažuriranje stare inačice konfiguracije na novu se izvodi potpuno automatski. To je praktično 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 vlastiti IT stručnjaci kupca, unose potrebne izmjene. 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. Štoviše, ako su promjene napravljene po nalogu kupca bile značajne, tada će od stručnjaka koji izvodi ažuriranje konfiguracije biti potrebno značajno ulaganje vremena. Često će biti potrebno vrlo dobro poznavanje same tipične konfiguracije i učinjenih modifikacija.

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

U načinu rada 1C: Enterprise jednostavno povezujete svoje proširenje sa standardnom konfiguracijom. Platforma automatski, u načinu 1C: Enterprise, kombinira vaše proširenje s tipičnom konfiguracijom. Kao rezultat, kupac radi s modificiranim, prema njegovim željama, standardnim rješenjem.

Kada dobavljač objavi novu verziju tipične konfiguracije, izvršava se automatsko ažuriranje jer se način održavanja za tipičnu konfiguraciju nije promijenio. Ostala je u potpunosti podržana od strane dobavljača. A kada pokrenete ažurirano aplikacijsko rješenje, platforma će automatski ponovno spojiti promijenjenu standardnu ​​konfiguraciju s vašim proširenjem. A kupac će nastaviti raditi s modificiranim, prema njegovim željama, standardnim rješenjem.

Kada trebate koristiti ekstenzije?

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

Prvo, proširenja su nezamjenjiva kada aplikacijsko rješenje radi u načinu dijeljenja podataka. Na primjer, u modelu usluge. Jedan od pretplatnika želi imati nekoliko dodatnih izvješća. Dok ostali pretplatnici žele raditi s nepromijenjenom tipičnom konfiguracijom.

Tada za ovog pretplatnika možete razviti proširenje u kojem možete ostvariti sve njegove želje. Pretplatnik će povezati ovo proširenje za sebe i radit će s promijenjenom konfiguracijom. Dok za ostale pretplatnike neće biti promjena. Budući da su sva proširenja povezana i izvode se u kontekstu trenutnih vrijednosti separatora.

Druga situacija je završetak tipične konfiguracije za određenog kupca u njegovoj implementaciji. Ili izmjene 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 njezino daljnje održavanje.

Postoji iskušenje korištenja proširenja za izradu 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 proširenjima.

Ako pogledate malo u povijest pojavljivanja ekstenzija, onda smo, naravno, vidjeli prije, a sada vidimo da konfiguracije postaju složenije. Vidimo da je potrebna dodatna podrška na različitim razinama razvoja: knjižničnoj, modularnoj i industrijskoj itd. Analizirali smo sve te zadatke i došli do zaključka da je trenutno prioritet prilagođavanje konfiguracija željama korisnika tijekom implementacije.

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

Što sada možete promijeniti s ekstenzijama?

Do sada nije puno napravljeno od onoga što se planira napraviti. Mehanizam će se, naravno, razvijati. Ali ono što je već učinjeno može biti korisno u mnogim slučajevima pri implementaciji. Sada:

  • Može se mijenjati upravljani oblici postoje u tipičnoj konfiguraciji;
  • Možete dodati nove podsustavi... Možete promijeniti sastav podsustava dostupnih u tipičnoj konfiguraciji;
  • Može se mijenjati uloga tipična konfiguracija, dodavanjem objekata stvorenih u proširenju;
  • Može se mijenjati naredbeno sučelje tipična konfiguracija (glavni dio, podsustavi);
  • Možete dodati nove izvještaji i obrada.

U budućnosti planiramo postupno povećavati funkcionalnost proširenja i rado ćemo dobiti vaše mišljenje o tome koja je funkcionalnost najtraženija u implementacijama s manjim izmjenama.

Kako ekstenzija funkcionira?

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

Važna značajka proširenja je prisutnost posuđenih predmeta... Možete posuditi bilo koji objekt tipične konfiguracije pomoću naredbe kontekstnog izbornika:

Posuđeni predmeti nisu uvijek potrebni. Najbolji način da se to 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 objedovati u istom restoranu. Uvijek naručujete odrezak i čaj. Na primjer, zato što su jako dobri u ovom restoranu. Ili iz drugog razloga. Nije važno. Važno je samo da ćete ih pojesti, i ništa više.

Tada je restoran tipična informacijska baza. Vi ste produžetak. Jelovnik restorana je proširiva standardna konfiguracija. Odrezak i čaj su posuđeni predmeti. Posudili ste ih (sjetite se da su na jelovniku).

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

Tjedan dana kasnije dolazite, ali jelovnik restorana se promijenio (promijenjena je standardna konfiguracija). No, na jelovniku su još uvijek biftek i čaj. Oni su upravo ono što trebate. Oni ti ih donesu, ti ih pojedeš. To jest, proširenje nastavlja raditi s ažuriranom tipičnom konfiguracijom.

Tjedan dana kasnije dođete u restoran i vidite da su odrezak i čaj nestali s jelovnika. Ustajete i odlazite (poruka o pogrešci veze s ekstenzijom). Jer to je ono što ste htjeli. 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ćete pojesti. Samo ih želite fotografirati. I znate fotografirati svako jelo. Zatim se samo uključite u konfiguraciju i kažete: nosite sve grickalice koje imate na jelovniku (nabavite zbirku dokumenata iz metapodataka). Ponovno ću ih objaviti (fotografija).

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

  • Kada su potrebni za vizualni dizajn. Na primjer, proširite obrazac i dodate rekvizite obrasca kao što je ImenikValute.Link... Tada biste, naravno, trebali posuditi referencu Valute, tako da prilikom povezivanja na tipičnu konfiguraciju provjerite postoji li takav direktorij u njemu.
  • Kada su potrebni da kod radi. Na primjer, u kodu proširenja upućujete na referentni atribut Nomenklatura - Uvoznik... Zatim se ovaj atribut također mora posuditi kako bismo bili sigurni pri povezivanju da takav atribut još uvijek postoji u priručniku u standardnoj konfiguraciji Nomenklatura.

Produžna veza

Proširenje kreirate u konfiguratoru. Nakon što je otklonjena i testirana, možete je odbiti spremanjem ekstenzije u *.cfe datoteku.

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

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

Kada se ekstenzija učita iz datoteke, ona se sprema u informacijsku bazu. Štoviše, sprema se u kontekstu trenutnih vrijednosti separatora koji se koriste u ovoj sesiji.

Sesija se mora ponovno pokrenuti da bi proširenje radilo. Na početku sjednice, neposredno prije saziva događaja SettingSessionParameters, bit će povezana sva proširenja pohranjena u bazi podataka i koja odgovaraju trenutnim vrijednostima graničnika ove sesije.

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

Prilikom povezivanja ekstenzije, kao što smo već rekli, kontrolira se postojanje posuđenih objekata 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 odresku, možda vam nije važno samo prisustvo nekako kuhanog odreska, već upravo to da se ovdje kuha nekuhan, "s krvlju".

Vraćajući se na proširenje, prema zadanim postavkama ne kontrolira svojstva posuđenih objekata. No, ako je potrebno, neka svojstva 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 Crta.

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

Zanimljiva se točka odnosi na preimenovanje objekata standardne konfiguracije. Na primjer, došli ste u restoran, a umjesto Odrezak napisano Odrezak... To jest, povezujući se s konfiguracijom, proširenje ne nalazi referencu u njoj Nomenklatura jer ga je prodavač preimenovao u Roba.

Sada vam ova situacija ne predstavlja problem. I ne trebate "lopatom" sve ekstenzijski kod, tako da umjesto Nomenklatura napisati Roba... Djela i. Stoga samo trebate promijeniti naziv posuđenog objekta u Roba, a ostale izmjene u proširenju platforma će odraditi sama. Ili uz vašu minimalnu pomoć.

Rad na proširenju

Možete dugo razgovarati o značajkama proširenja raznih objekata, o značajkama rada samih ekstenzija. Ali ograničeni smo opsegom članka s pregledom, 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. To jest, možete promijeniti svojstva posuđenih objekata.

Osnovni koncept koji se koristi kada konfiguracija i proširenje rade zajedno može se opisati kako slijedi. 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 oblika. Obrazac možete posuditi iz glavne konfiguracije i urediti ga u proširenju bez ograničenja. Za vizualni dio obrasca i za njegov modul koriste se dvije različite strategije spajanja.

Vizualni dio obrasca fiksiran je u ekspanziji u trenutku posudbe. A u načinu 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. Inače se koristi vrijednost iz proširenja.

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

Za module obrasca koristi se drugačiji pristup. Za posuđeni obrazac, proširenje stvara vlastiti modul s vlastitim rukovaocima za sve događaje. U načinu rada 1C: Enterprise oba modula obrasca (iz tipične konfiguracije i iz proširenja) kombiniraju se u jednom kontekstu. Iz tog razloga, svako proširenje ima svoj vlastiti prefiks, koji se dodaje svim obrađivačima događaja u modulu obrasca. Tako da nema podudaranja s rukovaocima iz tipične konfiguracije. Rukovatelji događaja i naredbi tada se pozivaju sekvencijalno i sinkrono. Prvo rukovalac iz ekstenzije. Zatim iz tipične konfiguracije. Možete promijeniti ovaj slijed ili potpuno zabraniti izvršavanje rukovatelja iz tipične konfiguracije.

Općenito, s obzirom na zajednički rad konfiguracije i proširenja u načinu 1C: Enterprise, oni postoje u zajedničkom prostoru imena. To se ne odnosi samo na pojedinačne module, već i na sama stabla metapodataka. Stoga, u načinu 1C: Enterprise ne postoji način da se utvrdi je li ovaj objekt "nativni" za tipičnu konfiguraciju ili je došao iz proširenja.

Što se tiče ostalih objekata koje možete koristiti u proširenju, za njih sve izgleda puno jednostavnije.

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

Uloge možete proširiti samo dodavanjem objekata stvorenih u proširenju. Ne možete ništa ukloniti ni iz postojeće uloge. Isto vrijedi i za naredbeno sučelje.

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.

Proširenje (kao obična konfiguracija) ima osnovnu konfiguraciju i konfiguraciju baze podataka. Mehanizam za usporedbu i spajanje konfiguracija radi s ekstenzijama na isti način kao i kod redovitih konfiguracija.

Možete ukloniti ekstenziju u datoteku (iako s drugim nastavkom * .cfe) i učitati iz datoteke. Proširenja se mogu isprazniti / učitati u XML-u.

Mehanizmi globalnog pretraživanja, zamjene, uređivanja tekstova sučelja također rade s ekstenzijama.

Postoje novi parametri naredbenog retka za rad s ekstenzijama, kao i novi događaji u dnevniku.

U ugrađenom jeziku, glavni objekt za rad s ekstenzijama je Upravitelj ekstenzija.

Vrhunski povezani članci