Način kompatibilnosti proširenja konfiguracije je veći. Proširenja konfiguracije - kako dodati funkcionalnost standardnoj konfiguraciji bez uklanjanja podrške (video od 20 minuta)

Implementirano u verziji 8.3.6.1977.

Implementirali smo fundamentalno novi mehanizam za prilagođavanje aplikativnih rješenja konkretnom korisniku - mehanizam proširenja.

Za šta su ekstenzije dobre?

Proširenja nude različitu strategiju za promjenu tipičnih konfiguracija od postojeće. Korištenje ove nove strategije značajno će olakšati podršku standardnim rješenjima koja želite prilagoditi potrebama konkretne implementacije ili konkretnog kupca.

Kako sada izgleda ovaj proces? Postoji standardna konfiguracija. U potpunosti je podržan od strane dobavljača. To znači da se ne može promijeniti. Povremeno, dobavljač objavljuje nove (poboljšane) verzije ove konfiguracije. U takvoj situaciji, ažurirajte stara verzija konfiguracije uključene nova verzija se izvodi potpuno automatski. Ovo je zgodno i ne zahtijeva nikakve posebne vještine ili znanja od kupca.

Ali često kupac želi nešto dodati ili promijeniti u standardnoj konfiguraciji „za sebe“. Da biste to učinili, način podrške se mijenja, konfiguracija se uklanja iz pune podrške. Partner za implementaciju ili sami IT stručnjaci kupca unose potrebne izmjene na njemu. Od sada potpuno automatsko ažuriranje standardna konfiguracija na novu verziju koju je izdao dobavljač postaje nemoguća.

Sada je za ažuriranje konfiguracije potrebno učešće stručnjaka. Štaviše, ako su promjene napravljene na zahtjev kupca bile značajne, tada stručnjaku koji obavlja ažuriranje konfiguracije može biti potrebno dosta vremena. I često može biti potrebno vrlo dobro poznavanje i same tipične konfiguracije i učinjenih modifikacija.

Strategija koju nudi proširenja je sljedeća. Ako želite promijeniti standardnu ​​konfiguraciju, ne dirajte samu konfiguraciju. Sve promjene unosite u ekstenziju, koja je u stvari i konfiguracija.

U načinu rada 1C: Enterprise, jednostavno povežete svoju ekstenziju sa standardnom konfiguracijom. Platforma automatski, u načinu 1C:Enterprise, kombinuje vašu ekstenziju sa standardnom konfiguracijom. Kao rezultat, kupac radi sa standardnim rješenjem modificiranim prema njegovim željama.

Kada dobavljač objavi novu verziju referentne konfiguracije, dolazi do automatskog ažuriranja jer se način podrške referentne konfiguracije nije promijenio. Ona je ostala u potpunosti podržana od strane dobavljača. A kada pokrenete ažurirano aplikativno rješenje, platforma će ponovo automatski spojiti promijenjenu standardnu ​​konfiguraciju s vašom ekstenzijom. A kupac će nastaviti da radi sa standardnim rešenjem modifikovanim, prema njegovim željama.

Kada treba koristiti ekstenzije?

Mehanizam produžetka je primamljiv zbog svoje svestranosti. Stoga je važno imati ispravnu predstavu o tome koje zadatke namjerava riješiti.

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 drugi pretplatnici žele raditi s nepromijenjenom standardnom konfiguracijom.

Tada za ovog pretplatnika možete razviti ekstenziju u kojoj možete implementirati sve njegove želje. Pretplatnik će povezati ovu ekstenziju i radit će s promijenjenom konfiguracijom. Dok za ostale pretplatnike neće doći do promjena. Zato što su sve ekstenzije povezane i pokrenute na osnovu trenutnih vrijednosti separatora.

Druga situacija je kada se standardna konfiguracija modifikuje za određenog kupca tokom implementacije. Ili modifikacije standardne konfiguracije koje IT stručnjaci klijenta sami izvode. Ako se sva ova poboljšanja naprave u proširenju, tada će standardna konfiguracija ostati u potpunosti podržana, što će uvelike pojednostaviti njeno dalje održavanje.

