Kroz ogledalo 1s. "Alisa u zemlji čuda i kroz ogledalo": zanimljiva interaktivna knjiga iz "1C"

Danas se čitatelju nudi pregled publikacije, koja nije nova, ali zaslužuje pažnju, makar samo zato što je do danas ostala primjer pravih interaktivnih obrazovnih programa. Programi u kojima je odštampani tekst duhovito i profesionalno kombinovan sa mogućnostima zvuka, 3-D animacije, animacije i grafike. Izdavač je bila poznata ruska kompanija "1C" .

Publikacija pripada seriji "1C: Obrazovna zbirka". Komplet uključuje dva diska.

  1. Alisin svet zasnovan na knjizi Luisa Kerola "Alisine avanture u zemlji čuda".
  2. Through the Looking Glass prema knjizi Lewisa Carrolla "Through the Looking Glass".


Autori recenzije su bili: Elena Belyaeva, likovni kritičar, urednik T/O "M-studio", Kirov, i Vera Buldakova, filolog, nastavnik najviše kategorije. Stručnjak je pozvan Lyubov Georgievna Zubareva, nastavnik engleskog jezika najviše kategorije (Kirov Regional College of Culture)

"Čarobna kompjuterska knjiga"

Na omotu diska nas obavještavaju (usput, između ostalih napomena o proizvodu): „Ovo je magična kompjuterska knjiga.“ I ovo je iskrena istina! Putovanje na koje krećete ne zajedno sa Alisom, već potpuno samostalno, svakim novim korakom postaje sve zanimljivije. Prostor se razvija, svaka nova osoba koju sretnete je zaista nova i nimalo slična onima koji žive u ovoj zemlji. Otkrića ima na svakom koraku, iščekujete ih sa skrivenim oduševljenjem. Zamislite samo, sve je ovo izmišljeno u pretprošlom veku, a zahtev za novinom za umetnost postmodernizma je apsolutno zadovoljen! Knjiga, uslov za čitanje koja je bila sposobnost uma da se intelektualno igra, već drugi vek inspiriše ljude na kreativnost. Ali kreativnost je magija.

Uvod u prvi dio "Alisinog svijeta" napravio je najpopularniji prevodilac "Alise u zemlji čuda" na ruski - Boris Zakhoder, koji priznaje da tekst "Alisinih avantura u zemlji čuda" spada u kategoriju suštinski neprevodivih. To ga je navelo da napravi sopstvenu verziju prepričavanja knjige. Na disku Boris Zakhoder razgovara s vama, a vi možete birati da li ćete pročitati njegov predgovor ili vidjeti i čuti pisca. Andrej Tarkovski je voleo da ponavlja da je kino očuvano vreme. Kliknete na dugme miša - i magična posuda vremena je otvorena!

Ideja multivarijantnog prevođenja postaje glavna za programere ovog obrazovnog programa. Ovdje je predstavljen cijeli spektar autora-prevodioca: V. Nabokov, V. Orel, B. Balter, B. Zakhoder - u prvom dijelu; V. Orel, L. Yakhnin, V. Azov - u drugom. Sliku nadopunjuje sistem citata iz klasičnih prijevoda N. Demurove, O. Sedakove, D. Orlovske, A. Shcherbakova, S. Marshaka. Mogućnosti prijevoda budi maštu čitatelja-putnika, nehotice se pojavljuju ideje o vlastitoj interpretaciji, ne teksta, već situacija, likova i događaja.

Princip rada je jednostavan. Pred nama su dva prozora sa sinhrono pomerajućim engleskim i ruskim tekstom (u „Kroz ogledalo“ svaki prevod se lako zamenjuje drugim). Ispod svake engleske riječi otkriva se njen ruski ekvivalent.

Možete uključiti zvuk: tekst se čita na besprijekornom engleskom. Po želji, svaki paragraf se može ponavljati do stepena majstorstva ili do beskonačnosti.

Prilikom podešavanja možete ostaviti tekst na jednoj stranici na engleskom ili ruskom jeziku.

Sistem prijelaza sa sloja na sloj je multivarijatan i funkcionalan u isto vrijeme. Dakle, možete zamijeniti prijevodni tekst ispod slike, ili možete odabrati drugog autora ilustracija za ovaj prijevod. Inače, među ilustratorima i klasicima od J. Tenniela do samog Carrolla...

Knjigu se može čitati na engleskom ili ruskom (ili slušati na engleskom) poglavlje po poglavlje, ili se možete zanositi bilješkama (poznato je da je po broju sofisticiranih riječi o njemu, Carroll na drugom mjestu Šekspiru).

Ovdje nije narušen integritet teksta, a brojni komentari i tumačenja kriju se iza duhovitog sistema referenci, jezičkih napomena, obrazloženja i razmišljanja, činjenica i objašnjenja, pa čak i komentara šahista.

Možete proučiti „Biografiju profesora Oksfordskog univerziteta, nastavnika matematike Charlesa Lutwidgea Dodgsona“ ili preslikanu „Biografiju pisca Lewisa Carrolla, tvorca „Alice“.

Ili možete odmah otići na stranicu s lakoničnom, ali odabranom bibliografijom Carrollovih publikacija i knjiga o njemu.

Osim toga, disk “Alice Through the Looking Glass” omogućava kopiranje bilo kojeg dijela teksta u međuspremnik.

Igra za bilo koju dob

Možete dugo lutati kutovima i rupama ove igre, ali je nemoguće izgubiti se u njoj.

Studij navigacije dio je putovanja kroz Zemlju čuda i Kroz ogledalo koje predlažu autori.

Ovdje ćete pronaći puno zanimljivih sitnica i preciznih, smiješnih detalja: od lonaca i tanjura koji lete duž stranice (mogu se razbiti klikom miša), letećih insekata i mačaka koje se mogu koristiti za pomicanje stranica, do gunđanja bebe i gusjenice koje postaju leptir chrysalis, itd. d. Umetnuti odlomci crtanih filmova nisu samo ilustracije, već dio višedimenzionalnog prostora u duhu Carrolla.

Ovdje je svaki detalj dio višeslojne strukture, u kojoj su glavna stvar knjige Lewisa Carrolla. Uronjeni u vidljivi i zvučni kontekst, oni postaju obimni. Igra sa RIJEČOM, sama igra RIJEČOM budi čitaočevu maštu i izaziva dalje korake ka samostalnom radu sa TEKSTOM. Ovo je pravi edukativni program, uzbudljiv i omogućava donošenje samostalnih odluka; puna zanimljivih i tačnih detalja, istorijskih i filozofskih komentara. Možete raditi s njim sami, ili zajedno ili sa cijelom kompanijom. Program je, kao i knjiga, napravljen, kako kažu, „za rast“; što više učite, postaje zanimljivije.

"Veoma koristan poklon!"

Ako imate računar, ovaj disk će biti krunski dragulj vaše CD kolekcije. Nije bitno koliko godina imate, da li znate engleski ili ne, nije bitno u kojoj oblasti radite. Vrlo je dobro ako si još u školi. Ova dobra stara knjiga, pročitana na nov način, pružiće vam trenutke opuštanja i zadovoljstva, saznanja o gotovo beskrajnom, jer je tekst toliko gust da se može čitati beskonačno. I igraj se s njim. Uostalom, poznato je da je svaki tekst interaktivan, uglavnom, prodor u dubinu teksta odgovara nivou vašeg razvoja, a želja za savršenstvom je beskrajna. Danas mnogi nastavnici, školarci i roditelji tek dobijaju pristup računaru. Web stranica obrazovne laboratorije svoj zadatak ne vidi samo u predstavljanju najnovijih elektroničkih proizvoda, već i u tome da korisniku otvori najbolje publikacije koje vremenom i razvojem telekomunikacijskih tehnologija nisu zastarjele. Nema mnogo takvih publikacija. Računarska knjiga o Alisi je jedno od prvih mjesta. Nevjerovatan primjer ne rivalstva, već povezanosti “Gutenbergove galaksije” sa novim ljudskim izumima!

Čitaocima smo već više puta predstavili proizvode kompanije. "1C". Ovo je prilika da se još jednom uvjerimo koliko je visok nivo edukativnih elektronskih proizvoda koje ova kompanija izdaje. "Alisa u zemlji čuda i kroz ogledalo" dobila je mnoge zaslužene nagrade i nagrade.

Urednici se zahvaljuju kompaniji "1C" za predviđeni program.

Dragi i dragi klijenti, trudimo se da budemo bolji za vas!

U tom smislu počinjemo transformaciju Centar ljepota na Tuli od 15. jula. Popravka će trajati 2 sedmice. Obnovljeni i modernizovani centar otvoriće vam svoja vrata 29. jula.

U ovom periodu biće nam drago da vas vidimo u Centru na Kantemirovskoj, kao iŽelimo da vas obavestimo da će neki stručnjaci iz Tule raditi u Kantemirovskoj tokom popravke.

Izvinjavamo se zbog nastalih neugodnosti.

Više informacijaMožete pojasnitiu jednom CALL centru+7 495 134 22 22.

Pretplatite se na naše Instagram i pratite proces, biće zanimljivo!

Kriolipoliza - NOVO!!!

KORISTI PRIJE 54 400*!

APSOLUTNI HIT KLINIKA EVROPE -KRYOLIPOLYSIS COCCON :

✔️ BEZBOLA;

✔️ BRZI REZULTAT;

✔️ JEDNAK SMANJENJE MASNOG TKIVA;
✔️ NEMA NEŽELJENIH EFEKATA;
✔️ ŠIROKO PODRUČJE PRIMJENE - OD STOMAKA I BAKOVA DO BRADE.

*Za više informacija o promociji pitajte administratore ili telefonom.

Revolucionarna PRX-T33 emulzija je SADA SA NAMA!

PRX-T33 je jedinstveni patentirani proizvod koji je napravio revoluciju u kozmetologiji u Italiji, a nakon 10 godina kliničkih ispitivanja ušao je na rusko tržište. PRX-T33 - hemijski piling za revitalizaciju (podmlađivanje) kože. Procedura za kontrolisano oštećenje kože u cilju njenog stimulisanja i obnavljanja, bez oštećenja epiderme i bez izazivanja ljuštenja. Većina pilinga se preporučuje da se radi u jesensko-zimskom periodu, ali PRX-T33 - za sve sezone.

NEW BARBER!

