Prin oglindă 1s. „Alice în Țara Minunilor și prin oglindă”: o carte interactivă interesantă din „1C”

Astăzi, cititorului i se oferă o recenzie a publicației, care nu este nouă, dar merită atenție, fie și doar pentru că până astăzi rămâne un exemplu de programe educaționale interactive reale. Programe în care textul tipărit este combinat în mod inteligent și profesional cu capabilitățile audio, animație 3-D, animație și grafică. Editorul era o cunoscută companie rusă "1C" .

Publicația aparține seriei „1C: Colecție Educațională”. Setul include două discuri.

  1. Lumea lui Alice bazată pe cartea lui Lewis Carroll „Aventurile lui Alice în Țara Minunilor”.
  2. Through the Looking Glass bazat pe cartea lui Lewis Carroll „Through the Looking Glass”.


Autorii revizuirii au fost: Elena Belyaeva, critic de artă, editor la T/O „M-studio”, Kirov și Vera Buldakova, filolog, profesor de cea mai înaltă categorie. Expertul a fost invitat Lyubov Georgievna Zubareva, profesor de engleză de cea mai înaltă categorie (Colegiul Regional de Cultură Kirov)

„Cartea magică a computerului”

Pe coperta discului suntem informați (apropo, printre alte observații despre produs): „Aceasta este o carte magică pentru computer”. Și acesta este adevărul sincer! Călătoria pe care o porniți nu împreună cu Alice, ci complet pe cont propriu, devine mai interesantă cu fiecare pas nou. Spațiul se desfășoară, fiecare persoană nouă pe care o întâlnești este cu adevărat nouă și deloc asemănătoare cu ceilalți care trăiesc în această țară. Sunt descoperiri la fiecare pas, le anticipezi cu încântare ascunsă. Gândiți-vă doar, toate acestea au fost inventate în secolul anterior, iar cerința de noutate pentru arta postmodernismului este absolut satisfăcută! Cartea, condiția lecturii care era capacitatea minții de a se juca intelectual, a inspirat oamenii pentru creativitate pentru al doilea secol. Dar creativitatea este magie.

Introducerea în prima parte a „Lumea lui Alice” a fost făcută de cel mai popular traducător al „Alice în Țara Minunilor” în rusă - Boris Zakhoder, care admite că textul „Aventurile lui Alice în Țara Minunilor” aparține categoriei de netradus fundamental. Acest lucru l-a determinat să facă propria sa versiune a unei repovestiri a cărții. Pe disc, Boris Zakhoder vorbește cu tine și poți alege dacă îi citești prefața sau îl vezi și auzi pe scriitor. Lui Andrei Tarkovski îi plăcea să repete că cinematografia este timp păstrat. Faceți clic pe butonul mouse-ului - și borcanul magic al timpului este deschis!

Ideea de traducere multivariată devine principala pentru dezvoltatorii acestui program educațional. Întregul spectru de autori-traducători este prezentat aici: V. Nabokov, V. Orel, B. Balter, B. Zakhoder - în prima parte; V. Orel, L. Yakhnin, V. Azov - în al doilea. Tabloul este completat de un sistem de citate din traduceri clasice de N. Demurova, O. Sedakova, D. Orlovskaya, A. Shcherbakov, S. Marshak. Opțiunile de traducere trezesc imaginația cititorului-călător; apar involuntar idei de interpretare proprie, nu a textului, ci a situațiilor, personajelor și evenimentelor.

Principiul de funcționare este simplu. În fața noastră sunt două ferestre cu text în engleză și rusă care se mișcă sincron (în „Through the Looking Glass” orice traducere este ușor înlocuită cu alta). Sub fiecare cuvânt englezesc este dezvăluit echivalentul său în rusă.

Puteți activa sunetul: textul este citit într-o engleză impecabilă. Dacă se dorește, fiecare paragraf poate fi repetat până la măsura stăpânirii sau la infinit.

Când configurați, puteți lăsa textul pe o singură pagină în engleză sau rusă.

Sistemul de tranziții de la strat la strat este multivariat și funcțional în același timp. Deci, puteți înlocui textul de traducere de sub imagine sau puteți selecta un alt autor al ilustrațiilor pentru această traducere. Apropo, printre ilustratori și clasici de la J. Tenniel la Carroll însuși...

Cartea poate fi citită în engleză sau rusă (sau ascultată în engleză) capitol cu ​​capitol, sau te poți lăsa purtat de note (se știe că în ceea ce privește numărul de cuvinte sofisticate spuse despre el, Carroll este pe locul doi. lui Shakespeare).

Aici integritatea textului nu este încălcată și numeroase comentarii și interpretări sunt ascunse în spatele unui sistem plin de duh de referințe, remarci lingvistice, raționamente și reflecții, fapte și explicații și chiar comentariul unui jucător de șah.

Puteți studia „Biografia profesorului de la Universitatea Oxford, profesorul de matematică Charles Lutwidge Dodgson” sau „Biografia în oglindă a scriitorului Lewis Carroll, creatorul „Alice”.

Sau puteți accesa imediat pagina cu o bibliografie lacoică, dar selectată, a publicațiilor și cărților lui Carroll despre el.

În plus, discul „Alice Through the Looking Glass” face posibilă copierea oricărei părți a textului în clipboard.

Joc pentru orice vârstă

Te poți plimba prin colțurile acestui joc mult timp, dar este imposibil să te pierzi în el.

Studiul navigației face parte din călătoria prin Țara Minunilor și Prin oglindă propusă de autori.

Veți găsi aici o mulțime de mici lucruri interesante și detalii precise, amuzante: de la oale și farfurii care zboară de-a lungul paginii (se pot sparge cu un clic de mouse), insecte zburătoare și pisici care pot fi folosite pentru a muta paginile, până la mormăit. bebelușii și omizile devenind crisalidă de fluture etc. d. Pasajele de desene animate inserate nu sunt doar ilustrații, ci fac parte dintr-un spațiu multidimensional în spiritul lui Carroll.

Aici, fiecare detaliu face parte dintr-o structură cu mai multe straturi, în care principalul lucru sunt cărțile lui Lewis Carroll. Cufundate într-un context vizibil și sonor, ele devin voluminoase. Jocul cu CUVÂNTUL, jocul cu CUVÂNTUL însuși trezește imaginația cititorului și provoacă pași suplimentari către munca independentă cu TEXTUL. Acesta este un adevărat program educațional, captivant și vă permite să luați decizii independente; plin de detalii interesante și precise, comentarii istorice și filozofice. Puteți lucra cu ea singur, sau împreună sau cu o întreagă companie. Programul, ca și cartea, este făcut, așa cum se spune, „pentru creștere”; cu cât înveți mai mult, cu atât devine mai interesant.

„Un cadou foarte util!”

Dacă aveți un computer, acest disc va fi bijuteria coroanei dvs. de CD-uri. Nu contează ce vârstă ai, dacă știi engleza sau nu, nu contează în ce domeniu lucrezi. Este foarte bine dacă încă ești la școală. Această carte veche și bună, citită într-un mod nou, vă va oferi momente de relaxare și plăcere, cunoașterea aproape nesfârșitului, deoarece textul este atât de dens încât poate fi citit la nesfârșit. Și joacă-te cu el. La urma urmei, se știe că orice text este interactiv, în mare, pătrunderea în profunzimea textului corespunde nivelului dezvoltării tale, iar dorința de perfecțiune este nesfârșită. Astăzi, mulți profesori, școlari și părinți tocmai au acces la un computer. Site-ul laboratorului educațional își vede sarcina nu numai în a prezenta cele mai noi produse electronice, ci și în a deschide către utilizator cele mai bune publicații care nu au devenit depășite cu timpul și cu dezvoltarea tehnologiilor de telecomunicații. Nu există multe astfel de publicații. O carte pe computer despre Alice este unul dintre primele locuri. Un exemplu uimitor nu de rivalitate, ci de conexiune dintre „Galaxia Gutenberg” cu noi invenții umane!

Le-am prezentat deja cititorilor noștri produsele companiei de mai multe ori. "1C". Este o oportunitate de a vedea din nou cât de ridicat este nivelul produselor electronice educaționale publicate de această companie. „Alice în Țara Minunilor și prin oglindă” a primit numeroase premii și premii binemeritate.

Editorii mulțumesc companiei "1C" pentru programul furnizat.

Dragi și iubiți clienți, ne străduim să devenim mai buni pentru voi!

În acest sens, începem transformarea Centru frumusețe pe Tula din 15 iulie. Reparația va dura 2 săptămâni. Centrul reînnoit și modernizat își va deschide porțile pe 29 iulie.

În această perioadă vom fi bucuroși să vă vedem la Centrul de pe Kantemirovskaya, precum șiDorim sa va anuntam ca la Kantemirovskaya vor lucra cativa specialisti din Tula in timpul reparatiilor.

Ne cerem scuze pentru neplăcerile cauzate.

Mai multe informatiiPuteți clarificaîntr-un singur CALL center+7 495 134 22 22.

Abonează-te la nostru Instagramși urmați procesul, va fi interesant!

Criolipoliza - NOU!!!

BENEFICIAȚI ÎNAINTE 54 400*!

HIT ABSOLUT CLINICILE EUROPEI -CRIOLIPOLIZA COCCON :

✔️ NEdureros;

✔️ REZULTAT RAPID;

✔️ REDUCERE CHIARĂ A țesutului adipos;
✔️ FĂRĂ EFECTE SECUNDARE;
✔️ AREA LARGA DE APLICARE - DE LA ABDOMEN SI SOLDURI LA BARBIE.

*Pentru mai multe informatii despre promotie intrebati administratorii sau telefonic.

Emulsia revoluționară PRX-T33 este ACUM LA NOI!

PRX-T33 este un produs unic brevetat care a revoluționat cosmetologia în Italia, iar după 10 ani de studii clinice a intrat pe piața rusă. PRX-T33 - peeling chimic pentru revitalizarea pielii (întinerire). O procedură de afectare controlată a pielii cu scopul de a o stimula și reface, fără a deteriora epiderma și fără a provoca peeling. Majoritatea peelingurilor se recomandă să se facă în perioada toamnă-iarnă, dar PRX-T33 - toate anotimpurile.

BARBER NOU!