Postoji iskušenje korištenja ekstenzija za kreiranje masovno proizvedenih aplikativnih rješenja, ali to ne bi trebalo činiti. 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 vidimo i sada, da konfiguracije postaju sve 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 najveći 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 koristeći ekstenzije?

Do sada nije urađeno mnogo toga š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 tokom implementacije. Sad:

  • Može se promijeniti upravljane forme, koji postoji u standardnoj konfiguraciji;
  • Možete dodati nove podsistemi. Možete promijeniti sastav podsistema dostupnih u standardnoj konfiguraciji;
  • Može se promijeniti uloge standardna konfiguracija, dodavanjem objekata kreiranih u ekstenziji;
  • Može se promijeniti komandni interfejs tipična konfiguracija (glavna particija, podsistemi);
  • Možete dodati nove izvještaji I obrada.

U budućnosti planiramo postepeno 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 sa ekstenzijom koriste se iste metode rada kao i kod regularne konfiguracije.

Važna karakteristika proširenja je prisustvo posuđenih predmeta. Možete posuditi bilo koji standardni konfiguracijski objekt koristeći naredbu kontekstnog izbornika:

Posuđeni predmeti nisu uvijek potrebni. To se najbolje može objasniti na primjeru „svakodnevnog“ ako povučemo analogiju s ručkom u restoranu.

Prva situacija je kada su potrebni posuđeni predmeti.

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

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

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

Sedmicu kasnije dolazite, ali je meni restorana promijenjen (promijenjena je standardna konfiguracija). Međutim, biftek i čaj su i dalje na meniju. Oni su upravo ono što vam treba. Oni ti ih donesu, ti ih pojedeš. To jest, proširenje nastavlja raditi s ažuriranom standardnom 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). Jer to je ono što si htela. A o drugim jelima (predmetima) nemate pojma. Programer vas nije naučio kako pravilno jesti puževe ili jastoge.

Još jedna situacija kada možete bez posuđenih predmeta.

Odete u restoran, ali dostupnost određenih jela vas ne zanima. Jer ih ionako nećeš pojesti. Vi samo želite da ih fotografišete. I znate kako slikati bilo koje jelo. Zatim se samo povežete sa konfiguracijom i kažete: donesite sve grickalice koje imate na meniju (iz metapodataka dobijate kolekciju dokumenata). Preusmjerit ću ih (fotografirati).

Ako ovo opišemo 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 referentnu knjigu Valute, tako da prilikom povezivanja na standardnu ​​konfiguraciju možete biti sigurni da takav direktorij još uvijek postoji u njemu.
  • Kada su potrebni da kod radi. Na primjer, u kodu ekstenzije pristupate atributu direktorija Nomenklatura - Uvoznik. Tada se i ovaj atribut mora posuditi tako da prilikom povezivanja možete biti sigurni da u standardnoj konfiguraciji takav atribut još uvijek postoji u direktoriju Nomenklatura.

Povezivanje ekstenzije

Vi kreirate ekstenziju u konfiguratoru. Nakon što je debagovan i testiran, možete ga odbiti tako što ćete spremiti ekstenziju u *.cfe datoteku.

Ovu datoteku možete poslati kupcu. Kupac će ga samostalno učitati na svoje baza informacija u načinu rada 1C: Enterprise 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. Kako bismo spriječili da se svi igraju s ekstenzijama, dodali smo novo pravo - Administriranje konfiguracijskih ekstenzija.

Prilikom učitavanja ekstenzije iz datoteke, ona se pohranjuje u infobazu. Štoviše, pohranjuje se u kontekstu trenutnih vrijednosti separatora koje se koriste u ovoj sesiji.

Da bi proširenje radilo, sesija se mora ponovo pokrenuti. Kada sesija počne, neposredno prije pozivanja događaja SettingSessionParameters, sve ekstenzije pohranjene u bazi podataka i koje odgovaraju trenutnim vrijednostima separatora za ovu sesiju će biti povezane.