Sada u mrežnim centrima ljepota "Kroz ogledalo" (m. Kantemirovskaya, m. Tulskaya) Pojavili su se berberi - to su majstori kojima moderan čovjek može sigurno povjeriti svoj imidž: šišati kosu, stilizirati brkove, bradu ili se maziti kraljevskim brijanjem . Brijač će vam pomoći u odabiru njege i stiliziranja kose, preporučiti frizuru koja odgovara vašem tipu izgleda i savršenoj bradi. Muške frizure dolaze u velikom broju. Mladić može frizurom izraziti svoj karakter, raspoloženje, imidž!Odaberi svoj stil života!

Babor - "Umetnost čišćenja"

U kozmetičkim centrima Zazerkalye pojavila se nova linija kozmetike za kućnu njegu - "The Art of Cleansing", njemačke kompanije Babor.
Linija uključuje:
Enzimski puder za čišćenje, Trio set za čišćenje kože, meki piling, Essence-tonik sa termalnom vodom, Essence-tonik sa ružinom vodicom, mleko za čišćenje.

Savršeni manikir sa Luxio sada je u Kroz ogledalo na Kantemirovskoj

Kozmetički salon Zazerkalye predstavlja modernu liniju za manikir i pedikir - LUXIO.

Nedavno su članci posvećeni 1C as okruženje za razvoj aplikacija. Članci su više konceptualnog značenja nego primijenjenog; autori razmatraju platformu 1C:Enterprise 8 u cjelini, pokušavajući razumjeti da li je tehnologija za kreiranje poslovnih aplikacija koju nudi 1C dobra ili loša.

Neću raspravljati o tome da li je svaki od autora u pravu ili ne; 1C platforma, kao i svaka tehnologija, ima svoje prednosti i nedostatke. I također ima svoje zanimljive karakteristike, svoj razvoj i mehanizme. Ovo su oni o kojima želim da pričam. Takođe želim da napišem članak o 1C za ljude koji nisu upoznati sa 1C, članak koji pokazuje koje mesto 1C zauzima među sličnim softverskim proizvodima. Lično sam zaista propustio ovakav uvodni pregledni članak kada još nisam bio upoznat sa 1C, ali sam bio upoznat sa nizom drugih ERP proizvoda.

Dakle, počnimo!

Šta proizvodi 1C?

Mislim da će šira javnost odgovoriti na ovo pitanje: "1C: Računovodstvo." Neko će se sjetiti programa obuke ili čuvene serije igara “IL-2 Šturmovik”.

Učesnici Habr-a su, naravno, svjesni da 1C nije samo „1C: Računovodstvo“, da postoji čitav sistem programa „1C: Enterprise“, uključujući alate za razvoj poslovnih aplikacija i poslovnih aplikacija kreiranih pomoću ovih alata. A uz pomoć razvojnih alata 1C napisano je računovodstvo, CRM i ERP (sa implementacijama za hiljade i desetine hiljada korisnika), i još mnogo toga.

ERP sistemi su najzanimljivije i funkcionalno najbogatije poslovne aplikacije; Koristeći njihov primjer, hajde da vidimo koje mjesto 1C: Enterprise tehnologije zauzimaju među svojim analozima.

Koje su vrste ERP-ova?

Koje je najvrednije svojstvo ERP sistema (i svih poslovnih aplikacija)? Po mom mišljenju, to je fleksibilnost, sposobnost prilagođavanja poslovnim procesima krajnjeg korisnika uz najnižu moguću cijenu.

Jasno je da je prilikom programiranja ERP sistema nemoguće predvideti sve varijante poslovnih procesa. Parametarizacija dolazi u pomoć; Uvođenjem parametara u sistem koje korisnik (konsultant, administrator) može mijenjati u sistemskim postavkama, povećavamo fleksibilnost sistema uz relativno niske troškove. Prvi ERP sistemi su bili vođeni parametrima, tj. prilagodljiv pomoću parametara.

Ne mogu svi poslovni slučajevi biti predviđeni u sistemima koji se mogu parametrirati. Kada samo postavljanje parametara nije dovoljno, potrebno je promijeniti izvorni kod. Ovdje je proizvođač ERP-a suočen s pitanjem - promijeniti sam kod kako bi odgovarao potrebama potrošača i pustiti ažuriranja ili isporučiti sistem u izvornom kodu kako bi korisnici mogli sami prepisati sistem kako bi odgovarao svojim potrebama (što, inače, čini ne oslobađa proizvođača od izdavanja ažuriranja – sistem se mora razvijati, podržavati nove funkcionalnosti da bi bio konkurentan).

Posebno pitanje je izbor programskog jezika za pisanje ERP sistema. Veliki dio ERP sistema je poslovna logika, za koju konvencionalni programski jezici poput C++ nisu uvijek najprikladniji. U idealnom slučaju, bilo bi dobro programirati poslovnu logiku na jeziku visokog nivoa koji može pružiti poslovnom programeru maksimalnu udobnost prilikom pisanja poslovne logike, apstrahujući je od detalja niskog nivoa (karakteristike rada sa bazama podataka, I/O fajlovima i podsistem za štampanje, prozorski podsistem korisničkog interfejsa i sl.). Naravno, u ovom slučaju morate kreirati kompajler/interpretator za ovaj jezik i razvojno okruženje.

Imamo matricu mogućih kombinacija:

  • otvoreni ili zatvoreni kod aplikacije (ovdje ne mislim na otvoreni kod u uobičajenom smislu, već na mogućnost isporuke izvornog koda aplikacije, uključujući i uz naknadu).
  • programski jezik poslovne logike - “običan” (C/Java/Perl/...) ili posebno razvijen, vlasnički.

Poslovne aplikacije kreirane pomoću 1C: Enterprise tehnologija su sistemi sa otvorenim kodom aplikacije napisanim na vlasničkom jeziku koji nema kratko ime; službeno se zove "Ugrađeni programski jezik 1C: Enterprise", neformalno i kratko - "1C jezik".

Većina lidera na modernom ERP tržištu su sistemi otvorenog koda. Mogućnost modifikacije izvornog koda na terenu pruža ogromnu fleksibilnost i konkurentsku prednost. Proizvodi zatvorenog izvora su primorani da koriste različite tehnike; najčešći potez je analog CallBacks-a, mogućnost dodavanja prilagođenog koda na unaprijed definirane događaje, kako vizualne (otvaranje i zatvaranje obrasca, odabir sa liste vrijednosti,...) tako i poslovne događaje (obrada narudžbi, unos prodaje faktura, ...). Neki sistemi imaju mogućnost pisanja vlastitih rukovatelja u C# (ili drugim uobičajenim jezicima); drugi imaju Visual Basic za aplikacije, licenciran od Microsofta, za ovu svrhu, itd.

Kako funkcionišu ERP-ovi

ERP sistemi sa aplikacijama otvorenog koda sastoje se od stvarnog izvornog koda koji implementira poslovnu logiku i okruženja za izvršavanje ovog poslovnog koda (tzv. platforma).

Platforma je obično napisana na jeziku niskog nivoa (C, C++); često je izvorni kod platforme zatvoren za krajnje korisnike. Svrha platforme je da omogući programeru da apstrahuje od detalja niskog nivoa (karakteristike OS-a i DBMS-a, itd.) i da se fokusira na pisanje stvarne poslovne logike. Platforma takođe često uključuje alate za razvoj poslovnih aplikacija i alate za administraciju sistema (i ja se slažem sa ovim pristupom). Inače, ne mogu bez platforme i sistema gde je poslovna logika napisana „običnim“ programskim jezicima. Tu nema potrebe za tumačenjem koda aplikacije, ali ostaje potreba za funkcionalnošću platforme (na primjer, „omoti“ oko baze podataka ili objedinjeni pristup listi korisnika i njihovim pravima).

Platforma kao okruženje za izvršavanje poslovnih aplikacija može se opisati kao virtuelna mašina. Obično bi platforma trebala oponašati tri glavne stvari za ERP:

  • Okruženje izvršenja poslovne logike.
  • Baza podataka.
  • Grafički podsistem za prikaz klijentske aplikacije. Klijentska aplikacija može biti grafička, prikazana pomoću standardnih OS alata (uključujući mobilni OS), ili može biti web aplikacija. U slučaju web aplikacije, platforma ili implementira vlastiti web server ili pruža podršku za standardne web servere (IIS, Apache, itd.)
U principu, modifikacijom platforme, možete napraviti ERP, napisan na vlasničkom jeziku, pokrenuti pod bilo kojim OS-om i pohraniti podatke u gotovo svaki DBMS. Obično su proizvođači ERP-a ograničeni na jedan ili dva operativna sistema i jedan ili dva DBMS-a. Podrška za dodatni OS i DBMS znači povećanje troškova razvoja i testiranja; Proizvođači ERP-a često u novim verzijama svojih proizvoda najavljuju da više neće podržavati nijedan DBMS.

1C platforma nudi sljedeće u smislu podrške za OS i DBMS:

  • Okruženje izvršavanja poslovne logike: klaster aplikacionih servera otporan na greške sa balansiranjem opterećenja; OS - Windows ili Linux
  • Baza podataka: vlastiti fajl DBMS (preporučuje se za razvoj i male instalacije), MS SQL, Oracle, IBM DB2, PostgreSQL
  • Klijent:
    • tanki klijent (samo prikaz i unos informacija o klijentu) – Windows i Linux. Može raditi sa serverom aplikacija preko lokalne mreže ili putem web servisa (u ovom slučaju, Microsoft IIS ili Apache moraju biti raspoređeni na strani servera)
    • Web klijent - na strani servera Microsoft IIS ili Apache, na strani klijenta - bilo koji od četiri pretraživača - Internet Explorer, Chrome, Firefox, Safari
    • debeli klijent (sa mogućnošću izvršavanja dijela poslovne logike na klijentu) – Windows i Linux. Ima brojna ograničenja (na primjer, može raditi samo unutar iste lokalne mreže sa poslužiteljem aplikacija). Smatra se zastarjelim; 1C ga ne planira dalje razvijati.
    • Mobilni offline klijent (sa mogućnošću periodične sinhronizacije) – iOS i Android.
Ako pri pisanju 1C programa koristimo tehnologiju upravljane aplikacije (dostupnu od 2008.), onda iz jednog koda aplikacije dobijamo i tanki klijent za Windows/Linux i web klijent.

Jezik ERP aplikacije

Posebna tema je jezik kojim je napisana poslovna logika. Da bi poslovni programer radio efikasno, ovaj jezik bi trebalo da bude što je moguće bliži poslovnom domenu (idealno DSL, jezik specifičan za domen) i udaljen od tehničkih detalja OS-a i DBMS-a.