Acum în centrele de rețea frumusețe „Prin oglindă” (m. Kantemirovskaya, m. Tulskaya) Au apărut frizerii - aceștia sunt maeștri cărora un bărbat modern poate să-și încredințeze imaginea în siguranță: să-și taie părul, să-și coafeze mustața, barba sau să se răsfețe cu un bărbierit regal. . Frizerul te va ajuta sa alegi ingrijirea si coafarea parului, va recomanda o coafura care sa se potriveasca tipului tau de aspect si barba perfecta. Coafurile pentru bărbați vin într-o mare varietate. Un tânăr poate folosi o tunsoare pentru a-și exprima caracterul, starea de spirit, imaginea!Alege-ți stilul de viață!

Babor - „Arta curățării”

O nouă linie de produse cosmetice pentru îngrijirea acasă a apărut în centrele de înfrumusețare Zazerkalye - „Arta curățării”, de la compania germană Babor.
Linia include:
Pudră de curățare enzimatică, Set Trio de curățare a pielii, Peeling moale, Esență-Tonic cu apă termală, Esență-Tonic cu apă de trandafiri, Lapte demachiant.

Manichiura perfectă cu Luxio este acum în Through the Looking Glass on Kantemirovskaya

Salonul de înfrumusețare Zazerkalye prezinta o linie moderna de manichiura si pedichiura - LUXIO.

Recent, articole dedicate 1C ca mediu de dezvoltare a aplicațiilor. Articolele au sens mai mult conceptual decât aplicat; autorii revizuiesc platforma 1C:Enterprise 8 în ansamblu, încercând să înțeleagă dacă tehnologia de creare a aplicațiilor de afaceri oferită de 1C este bună sau rea.

Nu voi discuta dacă fiecare dintre autori are dreptate sau greșit; Platforma 1C, ca orice tehnologie, are avantajele și dezavantajele ei. Și are, de asemenea, propriile sale caracteristici interesante, propriile dezvoltări și mecanisme. Acestea sunt cele despre care vreau să vorbesc. Și vreau să scriu și un articol despre 1C pentru persoanele care nu sunt familiarizate cu 1C, un articol care arată ce loc ocupă 1C printre produsele software similare. Mi-a ratat personal un astfel de articol introductiv de recenzie când nu eram încă familiarizat cu 1C, dar eram familiarizat cu o serie de alte produse ERP.

Deci, să începem!

Ce produce 1C?

Cred că publicul larg va răspunde la această întrebare: „1C: Contabilitate”. Cineva își va aminti programele de antrenament sau celebra serie de jocuri „IL-2 Sturmovik”.

Participanții Habr, desigur, sunt conștienți de faptul că 1C nu este doar „1C: Contabilitate”, că există un întreg sistem de programe „1C: Enterprise”, inclusiv instrumente pentru dezvoltarea de aplicații de afaceri și aplicații de afaceri create folosind aceste instrumente. Și cu ajutorul instrumentelor de dezvoltare 1C, s-au scris contabilitate, CRM și ERP (cu implementări pentru mii și zeci de mii de utilizatori) și multe altele.

Sistemele ERP sunt cele mai interesante și mai bogate aplicații de business; Folosind exemplul lor, să vedem ce loc ocupă tehnologiile 1C:Enterprise printre analogii lor.

Care sunt tipurile de ERP-uri?

Care este cea mai valoroasă proprietate a sistemelor ERP (și a oricăror aplicații de afaceri)? În opinia mea, aceasta este flexibilitatea, capacitatea de a se adapta la procesele de afaceri ale utilizatorului final la cel mai mic cost posibil.

Este clar că atunci când se programează un sistem ERP, este imposibil să se prevadă toate variantele proceselor de afaceri. Parametrizarea vine în ajutor; Prin introducerea în sistem a unor parametri care pot fi modificați în setările sistemului de către utilizator (consultant, administrator), creștem flexibilitatea sistemului la un cost relativ scăzut. Primele sisteme ERP au fost bazate pe parametri, adică personalizabil folosind parametri.

Nu toate cazurile de afaceri pot fi prevăzute în sisteme parametrizabile. Când setarea parametrilor nu este suficientă, trebuie să schimbați codul sursă. Aici producătorul ERP se confruntă cu întrebarea - modificați codul în sine pentru a se potrivi nevoilor consumatorilor și lansați actualizări sau furnizați sistemul în cod sursă, astfel încât utilizatorii să poată rescrie singuri sistemul pentru a se potrivi nevoilor lor (ceea ce, apropo, nu nu scutiți producătorul de emiterea de actualizări - sistemul trebuie să se dezvolte, să suporte noi funcționalități pentru a fi competitiv).

O problemă separată este alegerea limbajului de programare pentru scrierea unui sistem ERP. O mare parte a unui sistem ERP este logica de afaceri, pentru care limbajele de programare convenționale precum C++ nu sunt întotdeauna cele mai potrivite. În mod ideal, ar fi bine să programați logica de business într-un limbaj de nivel înalt care să poată oferi programatorului de business un confort maxim atunci când scrie logica de business, abstragând-o de la detalii de nivel scăzut (caracteristici de lucru cu baze de date, fișierul I/O și subsistemul de imprimare, subsistemul ferestre al interfeței cu utilizatorul etc.). Desigur, în acest caz, trebuie să creați și un compilator/interpret pentru acest limbaj și un mediu de dezvoltare.

Avem o matrice de combinații posibile:

  • cod de aplicație deschis sau închis (aici nu mă refer la open source în sensul obișnuit, ci la posibilitatea de a furniza codul sursă al aplicației, inclusiv contra cost).
  • limbaj de programare logic de afaceri - „obișnuit” (C/Java/Perl/...) sau special dezvoltat, proprietar.

Aplicații de afaceri create folosind 1C: Tehnologiile Enterprise sunt sisteme cu cod de aplicație open source scris într-un limbaj proprietar care nu are un nume scurt; oficial se numește „Limbajul de programare încorporat 1C: Enterprise”, informal și pe scurt - „limbajul 1C”.

Majoritatea liderilor de pe piața ERP modernă sunt sisteme open source. Abilitatea de a modifica codul sursă în domeniu oferă o flexibilitate enormă și un avantaj competitiv. Produsele surse închise sunt forțate să folosească tehnici diferite; cea mai obișnuită mișcare este un analog al CallBack-urilor, capacitatea de a atașa cod personalizat la evenimente predefinite, atât vizuale (deschiderea și închiderea unui formular, selectarea dintr-o listă de valori, ...) cât și evenimentele de afaceri (procesarea comenzii, introducerea unei vânzări). factura fiscala, ...). Unele sisteme au capacitatea de a-și scrie propriile handlere în C# (sau alte limbaje comune); altele au Visual Basic for Applications, licențiat de la Microsoft, în acest scop etc.

Cum funcționează ERP-urile

Sistemele ERP cu aplicații open source constau din codul sursă propriu-zis care implementează logica de business și mediul de execuție pentru acest cod de business (așa-numita platformă).

Platforma este de obicei scrisă într-un limbaj de nivel scăzut (C, C++); adesea codul sursă al platformei este închis pentru utilizatorii finali. Scopul platformei este de a permite programatorului să facă abstracție de la detalii de nivel scăzut (funcții ale sistemului de operare și DBMS etc.) și să se concentreze pe scrierea logicii de afaceri reale. Platforma include adesea instrumente de dezvoltare a aplicațiilor de afaceri și instrumente de administrare a sistemului (și sunt de acord cu această abordare). Apropo, nu se pot lipsi de o platformă și un sistem în care logica de afaceri este scrisă în limbaje de programare „obișnuite”. Nu este nevoie să interpretăm codul aplicației acolo, dar rămâne nevoia de funcționalitate a platformei (de exemplu, „învelișuri” în jurul bazei de date sau acces unificat la lista de utilizatori și drepturile acestora).

Platforma ca mediu de execuție pentru aplicații de afaceri poate fi descrisă ca o mașină virtuală. De obicei, platforma ar trebui să emuleze trei lucruri principale pentru ERP:

  • Mediul de execuție a logicii de afaceri.
  • Bază de date.
  • Subsistem grafic pentru afișarea aplicației client. Aplicația client poate fi grafică, redată folosind instrumente standard de sistem de operare (inclusiv sistemul de operare mobil) sau poate fi o aplicație web. În cazul unei aplicații web, platforma fie implementează propriul server web, fie oferă suport pentru servere web standard (IIS, Apache etc.)
În principiu, prin modificarea platformei, puteți face ERP, scris într-un limbaj proprietar, să ruleze sub orice sistem de operare și să stocați date în aproape orice SGBD. De obicei, producătorii de ERP sunt limitați la unul sau două sisteme de operare și unul sau două SGBD. Suportul pentru sisteme de operare și DBMS suplimentare înseamnă costuri crescute de dezvoltare și testare; Producătorii de ERP anunță adesea în noile versiuni ale produselor lor că nu vor mai suporta niciun SGBD.

Platforma 1C oferă următoarele în ceea ce privește suportul OS și DBMS:

  • Mediu de execuție a logicii de afaceri: cluster tolerant la erori de servere de aplicații cu echilibrare a încărcăturii; OS - Windows sau Linux
  • Bază de date: fișier propriu DBMS (recomandat pentru dezvoltare și instalări mici), MS SQL, Oracle, IBM DB2, PostgreSQL
  • Client:
    • client subțire (afișează și introduceți doar informații despre client) – Windows și Linux. Poate lucra cu un server de aplicații printr-o rețea locală sau prin servicii web (în acest caz, Microsoft IIS sau Apache trebuie să fie implementate pe partea de server)
    • Client web - pe partea serverului Microsoft IIS sau Apache, pe partea client - oricare dintre cele patru browsere - Internet Explorer, Chrome, Firefox, Safari
    • client gros (cu capacitatea de a executa o parte din logica de afaceri pe client) – Windows și Linux. Are o serie de limitări (de exemplu, poate funcționa numai în aceeași rețea locală cu serverul de aplicații). Este considerat învechit; 1C nu intenționează să-l dezvolte în continuare.
    • Client offline mobil (cu posibilitate de sincronizare periodică) – iOS și Android.
Dacă folosim tehnologia aplicației gestionate (disponibilă din 2008) atunci când scriem un program 1C, atunci dintr-un cod de aplicație obținem atât un client subțire pentru Windows/Linux, cât și un client web.

Limbajul aplicației ERP

Un subiect separat este limba în care este scrisă logica de afaceri. Pentru ca un programator de afaceri să funcționeze eficient, acest limbaj ar trebui să fie cât mai aproape posibil de domeniul afacerii (ideal, DSL, Limbaj specific domeniului) și departe de detaliile tehnice ale sistemului de operare și DBMS.