Kao rezultat toga, kada radite u načinu dijeljenja podataka, ekstenzija će se primjenjivati ​​samo na korisnike ovog 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, provjerava se da li posuđeni objekti postoje u standardnoj konfiguraciji. Objekti se podudaraju po imenu.

Osim toga, moguća je finija kontrola. Možete kontrolirati ne samo samu činjenicu postojanja objekata, već i stanje njihovih pojedinačnih svojstava. Odnosno, ako razmišljate o restoranu i bifteku, ono što vam može biti važno nije samo prisustvo nekako kuvanog odreska, već upravo činjenica da se kod nas kuva retko, „retko“.

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 samo da postoji direktorij Nomenklatura, ali i da njegov kod ima tip Linija.

Zatim, ako u tipičnoj konfiguraciji dobavljač promijeni tip koda ovog direktorija u 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 s konfiguracijom, ekstenzija ne nalazi direktorij u njemu Nomenklatura, jer ga je dobavljač preimenovao u Roba.

Sada vam ova situacija ne predstavlja problem. I ne morate da "lopate" sav kod ekstenzije tako da umjesto toga Nomenklatura pisati Roba. Također radi. Stoga samo trebate promijeniti ime posuđenog objekta u Roba, a platforma će izvršiti ostale promjene u samom proširenju. Ili uz vašu minimalnu pomoć.

Operacija proširenja

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

Glavna "ljepota" ekstenzija nije, naravno, u tome što možete dodati nešto standardnoj konfiguraciji čega nema. Poenta je da u proširenju možete promijeniti ono što već postoji 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 na sljedeći način. Na onim mjestima gdje se ne sijeku, proširenje nadopunjuje konfiguraciju. Na onim mjestima gdje se "presijecaju", primjenjuje se ekspanzija.

Ovo se može detaljnije vidjeti koristeći upravljane forme kao primjer. Možete posuditi obrazac iz glavne konfiguracije i urediti ga u ekstenziji bez ograničenja. Za vizuelni deo obrasca i za njegov modul koriste se dve različite strategije kombinovanja.

Vizuelni dio obrasca fiksiran je u produžetku u trenutku njegove posudbe. A u načinu rada 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 standardnoj konfiguraciji, primjenjuje se vrijednost iz standardne konfiguracije. U drugim slučajevima koristi se vrijednost iz ekstenzije.

Dakle, ako ste dodali novu naredbu obrascu u ekstenziji, vidjet ćete je zajedno sa ostalim naredbama obrasca. A ako ste promijenili naslov postojeće grupe, tada ćete vidjeti svoj naslov čak i ako naziv ove grupe u standardnoj konfiguraciji promijeni dobavljač.

Moduli obrasca koriste drugačiji pristup. Za posuđeni obrazac, proširenje kreira vlastiti modul sa vlastitim rukovateljima za sve događaje. U načinu rada 1C:Enterprise, oba modula obrasca (iz standardne konfiguracije i iz proširenja) kombiniraju se u jednom kontekstu. Iz tog razloga, svaka ekstenzija ima svoj prefiks, koji se dodaje svim rukovaocima događaja u modulu obrasca. Tako da nema slučajnosti sa rukovaocima iz standardne konfiguracije. Nakon toga, rukovaoci događaja i komandi se pozivaju sekvencijalno i sinhrono. Prvo, rukovalac ekstenzijom. Zatim iz standardne konfiguracije. Možete promijeniti ovu sekvencu ili potpuno zabraniti izvršavanje rukovatelja iz standardne konfiguracije.

Generalno, što se tiče saradnja konfiguracije i ekstenzije u načinu 1C:Enterprise, postoje u zajedničkom imenskom prostoru. Ovo se ne odnosi samo na pojedinačne module, već i na sama stabla metapodataka. Stoga, ne postoji način da se u 1C:Enterprise načinu rada utvrdi da li je ovaj objekt „native“ za standardnu ​​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 vlastite 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 ukloniti nešto iz postojećeg podsistema.

Uloge možete proširiti samo dodavanjem objekata kreiranih u ekstenziji. Također ne možete izbrisati ništa iz postojeće uloge. Isto važi i za komandni interfejs.