Uzmimo tipičan poslovni zadatak: sistemu moramo dodati mogućnost unosa i obrade nove vrste dokumenta (na primjer, naloga). U sistemu napisanom na „običnom“ programskom jeziku, ovo zahtijeva:

  1. Kreirajte tabele u bazi podataka u koje će se čuvati informacije o dokumentu.
  2. Napišite klasu (ili klase) koja implementira poslovnu logiku za rad s dokumentom. Pored poslovne logike, klase moraju implementirati i interakciju sa bazom podataka – čitanje i pisanje podataka dokumenta.
  3. Kreirajte korisnički interfejs za uređivanje nove vrste dokumenta. Često morate kreirati i obrazac koji prikazuje listu dokumenata sa mogućnošću pretraživanja po različitim poljima itd.
Ako radimo u C#-u u Visual Studio-u, svi koraci se mogu obaviti unutar jednog razvojnog okruženja (uključujući dizajn baze podataka).
U brojnim ERP sistemima koji koriste vlasničke jezike, također morate proći kroz sva tri gore opisana koraka, obično unutar istog razvojnog okruženja.

Ova 3 koraka će osigurati minimum potreban; Ali i dalje morate kreirati korisnički interfejs za rad sa dokumentom, učiniti ga dostupnim u izveštajima, moći da registrujete promene koje su korisnici napravili u dokumentima novog tipa, u sistemskom dnevniku itd.

U 1C morate opisati polja novog tipa dokumenta u grafičkom dizajneru i napisati kod koji implementira poslovnu logiku specifičnu za dokument (na primjer, na koje račune treba upisati iznos novca u dokumentu). Sve ostalo što je potrebno za potpuni rad sa dokumentom u sistemu uradiće platforma:

  • Kreira strukture u DBMS-u za pohranjivanje podataka.
  • Kreiraće forme za uređivanje dokumenta, prikazivanje liste dokumenata ove vrste itd. Ako nam automatski kreirani obrasci na neki način ne odgovaraju, možemo napraviti svoje tako što ćemo proširiti i/ili promijeniti standardne.
  • Dokument će postati dostupan u izvještajima.
  • Dokument i njegova polja će postati dostupni za distribuciju prava čitanja/pisanja u sigurnosnom sistemu aplikacije.
  • Polja dokumenta će postati dostupna za pretraživanje punog teksta u cijelom sistemu (uključujući sinonime, podršku za transliteraciju, nejasnu pretragu, itd.).
  • Sve promjene na dokumentima novog tipa bit će zabilježene u dnevniku prijave.
  • Metode će se automatski kreirati za spremanje i čitanje dokumenta u/iz XML-a i JSON-a.
  • Dokument će postati dostupan preko REST interfejsa (preko OData protokola).
  • I mnogo više

Karakteristika razvoja u 1C je da u sistemu postoji oko 20 ugrađenih tipova objekata, a svi novi objekti koje programer kreira moraju pripadati jednom od ovih tipova. Većina ovih tipova opisuje objekte iz okvira računovodstvenih aktivnosti preduzeća – imenike, dokumente, kontne planove itd. Drugi dio tipova objekata su tehnološki, na primjer, Web i HTTP usluge; omogućavaju 1C programima da komuniciraju sa vanjskim svijetom.


1C konfigurator – u njemu se kreiraju aplikativna rješenja. Na lijevoj strani je stablo ugrađenih 1C tipova; ispod svake grane - objekti aplikacije ovog tipa.

Razvoj aplikativnih rješenja vrši se u Konfiguratoru (Dizajner u engleskoj verziji). Nedavno je objavljena probna verzija alata 1C:Enterprise Development Tools, koja omogućava razvoj 1C rješenja u popularnom okruženju Eclipse. Još nije moguće izvršiti industrijski razvoj u alatima za razvoj 1C: Enterprise, ali koristeći ovu verziju sasvim je moguće razumjeti kuda kompanija ide tehnološki. Posebno je podržan kolektivni razvoj pomoću popularnih sistema kontrole verzija (Git, SVN i bilo koje druge za koje postoje dodaci za Eclipse); Također je moguće napisati vlastite dodatke za Eclipse IDE koji proširuju mogućnosti razvojnog okruženja za rad sa 1C.


Alati za razvoj preduzeća - razvoj 1C aplikacije u IDE Eclipse

Sam programski jezik 1C po sintaksi najviše podsjeća na JavaScript. Jezik nije, strogo govoreći, objektno orijentisan. U njemu nema nasledstva; ali, budući da svi objekti 1C programa pripadaju jednom od ugrađenih tipova objekata, to se može nazvati pojednostavljenom nasljeđivanjem: ugrađeni tipovi objekata implementiraju unaprijed definiranu funkcionalnost koju programer aplikacije može redefinirati u svojim objektima nasljednicima. Takvo nasljeđivanje je na jednom nivou, više nije moguće naslijediti od objekata aplikacije; sličan pristup nasljeđivanju usvojen je u konceptu programiranja zasnovanog na prototipovima; Jedan od popularnih predstavnika ovog koncepta je JavaScript.

Ovaj pristup namjerno ograničava slobodu programera aplikativnih rješenja, prisiljavajući ga da odabere željeni tip objekta iz razumno ograničene palete ugrađenih tipova kako bi implementirao svoje zadatke. Zauzvrat, programer dobija bogatu funkcionalnost koju implementira platforma i zaista brz razvoj. Prednosti ovog pristupa su očigledne - računovodstveni sistemi na 1C se lako i brzo kreiraju. Postoje i nedostaci - ako trebate implementirati nešto za što platforma nema ugrađene tipove (na primjer, rad sa SFTP-om), onda morate ili pričekati novu verziju platforme u kojoj će ova funkcionalnost biti implementiran, ili napišite svoju implementaciju na „običnom“ jeziku i pozovite je iz 1C preko tehnologije eksternih komponenti.

Nekoliko činjenica o ugrađenom 1C programskom jeziku:

  • Podržana je engleska (ako... onda) i ruska (ako... onda) sintaksa.
  • Jezik je Turing potpun.
  • To je dinamički kucani jezik. Varijabla je povezana s tipom u vrijeme kada je vrijednost dodijeljena, a ne u vrijeme kada je varijabla deklarirana. Kada deklarišete promenljivu, ne možete odrediti njen tip.
    Ovo možete učiniti: var a; a = 1;
    Ovo ne možete učiniti: var a as Int; a = 1;
  • Za čitanje podataka iz DBMS-a, 1C ima svoj jezik upita, sličan SQL-u. Zapravo, on se prevodi u SQL prilikom izvršavanja 1C programa.

Kako to sve funkcionira

Kako se 1C rješenja isporučuju krajnjim korisnicima? I kako oni funkcioniraju za te iste krajnje korisnike?

Da bismo potpunije odgovorili na ovo pitanje, moramo se sjetiti jedne karakteristične osobine 1C.
Projekt u 1C naziva se konfiguracija. Konfiguracija je kompletan samodovoljan program, na primjer, računovodstvo ili ERP; uključuje sve objekte i kod potreban za potpuno funkcioniranje poslovne aplikacije. Posebnost 1C je u tome što se konfiguracija pohranjuje u bazu podataka, istu onu u kojoj se pohranjuju podaci same aplikacije (knjiženja, podaci iz direktorija i dokumenata itd.), tj. program se pohranjuje zajedno sa podacima. Baza podataka s konfiguracijskim (i aplikacijskim podacima) u terminologiji 1C naziva se baza podataka (skraćeno infobaza).

Konfiguracija se može učitati u datoteku; U obliku datoteke obično se prima od programera do krajnjih korisnika, a na klijentskom sistemu se ova datoteka uvozi u infobazu. Nakon toga, rješenje je spremno za upotrebu.


Arhitektura 1C rješenja

Gdje je koji softver instaliran:

  • DBMS server – jedan ili više DBMS koje podržava 1C (MS SQL, Oracle, IBM DB2, PostgreSQL). Ako je nekoliko 1C aplikacija instalirano na 1C serveru, aplikacije mogu koristiti različite DBMS-ove; na primjer, računovodstvo je MS SQL, a ERP je Oracle.
  • Server – jedan ili više servera u skalabilnom klasteru za nadilaženje greške. Ovdje mora biti instaliran softverski proizvod 1C Server (skup biblioteka i izvršnih datoteka). Toleranciju grešaka i skalabilnost klastera, kao i balansiranje opterećenja između servera klastera obezbeđuje 1C softver. Jedan klaster može sadržavati Windows i Linux servere, a sistem može imati backup klaster.
  • Klijent: Windows ili Linux OS, tanki klijent (1cv8c.exe/1cv8) ili 1C debeli klijent (1Cv8.exe za Windows, 1cv8 za Linux) mora biti instaliran.
    • Tanki klijent može izvršiti ograničeni skup funkcionalnosti ugrađenog 1C jezika. Radi s ograničenim skupom ugrađenih tipova jezika, namijenjenih samo za prikaz i promjenu podataka u memoriji. Sav rad sa bazom podataka, objektnim podacima i izvršavanjem upita obavlja se na strani servera. Tanki klijent prima samo spremne podatke pripremljene za prikaz.
    • Debeli klijent može obavljati gotovo svu funkcionalnost koju pruža sam ugrađeni 1C jezik, pribjegavajući pomoći servera samo kada je potrebno pisati ili čitati podatke iz baze podataka. Ograničenja: zahtijeva značajnu količinu hardverskih resursa i može "komunicirati" sa klasterom 1C servera samo preko lokalne mreže. Smatra se zastarjelim, održava se radi kompatibilnosti unatrag.
  • Web server – IIS ili Apache. Od 1C – instaliran je set ekstenzija za web servere.
  • Web klijent – ​​bilo koji od četiri podržana pretraživača: Internet Explorer, Chrome, Firefox, Safari.
  • Mobilni klijent: iOS ili Android i bilo koja 1C mobilna aplikacija. Način komunikacije između 1C mobilne aplikacije i servera ovisi o specifičnoj aplikaciji; Najčešće se koriste web ili HTTP usluge.

1C komponente - server, tanki i debeli klijenti i web ekstenzije - komuniciraju jedni s drugima bilo korištenjem vlastitog protokola (implementiranog na vrhu TCP-a) ili putem http.

Šta je posebno kod 1C