Să luăm o sarcină tipică de afaceri: trebuie să adăugăm sistemului capacitatea de a introduce și procesa un nou tip de document (de exemplu, o comandă). Într-un sistem scris într-un limbaj de programare „obișnuit”, aceasta necesită:

  1. Creați tabele în baza de date unde vor fi stocate informații despre document.
  2. Scrieți o clasă (sau clase) care implementează logica de afaceri pentru lucrul cu un document. Pe lângă logica de afaceri, clasele trebuie să implementeze și interacțiunea cu baza de date - citirea și scrierea datelor documentului.
  3. Creați o interfață de utilizator pentru editarea unui nou tip de document. De multe ori trebuie să creați și un formular care să afișeze o listă de documente cu posibilitatea de a căuta după diferite câmpuri etc.
Dacă lucrăm în C# în Visual Studio, toți pașii se pot face într-un singur mediu de dezvoltare (inclusiv proiectarea bazei de date).
Într-un număr de sisteme ERP care utilizează limbaje proprietare, trebuie să parcurgeți toți cei trei pași descriși mai sus, de obicei în același mediu de dezvoltare.

Acești 3 pași vor oferi minimul necesar; Dar trebuie totuși să creați o interfață cu utilizatorul pentru lucrul cu un document, să îl faceți disponibil în rapoarte, să puteți înregistra modificările efectuate de utilizatori în documente de tip nou, în jurnalul de sistem etc.

În 1C, trebuie să descrii câmpurile unui nou tip de document într-un designer grafic și să scrii cod care implementează logica de afaceri specifică documentului (de exemplu, în ce conturi ar trebui să fie scrise sumele de bani din document). Tot ceea ce este necesar pentru lucrul complet cu documentul din sistem va fi realizat de platformă:

  • Creează structuri în SGBD pentru stocarea datelor.
  • Va crea formulare pentru editarea unui document, afișarea unei liste de documente de acest tip etc. Dacă formularele create automat nu ni se potrivesc într-un fel, le putem face pe ale noastre extinzând și/sau modificându-le pe cele standard.
  • Documentul va deveni disponibil în rapoarte.
  • Documentul și câmpurile sale vor deveni disponibile pentru distribuirea drepturilor de citire/scriere în sistemul de securitate al aplicației.
  • Câmpurile documentelor vor deveni disponibile pentru căutarea textului integral în întregul sistem (inclusiv sinonime, suport pentru transliterare, căutare neclară etc.).
  • Toate modificările aduse documentelor de tip nou vor fi înregistrate în jurnalul de aplicare.
  • Metodele vor fi create automat pentru a salva și a citi documentul în/din XML și JSON.
  • Documentul va deveni disponibil prin interfața REST (prin protocolul OData).
  • Și mult mai mult

O caracteristică a dezvoltării în 1C este că sistemul are aproximativ 20 de tipuri de obiecte încorporate și toate obiectele noi pe care le creează dezvoltatorul trebuie să aparțină unuia dintre aceste tipuri. Cele mai multe dintre aceste tipuri descriu obiecte din domeniul de aplicare al activităților contabile ale întreprinderii - directoare, documente, planuri de conturi etc. O altă parte a tipurilor de obiecte sunt tehnologice, de exemplu, serviciile Web și HTTP; permit programelor 1C să comunice cu lumea exterioară.


1C Configurator – în el sunt create soluții de aplicație. În stânga este un arbore de tipuri 1C încorporate; sub fiecare ramură - obiecte de aplicație de acest tip.

Dezvoltarea soluțiilor de aplicație se face în Configurator (Designer în versiunea în limba engleză). Recent, a fost lansată o versiune de probă a instrumentului 1C:Enterprise Development Tools, permițând dezvoltarea de soluții 1C în mediul popular Eclipse. Încă nu este posibil să se realizeze dezvoltarea industrială în 1C: Instrumente de dezvoltare a întreprinderii, dar folosind această versiune este foarte posibil să înțelegem încotro se îndreaptă compania din punct de vedere tehnologic. În special, este acceptată dezvoltarea colectivă folosind sisteme populare de control al versiunilor (Git, SVN și orice altele pentru care există pluginuri pentru Eclipse); De asemenea, este posibil să vă scrieți propriile pluginuri pentru IDE-ul Eclipse care extind capacitățile mediului de dezvoltare pentru lucrul cu 1C.


Instrumente de dezvoltare pentru întreprinderi - dezvoltarea unei aplicații 1C în IDE Eclipse

Limbajul de programare 1C în sine amintește cel mai mult de JavaScript în sintaxă. Limbajul nu este, strict vorbind, orientat pe obiecte. Nu există nici o moștenire în el; dar, deoarece toate obiectele programelor 1C aparțin unuia dintre tipurile de obiecte încorporate, aceasta poate fi numită moștenire simplificată: tipurile de obiecte încorporate implementează o funcționalitate predefinită pe care programatorul de aplicații o poate redefini în obiectele lor succesoare. O astfel de moștenire este un singur nivel, nu mai este posibilă moștenirea de la obiectele aplicației; o abordare similară a moștenirii este adoptată în conceptul de programare bazată pe prototip; Unul dintre reprezentanții populari ai acestui concept este JavaScript.

Această abordare limitează în mod deliberat libertatea dezvoltatorului de soluții de aplicație, forțându-l să selecteze tipul de obiect dorit dintr-o paletă limitată rezonabil de tipuri încorporate pentru a-și implementa sarcinile. În schimb, dezvoltatorul primește o funcționalitate bogată implementată de platformă și o dezvoltare foarte rapidă. Avantajele acestei abordări sunt evidente - sistemele de contabilitate pe 1C sunt ușor și rapid de creat. Există și dezavantaje - dacă trebuie să implementați ceva pentru care platforma nu are tipuri încorporate (de exemplu, lucrul cu SFTP), atunci trebuie fie să așteptați o nouă versiune a platformei în care această funcționalitate va fi implementat sau scrieți propria implementare într-un limbaj „obișnuit” și apelați-o din 1C prin tehnologia componentelor externe.

Câteva fapte despre limbajul de programare 1C încorporat:

  • Sintaxa engleză (dacă... atunci) și rusă (dacă... atunci) este acceptată.
  • Limbajul este Turing complet.
  • Este un limbaj tipizat dinamic. O variabilă este asociată cu un tip în momentul atribuirii valorii, nu în momentul în care este declarată variabila. Când declarați o variabilă, nu puteți specifica tipul acesteia.
    Puteți face acest lucru: var a; a = 1;
    Nu puteți face acest lucru: var a as Int; a = 1;
  • Pentru a citi date dintr-un SGBD, 1C are propriul limbaj de interogare, similar cu SQL. De fapt, este tradus în SQL atunci când se execută programe 1C.

Cum funcționează totul

Cum sunt livrate soluțiile 1C utilizatorilor finali? Și cum funcționează pentru acești utilizatori finali?

Pentru a răspunde mai pe deplin la această întrebare, trebuie să ne amintim o trăsătură caracteristică a 1C.
Un proiect în 1C se numește configurație. O configurație este un program complet autonom, de exemplu, contabilitate sau ERP; include toate obiectele și codul necesar pentru funcționarea deplină a aplicației de afaceri. Particularitatea lui 1C este că configurația este stocată într-o bază de date, aceeași în care sunt stocate datele aplicației în sine (afișări, date din directoare și documente etc.), adică. programul este stocat împreună cu datele. O bază de date cu date de configurare (și aplicație) în terminologia 1C se numește bază de informații (abreviată ca infobase).

Configurația poate fi încărcată într-un fișier; Sub forma unui fișier, acesta este de obicei primit de la dezvoltator către utilizatorii finali; pe sistemul client, acest fișier este importat în baza de informații. După aceasta, soluția este gata.


Arhitectura soluțiilor 1C

Unde este ce software instalat:

  • Server DBMS – unul sau mai multe DBMS suportate de 1C (MS SQL, Oracle, IBM DB2, PostgreSQL). Dacă pe un server 1C sunt instalate mai multe aplicații 1C, aplicațiile pot folosi diferite SGBD; de exemplu, contabilitatea este MS SQL, iar ERP este Oracle.
  • Server – unul sau mai multe servere dintr-un cluster scalabil de failover. Produsul software 1C Server (un set de biblioteci și fișiere executabile) trebuie să fie instalat aici. Toleranța la erori și scalabilitatea clusterului, precum și echilibrarea încărcăturii între serverele de cluster sunt asigurate de software-ul 1C. Un cluster poate conține servere Windows și Linux, iar sistemul poate avea un cluster de rezervă.
  • Client: sistemul de operare Windows sau Linux, trebuie instalat un client subțire (1cv8c.exe/1cv8) sau un client gros 1C (1Cv8.exe pentru Windows, 1cv8 pentru Linux).
    • Clientul subțire poate executa un set limitat de funcționalități ale limbajului 1C încorporat. Funcționează cu un set limitat de tipuri de limbi încorporate, destinate doar pentru afișarea și modificarea datelor din memorie. Toate lucrările cu baza de date, datele obiectului și execuția interogărilor sunt efectuate pe partea serverului. Clientul subțire primește doar date gata pregătite pentru afișare.
    • Clientul gros poate efectua aproape toată funcționalitatea oferită de limbajul 1C încorporat în sine, recurgând la ajutorul serverului doar atunci când este necesară scrierea sau citirea datelor din baza de date. Limitări: necesită o cantitate semnificativă de resurse hardware și poate „comunica” cu un cluster de servere 1C numai printr-o rețea locală. Considerat ca depășit, menținut pentru compatibilitate inversă.
  • Server web – IIS sau Apache. De la 1C – este instalat un set de extensii pentru servere web.
  • Client web – oricare dintre cele patru browsere acceptate: Internet Explorer, Chrome, Firefox, Safari.
  • Client mobil: iOS sau Android și orice aplicație mobilă 1C. Metoda de comunicare între aplicația mobilă 1C și server depinde de aplicația specifică; Serviciile web sau HTTP sunt cele mai des folosite.

Componentele 1C - serverul, clienții subțiri și grosi și extensiile web - comunică între ele fie folosind propriul protocol (implementat pe TCP), fie prin http.

Ce este special la 1C