Proširenje je gotovo konfiguracija

Na početku smo rekli da je proširenje slično uobičajenoj konfiguraciji. Stoga, u zaključku, želio bih reći nekoliko riječi o tome koliko su proširenja integrirana s drugim mehanizmima platforme.

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

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

Mehanizmi za globalnu pretragu, zamenu i uređivanje tekstova interfejsa takođe rade sa ekstenzijama.

Pojavili su se novi parametri komandna linija za rad sa ekstenzijama, kao i za nove događaje u dnevniku.

U ugrađenom jeziku, glavni objekat za rad sa ekstenzijama je ExtensionManagerConfiguration.

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

U 1C, ekstenzije su nešto poput paralelnih konfiguracija koje se automatski kombiniraju s konfiguracijom glavnog dobavljača. Štoviše, u ekstenzije možete dodati i vlastite objekte i posuditi objekte glavne konfiguracije.

Čemu služe ekstenzije?

Prije svega, ekstenzije se kreiraju kako bi se olakšalo unošenje promjena u program. Odnosno, ako korisnici traže da dodaju bilo koju funkcionalnost, tada su prije pojave ekstenzija programeri morali ukloniti konfiguraciju iz pune podrške i promijeniti standardnu ​​konfiguraciju.

Uklanjanje iz pune podrške podrazumijeva niz neugodnosti:

  • mogućnost automatskog ažuriranja nestaje, što dovodi do barem povećanja vremena potrebnog za to;
  • potreban je visoko kvalifikovan specijalista koji servisira program;
  • ako su napravljene promjene na standardnim objektima standardne konfiguracije, tada tokom ažuriranja mogu nestati, odnosno mogu se ponovo zamijeniti standardnim objektima od dobavljača.

Kada koristite ekstenzije, prilikom unošenja izmjena, programator neće dirati standardnu ​​konfiguraciju. Sve promjene će se vršiti korištenjem ekstenzija, koje su (kao što sam gore napisao) također konfiguracije. Na ovaj način će glavna konfiguracija ostati u potpunosti podržana.

Nakon ažuriranja glavne konfiguracije, ako postoje bilo kakve promjene u novom izdanju na objektu koji je prethodno promijenjen od strane ekstenzije, tada će promjene i dalje biti preuzete iz ekstenzije. To jest, ekstenzije imaju veći prioritet od glavne konfiguracije.

Video - proširenja u 1C za 45 minuta

Nabavite 267 video lekcija na 1C 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 meni “Konfiguracija” i odaberite “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 predmeta.

Nedavno sam napisao članak o tome kako ga sami napraviti. Koristeći njen primjer, želim ga učiniti ugrađenim pomoću ekstenzije.

U obradi imam polje sa vezom do direktorija “Organizacije”. Zato mi treba ovaj vodič. Ali nećemo kreirati novi direktorij “Organizacije”, pogotovo zato što platforma to ne dozvoljava. Nemoguće je da konfiguracija proširenja sadrži objekte istog imena kao objekti u glavnoj konfiguraciji.

Stoga ćemo referentnu knjigu posuditi iz glavne konfiguracije:

Sada kliknite desnim tasterom miša na „Obrada“ i izaberite „Umetni eksterna obrada, prijavi..." Dakle, dodajmo novu obradu u konfiguraciju ekstenzije. Ako koristite moju obradu, odmah je preimenujte, jer glavna konfiguracija već ima obradu sa istim imenom.

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

Ovo je struktura koju sam smislio:

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:

Izdali smo novo izdanje telefonskog panela za 1C.

  • verzija 1.2.24.10 Za običan aplikacije
  • verzija 1.4.26.17 Za uspio aplikacije

U izdanju verzije za upravljanu aplikaciju postalo je moguće ugraditi telefonsku ploču sa minimalne modifikacije osnovnu konfiguraciju koristeći mehanizam za proširenje konfiguracije.

Prednosti korištenja ekstenzije