Po čemu se tehnologija 1C: Enterprise ističe? Zahvaljujući inovativnom pristupu organizaciji razvoja (više o tome u nastavku), lako je napraviti dvije stvari u 1C: Enterprise: kreirati poslovna rješenja od nule i prilagoditi postojeća rješenja prema potrebama krajnjih korisnika.

Razvoj

Lako je kreirati rješenja od nule - zahvaljujući ugrađenim objektima koji implementiraju osnovnu funkcionalnost računovodstvenih sistema. To je dobro osmišljen sistem ugrađenih objekata (a ne jezik, koji je generalno obična skripta) koji 1C:Enterprise čini moćnim alatom za kreiranje poslovnih aplikacija. Programer ne treba da piše sloj za pristup podacima, osnovno korisničko sučelje itd. – možete se odmah fokusirati na rješavanje poslovnog problema. Za rješavanje poslovnih problema, mnogo je već implementirano u ugrađene objekte (čitaj – osnovne biblioteke) - na primjer, podrška za hijerarhijske direktorije, računovodstvene mašine za implementaciju računovodstva i robnog računovodstva, mehanizmi za složene periodične obračune (na primjer, obračun plaća) i mnogo više.

„Iz kutije“ programer prima ugrađene objekte (direktorije, dokumente, registre, itd.) implementirane od strane platforme; ovo su obrasci iz svijeta računovodstvenih sistema. U aplikativnom rješenju (konfiguraciji), programer implementira ove obrasce, ispunjavajući ih specifičnom poslovnom logikom.

Aplikacijsko rješenje u 1C:Enterprise nije napisano doslovno na programskom jeziku. Dva kamena temelja ideologije razvoja su razvoj vođen metapodacima i razvoj vođen modelom.

U osnovi poslovne aplikacije su metapodaci, koji su deklarativni opis same aplikacije. Aplikacijsko rješenje nije opisano u terminima relacijskih tablica, klasa objektnog programskog jezika, itd., kao u većini sistema. Rješenje u 1C: Enterprise opisano je metapodacima u obliku skupa objekata aplikacije odabranih iz određenog skupa prototipskih obrazaca (direktoriji, dokumenti, kontni planovi,...).

Metapodaci formiraju hijerarhiju objekata od kojih se formiraju sve komponente aplikativnog sistema i koji određuju sve aspekte njegovog ponašanja. Prilikom pokretanja poslovne aplikacije, platforma interpretira metapodatke, pružajući svu potrebnu funkcionalnost.

Metapodaci opisuju strukture podataka, sastav tipova, veze između objekata, karakteristike njihovog ponašanja i vizuelne reprezentacije, sistem za razgraničenje prava pristupa, korisnički interfejs itd. Metapodaci sadrže informacije ne samo o tome šta je pohranjeno u bazi podataka, već i o tome šta, zašto se čuvaju ove ili one informacije, koja je njihova uloga u sistemu i kako su nizovi informacija međusobno povezani. Upotreba programskog jezika ograničena je uglavnom na rješavanje onih problema koji zapravo zahtijevaju algoritamski opis (obračun poreza, provjera ispravnosti unesenih podataka, itd.). Osnovni princip razvoja u 1C: Enterprise može se ukratko formulirati na sljedeći način: „Programirajmo samo tamo gdje je to zaista potrebno, a platforma neka obavi sav rutinski posao.“

1C: Enterprise je u početku bio orijentisan na izgradnju aplikativnog rješenja zasnovanog na specifičnom modelu. Model se odnosi na cjelokupnu ideologiju izgradnje aplikativnog rješenja. To su metode konstruisanja struktura podataka, tipovi veza između podataka, principi manipulisanja njima, oblici opisivanja poslovne logike, načini povezivanja podataka sa objektima interfejsa, podela funkcionalnosti na nivoima sistema i još mnogo toga.

Sve poslovne aplikacije slijede zajednički model, osiguravajući dosljedno i predvidljivo ponašanje. Programer koji želi da odrazi specifičnosti određene predmetne oblasti u aplikativnom rešenju ima veoma specifičan skup načina da reši ovaj problem koristeći sredstva ugrađena u platformu. S jedne strane, ovaj pristup ograničava (smisleno!) slobodu programera, ali s druge strane, štiti ga od mnogih grešaka i omogućava mu da brzo dobije izvodljivo rješenje koje može dalje razvijati i podržavati kako sam tako i po potrebi od strane drugih specijalista.

Prisustvo jedinstvenog modela pozitivno utiče na lakoću savladavanja sistema. Sav razvoj se odvija u okviru jednog end-to-end sistema koncepata, u jednom prostoru tipova podataka. Opis određenih objekata (entiteta) u metapodacima odmah određuje odgovarajuće tipove ugrađenog programskog jezika i strukture baze podataka potrebne za njihovo skladištenje. Sve naknadne manipulacije ovim objektima iu memoriji iu bazi podataka izvode se ujednačeno, bez potrebe za prevazilaženjem barijera između različitih notacija usvojenih u radu sa DBMS-om i univerzalnim programskim jezicima.

Gotova aplikacija (konfiguracija), koja se isporučuje u otvorenom kodu (na primjer, računovodstvo ili ERP), za programera na strani klijenta je praktično DSL (Domain Specific Language, domenski-specifičan jezik). Programer može koristiti gotove konfiguracijske objekte (imenik ugovornih strana, kontni plan, platni spisak) kako bi modificirao ponašanje sistema u skladu sa potrebama korisnika.

Prilagodba i podrška

Ukratko o poslovnoj logici aplikativnog rješenja možemo reći sljedeće: ono se mijenja. Mijenjaju ga zaposleni u IT odjelima klijenta, prilagođavajući rješenje poslovnim procesima preduzeća. I dobavljač rješenja ga mijenja, dodajući novu funkcionalnost, podržavajući promjene u zakonodavstvu i periodično objavljujući ažuriranja.

Procedura za instaliranje ažuriranja gdje je poslovna logika promijenjena „in situ“ kako bi odgovarala potrebama klijenta često je netrivijalna operacija, ponekad prepuna grešaka. Uglavnom, ovo je spajanje izvornih kodova nove aplikacije od dobavljača sa modifikovanom (u poređenju sa prethodnom verzijom dobavljača) klijentskom aplikacijom. S jedne strane, morate dobiti novu funkcionalnost koja je došla s ažuriranjem; s druge strane, nemojte izgubiti svoja postignuća.

Ovaj zadatak je poznat svima koji su morali raditi u timu na jednoj aplikaciji i spajati (spojiti) svoje promjene u izvornom kodu sa promjenama drugih članova tima. Čak i ako su svi programeri iz istog tima i pridržavaju se istog skupa pravila za razvoj i formatiranje koda, zadatak spajanja izvornog koda ponekad može biti težak. Pa, u slučaju ERP sistema, to je komplikovano činjenicom da programeri dobavljača i klijenta rade u različitim organizacijama i nemaju uvek mogućnost da komuniciraju u slučaju poteškoća u razumevanju koda.

Imajte na umu da ako su promjene koje je izvršio klijent previše opsežne, dobavljač aplikacije može odlučiti da neće pružiti dalju podršku za klijentovo rješenje.

Gore navedeno je jedan od najtežih zadataka u životnom ciklusu gotovo svakog poslovnog sistema sa aplikacijom otvorenog koda. Uspjeh aplikacije na tržištu u velikoj mjeri ovisi o tome koliko uspješno proizvođač softvera rješava ovaj problem. U slučaju 1C, spajanje dvije konfiguracije (dobavljača i korisnika) tokom ažuriranja nije samo spajanje izvornih kodova dvije aplikacije, to je prije svega spajanje modela aplikacija, koje se mora odvijati prema određenim pravilima.

Da bi riješio ovaj problem, 1C je razvio mehanizam podrške (dio platforme 1C: Enterprise) koji omogućava dobavljaču rješenja da odredi koje konfiguracijske objekte (direktorije, dokumente, itd.) klijent može promijeniti, a koje ne, tj. Njihova promena će poremetiti funkcionalnost sistema ili onemogućiti njegovu dalju centralizovanu podršku od strane dobavljača.

Zauzvrat, klijent, koristeći ovaj mehanizam, može odrediti pravila za podršku objektima svoje konfiguracije - na primjer, može odbiti podršku dobavljača za određeni objekt ako preuzme odgovornost za dalju modifikaciju ovog objekta ili ako ne potreban ovaj objekat u svom radu. Ili, naprotiv, možete zabraniti uređivanje objekta "vaše" konfiguracije (čak i ako dobavljač to dozvoljava) kako biste se osigurali od slučajnih promjena.

U idealnom slučaju, želio bih da prilagođene promjene postoje kao da su “po strani” od standardne konfiguracije dobavljača i da budu uključene u rad samo u trenutku direktnog izvršavanja koda. U ovom slučaju, proces instaliranja ažuriranja od dobavljača će postati automatski proces koji ne zahtijeva ljudsku intervenciju. 1C nudi dva pristupa koja pokrivaju značajan procenat scenarija prilagođavanja.

Prvi pristup je korištenje eksterne obrade i eksternog izvještavanja. Ovi mehanizmi vam omogućavaju da dodate dodatnu funkcionalnost "na vrh" sistema bez promjene izvornog konfiguracijskog koda. U suštini, ovo su skripte sa grafičkim sučeljem dizajniranim za rad na određenom aplikativnom rješenju. Ovi mehanizmi su doveli do njihovog analoga, "App Store", online prodavnice u kojoj nezavisni programeri objavljuju, a krajnji korisnici kupuju neophodne dodatke za različite programe.

Drugi pristup, koji se pojavio relativno nedavno, su ekstenzije. Strategija koju nude ekstenzije je da nema potrebe za promjenom zadane konfiguracije. Sve promjene se vrše u takozvanom proširenju, koje je, u stvari, također konfiguracija (ali prilagođena, odvojena od konfiguracije dobavljača). U ovom slučaju, instalacija ažuriranja od dobavljača bit će automatska - sa stanovišta mehanizma podrške, standardna konfiguracija se nije promijenila. A kada konačna konfiguracija (koja je kombinacija standardne konfiguracije i proširenja) radi, koristit će se oni objekti koji su dodani (ili modificirani) u ekstenziju.

Šta još?