Ce face ca tehnologia 1C: Enterprise să iasă în evidență? Datorită abordării inovatoare de organizare a dezvoltării (mai multe despre aceasta mai jos), este ușor să faceți două lucruri în 1C: Enterprise: creați soluții de afaceri de la zero și personalizați soluțiile existente pentru a se potrivi nevoilor utilizatorilor finali.

Dezvoltare

Este ușor să creați soluții de la zero - datorită obiectelor încorporate care implementează funcționalitatea de bază a sistemelor de contabilitate. Este un sistem bine gândit de obiecte încorporate (și nu un limbaj, care este în general un script obișnuit) care face din 1C:Enterprise un instrument puternic pentru crearea de aplicații de afaceri. Dezvoltatorul nu trebuie să scrie un strat de acces la date, o interfață de utilizare de bază etc. – vă puteți concentra imediat pe rezolvarea unei probleme de afaceri. Pentru a rezolva problemele de afaceri, multe au fost deja implementate în obiectele încorporate (citire – biblioteci de bază) - de exemplu, suport pentru directoare ierarhice, mașini de contabilitate pentru implementarea contabilității și contabilității mărfurilor, mecanisme pentru calcule periodice complexe (de exemplu, salarizare) și mult mai mult.

„Ieșit din cutie” dezvoltatorul primește obiecte încorporate (directoare, documente, registre etc.) implementate de platformă; acestea sunt tipare din lumea sistemelor contabile. Într-o soluție de aplicație (configurare), dezvoltatorul implementează aceste modele, umplându-le cu o logică specifică de afaceri.

O soluție de aplicație în 1C:Enterprise nu este scrisă literal într-un limbaj de programare. Cele două pietre de temelie ale ideologiei dezvoltării sunt dezvoltarea bazată pe metadate și dezvoltarea bazată pe model.

La baza unei aplicații de afaceri se află metadatele, care reprezintă o descriere declarativă a aplicației în sine. Soluția aplicației nu este descrisă în termeni de tabele relaționale, clase de limbaj de programare obiect etc., ca în majoritatea sistemelor. O soluție în 1C: Enterprise este descrisă de metadate sub forma unui set de obiecte de aplicație selectate dintr-un set specific de modele prototip (directoare, documente, planuri de conturi, ...).

Metadatele formează o ierarhie de obiecte din care sunt formate toate componentele unui sistem de aplicație și care determină toate aspectele comportamentului acestuia. Atunci când rulează o aplicație de afaceri, platforma interpretează metadatele, oferind toate funcționalitățile necesare.

Metadatele descriu structurile de date, compoziția tipurilor, conexiunile dintre obiecte, caracteristicile comportamentului și reprezentarea lor vizuală, un sistem de delimitare a drepturilor de acces, o interfață cu utilizatorul etc. Metadatele conțin informații nu numai despre ceea ce este stocat în baza de date, ci și despre ce, de ce sunt stocate această sau acea informație, care este rolul acesteia în sistem și cum sunt interconectate matricele de informații. Utilizarea unui limbaj de programare se limitează în principal la rezolvarea acelor probleme care necesită de fapt o descriere algoritmică (calcularea taxelor, verificarea corectitudinii datelor introduse etc.). Principiul de bază al dezvoltării la 1C: Enterprise poate fi formulat pe scurt după cum urmează: „Să programăm doar acolo unde este cu adevărat necesar și lăsăm platforma să facă toate lucrările de rutină.”

1C: Enterprise a fost inițial orientată spre construirea unei soluții de aplicație bazată pe un model specific. Modelul se referă la întreaga ideologie a construirii unei soluții de aplicație. Acestea sunt metode de construire a structurilor de date, tipuri de conexiuni între date, principii de manipulare a acestora, forme de descriere a logicii de afaceri, moduri de conectare a datelor cu obiecte de interfață, împărțirea funcționalității la niveluri de sistem și multe altele.

Toate aplicațiile de afaceri urmează un model comun, asigurând un comportament consistent și previzibil. Un dezvoltator care dorește să reflecte specificul unui anumit domeniu într-o soluție de aplicație are un set foarte specific de modalități de a rezolva această problemă folosind mijloacele încorporate în platformă. Pe de o parte, această abordare limitează (în mod semnificativ!) libertatea dezvoltatorului, dar, pe de altă parte, îl protejează de multe erori și îi permite să obțină rapid o soluție viabilă care poate fi dezvoltată și susținută în continuare atât de el însuși, cât și de , dacă este necesar, de către alții.specialist.

Prezența unui model unificat are un efect pozitiv asupra ușurinței stăpânirii sistemului. Toată dezvoltarea se realizează în cadrul unui sistem de concepte end-to-end, într-un singur spațiu de tipuri de date. Descrierea anumitor obiecte (entități) în metadate determină imediat tipurile corespunzătoare ale limbajului de programare încorporat și structurile bazei de date necesare pentru stocarea acestora. Toate manipulările ulterioare ale acestor obiecte atât în ​​memorie, cât și în baza de date sunt efectuate uniform, fără a necesita depășirea barierelor dintre diferitele notații adoptate atunci când se lucrează cu DBMS și limbaje de programare universale.

O aplicație gata făcută (configurare), furnizată în cod open source (de exemplu, contabilitate sau ERP), pentru un programator din partea clientului este practic un DSL (Domain Specific Language, limbaj specific domeniului). Programatorul poate folosi obiecte de configurare gata făcute (directorul contrapărților, planul de conturi, statul de plată) pentru a modifica comportamentul sistemului în funcție de nevoile clientului.

Personalizare și suport

Pe scurt despre logica de business a unei soluții de aplicație, putem spune următoarele: este schimbată. Este schimbat de către angajații departamentelor IT ale clientului, adaptând soluția la procesele de afaceri ale întreprinderii. Iar furnizorul de soluții o modifică, adăugând noi funcționalități, susținând modificările legislației și lansând periodic actualizări.

Procedura de instalare a unei actualizări în care logica de afaceri a fost modificată „in situ” pentru a se potrivi nevoilor clientului este adesea o operațiune nebanală, uneori plină de erori. În general, aceasta este o fuziune a codurilor sursă ale unei noi aplicații de la furnizor cu o aplicație client modificată (comparativ cu versiunea anterioară de la furnizor). Pe de o parte, trebuie să obțineți noua funcționalitate care a venit cu actualizarea; pe de altă parte, nu vă pierdeți realizările.

Această sarcină este familiară oricui a fost nevoit să lucreze într-o echipă într-o singură aplicație și să îmbine (imbina) modificările aduse codului sursă cu modificările altor membri ai echipei. Chiar dacă toți dezvoltatorii fac parte din aceeași echipă și aderă la același set de reguli de dezvoltare și formatare a codului, sarcina de îmbinare a codului sursă poate fi uneori dificilă. Ei bine, în cazul sistemelor ERP, este complicat de faptul că dezvoltatorii furnizorului și clientului lucrează în diferite organizații și nu au întotdeauna posibilitatea de a comunica în caz de dificultăți de înțelegere a codului.

Rețineți că, dacă modificările efectuate de client sunt prea extinse, furnizorul aplicației poate decide că nu va oferi suport suplimentar pentru soluția clientului.

Cele de mai sus este una dintre cele mai dificile sarcini din ciclul de viață al aproape oricărui sistem de afaceri cu o aplicație open source. Succesul aplicației pe piață depinde în mare măsură de cât de cu succes rezolvă această problemă producătorul de software. În cazul lui 1C, fuzionarea a două configurații (furnizor și utilizator) în timpul unei actualizări nu înseamnă doar fuzionarea codurilor sursă a două aplicații, este, în primul rând, fuzionarea modelelor de aplicații, care trebuie să aibă loc după anumite reguli.

Pentru a rezolva această problemă, 1C a dezvoltat un mecanism de suport (parte a platformei 1C: Enterprise) care permite furnizorului de soluții să determine ce obiecte de configurare (directoare, documente etc.) poate modifica clientul și care nu, adică To. modificarea acestora va perturba funcționalitatea sistemului sau va face imposibilă suportul centralizat suplimentar al acestuia de către furnizor.

La rândul său, clientul, folosind acest mecanism, poate determina regulile de susținere a obiectelor configurației sale - de exemplu, poate refuza suportul de către furnizor pentru un anumit obiect dacă își asumă responsabilitatea pentru modificarea ulterioară a acestui obiect sau dacă nu au nevoie de acest obiect în activitatea sa. Sau, dimpotrivă, puteți interzice editarea unui obiect din configurația „dvs.” (chiar dacă furnizorul o permite) pentru a vă asigura împotriva modificărilor accidentale.

În mod ideal, aș dori ca modificările personalizate să existe ca „în afară” de configurația standard a furnizorului și să fie incluse în lucrare doar în momentul executării directe a codului. În acest caz, procesul de instalare a actualizărilor de la furnizor va deveni un proces automat care nu necesită intervenție umană. 1C oferă două abordări care acoperă un procent semnificativ de scenarii de personalizare.

Prima abordare este utilizarea procesării externe și a raportării externe. Aceste mecanisme vă permit să adăugați funcționalități suplimentare „pe deasupra” sistemului fără a modifica codul de configurare sursă. În esență, acestea sunt scripturi cu o interfață grafică concepută pentru a rula pe o soluție de aplicație specifică. Aceste mecanisme au dat naștere analogului lor, „App Store”, un magazin online în care programatorii independenți postează și cumpără utilizatorii finali suplimentele necesare pentru diferite programe.

A doua abordare, care a apărut relativ recent, este extensiile. Strategia oferită de extensii este că nu este nevoie să schimbați configurația implicită. Toate modificările se fac în așa-numita extensie, care, de fapt, este și o configurație (dar una personalizată, separată de configurația furnizorului). În acest caz, instalarea actualizării de la furnizor va fi automată - din punctul de vedere al mecanismului de suport, configurația standard nu s-a schimbat. Și când configurația finală (care este o combinație între o configurație standard și o extensie) funcționează, acele obiecte care sunt adăugate (sau modificate) în extensie vor fi folosite.

Ce altceva?