Proširenje je vrlo slično uobičajenoj konfiguraciji. Za rad s njim, koriste se iste radne tehnike kao i sa redovnom konfiguracijom. Ekstenzije se prvenstveno kreiraju kako bi se olakšalo unošenje izmjena u program. Više ne morate umetati “komadiće koda” u određene module i dodavati nove objekte metapodataka, samo trebate dodati ekstenziju u konfiguraciju.

Velika prednost korištenja ekstenzija je automatsko ažuriranje glavna konfiguracija. Sada nema potrebe mijenjati postavke podrške za tipičnu konfiguraciju.

Značajke ugradnje telefonske ploče za 1C

Takve karakteristike su postale dostupne ekstenzijama za platformu počevši od verzije 8.3.9.1818 . Dakle, da bismo iskoristili ovo, onemogućili smo način kompatibilnosti za ekstenziju od verzije 8.3.9 još nije podržano. U skladu s tim, postaje potrebno onemogućiti način kompatibilnosti za glavnu konfiguraciju, inače će se pojaviti greška: " Način kompatibilnosti proširenja konfiguracije veći je od načina kompatibilnosti glavne konfiguracije".

2) Dodamo ulogu glavnoj konfiguraciji MIKO_Softphone, za koje povlačimo sva prava.

Prilikom dodavanja novog objekta metapodataka, u ovom slučaju uloge, potrebno je ažurirati direktorij MetadataObjectIdentifiers. Kada smo dodali ovu ulogu u ekstenziju, standardne konfiguracije su je zanemarile, odnosno pri ažuriranju direktorija MetadataObjectIdentifiers uloga se u njemu nije pojavila. Zbog toga mehanizam za podešavanja telefonskog panela nije ispravno radio i pojavila se greška: " Identifikator objekta metapodataka za ulogu MIKO_Softphone nije pronađen".

Štoviše, ova situacija nije nastala u svim konfiguracijama, već u "Upravljanje trgovinom, 11.2.3.218" I "Složena automatizacija, 2.0.3.222" Nije bilo problema s ulogom kada je dodana samoj ekstenziji. Kako bismo pružili svestranost našem rješenju i osigurali rad bez problema u većini konfiguracija koje podržavamo, odlučili smo dodati ulogu MIKO_softphone u glavnu konfiguraciju i posudite ga u ekstenziji, a zatim implementirajte postavke za ovu ulogu u ekstenziju.

Vrlo važna karakteristika je činjenica da ako nakon instaliranja naše ekstenzije želite da ugradite panel prema našim starim uputstvima, morate onemogućiti ekstenziju i ukloniti ulogu MIKO_softphone. Ako želite ponovo koristiti ekstenziju, prvo morate dodati ulogu, a zatim dodati ekstenziju.

Hajde da sumiramo

Čak i uključivanjem mogućnosti promjene osnovne konfiguracije i minimalnih promjena u konfiguraciji, olakšali smo proces ugradnje telefonskog panela. Sada ne morate mijenjati module upravljane aplikacije, dodavati obradu i podsisteme u konfiguraciju ili konfigurirati uloge. Ekstenzija će sve to učiniti umjesto vas! Nastavit ćemo poboljšavati proces ugradnje telefonske ploče za 1C!

Upute za ugradnju telefonske ploče za 1C pomoću mehanizma proširenja možete pronaći.

Postavite svoja pitanja putem obrasca za povratne informacije.

© 2019. MIKO LLC Sva prava pridržana.

Cijena rada i mogućnosti prijevoda iz različitih izdanja

Prijevod 8.1 → 8.2.13 Prijevod 8.2.13 → 8.2.16 Prijevod 8.2.16 → 8.3.10
cijena, rub. * 54,000 ₽ 12,000 ₽ 76.800 RUR

Spisak svih promena u različite verzije platforma je dostupna putem sljedećih linkova:
Za platformu 8.2:
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Prije početka rada na prelasku na 8.3 potrebno je:

Provjerite kontrolirani način blokiranja. Ako se koristi „Automatski“, tada će pri prelasku na 8.3 možda biti potrebni dodatni troškovi za prelazak na način upravljanja zaključavanjem.
Ako koristite način kompatibilnosti sa 8.2.16 i novijim, morate provjeriti jesu li tabele restrukturirane
Odredite koji se tipovi klijenata koriste (tanki, debeli, web klijent)
Odredite da li postoje mašine koje pokreću Linux

Prijevod konfiguracije 8.1 → 8.2.13

Cijena rada: 54.000 rub.

Prijevod konfiguracije 8.2.13 → 8.2.16 (uključujući restrukturiranje)

Ključne promjene:
Promijenjen je način pohranjivanja konstanti i postavki akumulacijskih registara. Svaki objekt ima svoju vlastitu tablicu baze podataka
Implementacija upravljanog mehanizma zaključavanja je prerađena.
Za događaj tehnološkog dnevnika "TLOCK", svojstvo "Txt" je upisano samo u načinu kompatibilnosti s verzijom 8.2.13
Smanjen je utjecaj načina otklanjanja grešaka na brzinu rada u načinu rada 1C:Enterprise za tanki klijent, debeli klijent, server i eksternu vezu.
Optimizirano je izvršenje upita u obliku „ValueType(Field1) = ValueType(Field2)“ ako „Field1“ i „Field2“ sadrže vrijednosti referentnog tipa.
Za upravljana polja obrasca koja prikazuju atribute složenog tipa, otvaranje liste brzog odabira je ubrzano u slučajevima kada složeni tip uključuje referentne tipove s različitim postavkama brzog odabira.
Za novi nezavisni i neperiodični registar informacija, indeks dimenzija je grupiran

Promjene koje zahtijevaju promjenu konfiguracije:

Kada je način kompatibilnosti onemogućen, potreban je parametar “Period” metode upravitelja periodičnog registra informacija “Get()”. U načinu kompatibilnosti s verzijom 8.2.13 i verzijom 8.1, ponašanje je nepromijenjeno (metoda se može koristiti bez specificiranja parametra, ali rezultat je nedefiniran).
Kada se istovremeno koriste metode “SetValue()” i “UseFromDataSource()” objekta “DataLockElement”, izbacuje se izuzetak. U načinu kompatibilnosti s verzijom 8.2.13, ponašanje se nije promijenilo (vrijednost postavljena metodom “UseFromDataSource()” ima prednost).
Nije podržano pohranjivanje vrijednosti podataka koje ne podržavaju serijalizaciju. U načinu kompatibilnosti ponašanje se nije promijenilo.
Ako je baza podataka zasnovana na fajlovima, tada se baza podataka mora konvertovati. Nakon što konverzija započne, rad s ovom informacijskom bazom s prethodnim verzijama platforme 1C:Enterprise 8 neće biti moguć. Ako se razvoj odvija pomoću konfiguracijskog spremišta, morate napraviti kopiju spremišta prije konvertiranja baze podataka

BITAN. Da biste dobili efekat promene režima kompatibilnosti, potrebno je da izvršite restrukturiranje kroz konfigurator: „Administracija → Testiranje i ispravka → Restrukturiranje tabela baze podataka“.

Prvo je potrebno izvršiti restrukturiranje na testnoj bazi i izmjeriti vrijeme izvršenja ove operacije.
Ako koristite verziju 1C servera stariju od 8.2.19, na primjer, verziju 8.3, tada se mogu pojaviti sljedeće greške prilikom izvođenja restrukturiranja:

U ovom slučaju morate učiniti sljedeće:
Instalirajte poseban 1C server verzije 8.2.19 i na njemu postavite bazu podataka koja se istražuje
Otvorite bazu podataka u konfiguratoru na 1C serveru verzije 8.2.19, promijenite način kompatibilnosti u "Ne koristiti"
Restrukturirajte tabele infobaze
Nakon što je restrukturiranje završeno, premjestite bazu podataka na originalnu verziju 1C servera 8.3

Trošak prijenosa konfiguracije iz načina kompatibilnosti 8.2.13 u način rada 8.2.16 (nekompatibilan način kada se koristi platforma 8.2.16, 8.2.19 i način kompatibilnosti 8.2.16 kada se koristi platforma 8.3) je 12.000 rub.