Šta je još zanimljivo/važno u liniji 1C tehnologije? Lista sadrži najznačajnije mehanizme, o svakom od kojih možete napisati poseban članak (ili nekoliko):

  • Cloud rješenje 1cFresh je “cloud of the box”, horizontalno skalabilno okruženje za rad sa aplikativnim rješenjima 1C (i partnerskih kompanija) u uslužnom modelu (SaaS). Proizvod sadrži sve funkcije potrebne za rad SaaS-a - registraciju i upravljanje korisnicima, mogućnost brzog objavljivanja novih aplikativnih rješenja, pravljenja sigurnosnih kopija korisničkih podataka itd. Sama kompanija 1C koristi 1cFresh proizvod za iznajmljivanje svojih proizvoda (http://1cfresh.com), a također prodaje 1cFresh rješenje kao proizvod u kutiji, omogućavajući partnerima i klijentima da implementiraju vlastite oblake za aplikativne rješenja zasnovana na 1C : Enterprise technology.
  • 1C mobilna platforma (gore pomenuta), koja vam omogućava da kreirate aplikacije za mobilne operativne sisteme (iOS, Android) iz jednog izvornog koda, koristeći istu metodologiju i razvojno okruženje (Konfigurator) kao i za „obične“ 1C aplikacije.
  • Moćan i fleksibilan sistem izveštavanja. Izvještaji su izuzetno važan mehanizam u svakom poslovnom sistemu; Mnogi ERP-ovi koriste eksterne generatore izvještaja drugih proizvođača jer... kreiranje dobrog generatora izvještaja nije lak zadatak s puno specifičnosti. U 1C, izvještaji se razvijaju u istom okruženju (Konfigurator) kao i sama aplikacija; Mehanizam izvještavanja je baziran na sistemu sastavljanja podataka (DCS), mehanizmu za deklarativni opis izvještaja. Jedna od važnih karakteristika izvještaja u 1C je da krajnji korisnik može promijeniti izvještaj koji je kreirao programer „da odgovara sebi“, koristeći iste mogućnosti dizajna izvještaja kao i programer.
  • Mehanizam razmjene podataka koji vam omogućava da kreirate geografski distribuirane informacione sisteme koji razmjenjuju podatke van mreže, bez stalne veze. Razmjena podataka je moguća i između 1C: Enterprise aplikacija i između 1C: Enterprise aplikacija i sistema trećih strana.
  • I još mnogo zanimljivosti


"1C:Enterprise" - tehnologije i alati

Umjesto zaključka

Nadam se da čitaoci koji nisu upoznati sa 1C imaju manje-više jasnu sliku - šta je 1C, kako funkcioniše i koje mogućnosti pruža programerima. Mnogo je zanimljivih tema ostalo izvan okvira ovog pregleda; o njima sljedeći put.

Pristup arhitekturi aplikacija orijentisan na platformu odabrao je 1C sredinom 1990-ih. Ova jedinstvena kombinacija moćne platforme i razumno ograničenog jezika aplikacije se dobro dokazala - više od 1000 službeno certificiranih 1C rješenja kreirano je korištenjem 1C tehnologija za različita poslovna područja, od automatizacije malih preduzeća do sistema upravljanja preduzećima s hiljadama istovremenih korisnika. Dodaj oznake

Članak je dio serije „Prvi koraci u razvoju 1C“. Nastavlja se na temu pokrenutu u prethodnom članku i detaljno pokriva inovacije koje su se pojavile u konfiguratoru platforme 1C:Enterprise 8.

Nakon čitanja članka naučit ćete:

  • Šta je kontekstni savjet i kako pomaže pri pisanju programskog koda?
  • Čemu služe tekstualni predlošci i kako ih koristiti u praksi?
  • Zašto koristiti grupiranje linija koda?
  • Kako isticanje može poboljšati upotrebljivost uređivača koda?
  • Koja je korist od nove pretrage u stablu konfiguracije?
  • Kako brzo prikazati objekte željenog podsistema?
  • Koji alati za refaktoriranje i demodalnost postoje i kako ih koristiti?

Primjenjivost

U članku se razmatraju mogućnosti konfiguratora na primjeru platforme 1C:Enterprise, izdanja 1C 8.3.5 - 8.3.11, tako da su sve informacije relevantne.

Poboljšanja u konfiguratoru platforme 1C:Enterprise 8.3

Prilikom objavljivanja nove verzije platforme 1C:Enterprise 8.3, programeri su dodali nekoliko zanimljivih i korisnih inovacija kako bi pojednostavili svakodnevni rad stotina programera širom zemlje.

Sada, kada pišete kod modula u uređivaču konfiguratora, kontekstni opis prikazuje ne samo imena varijabli i procedura koje su važeće u datom kontekstu, već i parametre procedure ili funkcije koja se trenutno uređuje.

Nova funkcionalnost je dostupna i za ugrađene procedure i za vlastite procedure programera.

Alat sa listom parametara izgleda ovako:

Parametar procedure koji sada treba uneti je podebljan. Ispod horizontalne linije je opis trenutnog parametra. Ako je obavezno, to je naglašeno tekstom u zagradama.

Ako postoji više opcija sintakse za ugrađenu proceduru, strelice postaju dostupne u zaglavlju za prebacivanje između tih opcija.

Kontekstualnoj pomoći za parametre procedure i funkcije pristupa se pritiskom na Ctrl + Shift + razmaknica. Takođe se može automatski pozvati kada se ukucaju znakovi “(“ i “, “. Ovo ponašanje se može omogućiti u dijalogu parametara konfiguratora (stavka menija Alati - Opcije, kartica Moduli - Kontekstualna pomoć):

Još jedna korisna karakteristika novog kontekstnog tooltip-a je mogućnost prikaza parametara za prilagođene procedure i funkcije.

Za uvećanje kliknite na sliku.

Podsjetimo, postoji dokument "Sistem standarda i metoda za razvoj konfiguracija za platformu 1C: Enterprise 8", koji opisuje preporuke kompanije 1C za razvijeni programski kod.

Dakle, odjeljak “Parametri” opisuje parametre procedure (funkcije). Ako nisu prisutni, dio se preskače.

Prethodi mu red „Parametri:“, a zatim se opisi svih parametara stavljaju u novi red. Opis parametra počinje u novom redu, nakon čega slijedi naziv parametra, zatim crtica i lista tipova, zatim crtica i tekstualni opis parametra.

Na primjer:

// Pripremite obrazac za odgovor na postojeće pismo.
// Opcije:
// IncomingLetter - DirectoryLink IncomingLetter - pismo na koje trebate odgovoriti.
// OutgoingLetter – DirectoryLink.OutgoingLetter – podaci obrasca za tip DirectoryLink.OutgoingLetter,
// nalazi se u formi uređivača odlaznog pisma.
// Text – FormattedDocument – ​​polje uređivača teksta slova koje se nalazi u obrascu
// urednik odlaznog pisma.
Procedura Popunite odgovor na pismo (dolazno pismo, odlazno pismo, tekst) Izvoz

A konfigurator analizira komentare napisane prema ovim pravilima i koristi ih za prikaz kontekstualne pomoći!

Za uvećanje kliknite na sliku.

Kako biste izbjegli ručno pisanje komentara prema datom formatu, platforma nudi tekstualne predloške, koje možete pogledati pritiskom na kombinaciju tipki Ctrl + Shift + T.

Šablon sa nazivom “Procedura (sa naslovom)” formira ispravan komentar.

Da bi ovaj predložak radio, samo unesite znakove “Proc” u uređivač, pritisnite Ctrl+Q i odaberite željeni predložak sa liste koju nudi sistem.

Grupisanje linija koda

Moduli standardnih rješenja na platformi 1C:Enterprise 8 prilično su obimni i sadrže prilično veliki broj linija koda.

Da bi se poboljšala lakoća čitanja i analize programskog koda, implementirane su funkcije za grupisanje uslovnih i cikličnih iskaza, kao i procedure.

Platforma 8.3 pruža još jednu mogućnost - grupirati proizvoljne linije modula u jednu grupu prema logičkom principu, a zatim je skupiti tako da zauzima manje prostora na ekranu kako bi se poboljšala čitljivost teksta.

Za odabir područja teksta uvedene su dvije nove instrukcije predprocesora #Area i #EndArea.

Tokom izvršavanja koda, ove upute se zanemaruju. Oni su potrebni samo za označavanje redova koda koji se presavijaju.

Za uvećanje kliknite na sliku.

Morate paziti da se grupirane oblasti ne sijeku jedna s drugom, jer se u tom slučaju neće srušiti na ekranu.

Tekstualni predložak je dodat u konfigurator za skraćenicu #Region, koji će automatski dodati uputstva za kreiranje nove regije u tekst modula.

U dijalogu postavki konfiguratora (stavka menija Alati – Opcije, kartica Moduli – Grupisanje) možete konfigurisati grupisanje i sažimanje tekstualnih oblasti.

Isticanje struktura bojom

Sada u uređivaču teksta na ugrađenom jeziku sintaktičke strukture na kojima se trenutno nalazi kursor su istaknute bojom. Na primjer, početak i kraj procedure (funkcije), uvjetni izraz i izraz petlje:

Za uvećanje kliknite na sliku.

Još jedna inovacija platforme je isticanje boja otvarajućih i zatvarajućih zagrada. Ovo je vrlo korisno pri pisanju dugih izraza, kada kontrola sintakse prijavljuje grešku i programer mora pronaći dodatnu ili nedostajuću zagradu.

Za uvećanje kliknite na sliku.

U dijalogu parametara konfiguratora (stavka menija Alati – Opcije, kartica Moduli – Uređivanje) možete konfigurisati isticanje boja za nekoliko korisnih struktura.

Ako odaberete parametar "Trenutni identifikator" i dodijelite mu boju različitu od boje pozadine za uređivanje (bijela prema zadanim postavkama), onda kada postavite kursor na bilo koji identifikator programskog koda, on se sam ističe odabranom bojom, a osim toga svi isti identifikatori su istaknuti, koji se pojavljuju u modulu, a konstante niza sa istim identifikatorom zatvorenim u navodnike:

Za uvećanje kliknite na sliku.

Također je zanimljiv parametar “Selected ID”. Ako je postavljena na boju koja se ne podudara s bojom pozadine za uređivanje, onda kada dvaput kliknete na identifikator, i on i svi odgovarajući identifikatori u tekstu modula će biti istaknuti.

Za uvećanje kliknite na sliku.

Prilikom pretraživanja u tekstu modula pomoću trake za pretraživanje ili nakon pritiska kombinacije tipki Ctrl + F, istaknuta je pronađena riječ, a sve iste pronađene riječi su istaknute.

Za uvećanje kliknite na sliku.

Spajanje ćelija u dokumentu proračunske tablice

Ranije su ćelije u dokumentu proračunske tabele mogle biti spojene samo pomoću stavke menija ili odgovarajućeg dugmeta na komandnoj traci.

Sada se pojavila prečica na tipkovnici Ctrl + M, kada se pritisne, ćelije dokumenta proračunske tablice se spajaju. Operacija „Spajanje“ je takođe dostupna u kontekstualnom meniju dokumenta tabele.

Nadamo se da će u narednim izdanjima platforme 1C:Enterprise 8 programeri obratiti pažnju na poboljšanje upotrebljivosti rada sa konfiguratorom.

Nove mogućnosti za programere u 1C: Enterprise 8.3.5

Potražite u konfiguratoru

Prilikom konfigurisanja morate stalno koristiti pretragu. Sve dok konfiguracija sadrži relativno mali broj metapodataka, možete pretraživati ​​vizualno - očima, skrolujući kroz stablo konfiguracije.

Međutim, tipične konfiguracije su prilično velike, a s ovim pristupom pretraga će trajati dugo.

Prije izlaska platforme 8.3.5, pretraživanje stabla metapodataka moglo se obaviti na sljedeći način:

  • ukucajte ime objekta sa tastature i sistem će tražiti podudaranje imena koje počinje prvim slovom imena, ali samo u proširenim linijama stabla konfiguracije;
  • Koristite prečicu na tastaturi Ctrl+F da otvorite prozor za pretragu:

Pronađeni objekti će biti prikazani u prozoru Search Results, iz kojeg možete dvaput kliknuti da biste otišli na željeni objekat metapodataka u stablu konfiguracije.

Platforma 8.3.5 uvela je novo polje za pretragu koje se nalazi iznad stabla konfiguracije:

Pretraga se vrši na osnovu pojavljivanja niza, a analiziraju se svojstva konfiguracionih objekata Ime, Sinonim i Komentar.

Štaviše, konfiguracijsko stablo se filtrira „u hodu“: u njemu ostaju samo objekti koji zadovoljavaju uneseni filter.

Pogledajmo šta boje znače za objekte koji ostaju u stablu nakon primjene filtera.

Ako je traženi niz pronađen, ime takvog objekta je istaknuto crnom bojom u stablu konfiguracije.

Ako je, pored toga, traženi niz prisutan u nazivu objekta (ne u sinonimu, niti u komentaru), tada su takve pojave označene crvenom bojom.

Objekti koji se sami ne uklapaju u uneseni filter, ali imaju podređene (podređene) objekte koji zadovoljavaju navedeni filter, označeni su sivom bojom.

Na gornjoj slici rekviziti IB ID korisnika imenik Korisnici je prikazan u stablu, jer njegov sinonim sadrži podniz "post":

Za pretraživanje je prihvatljivo unijeti nekoliko podnizova odvojenih razmacima:

Sličan niz za pretraživanje pojavio se u prozoru koji sadrži skup svojstava odabranog objekta (paleta svojstava):

Pronađena svojstva će biti prikazana u općoj listi, bez podjele u kategorije.

Pretraživanje će se vršiti ili po nazivima svojstava ili po prikazima svojstava (razlika je prikazana na dva snimka ekrana iznad).

Možete se prebacivati ​​između načina imena/reprezentacije koristeći naredbu “Prikaži nazive svojstava” kontekstnog menija:

Isti niz za pretragu je dodan u prozor za odabir tipa podataka:

I u prozoru za odabir objekta metapodataka (na primjer, odabir registra informacija koji će se koristiti kao graf za računski registar):

Da biste brzo prikazali objekte uključene u jedan određeni podsistem, u kontekstnom meniju se pojavila nova stavka "Objekti podsistema":

Podsjetimo kako se to moglo postići u prethodnim verzijama platforme.

Bilo je potrebno otvoriti prozor za odabir podsistema, označiti polje za traženi podsistem i poništiti sve ostale podsisteme:

Sada možete brže postići isti rezultat. Osim toga, najčešće se koristi i najtraženija selekcija prema jednom podsistemu.

Stoga će ova mala zgodna inovacija uštedjeti vrijeme programera.

Brzo prikažite objekte snimljene u skladištu

Ako je konfiguracija povezana sa pohranom, tada je dugme "Shvaćeni objekti" dostupno na komandnoj ploči iznad samog stabla konfiguracije:

Sada se filtriranje izvodi direktno u stablu konfiguracije, nema potrebe za otvaranjem posebnog prozora za rad sa spremištem i postavljanjem odabira za uhvaćene objekte u njemu.

Alati za refaktoring

Kada grupa od nekoliko programera radi na konfiguraciji, potrebno je osigurati da je kod razumljiv i da prati zajedničke standarde.

Nije uvijek moguće to stalno kontrolirati, pa se povremeno radi na poboljšanju čitljivosti koda i reviziji već implementiranih fragmenata.

Takve akcije se nazivaju refaktoriranje koda. Ovo je proces promjene interne strukture programa bez utjecaja na njegovo vanjsko ponašanje i ima za cilj da olakša razumijevanje kako on funkcionira.

Osim toga, programeri će morati raditi u svojim konfiguracijama kako bi napustili modalitet - eliminirali modalne pozive.

Stoga, konfigurator platforme 8.3.5 sada uključuje mehanizme za refaktoriranje koda i alate za rad sa modalnim pozivima.

Dostupni su u kontekstualnom meniju uređivača teksta konfiguratora u posebnom meniju Refaktoring.

Za uvećanje kliknite na sliku.

Pogledajmo bliže implementirane alate za refaktoriranje.

1. Odaberite fragment

Ova naredba pretvara odabrani dio koda u zasebnu proceduru ili funkciju.

Ako procedura unutar koje se nalazi odabrani odjeljak sadrži direktivu kompilacije (&Na klijentu, &Na serveru, itd.), tada će kreirana procedura ili funkcija imati istu direktivu kompilacije.

Ako se označeni dio koda može nalaziti na desnoj strani operatora dodjele, tada će biti kreirana funkcija. Pogledajmo primjer. Neka postoji fragment koda:

&OnClient
Procedura ProductsProductWhenChanged(element)
Str = ;
PagePrice = Dobijte cijenu proizvoda(Object.Date, Page.Product);

Kraj procedure

Ako primijenite naredbu “Odaberi fragment” na odabrani dio koda, sistem će generirati sljedeći programski kod (kreirati novu funkciju):

&OnClient
Procedura ProductsProductWhenChanged(element)
Stranica = Items.Products.CurrentData;
PagePrice = Dobijte cijenu proizvoda(Object.Date, Page.Product);
Iznos stranice = CalculateAmount(Stranica);
Kraj procedure
&OnClient
Funkcija CalculateAmount(Stranica vrijednosti)
Povratak Količina * Stranica Cijena ;
EndFunction

Također, funkcija će se kreirati ako u odabranom dijelu koda postoji dodjela jednoj varijabli koja se koristi ispod u kodu. Na primjer:

&OnClient
Procedura Proizvodi Cijena KadaPromijeni(element)
Stranica = Items.Products.CurrentData;
Količina stranice = Količina stranice * Cijena stranice ;
Kraj procedure

Odabrano područje će se transformirati na sljedeći način:

&OnClient
Procedura Proizvodi Cijena KadaPromijeni(element)
Stranica = CurrentLineProducts();
Količina stranice = Količina stranice * Cijena stranice ;
Kraj procedure
&OnClient
Funkcija CurrentLineProducts()
Variable Page ;
Stranica = Items.Products.CurrentData
Povratak na stranicu ;
EndFunction

2. Preimenujte

Ova naredba vam omogućava da promijenite ime varijable ili procedure (funkcije) na svim mjestima gdje se zapravo koristi.

Ako su sva pojavljivanja varijable ili metode jedinstveno identificirana, sistem će od vas zatražiti da navedete novo ime i izvršite zamjenu gdje god se ovaj identifikator pojavi.

Ako se sve upotrebe varijable ili metode ne mogu jednoznačno identificirati, tada sistem prikazuje pitanje i prikazuje pojavljivanja:

Razmotrimo situaciju u kojoj sistem ne može automatski zamijeniti ime procedure.

Neka postoji procedura u modulu dokumenta:

Procedura Recalculate() Izvoz
Za svaki TechStringProducts Iz ciklusa proizvoda
TechStringProducts.Amount= TechStringProducts.Quantity* TechStringProducts.Price;
EndCycle ;
Kraj procedure

A u modulu obrasca ovog dokumenta nalazi se sljedeći rukovalac:

&Na serveru
Procedura RecalculateOnServer()
Dokument = PropsFormValue("Objekat");
Document.Recalculate();
ValueInFormProps(Dokument, “Objekat”);
//dalja obrada...

Kraj procedure

Ikona sa crvenim uskličnikom u prozoru rezultata pretrage znači da možete jasno i precizno odrediti upotrebu procedure u liniji koda Preračunaj() sistem je otkazao.

To je zbog činjenice da sistem ne može automatski odrediti tip varijable Dokument nakon što se funkcija izvrši FormAttributesValue().

Kontekstualni alatni mehanizam u ovom slučaju takođe ne nudi moguće opcije kada se pritisne tačka iza varijable Dokument ili pritiskom na kombinaciju tipki Ctrl+Space.

Za uvećanje kliknite na sliku.

Preimenovanje procedure u modulu obrasca pomoću naredbe za refaktoriranje također mijenja referencu na rukovalac u svojstvima i naredbama elementa obrasca.

3. Kreirajte opis funkcije

Naredba kreira komentar prije procedure ili funkcije, koji će alat za kontekst ispravno uočiti.

// Procedura – Popunite pismo pomoću šablona
// Opcije:
// Odlazna pošta - -
// Tekst - -
Procedura Ispunite pismo pomoću šablona(Odlazna pošta, Tekst ) Izvoz
//…
Kraj procedure

Sistem kreira predložak komentara u koji trebate umetnuti tipove parametara i objašnjenja.

Tada možete koristiti prošireni savjet kada pišete kod.

4. Kreirajte obradu upozorenja

Ova komanda postaje dostupna u kontekstualnom meniju kada se kursor postavi na naziv metode praćen početnom zagradom.

Štaviše, radi se o metodama kao npr ShowQuestion(),PrikažiUpozorenje(), PrikažiBrojEnter() i druge blokirajuće analoge modalnih metoda.

Pogledajmo primjer. Počnimo da pišemo klijentski rukovalac komandom, postavimo kursor na metod koji je naišao ShowQuestion(), pozovite komandu “Kreiraj rukovao upozorenjima”:

&OnClient
Procedura Popunite materijale(tim)
ShowQuestion (
Kraj procedure
Kao rezultat, sistem će generirati sljedeći programski kod:
&OnClient
Procedura Popunite materijale(tim)
ShowQuestion (Novo DescriptionAlerts(“Završetak popunjavanja materijala”, ThisObject ));
Kraj procedure
&OnClient
Procedura Fill outMaterialsCompletion(Pitanje Rezultat, Dodatne opcije) Izvoz
Kraj procedure

5. Pretvorite modalni poziv

Ova naredba pretvara isječak koda koji sadrži modalni metod u njegov asinhroni parnjak. Pogledajmo nekoliko primjera.

Transformirajmo poziv u metodu Warning():

&OnClient
Procedura NewHandler()
A = 1;
Upozorenje (“Tekst”);
A = 2;
Kraj procedure // NewHandler()

Nakon primjene navedene naredbe, programski kod će poprimiti sljedeći oblik:

&OnClient
Procedura NewHandler()
A = 1;
ShowWarning(Novo DescriptionAlerts(“NewCompletionHandler”, ThisObject ),
"Tekst" );
Kraj procedure
&OnClient
Procedura NewHandlerCompletion(Dodatne opcije) Izvoz
A = 2;
Kraj procedure

Zakomplikujmo primjer. Razmislite o korištenju modalne funkcije i uvjetnog operatora:

&OnClient
Procedura NewHandler()
Odgovor = Pitanje (,
Dialogue ModeQuestion.DaNe);
Ako je odgovor = Dialogue Return Code. Da Onda
//algoritam popunjavanja
EndIf ;
Kraj procedure

Nakon konverzije modalnog poziva dobijamo:

&OnClient
Procedura NewHandler()
Odgovor = Nedefinisano;
ShowQuestion (Novo DescriptionAlerts(“NewCompletionHandler”, ThisObject ),
“Tabelarni dio će biti obrisan. Nastaviti?", Dialogue ModeQuestion.DaNe);
Kraj procedure
&OnClient
Procedura NewHandlerCompletion(Pitanje Rezultat, Dodatne opcije) Izvoz
Odgovor = Pitanje Rezultat;
Ako je odgovor = Dialogue Return Code. Da Onda
//algoritam popunjavanja
EndIf ;
Kraj procedure

U rezultujućem fragmentu treba naglasiti inicijalizaciju varijable Answer.

6. Pretvorite u asinkronu proceduru

U gore navedenim primjerima, metode koje su imale svoje asinhrone parnjake su konvertovane. Na primjer, Pitanje() I ShowQuestion(), Upozorenje() I PrikažiUpozorenje().

Međutim, ako se modalni poziv nalazi unutar procedure, koja se pak nalazi unutar druge procedure, tada će cijeli poziv procedure s modalnom metodom biti modalan.

To znači da se mora zamijeniti "asinhronim analogom", ali ne onim koji postoji u ugrađenom jeziku, već našom vlastitom razvijenom metodom.

Za to je namijenjena još jedna komanda u podmeniju “Refaktoring” – “Pretvori u asinhroni postupak”. Objasnimo na primjeru procedure koja poziva drugu proceduru s modalnom funkcijom unutar:

&OnClient
Procedura NewHandler()
A = 1;
NestedProcedure();
A = 2;
Kraj procedure &na klijentu
Procedura NestedProcedure()
Upozorenje (“Tekst”);
Kraj procedure

Postavite kursor na deklaraciju procedure NestedProcedure(), pretvaramo u asinhroni postupak. Sistem nam pravi sljedeći kod:&OnClient
Procedura NewHandlerCompletion(Rezultat, Dodatne opcije) Izvoz
Upozorenje = ;
A = 2;
Izvrši obradu upozorenja(Alert);
Kraj procedure &na klijentu
Procedura NestedProcedure(Vrijednost upozorenja)
Upozorenje (“Tekst”);
Izvrši obradu upozorenja(Alert);
Kraj procedure

Obratite pažnju na metodu koju je sistem dodao Izvrši obradu upozorenja(), koji se koristi u implementaciji procedura koje mogu interno otvoriti blokirajuće prozore, ali moraju vratiti njihov rezultat procedurama koje pozivaju.

Treba imati na umu da je neposredni zadatak pretvaranja u asinkronu proceduru pretvaranje niza poziva odabrane procedure u asinhroni oblik, ali se pozivi koji se nalaze u samoj proceduri ne mijenjaju.

Zato metoda Upozorenje() nije zamijenjen. Ovo se mora uraditi nakon pretvaranja u asinhronu proceduru zasebnim pozivanjem naredbe "Pretvori modalni poziv".

Ako je u izvornom fragmentu koda na redu koji sadrži Upozorenje(), izvršite naredbu “Pretvori modalni poziv”, sistem će pitati:

Rezultat će biti sljedeći:

&OnClient
Procedura NewHandler(Vrijednost upozorenja)
A = 1;
NestedProcedure(Novo DescriptionAlerts(“NewCompletionHandler”,
ThisObject , Nova struktura (“Alert” , Alert )));
Kraj procedure &na klijentu
Procedura NewHandlerCompletion(Rezultat, Dodatne opcije) Izvoz
Upozorenje = AdditionalOptions.Notification;
A = 2;
Izvrši obradu upozorenja(Alert);
Kraj procedure &na klijentu
Procedura NestedProcedure(Vrijednost upozorenja)
ShowWarning(Novo DescriptionAlerts(“Završetak ugniježđene procedure”,
OvajObjekat, Nova struktura („Obaveštenje“, Obaveštenje )), „Tekst“);
Kraj procedure
&OnClient
Procedura NestedProcedure Završetak ( Dodatne opcije) Izvoz
Upozorenje = AdditionalOptions.Notification;
Izvrši obradu upozorenja(Alert);
Kraj procedure

7. Dodijelite asinkronoj proceduri

Ova naredba pretvara označeni dio koda u proceduru ili funkciju, dok konvertuje označeni metod u asinhroni metod.

Za razliku od prethodnog paragrafa, ova naredba je „kompozitna“: prvo, odabrani dio koda se prenosi u novu proceduru, čije ime korisnik unosi u okvir za dijalog.

Zatim izvodi iste korake kao da korisnik klikne desnim tasterom miša na naslov novokreirane procedure, a zatim klikne Pretvori u asinkronu proceduru.

8. Pronađite Modalne pozive modula

Gore opisane naredbe rade s jednom metodom ili odabranim dijelom koda.

Implementirane su procedure koje obrađuju cijeli modul, na primjer, traženje modalnih poziva unutar cijelog modula.

Pronađene linije koda će biti prikazane u prozoru rezultata pretrage:

Za uvećanje kliknite na sliku.

9. Pretvorite pozive modalnog modula

Ova naredba izvodi transformacije u otvorenom modulu, ali samo one pozive koji ne zahtijevaju intervenciju programera.

Takođe u glavnom meniju postoji komanda (Konfiguracija – Refaktoring – Analiza poziva modalne konfiguracije).

Također traži modalne pozive, samo unutar cijele konfiguracije, provjerava da li se modalni pozivi mogu automatski konvertirati.

Za uvećanje kliknite na sliku.

Zaključak

U zaključku, kronološkim redom, ukratko ćemo navesti koje je dodatne korisne karakteristike konfigurator stekao:

  • Postoje liste obeleživača u tekstovima modula koji se mogu sačuvati između radnih sesija (8.3.6+)
  • U slučaju dinamičkog ažuriranja, nije bilo potrebe za ponovnim pokretanjem konfiguratora pri radu u klijent-server verziji baze podataka (8.3.7+)
  • Implementirana je mogućnost razvoja konfiguracija za OS X 10.8 i novije verzije (8.3.7+). Sada su i konfigurator i klijentska aplikacija (debeli i tanki klijenti) dostupni u ovom operativnom sistemu.
  • Operacije koje se mogu izvoditi u batch modu su značajno proširene (8.3.8+). Zbog toga je proces automatskog ažuriranja konfiguracije značajno pojednostavljen
  • Implementiran je uslužni program administrativne konzole, uz pomoć kojeg je postalo moguće ispraviti neke od problema koji se javljaju sa info bazom bez pokretanja konfiguratora (8.3.8+)
  • Dodata funkcionalnost za provjeru problema pri povezivanju ekstenzije sa konfiguracijom. Ranije nije postojala takva funkcionalnost, a dijagnostika je bila prikazana u prozoru s porukom kada je ekstenzija povezana (8.3.9+)
  • Implementirana je podrška za 64-bitni konfigurator. Ova karakteristika je omogućila da se eliminišu problemi nedovoljne memorije za poređenje i operacije spajanja prilikom ažuriranja konfiguracije i drugih resursno intenzivnih operacija (8.3.9+)
  • Prvo otvaranje upravljanog obrasca u konfiguratoru je značajno ubrzano (8.3.9+)
  • Sada je moguće djelomično prenijeti uređenu konfiguraciju u XML datoteke. Sada možete isprazniti samo one objekte koji su se promijenili od posljednjeg istovarivanja. Ovo je značajno ubrzalo proces učitavanja u XML fajlove kada se promene velike konfiguracije (8.3.10+)
  • Poboljšana sposobnost kombinovanja modula uzimajući u obzir lokaciju metoda u oblastima određenim instrukcijama predprocesora (8.3.10+)
  • Povećana je brzina često korištenih razvojnih operacija (8.3.11).

Osim toga, programeri platforme poboljšavaju performanse i ergonomiju konfiguratora od izdanja do izdanja, pa preporučujemo da, ako je moguće, razvijate na platformi trenutnih izdanja.

Dakle, idemo dalje - u sljedećem članku ćemo se vratiti na programiranje i ispitati koncept konteksta programskog koda.


Ovaj članak je najava nove funkcionalnosti.
Ne preporučuje se korištenje sadržaja ovog članka za učenje novih funkcionalnosti.
Potpuni opis nove funkcionalnosti će biti dat u dokumentaciji za odgovarajuću verziju.
Kompletna lista izmjena u novoj verziji nalazi se u datoteci v8Update.htm.

Implementirano u verziji8.3.12.64 mobilna platforma.

Implementirali smo novu tehnologiju - mobilni klijent. Omogućuje vam kreiranje aplikacija za mobilne uređaje koje kombiniraju praktično sučelje mobilne platforme i online rad s informacijskom bazom, slično tankom klijentu.

Mobilni scenariji rada

Platforma 1C:Enterprise donedavno je nudila jedinu tehnologiju s kojom je bilo moguće raditi s njenim aplikacijama putem mobilnih uređaja. Ovo je mobilna platforma.

Ova tehnologija vam omogućava da kreirate specijalizovane off-line mobilne aplikacije koje imaju praktično i funkcionalno mobilno sučelje. Mobilne aplikacije su razvijene za rješavanje specifičnih mobilnih problema i maksimalno su optimizirane za njih u smislu arhitekture i interfejsa. Takve aplikacije implementiraju mobilne radne scenarije i zgodne su za rad na tabletima i pametnim telefonima.

Po svojoj arhitekturi, takve aplikacije su vrlo slične verziji datoteke sistema 1C:Enterprise. Mobilni uređaj ima svoju bazu podataka; „unutar“ mobilne aplikacije postoji i klijent koji omogućava interakciju sa korisnikom i server koji obezbeđuje interakciju sa bazom podataka.

Takve mobilne aplikacije mogu komunicirati s „glavnom“ aplikacijom instaliranom u uredu. Ali ovo nije online interakcija, već periodična razmjena podataka sa back officeom. Glavni posao u mobilnoj aplikaciji obavlja se van mreže. A kada se pojavi internetska veza, podaci se sinhronizuju.

Dakle, mobilna platforma je vrlo pogodna za razvoj autonomnih radnih mjesta za zaposlenike koji su izvan kompanije i nemaju pouzdanu internet vezu sa kancelarijom. Međutim, takve radne stanice obično imaju ograničenu funkcionalnost, manju od one “glavne” aplikacije. Osim toga, ne pružaju online interakciju s bazom informacija.

Ispostavilo se da značajan raspon problema nije pokriven, koji imaju sljedeće karakteristične karakteristike:

  • Interakcija sa informacijskom bazom mora se obavljati na mreži;
  • Sva funkcionalnost “glavnog” aplikativnog rješenja, čak i tako velikog kao što je, na primjer, “1C:ERP Enterprise Management” trebala bi biti dostupna na mobilnom uređaju;
  • Interfejs bi trebao omogućiti udoban rad na bilo kojem mobilnom uređaju sa bilo kojom veličinom ekrana i lokacijom.

Mobilni klijent

Da bismo riješili ovu klasu problema, razvili smo mobilni klijent. Mobilni klijent je tanki klijent za mobilne uređaje koji ima interfejs sličan mobilnoj platformi. Distribucija mobilnog klijenta sadrži sve potrebne izvršne datoteke od kojih programer može izgraditi aplikaciju za mobilni uređaj na isti način kao što se mobilne aplikacije grade sa mobilne platforme.

Takva aplikacija, s jedne strane, može direktno komunicirati s klasterom 1C:Enterprise servera na isti način kao što to radi tanki klijent. S druge strane, mobilni klijent omogućava automatsku transformaciju obrazaca, deklarativno opisanih u konfiguraciji, u interfejs sličan interfejsu mobilne platforme.


Automatski raspoređuje obrasce razvijene za desktop verziju 1C:Enterprisea na takav način da osigura jednostavnost korištenja na malim ekranima mobilnih telefona na prihvatljivom nivou.


Naravno, da bi se ova transformacija još bolje izvršila, potrebno je specificirati neka nova svojstva elemenata forme posebno za mobilnog klijenta, te se riješiti nekih posebnih i nestandardnih rješenja interfejsa. Odnosno, potrebna je neka dorada aplikativnog rješenja posebno za mobilnog klijenta. Ali ova prerada je mnogo jednostavnija od kreiranja prilagođene mobilne aplikacije sa svim funkcijama.

Potencijalni korisnici

Smatramo da će ova tehnologija biti tražena u onim implementacijama gdje je potreban online pristup sistemu sa mobilnih uređaja. Tako da podaci uneseni na mobilnom uređaju idu direktno u „zajedničku“ bazu podataka, zaobilazeći međukorake sinhronizacije.

Takođe, mobilni klijent će biti tražen u malim kompanijama koje nemaju ni budžeta ni vremena za razvoj specijalizovanih mobilnih aplikacija. Zaista, prema našim procjenama, najteža faza razvoja mobilnih aplikacija je upravo stvaranje sistema za razmjenu podataka.


Osim toga, mobilni klijent će biti koristan za korisnike usluga baziranih na 1Cfresh tehnologiji. To su usluge 1Cfresh.com i Računovodstvene usluge, koje podržava 1C, kao i sve druge usluge koje koriste ovu tehnologiju.

Funkcionalnost

Ako uporedimo funkcionalnost mobilnog klijenta s onim što tanki klijent može učiniti, onda ne postoje samo ograničenja, već i prednosti.

Važna prednost mobilnog klijenta je to što sadrži sve funkcionalnosti mobilne platforme, određene samim uređajima koji se koriste. Odnosno, omogućava, na primjer, fotografiranje, biranje pretplatničkog broja, primanje PUSH poruka i još mnogo toga.

Još jedna prednost mobilnog klijenta je da ne radi samo sa verzijom servera za koju je napravljen. Radit će s gotovo bilo kojom verzijom servera sve dok ne dođe do značajnih promjena u komunikacijskom protokolu ili arhitekturi platforme. To smo učinili jer je objavljivanje mobilnih aplikacija prilično radno intenzivan i dugotrajan proces, koji je gotovo nemoguće završiti istovremeno s prijenosom klastera servera na novu verziju platforme.

Ako govorimo o ograničenjima, najočitije od njih je da mobilni klijent komunicira sa klasterom servera samo preko HTTP (HTTPS) protokola.

Još jedno ograničenje, međutim, što se tiče mobilne platforme, je nedostupnost nekih ugrađenih jezičkih objekata i nekih elemenata interfejsa. Ali pokušaćemo da minimiziramo ove razlike kako se mobilni klijent razvija.

Automatizacija konstrukcije interfejsa forme

Prilikom kreiranja mobilnog klijenta, veliku pažnju smo posvetili tome da prilagođavanje konfiguracije za mobilni klijent zahtijeva minimalan napor. Razvili smo nekoliko tehnologija i pristupa kako bismo osigurali da se veliki oblici dizajnirani za desktop verziju automatski prilagođavaju malim ekranima mobilnih uređaja.

Na primjer, otkrili smo da veliki oblici obično imaju mali broj važnih elemenata. Odnosno, takve elemente sa kojima stalno radimo. A istovremeno sadrže mnogo manje važnih elemenata na kojima se s vremena na vrijeme radi.

Na primjer, važni elementi su tabela dinamičke liste u obliku liste, tabelarni dokument u obliku izvještaja. Važne kolone su, na primjer, kolone “Ime” i “Datum”.

Shodno tome, da bi se osigurao dovoljan nivo pogodnosti za rad sa formom, mobilni klijent daje više prostora važnim elementima na obrascu, a manje važnim elementima daje manje prostora, odlažući ih, na primjer, u sklopivu grupu .

Drugo, mobilni klijent širi horizontalne grupe okomito ako se ne uklapaju u širinu ekrana. Na mobilnim uređajima nije uobičajeno i nezgodno pomicati obrazac vodoravno, pa je ovo rješenje prilično zgodno i opravdano.

Prilagodba konfiguracija mobilnom klijentu

Bez obzira na svu automatizaciju, i dalje će biti potreban određeni napor od strane programera konfiguracije kako bi se rješenje aplikacije prilagodilo mobilnom klijentu.

Ne ulazeći u detalje, možemo reći da se sva ovakva poboljšanja uklapaju u dva glavna pravca.

Prvi je da se riješimo posebnih i specifičnih rješenja interfejsa, oslanjajući se više na automatski izgled obrasca koji obavlja platforma na osnovu informacija o tipu podataka. Takva specifična rješenja mogu biti fiksne veličine polja, rigidno uspostavljeno horizontalno grupiranje elemenata i slično.

Drugi smjer je da mobilnom klijentu uputite dodatne informacije o elementima obrasca. Mobilni klijent smo naučili da lako prepozna elemente u standardnim ili malim oblicima i odredi njihovu važnost. Ali ako je obrazac nestandardan ili velik, tada će biti korisno ručno naznačiti koji su njegovi elementi više ili manje važni. Da biste to učinili, možete koristiti novo svojstvo elemenata - Važnost prilikom prikaza: visoka, normalna, niska itd.

Također će vjerovatno biti potrebno analizirati ona mjesta u aplikacijskom rješenju na kojima se razlikuju operativni algoritmi za tanki i web klijent. To se mora učiniti kako bi se naznačilo koji će se algoritam koristiti pri radu u mobilnom klijentu. Da bismo to učinili, dodali smo novu direktivu za kompilaciju MobileClienta.

Distribucija, montaža i izdavanje

Mobilni klijent je, u suštini, neka vrsta „ljuske“ koja može da pokrene jedno ili drugo aplikativno rešenje. Istovremeno, funkcionalnost lansiranih aplikativnih rješenja može se uvelike razlikovati jedna od druge. U isto vrijeme, AppStore trgovina aplikacija zahtijeva da aplikacija objavljena u trgovini ne mijenja značajno svoju funkcionalnost nakon objavljivanja.

Stoga mobilni klijent ne objavljujemo kao posebnu univerzalnu aplikaciju. Mobilni klijent se isporučuje sa mobilnom platformom kao skup izvršnih datoteka. Na osnovu ovih datoteka, programer mora izgraditi aplikaciju koja će raditi na mobilnom uređaju. Procedure za pravljenje i objavljivanje aplikacija, kako za mobilnu platformu tako i za mobilnog klijenta, su slične. Koristi se isti alat - kreator mobilnih aplikacija.

Da bi mobilni klijent objavljen u prodavnici aplikacija imao fiksnu funkcionalnost, prilikom izrade morate navesti specifične konfiguracije s kojima će ova aplikacija raditi. Tokom rada, mobilni klijent provjerava da li se koristi samo jedna od navedenih konfiguracija i bez značajnijih promjena. Ovo je posebna zaštita koja osigurava da mobilni klijent koji je objavljen za određene konfiguracije ne može raditi s drugim konfiguracijama. Kao što pokazuje praksa, korisnicima je zgodno da jedna mobilna aplikacija odgovara jednoj konfiguraciji ili sličnim konfiguracijama.



Dijeli