Ce altceva este interesant/important în linia de tehnologie 1C? Lista conține cele mai semnificative mecanisme, despre fiecare dintre acestea puteți scrie un articol separat (sau mai multe):

  • Soluția cloud 1cFresh este un „cloud out of the box”, un mediu scalabil orizontal pentru lucrul cu soluții de aplicație ale 1C (și companiilor partenere) în modelul de servicii (SaaS). Produsul conține toate funcțiile necesare funcționării SaaS - înregistrarea și gestionarea utilizatorilor, posibilitatea de a publica rapid soluții de aplicații noi, de a crea copii de rezervă ale datelor utilizatorilor etc. Compania 1C însăși folosește produsul 1cFresh pentru a-și furniza produsele spre închiriere (http://1cfresh.com) și, de asemenea, vinde soluția 1cFresh ca produs în cutie, permițând partenerilor și clienților să-și implementeze propriile cloud pentru soluții de aplicații bazate pe 1C : Tehnologii de întreprindere.
  • Platforma mobilă 1C (menționată mai sus), care vă permite să creați aplicații pentru sisteme de operare mobile (iOS, Android) dintr-un singur cod sursă, folosind aceeași metodologie și mediu de dezvoltare (Configurator) ca pentru aplicațiile 1C „obișnuite”.
  • Sistem de raportare puternic și flexibil. Rapoartele sunt un mecanism extrem de important în orice sistem de afaceri; Multe ERP-uri folosesc generatoare de rapoarte externe de la alți producători, deoarece... crearea unui generator de rapoarte bun nu este o sarcină ușoară cu multe detalii. În 1C, rapoartele sunt dezvoltate în același mediu (Configurator) ca și aplicația în sine; Mecanismul de raportare se bazează pe sistemul de compoziție a datelor (DCS), un mecanism de descriere declarativă a rapoartelor. Una dintre caracteristicile importante ale rapoartelor din 1C este că utilizatorul final poate modifica raportul creat de dezvoltator „pentru a se potrivi lui însuși”, folosind aceleași capabilități de proiectare a rapoartelor ca și dezvoltatorul.
  • Un mecanism de schimb de date care vă permite să creați sisteme de informații distribuite geografic care fac schimb de date offline, fără o conexiune permanentă. Schimbul de date este posibil atât între 1C: aplicații Enterprise, cât și între 1C: aplicații Enterprise și sisteme terțe.
  • Și multe alte lucruri interesante


„1C:Enterprise” - tehnologii și instrumente

În loc de o concluzie

Sper că cititorii care nu sunt familiarizați cu 1C au o imagine mai mult sau mai puțin clară - ce este 1C, cum funcționează și ce oportunități oferă dezvoltatorilor. Există multe subiecte interesante rămase dincolo de scopul acestei recenzii; despre ei data viitoare.

O abordare orientată pe platformă a arhitecturii aplicațiilor a fost aleasă de 1C la mijlocul anilor 1990. Această combinație unică a unei platforme puternice și a unui limbaj de aplicație relativ limitat s-a dovedit a fi bine - mai mult de 1000 de soluții 1C certificate oficial au fost create folosind tehnologii 1C pentru o varietate de domenii de afaceri, de la automatizarea întreprinderilor mici la sisteme de management al întreprinderilor cu mii de soluții concurente. utilizatorii. Adaugă etichete

Articolul face parte din seria „Primii pași în dezvoltarea 1C”. Continuă subiectul ridicat în articolul precedent și acoperă în detaliu inovațiile apărute în configuratorul platformei 1C:Enterprise 8.

După ce ați citit articolul, veți învăța:

  • Ce este un indiciu de context și cum ajută acesta la scrierea codului programului?
  • Pentru ce sunt șabloanele de text și cum să le folosiți în practică?
  • De ce să folosiți gruparea liniilor de cod?
  • Cum poate evidenția să îmbunătățească gradul de utilizare al unui editor de cod?
  • Care este beneficiul noii căutări în arborele de configurare?
  • Cum să afișați rapid obiectele subsistemului dorit?
  • Ce instrumente de refactorizare și demodalitate există și cum să le utilizăm?

Aplicabilitate

Articolul discută capacitățile configuratorului folosind exemplul platformei 1C:Enterprise, edițiile 1C 8.3.5 - 8.3.11, deci toate informațiile sunt relevante.

Îmbunătățiri în configuratorul platformei 1C:Enterprise 8.3

La lansarea noii versiuni a platformei 1C:Enterprise 8.3, dezvoltatorii au adăugat câteva inovații interesante și utile pentru a simplifica munca zilnică a sute de dezvoltatori din toată țara.

Acum, atunci când scrieți codul modulului în editorul configuratorului, sfatul cu instrumente de context afișează nu numai numele variabilelor și procedurilor care sunt valabile într-un anumit context, ci și parametrii procedurii sau funcției care sunt editate în prezent.

Noua funcționalitate este disponibilă atât pentru procedurile încorporate, cât și pentru procedurile proprii ale dezvoltatorului.

Info-ul cu o listă de parametri arată astfel:

Parametrul de procedură care ar trebui introdus acum este afișat cu caractere aldine. Sub linia orizontală este o descriere a parametrului curent. Dacă este obligatoriu, acest lucru este subliniat folosind textul dintre paranteze.

Dacă există mai multe opțiuni de sintaxă pentru o procedură încorporată, săgețile devin disponibile în antet pentru a comuta între aceste opțiuni.

Ajutorul contextual pentru parametrii de procedură și funcție este accesat prin apăsarea Ctrl + Shift + Bara de spațiu. De asemenea, poate fi apelat automat la tastarea caracterelor „(“ și „, ”. Acest comportament poate fi activat în dialogul parametrilor configuratorului (articolul de meniu Instrumente - Opțiuni, fila Module - Ajutor contextual):

O altă caracteristică utilă a noului tooltip context este capacitatea de a afișa parametrii pentru proceduri și funcții personalizate.

Pentru marire, click pe imagine.

Să reamintim că există un document „Sistem de standarde și metode de dezvoltare a configurațiilor pentru platforma 1C: Enterprise 8”, care descrie recomandările companiei 1C pentru codul de program dezvoltat.

Astfel, secțiunea „Parametri” descrie parametrii procedurii (funcției). Dacă nu sunt prezente, secțiunea este omisă.

Este precedat de linia „Parametri:”, apoi descrierile tuturor parametrilor sunt plasate pe o nouă linie. Descrierea parametrului începe pe o linie nouă, urmată de numele parametrului, apoi o cratimă și o listă de tipuri, apoi o cratimă și o descriere text a parametrului.

De exemplu:

// Pregătește un formular de răspuns la o scrisoare existentă.
// Opțiuni:
// IncomingLetter - DirectoryLink. IncomingLetter - o scrisoare la care ar trebui să răspundeți.
// OutgoingLetter – DirectoryLink.OutgoingLetter – date de formular pentru tipul DirectoryLink.OutgoingLetter,
// se află în formularul editor de scrisori de ieșire.
// Text – FormattedDocument – ​​câmp al editorului de text scris în formular
// editor de scrisori de ieșire.
Procedură Completați răspunsul la scrisoare (scrisoare primită, scrisoare trimisă, text) Export

Iar configuratorul analizează comentariile scrise conform acestor reguli și le folosește pentru a afișa ajutor contextual!

Pentru marire, click pe imagine.

Pentru a evita scrierea manuală a unui comentariu conform formatului dat, platforma oferă șabloane de text, care pot fi vizualizate prin apăsarea combinației de taste Ctrl + Shift + T.

Șablonul cu numele „Procedură (cu titlu)” formează comentariul corect.

Pentru ca acest șablon să funcționeze, trebuie doar să tastați caracterele „Proc” în editor, să apăsați Ctrl+Q și să selectați șablonul dorit din lista oferită de sistem.

Gruparea liniilor de cod

Modulele de soluții standard de pe platforma 1C:Enterprise 8 sunt destul de voluminoase și conțin un număr destul de mare de linii de cod.

Pentru a îmbunătăți ușurința citirii și analizării codului programului, au fost implementate funcții de grupare a instrucțiunilor condiționale și ciclice, precum și proceduri.

Platforma 8.3 oferă o altă opțiune - să grupați linii de module arbitrare într-un grup conform unui principiu logic și apoi să o restrângeți astfel încât să ocupe mai puțin spațiu pe ecran pentru a îmbunătăți lizibilitatea textului.

Pentru a selecta o zonă de text, au fost introduse două noi instrucțiuni de preprocesor #Area și #EndArea.

În timpul execuției codului, aceste instrucțiuni sunt ignorate. Sunt necesare doar pentru a indica liniile de cod care trebuie pliate.

Pentru marire, click pe imagine.

Trebuie să vă asigurați că zonele grupate nu se intersectează unele cu altele, deoarece în acest caz nu se vor prăbuși pe ecran.

Un șablon de text a fost adăugat în configurator pentru abrevierea #Regiune, care va adăuga automat instrucțiuni pentru crearea unei noi regiuni la textul modulului.

În dialogul de setări al configuratorului (articolul de meniu Instrumente – Opțiuni, fila Module – Grupare) puteți configura gruparea și restrângerea zonelor de text.

Evidențierea structurilor cu culoare

Acum, în editorul de text în limbajul încorporat, structurile sintactice pe care se află în prezent cursorul sunt evidențiate color. De exemplu, începutul și sfârșitul unei proceduri (funcție), instrucțiune condiționată și instrucțiune buclă:

Pentru marire, click pe imagine.

O altă inovație a platformei este evidențierea de culoare a parantezelor de deschidere și de închidere. Acest lucru este foarte util atunci când scrieți expresii lungi, când controlul sintaxei raportează o eroare și dezvoltatorul trebuie să găsească o paranteză suplimentară sau lipsă.

Pentru marire, click pe imagine.

În dialogul parametrilor configuratorului (articolul de meniu Instrumente – Opțiuni, fila Module – Editare) puteți configura evidențierea colorată a mai multor structuri utile.

Dacă selectați parametrul „Identificator curent” și îi atribuiți o culoare diferită de culoarea de fundal de editare (alb în mod implicit), atunci când plasați cursorul pe orice identificator de cod de program, acesta este evidențiat cu culoarea selectată și, în plus, toți aceiași identificatori sunt evidențiați, care apar în modul, și constante de șir cu același identificator cuprinse între ghilimele:

Pentru marire, click pe imagine.

De asemenea, este de interes parametrul „ID selectat”. Dacă este setată la o culoare care nu se potrivește cu culoarea de fundal de editare, atunci când faceți dublu clic pe identificator, atât acesta, cât și toți identificatorii care se potrivesc din textul modulului vor fi evidențiate.

Pentru marire, click pe imagine.

Când efectuați o căutare în textul modulului folosind bara de căutare sau după apăsarea combinației de taste Ctrl + F, cuvântul găsit este evidențiat și toate aceleași cuvinte găsite sunt evidențiate.

Pentru marire, click pe imagine.

Îmbinarea celulelor într-un document de foaie de calcul

Anterior, celulele dintr-un document de foaie de calcul puteau fi îmbinate numai folosind un element de meniu sau butonul corespunzător din bara de comandă.

Acum a apărut comanda rapidă de la tastatură Ctrl + M, când este apăsată, celulele documentului din foaia de calcul sunt îmbinate. Operațiunea „Îmbinare” este disponibilă și în meniul contextual al unui document foaie de calcul.

Sperăm că în următoarele versiuni ale platformei 1C:Enterprise 8, dezvoltatorii vor acorda atenție îmbunătățirii gradului de utilizare în lucrul cu configuratorul.

Noi oportunități pentru dezvoltatori în 1C:Enterprise 8.3.5

Cauta in configurator

Trebuie să utilizați constant căutarea atunci când configurați. Atâta timp cât configurația conține un număr relativ mic de obiecte de metadate, puteți căuta vizual - cu ochii, derulând prin arborele de configurare.

Cu toate acestea, configurațiile tipice sunt destul de mari, iar cu această abordare căutarea va dura mult timp.

Înainte de lansarea platformei 8.3.5, căutarea în arborele de metadate se putea face după cum urmează:

  • tastați numele obiectului de la tastatură, iar sistemul va căuta o potrivire a numelui începând cu prima literă a numelui, dar numai în liniile extinse ale arborelui de configurare;
  • Utilizați comanda rapidă de la tastatură Ctrl+F pentru a deschide fereastra de căutare:

Obiectele găsite vor fi afișate în fereastra Rezultatele căutării, din care puteți face dublu clic pentru a merge la obiectul de metadate dorit din arborele de configurare.

Platforma 8.3.5 a introdus un nou câmp de căutare situat deasupra arborelui de configurare:

Căutarea se efectuează pe baza apariției unui șir, iar proprietățile obiectelor de configurare Nume, Sinonim și Comentariu sunt analizate.

Mai mult, arborele de configurare este filtrat „din zbor”: în el rămân doar obiectele care satisfac filtrul introdus.

Să ne uităm la ce înseamnă culorile pentru obiectele rămase în arbore după aplicarea filtrului.

Dacă a fost găsit șirul de căutare, numele unui astfel de obiect este evidențiat cu negru în arborele de configurare.

Dacă, în plus, șirul căutat este prezent în numele obiectului (nu într-un sinonim, nu într-un comentariu), atunci astfel de apariții sunt evidențiate cu roșu.

Obiectele care nu se potrivesc ele însele filtrului introdus, dar au obiecte subordonate (copil) care satisfac filtrul specificat, sunt evidențiate cu gri.

În imaginea de mai sus recuzita ID utilizator IB director Utilizatori este afișat în arbore, deoarece sinonimul său conține subșirul „post”:

Este acceptabil să introduceți mai multe subșiruri separate prin spații pentru a căuta:

Un șir de căutare similar a apărut în fereastra care conține un set de proprietăți ale obiectului selectat (paleta de proprietăți):

Proprietățile găsite vor fi afișate într-o listă generală, fără a fi împărțite în categorii.

Căutarea va fi efectuată fie după numele proprietăților, fie după vizualizările proprietăților (diferența este afișată în cele două capturi de ecran de mai sus).

Puteți comuta între modurile de nume/reprezentare folosind comanda „Afișare nume de proprietate” din meniul contextual:

Același șir de căutare a fost adăugat în fereastra de selecție a tipului de date:

Și în fereastra pentru selectarea unui obiect de metadate (de exemplu, selectarea unui registru de informații care va fi folosit ca grafic pentru registrul de calcul):

Pentru a afișa rapid obiectele incluse într-un anumit subsistem, un nou element „Obiecte subsistem” a apărut în meniul contextual:

Să ne amintim cum s-ar putea realiza acest lucru în versiunile anterioare ale platformei.

A fost necesar să deschideți fereastra de selecție pentru subsisteme, să bifați caseta pentru subsistemul necesar și să debifați toate celelalte subsisteme:

Acum puteți obține același rezultat mai rapid. În plus, selecția în funcție de un subsistem este cel mai des utilizată și cea mai solicitată.

Și, prin urmare, această mică inovație convenabilă va economisi timpul dezvoltatorului.

Afișează rapid obiectele capturate în depozit

Dacă configurația este conectată la stocare, atunci butonul „Obiecte capturate” este disponibil în panoul de comandă de deasupra arborelui de configurare în sine:

Acum filtrarea se efectuează direct în arborele de configurare, nu este nevoie să deschideți o fereastră separată pentru a lucra cu depozitul și a seta selecții pentru obiectele capturate în acesta.

Instrumente de refactorizare

Atunci când un grup de mai mulți dezvoltatori lucrează la o configurație, este necesar să se asigure că codul este ușor de înțeles și respectă standardele comune.

Nu este întotdeauna posibil să controlați acest lucru în mod constant, așa că se lucrează periodic pentru a îmbunătăți lizibilitatea codului și a revizui fragmentele deja implementate.

Astfel de acțiuni se numesc refactorizare de cod. Acesta este procesul de modificare a structurii interne a unui program fără a-i afecta comportamentul extern și care vizează facilitarea înțelegerii modului în care funcționează.

În plus, dezvoltatorii vor trebui să lucreze în configurațiile lor pentru a abandona modalitatea - elimina apelurile modale.

Prin urmare, configuratorul platformei 8.3.5 include acum mecanisme de refactorizare a codului și instrumente pentru lucrul cu apeluri modale.

Acestea sunt disponibile în meniul contextual al editorului de text configurator într-un meniu separat de refactorizare.

Pentru marire, click pe imagine.

Să aruncăm o privire mai atentă asupra instrumentelor de refactorizare implementate.

1. Selectați un fragment

Această comandă convertește secțiunea de cod selectată într-o procedură sau funcție separată.

Dacă procedura în care se află secțiunea selectată conține o directivă de compilare (&Pe Client, &Pe Server etc.), atunci procedura sau funcția creată va avea aceeași directivă de compilare.

Dacă secțiunea evidențiată a codului poate fi localizată în partea dreaptă a operatorului de atribuire, atunci va fi creată o funcție. Să ne uităm la un exemplu. Să fie un fragment de cod:

&OnClient
Procedură ProductsProductWhenChanged(Element)
Str = ;
PagePrice = Obțineți prețul produsului(Obiect.Data, Pagina.Produs);

Sfârșitul procedurii

Dacă aplicați comanda „Select fragment” la secțiunea de cod selectată, sistemul va genera următorul cod de program (creați o nouă funcție):

&OnClient
Procedură ProductsProductWhenChanged(Element)
Pagina = Articole.Produse.Date curente;
PagePrice = Obțineți prețul produsului(Obiect.Data, Pagina.Produs);
Suma paginii = CalculateAmount(Pagină);
Sfârșitul procedurii
&OnClient
Funcţie CalculateAmount(Pagina cu valoare)
Retur Pagină Cantitate * Pagina Preț ;
EndFunction

De asemenea, o funcție va fi creată dacă în secțiunea selectată a codului există o atribuire unei variabile care este utilizată mai jos în cod. De exemplu:

&OnClient
Procedură ProductsPriceWhenChange(Element)
Pagina = Articole.Produse.Date curente;
Suma paginii = Cantitatea paginii * Prețul paginii;
Sfârșitul procedurii

Zona selectată va fi transformată după cum urmează:

&OnClient
Procedură ProductsPriceWhenChange(Element)
Pagina = CurrentLineProducts();
Suma paginii = Cantitatea paginii * Prețul paginii;
Sfârșitul procedurii
&OnClient
Funcţie CurrentLineProducts()
Pagina variabilă;
Pagina = Articole.Produse.Date curente
Pagina de întoarcere;
EndFunction

2. Redenumiți

Această comandă vă permite să schimbați numele unei variabile sau proceduri (funcție) în toate locurile în care este utilizată efectiv.

Dacă toate aparițiile unei variabile sau metode sunt identificate în mod unic, sistemul vă va solicita să specificați un nou nume și să efectuați o înlocuire oriunde apare acest identificator.

Dacă toate utilizările unei variabile sau metode nu pot fi identificate în mod unic, atunci sistemul afișează o întrebare și afișează aparițiile:

Să luăm în considerare o situație în care sistemul nu poate înlocui automat numele procedurii.

Să existe o procedură în modulul document:

Procedura Recalculate() Export
Pentru fiecare TechStringProducts Din Ciclul Produselor
TechStringProducts.Amount= TechStringProducts.Cantitate* TechStringProducts.Preț;
EndCycle ;
Sfârșitul procedurii

Și în modulul de formular al acestui document există următorul handler:

&Pe server
Procedură RecalculateOnServer()
Document = PropsFormValue("Un obiect" );
Document.Recalculare();
ValueInFormProps(Document, „Obiect”);
//procesare ulterioara...

Sfârșitul procedurii

O pictogramă cu un semn de exclamare roșu în fereastra cu rezultatele căutării înseamnă că puteți determina clar și precis utilizarea unei proceduri într-o linie de cod Recalculați() sistemul a eșuat.

Acest lucru se datorează faptului că sistemul nu poate determina automat tipul variabilei Document după ce funcția este executată FormAttributesValue().

În acest caz, mecanismul de indicații contextuale nu oferă opțiuni posibile atunci când apăsați punctul de după variabilă Document sau apăsând combinația de taste Ctrl+Space.

Pentru marire, click pe imagine.

Redenumirea unei proceduri într-un modul de formular folosind comanda de refactorizare schimbă, de asemenea, referința la handler în proprietățile și comenzile elementului de formular.

3. Creați o descriere a funcției

Comanda creează un comentariu înainte de procedură sau funcție, care va fi perceput corect de instrumentul de context.

// Procedură – Completați scrisoarea folosind șablonul
// Opțiuni:
// E-mail de trimis - -
// Text - -
Procedură Completați o scrisoare folosind un șablon(E-mail de trimis, Text ) Export
//…
Sfârșitul procedurii

Sistemul creează un șablon de comentariu în care trebuie să inserați tipuri de parametri și explicații.

Apoi puteți utiliza indicația extinsă când scrieți cod.

4. Creați o procesare de alertă

Această comandă devine disponibilă în meniul contextual când cursorul este plasat pe un nume de metodă urmat de o paranteză de deschidere.

Mai mult, acestea sunt metode precum Afișează întrebarea(),Afișați avertisment(), ShowNumberEnter()și alți analogi de blocare ai metodelor modale.

Să ne uităm la un exemplu. Să începem să scriem un handler de comandă client, să setăm cursorul la metoda întâlnită Afișează întrebarea(), apelați comanda „Creare alert handler”:

&OnClient
Procedură Completați Materiale(Echipa)
Afișează întrebare (
Sfârșitul procedurii
Ca rezultat, sistemul va genera următorul cod de program:
&OnClient
Procedură Completați Materiale(Echipa)
Afișați întrebare (Nou DescriereAlerte(„Completați Materialele Finalizare”, ThisObject ));
Sfârșitul procedurii
&OnClient
Procedură Completați Materiale Finalizare(Întrebare Rezultat, Opțiuni suplimentare) Export
Sfârșitul procedurii

5. Convertiți apelul modal

Această comandă convertește fragmentul de cod care conține metoda modală în omologul său asincron. Să ne uităm la câteva exemple.

Să transformăm apelul la metoda Warning():

&OnClient
Procedură NewHandler()
A = 1;
Avertisment („Text”);
A = 2;
Sfârșitul procedurii // NewHandler()

După aplicarea comenzii specificate, codul programului va lua următoarea formă:

&OnClient
Procedură NewHandler()
A = 1;
ShowWarning(Nou DescriereAlerte(„NewCompletionHandler”, ThisObject ),
"Text" );
Sfârșitul procedurii
&OnClient
Procedură NewHandlerCompletion(Opțiuni suplimentare) Export
A = 2;
Sfârșitul procedurii

Să complicăm exemplul. Luați în considerare utilizarea unei funcții modale și a unui operator condiționat:

&OnClient
Procedură NewHandler()
Răspuns = Întrebare (,
Modul dialogÎntrebare.DaNu);
Dacă Răspuns = Cod de returnare dialog.Da Apoi
//algoritm de umplere
EndIf ;
Sfârșitul procedurii

După conversia apelului modal obținem:

&OnClient
Procedură NewHandler()
Răspuns = Nedefinit ;
Afișați întrebare (Nou DescriereAlerte(„NewCompletionHandler”, ThisObject ),
„Partea tabulară va fi ștearsă. Continua?", Modul dialogÎntrebare.DaNu);
Sfârșitul procedurii
&OnClient
Procedură NewHandlerCompletion(Întrebare Rezultat, Opțiuni suplimentare) Export
Raspuns = Întrebare Rezultat;
Dacă Răspuns = Cod de returnare dialog.Da Apoi
//algoritm de umplere
EndIf ;
Sfârșitul procedurii

Trebuie subliniată în fragmentul rezultat inițializarea variabilei Răspuns.

6. Convertiți în procedură asincronă

În exemplele discutate mai sus, metodele care aveau omologii lor asincron au fost convertite. De exemplu, Întrebare()Și Afișează întrebarea(), Avertizare()Și Afișați avertisment().

Cu toate acestea, dacă un apel modal este localizat în interiorul unei proceduri, care la rândul său este situat în interiorul unei alte proceduri, atunci întregul apel al procedurii cu o metodă modală în interior va fi modal.

Aceasta înseamnă că trebuie înlocuit cu un „analogic asincron”, dar nu cu cel care există în limbajul încorporat, ci cu propria noastră metodă dezvoltată.

O altă comandă din submeniul „Refactorizare” este destinată acestui lucru – „Convertire în procedură asincronă”. Să explicăm cu exemplul unei proceduri care apelează o altă procedură cu o funcție modală în interior:

&OnClient
Procedură NewHandler()
A = 1;
ImbricatProcedure();
A = 2;
Sfârșitul procedurii &Pe client
Procedură ImbricatProcedure()
Avertisment („Text”);
Sfârșitul procedurii

Plasați cursorul pe declarația procedurii NedProcedure(), convertim într-o procedură asincronă. Sistemul ne construiește următorul cod:&OnClient
Procedură NewHandlerCompletion(Rezultat, Opțiuni suplimentare) Export
Alertă = ;
A = 2;
Executați procesarea alertelor(Alerta);
Sfârșitul procedurii &Pe client
Procedură ImbricatProcedure(Valoarea alertei)
Avertisment („Text”);
Executați procesarea alertelor(Alerta);
Sfârșitul procedurii

Vă rugăm să rețineți metoda adăugată de sistem Executați procesarea alertelor(), care este folosit în implementarea procedurilor care pot deschide ferestre de blocare în interior, dar trebuie să returneze rezultatul acestora la procedurile de apelare.

Trebuie amintit că sarcina imediată de conversie la o procedură asincronă este de a converti secvența de apeluri a procedurii selectate într-o formă asincronă, dar apelurile situate în procedura în sine nu sunt modificate.

De aceea metoda Avertizare() nu a fost înlocuit. Acest lucru trebuie făcut după conversia într-o procedură asincronă, apelând separat comanda „Convertire apel modal”.

Dacă în fragmentul de cod original pe linia care conține Avertizare(), executați comanda „Convertire apel modal”, sistemul vă va întreba:

Rezultatul va fi următorul:

&OnClient
Procedură NewHandler(Valoarea alertei)
A = 1;
ImbricatProcedure(Nou DescriereAlerte(„NewCompletionHandler”,
ThisObject , New Structure („Alert”, Alert )));
Sfârșitul procedurii &Pe client
Procedură NewHandlerCompletion(Rezultat, Opțiuni suplimentare) Export
Alertă = Opțiuni suplimentare.Notificare;
A = 2;
Executați procesarea alertelor(Alerta);
Sfârșitul procedurii &Pe client
Procedură ImbricatProcedure(Valoarea alertei)
ShowWarning(Nou DescriereAlerte(„NestedProcedureCompletion”,
ThisObject, New Structure („Notificare”, Notificare )), „Text”);
Sfârșitul procedurii
&OnClient
Procedură ImbricatProcedure Completare ( Opțiuni suplimentare) Export
Alertă = Opțiuni suplimentare.Notificare;
Executați procesarea alertelor(Alerta);
Sfârșitul procedurii

7. Alocați unei proceduri asincrone

Această comandă convertește secțiunea evidențiată a codului într-o procedură sau funcție, în timp ce conversia metoda evidențiată într-o metodă asincronă.

Spre deosebire de paragraful anterior, această comandă este „compozită”: mai întâi, secțiunea de cod selectată este transferată într-o nouă procedură, al cărei nume îl introduce utilizatorul în caseta de dialog.

Apoi efectuează aceiași pași ca și cum utilizatorul ar face clic dreapta pe titlul procedurii nou create și apoi face clic pe Conversie în procedură asincronă.

8. Găsiți Apeluri pentru modulul modal

Comenzile descrise mai sus funcționează cu o singură metodă sau cu o secțiune selectată de cod.

Au fost implementate proceduri care procesează întregul modul, de exemplu, căutarea apelurilor modale în întregul modul.

Liniile de cod găsite vor fi afișate în fereastra cu rezultatele căutării:

Pentru marire, click pe imagine.

9. Convertiți apelurile modulului modal

Această comandă efectuează transformări într-un modul deschis, dar numai acele apeluri care nu necesită intervenția dezvoltatorului.

De asemenea, în meniul principal există o comandă (Configuration – Refactoring – Analyze modal configuration calls).

De asemenea, caută apeluri modale, numai în întreaga configurație, verifică dacă apelurile modale pot fi convertite automat.

Pentru marire, click pe imagine.

Concluzie

În concluzie, în ordine cronologică, vom nota pe scurt ce caracteristici suplimentare utile a dobândit configuratorul:

  • Există liste de marcaje în textele modulelor care pot fi salvate între sesiunile de lucru (8.3.6+)
  • În cazul actualizării dinamice, nu a fost nevoie să reporniți configuratorul când lucrați în versiunea client-server a bazei de informații (8.3.7+)
  • A fost implementată capacitatea de a dezvolta configurații pentru OS X 10.8 și versiuni ulterioare (8.3.7+). Acum, atât configuratorul, cât și aplicația client (clienți grosi și subțiri) sunt disponibile în acest sistem de operare.
  • Operațiile care pot fi efectuate în modul batch au fost extinse semnificativ (8.3.8+). Datorită acestui fapt, procesul de actualizare automată a configurației este simplificat semnificativ
  • A fost implementat un utilitar de consolă administrativă, cu ajutorul căruia a devenit posibilă corectarea unora dintre problemele care apar cu baza de informații fără a lansa configuratorul (8.3.8+)
  • S-a adăugat funcționalitate pentru verificarea problemelor de conectare a extensiei la configurație. Anterior, nu exista o astfel de funcționalitate, iar diagnosticele erau afișate în fereastra de mesaje atunci când extensia a fost conectată (8.3.9+)
  • A fost implementat suportul pentru configuratorul pe 64 de biți. Această caracteristică a făcut posibilă eliminarea problemelor legate de memorie insuficientă pentru operațiunile de comparare și îmbinare la actualizarea configurației și a altor operațiuni care necesită mult resurse (8.3.9+)
  • Prima deschidere a unui formular gestionat în configurator a fost accelerată semnificativ (8.3.9+)
  • Acum este posibil să încărcați parțial configurația editată în fișiere XML. Acum puteți descărca doar acele obiecte care s-au schimbat de la ultima descărcare. Acest lucru a accelerat semnificativ procesul de încărcare în fișiere XML atunci când se fac modificări la configurații mari (8.3.10+)
  • Capacitate îmbunătățită de a combina module, luând în considerare locația metodelor în zonele specificate de instrucțiunile preprocesorului (8.3.10+)
  • Viteza operațiunilor de dezvoltare utilizate frecvent a fost crescută (8.3.11).

În plus, dezvoltatorii platformei îmbunătățesc performanța și ergonomia configuratorului de la lansare la lansare, așa că vă recomandăm, dacă este posibil, să dezvoltați pe platforma versiunilor curente.

Deci, să trecem mai departe - în articolul următor vom reveni la programare și vom examina conceptul de context de cod de program.


Acest articol este un anunț despre noi funcționalități.
Nu este recomandat să folosiți conținutul acestui articol pentru a afla funcționalități noi.
O descriere completă a noii funcționalități va fi furnizată în documentația pentru versiunea corespunzătoare.
O listă completă a modificărilor din noua versiune este furnizată în fișierul v8Update.htm.

Implementat în versiune8.3.12.64 platformă mobilă.

Am implementat o nouă tehnologie - un client mobil. Vă permite să creați aplicații pentru dispozitive mobile care combină o interfață convenabilă a platformei mobile și lucrul online cu baza de informații, similar cu un client subțire.

Scenarii de lucru mobil

Până de curând, platforma 1C:Enterprise oferea singura tehnologie cu care se putea lucra cu aplicațiile sale folosind dispozitive mobile. Aceasta este o platformă mobilă.

Această tehnologie vă permite să creați aplicații mobile specializate off-line care au o interfață mobilă convenabilă și funcțională. Aplicațiile mobile sunt dezvoltate pentru a rezolva probleme specifice mobile și sunt optimizate maxim pentru acestea din punct de vedere al arhitecturii și al interfeței. Astfel de aplicații implementează scenarii de lucru mobile și sunt convenabile pentru a lucra atât pe tablete, cât și pe smartphone-uri.

În arhitectura lor, astfel de aplicații sunt foarte asemănătoare cu versiunea de fișier a sistemului 1C:Enterprise. Dispozitivul mobil are propria sa bază de date; „în interiorul” aplicației mobile există atât un client care asigură interacțiunea cu utilizatorul, cât și un server care asigură interacțiunea cu baza de date.

Astfel de aplicații mobile pot interacționa cu aplicația „principală” instalată în birou. Dar aceasta nu este o interacțiune online, ci un schimb periodic de date cu back office. Principala activitate în aplicația mobilă se desfășoară offline. Și când apare o conexiune la Internet, datele sunt sincronizate.

Astfel, platforma mobilă este potrivită pentru dezvoltarea locurilor de muncă autonome pentru angajații care se află în afara companiei și nu au o conexiune de încredere la Internet la birou. Cu toate acestea, astfel de stații de lucru au de obicei o funcționalitate limitată, mai mică decât cea a aplicației „principale”. În plus, nu oferă interacțiune online cu baza de informații.

Se pare că o gamă semnificativă de probleme nu este acoperită, având următoarele trăsături caracteristice:

  • Interacțiunea cu baza de informații trebuie efectuată online;
  • Toate funcționalitățile soluției de aplicație „principale”, chiar și una atât de mare precum, de exemplu, „1C:ERP Enterprise Management” ar trebui să fie disponibile pe un dispozitiv mobil;
  • Interfața ar trebui să ofere o funcționare confortabilă pe orice dispozitiv mobil cu orice dimensiune și locație a ecranului.

Client mobil

Pentru a rezolva această clasă de probleme, am dezvoltat un client mobil. Clientul mobil este un client subțire pentru dispozitivele mobile care are o interfață similară cu platforma mobilă. Distribuția clientului mobil conține toate fișierele executabile necesare din care dezvoltatorul poate construi o aplicație pentru un dispozitiv mobil în același mod în care aplicațiile mobile sunt construite de pe o platformă mobilă.

O astfel de aplicație, pe de o parte, poate interacționa direct cu un cluster de servere 1C:Enterprise în același mod ca un client subțire. Pe de altă parte, clientul mobil asigură transformarea automată a formularelor, descrise declarativ în configurație, într-o interfață similară cu interfața platformei mobile.


Aranjează automat formularele dezvoltate pentru versiunea desktop a 1C:Enterprise astfel încât să asigure ușurința în utilizare pe ecranele mici ale telefoanelor mobile la un nivel acceptabil.


Desigur, pentru ca această transformare să se realizeze și mai bine, este necesar să specificați câteva proprietăți noi ale elementelor de formulare special pentru clientul mobil și să scăpați de unele soluții de interfață speciale și non-standard. Adică, este necesară o reelaborare a soluției aplicației în mod specific pentru clientul mobil. Dar această reluare este mult mai simplă decât crearea unei aplicații mobile personalizate, cu funcții complete.

Utilizatori potențiali

În opinia noastră, această tehnologie va fi solicitată în acele implementări în care este necesar accesul online la sistem de pe dispozitive mobile. Astfel că datele introduse pe un dispozitiv mobil intră direct în baza de date „comună”, ocolind pașii intermediari de sincronizare.

De asemenea, clientul mobil va fi solicitat în companiile mici care nu au nici buget, nici timp pentru a dezvolta aplicații mobile specializate. Într-adevăr, conform estimărilor noastre, cea mai dificilă etapă a dezvoltării aplicațiilor mobile este tocmai crearea unui sistem de schimb de date.


În plus, clientul mobil va fi util utilizatorilor de servicii bazate pe tehnologia 1Cfresh. Acestea sunt serviciile 1Cfresh.com și Accounting Services, susținute de 1C, precum și orice alte servicii implementate folosind această tehnologie.

Funcționalitate

Dacă comparăm funcționalitatea unui client mobil cu ceea ce poate face un client subțire, atunci există nu numai limitări, ci și avantaje.

Un avantaj important al clientului mobil este că acesta conține toată funcționalitatea platformei mobile, determinată de dispozitivele folosite în sine. Adică, permite, de exemplu, să faci fotografii, să formezi numărul unui abonat, să primești mesaje PUSH și multe altele.

Un alt avantaj al clientului mobil este că funcționează nu numai cu versiunea serverului pentru care a fost construit. Acesta va funcționa cu aproape orice versiune a serverului până când va avea loc o schimbare semnificativă în protocolul de comunicație sau arhitectura platformei. Am făcut acest lucru, deoarece publicarea aplicațiilor mobile este un proces destul de laborios și de timp, care este aproape imposibil de finalizat simultan cu transferul unui cluster de servere pe o nouă versiune a platformei.

Dacă vorbim despre limitări, cea mai evidentă dintre ele este că clientul mobil interacționează cu clusterul de servere doar prin protocolul HTTP (HTTPS).

O altă limitare, totuși, în ceea ce privește platforma mobilă, este inaccesibilitatea unor obiecte de limbaj încorporate și a unor elemente de interfață. Dar vom încerca să minimizăm aceste diferențe pe măsură ce clientul mobil se dezvoltă.

Automatizarea construcției interfeței formularului

La crearea clientului mobil, am acordat foarte multă atenție să ne asigurăm că adaptarea configurației pentru clientul mobil necesită un efort minim. Am dezvoltat mai multe tehnologii și abordări pentru a ne asigura că formele mari concepute pentru versiunea desktop se adaptează automat la micile ecrane ale dispozitivelor mobile.

De exemplu, am constatat că formele mari tind să aibă un număr mic de elemente importante. Adică astfel de elemente cu care lucrăm în mod constant. Și, în același timp, conțin multe elemente mai puțin importante la care se lucrează din când în când.

De exemplu, elementele importante sunt un tabel de listă dinamic sub forma unei liste, un document tabelar sub forma unui raport. Coloanele importante sunt, de exemplu, coloanele „Nume” și „Data”.

În consecință, pentru a asigura un nivel suficient de confort pentru lucrul cu formularul, clientul mobil oferă mai mult spațiu elementelor importante din formular și oferă mai puțin spațiu elementelor mai puțin importante, punându-le deoparte, de exemplu, într-un grup pliabil. .

În al doilea rând, clientul mobil extinde grupurile orizontale pe verticală dacă acestea nu se potrivesc cu lățimea ecranului. Pe dispozitivele mobile nu este obișnuit și incomod să derulați formularul pe orizontală, așa că această soluție este destul de convenabilă și justificată.

Adaptarea configurațiilor la clientul mobil

În ciuda tuturor automatizărilor, va fi încă necesar un efort din partea dezvoltatorului de configurație pentru a adapta soluția aplicației la clientul mobil.

Fără a intra în detalii, putem spune că toate astfel de îmbunătățiri se încadrează în două direcții principale.

Primul este de a scăpa de soluții speciale și specifice de interfață, bazându-se mai mult pe aspectul automat al formularelor realizat de platformă pe baza informațiilor despre tipul de date. Astfel de soluții specifice pot fi dimensiuni de câmp fixe, grupări orizontale de elemente rigid stabilite și altele asemenea.

O altă direcție este de a solicita clientului mobil informații suplimentare despre elementele formularului. Am învățat clientul mobil să recunoască cu ușurință elementele în forme standard sau mici și să determine importanța acestora. Dar dacă formularul este nestandard sau mare, atunci va fi util să indicați manual care dintre elementele sale sunt mai mult și mai puțin importante. Pentru a face acest lucru, puteți utiliza noua proprietate a elementelor - Importanța la afișare: ridicat, normal, scăzut etc.

De asemenea, probabil va fi necesar să se analizeze acele locuri din soluția de aplicație în care algoritmii de operare pentru clientul subțire și clientul web diferă. Acest lucru trebuie făcut pentru a indica ce algoritm va fi utilizat atunci când lucrați în clientul mobil. Pentru a face acest lucru, am adăugat o nouă directivă de compilare MobileClient.

Distributie, asamblare si publicare

Un client mobil, în esență, este un fel de „shell” care poate lansa una sau alta soluție de aplicație. În același timp, funcționalitatea soluțiilor de aplicație lansate poate diferi foarte mult una de cealaltă. În același timp, magazinul de aplicații AppStore cere ca o aplicație publicată în magazin să nu-și schimbe semnificativ funcționalitatea după publicare.

Prin urmare, nu publicăm clientul mobil ca o aplicație universală separată. Clientul mobil este furnizat cu platforma mobilă ca un set de fișiere executabile. Pe baza acestor fișiere, dezvoltatorul trebuie să construiască o aplicație care să ruleze pe un dispozitiv mobil. Procedurile de construire și publicare a aplicațiilor, atât pentru platforma mobilă, cât și pentru clientul mobil, sunt similare. Este folosit același instrument - un generator de aplicații mobile.

Pentru ca un client mobil publicat într-un magazin de aplicații să aibă funcționalitate fixă, la construirea lui, trebuie să specificați configurațiile specifice cu care va funcționa această aplicație. În timpul funcționării, clientul mobil verifică dacă este utilizată doar una dintre configurațiile specificate și fără modificări semnificative. Aceasta este o protecție specială pentru a se asigura că un client mobil care este publicat pentru anumite configurații nu poate funcționa cu alte configurații. După cum arată practica, este convenabil pentru utilizatori să aibă o aplicație mobilă să corespundă unei singure configurații sau configurații similare.



Acțiune