Obrazac ugovora o radu se može preuzeti.

Prijevod konfiguracije 8.2.16 → 8.3.10

Rad na prevođenju konfiguracije uključuje sljedeće modifikacije konfiguracije:

1. Uklonite sukobe imena svojstva. Promjena imena varijabli kako bi odgovarala novim svojstvima koja su se pojavila u 1C:Enterprise 8.3.
2. Uklonite konfliktne nazive slika. Preimenovanje imena slika sa imenima koja odgovaraju imenima iz biblioteke slika.
3. Rafiniranje koda prilikom promjene svojstava fiksne strukture. Zamjena indikacije svojstava fiksne strukture ponovnim stvaranjem fiksne strukture ili zamjena njene upotrebe sličnim tipom „strukture“.
4. Zamjena postavljanja vrijednosti koje se ne mogu serijalizirati u privremenu memoriju kodom podržanim u 1C:Enterprise 8.3.
5. Zamjena upotrebe pozivanja metode “Show” za detalje upravljanog obrasca korištenjem svojstava “CurrentElement”, “CurrentPage” i metode “Activate”
6. Zamjena naziva metapodataka dužine više od 80 znakova s ​​nazivima s dužinom imena od 80 znakova ili manje za objekte metapodataka
7. Preimenovanje metoda i svojstava, prema metodologiji za migraciju na verziju 8.3.
8. Poboljšanje mehanizama za rad sa selekcijama, uslovno formatiranje, grupisanje i redosled u dinamičkim listama.
9. Prečišćavanje koda za upite sa ključnom riječju “OPĆI REZULTATI”, neučitanim u
“Zaobilaženje rezultata upita grupisanjem”, kako bi se očuvala prethodna logika rada.
10. Promjene u nazivima klasa COM objekata. Zamjena imena "V82.COMConnector" sa "V83.COMConnector", a "V82.Application" sa "V83.Application".
11. Odbijanje u programskom kodu događaja “Početak odabira sa liste” za polja za unos u načinu izbora sa liste
12. Odbijanje u programskom kodu svojstva “ChoiceList Button” za polja za unos postavljanjem svojstva “Dropdown List Button”.
13. Promjena koda kako bi se uzela u obzir promjena tipa vrijednosti koju vraća globalna kontekstualna metoda “SafeMode()”
14. Promjena koda kako bi se uzela u obzir promjena u rezultatu upita za konstante (prilikom pristupa polju “Vrijednost” u tablici konstanti, ako konstanta pohranjuje vrijednost tipa “Value Storage”, “UniqueIdentifier” ili “External DataSourceTableReference”.
15. Zamjena svojstva konfiguracije “MainRole” sa “MainRoles”
16. Odbijanje svojstava “User” i “Password” za objekat “InternetProxy” i zamjena metodama “Set()”, “User()”, “Password()”.
17. Prečišćavanje koda za podršku komandi “Prikaži na listi”, prema načinu prelaska na verziju 8.3.
18. Prečišćavanje koda radi održavanja prethodne logike rada sistema kada se povratna vrijednost svojstva SystemInformation.OSVersion promijeni,
19. Rafiniranje koda kako bi se održala prethodna logika sistema kada se odbija korištenje sistemske enumeracije OptionOpenWindow, koja više nije dostupna u verziji 8.3.
20. Prečišćavanje koda uzimajući u obzir odbijanje korištenja modalnih prozora.
21. Poboljšanje koda za podršku web klijenta, odnosno odbijanje poziva servera i otvaranja prozora u “Prije zatvaranja”, odbijanje poziva servera u “Prilikom zatvaranja”.
22. Poboljšanje koda kako bi se omogućilo ispravno korištenje funkcije RoleAvailable() kada se funkcija kao parametar prosljeđuje ulozi koja nedostaje.
23. Za upravljanu aplikaciju: počevši od verzije 8.3.8 u obrađivačima događaja upravljane aplikacije BeforeSystemShutdown, WhenSystemShutdown, kao i u obrađivačima događaja upravljanog obrasca koji je u načinu zatvaranja, BeforeClosing, WhenClosing, Zabranjeno je otvaranje prozora i bilo kakvo pozivanje servera. Konfiguraciju je potrebno poboljšati kako bi se obrasci mogli ispravno zatvoriti - bez poziva servera.
24. Sukob imena varijable: ne možete koristiti ime varijable FormParameters u modulu obrasca. Stoga je potrebno modificirati sve module upravljanih obrazaca koji koriste varijable pod nazivom FormParameters preimenovanjem ovih varijabli.

Cijena ovih radova je preliminarna i vrijedi za većinu konfiguracija. Prije početka rada prilikom sklapanja ugovora provjeravamo konfiguraciju i Nakon provjere potvrđujemo cijenu i uslove rada. Provjera je neophodna jer konfiguracije mogu biti vrlo različite, uključujući i jako prepisane.

Cijena rada: 76.800 rub.

Obrazac ugovora o radu se može preuzeti.

Trošak prijenosa konfiguracije u način kompatibilnosti sa 8.3.10 može biti povećana, Ako:
Konfiguracija koristi upravljane forme
Neophodno je napustiti upotrebu modaliteta
Potrebno je održavati funkcionalnost konfiguracije u Linux OS-u

Kolege, pozdrav svima.

Pre neki dan je objavljen test Enterprise Accounting sa onemogućenim režimom kompatibilnosti za platformu 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.

Pored standardnih, trebali biste i konvertirati vlastita proširenja na novu platformu.
Tokom procesa prevođenja, napravio sam malu kontrolnu listu ili podsjetnik za sebe o tome šta treba da se uradi.

dopis:


1. Prenesite proširenje na novu platformu

Da biste to učinili, promijenite način kompatibilnosti proširenja u način kompatibilnosti konfiguracije.
Verzija Enterprise Accounting ima sljedeća svojstva:

U proširenju možete postaviti potpuno ista svojstva ili poništiti sve potvrdne okvire.
Nema potvrdnih okvira znači da ekstenzija neće provjeriti ova svojstva prilikom povezivanja.
Zatim ako se ova svojstva promijene u glavnoj konfiguraciji, proširenje će se i dalje pokrenuti:


2. Popravite probleme sa vezom

Da bismo to učinili, pokrećemo konfiguraciju u poslovnom modu i vidimo hoće li se pokrenuti ili ne.
Greške zbog kojih ekstenzija nije mogla biti povezana mogu se vidjeti u dnevniku
(Administracija - Podrška i održavanje - Dnevnik)
Zanimaju nas događaji - “Session. Greška pri primjeni konfiguracijskog proširenja":

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

Glavna poteškoća je što ekstenzija ne prikazuje sve greške odjednom (usput, ovaj problem je riješen u 8.3.9).
Stoga je potrebno pokrenuti konfiguracije uzastopno nakon ispravljanja svake greške.
Da biste olakšali pokretanje dnevnika, dodajte ga u svoje favorite:



3. Ažurirajte obrasce u ekstenziju

Da biste to učinili, u svakom promijenjenom obrascu kliknite na “Ažuriraj proširenje obrasca”
Koristeći ovu naredbu, ponovo učitavamo glavni konfiguracijski obrazac u ekstenziju.

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


4. Formu prilagođavamo pravilima 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 osigurati da je sve u redu na novoj platformi.

Smislio sam sljedeću proceduru:

  • Uklanjamo sve ukrase, koji su korišteni za uvlačenje.
    Umjesto njih sada se koriste grupe.
  • Da vidimo da sve izgleda dobro.
    Ako nešto krene po zlu, pogledajte članak.
    Ako je sve u redu, idemo dalje.
  • Provjeravamo svojstva nove platforme“Kombinirano”, “AutomaximumWidth” i “AutomaximumHeight”.
    Samo pogledajte da su ova svojstva postavljena na zadane vrijednosti platforme i da se obrazac zbog toga ne pomiče.
mob_info