Extensii de configurare - cum să adăugați funcționalitate la o configurație standard fără a elimina suportul (video de 20 de minute). Schimbarea sau dezactivarea modului de compatibilitate Pentru ce sunt folosite extensiile?

Costul muncii și opțiuni pentru traduceri din diferite versiuni

Translație 8.1 → 8.2.13 Translație 8.2.13 → 8.2.16 Translație 8.2.16 → 8.3.10
preț, freacă. * 54.000 ₽ 12.000 ₽ 76.800 RUR

O listă cu toate modificările din diferite versiuni ale platformei este disponibilă la următoarele link-uri:
Pentru platforma 8.2:
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Înainte de a începe munca la traducerea în 8.3, aveți nevoie de:

Verificați modul de blocare controlată. Dacă se folosește „Automatic”, atunci când se migrează la 8.3, pot fi necesare costuri suplimentare pentru a trece la modul de blocare gestionat.
Dacă utilizați modul de compatibilitate cu 8.2.16 și o versiune ulterioară, trebuie să verificați dacă tabelele au fost restructurate
Determinați ce tipuri de clienți sunt utilizați (client subțire, gros, web)
Determinați dacă există mașini care rulează Linux

Traducerea configurației 8.1 → 8.2.13

Costul muncii: 54.000 de ruble.

Traducerea configurației 8.2.13 → 8.2.16 (inclusiv restructurare)

Schimbări cheie:
Modul de stocare a constantelor și setările registrelor de acumulare a fost schimbat. Fiecare obiect are propriul său tabel de bază de date
Implementarea mecanismului de blocare gestionată a fost reelaborată.
Pentru evenimentul de jurnal tehnologic „TLOCK”, proprietatea „Txt” este scrisă numai în modul de compatibilitate cu versiunea 8.2.13
Influența modului de depanare asupra vitezei de funcționare în modul 1C:Enterprise pentru clientul subțire, clientul gros, serverul și conexiunea externă a fost redusă.
Execuția unei interogări de forma „ValueType(Field1) = ValueType(Field2)” a fost optimizată dacă „Field1” și „Field2” conțin valori de tip referință.
Pentru câmpurile de formular gestionate care afișează atribute de tip complex, deschiderea listei de selecție rapidă a fost accelerată în cazurile în care tipul complex include tipuri de referință cu diferite setări de selecție rapidă.
Pentru noul registru informațional independent și neperiodic, indicele de dimensiune este grupat

Modificări care necesită modificări de configurare:

Când modul de compatibilitate este dezactivat, este necesar parametrul „Perioad” al metodei de gestionare a registrului de informații periodice „Get()”. În modul de compatibilitate cu versiunea 8.2.13 și versiunea 8.1, comportamentul este neschimbat (metoda poate fi folosită fără a specifica un parametru, dar rezultatul este nedefinit).
Când utilizați metodele „SetValue()” și „UseFromDataSource()” ale obiectului „DataLockElement” în același timp, este aruncată o excepție. În modul de compatibilitate cu versiunea 8.2.13, comportamentul nu s-a schimbat (valoarea setată de metoda „UseFromDataSource()” are prioritate).
Nu este acceptată stocarea valorilor de date care nu acceptă serializarea. În modul de compatibilitate, comportamentul nu s-a schimbat.
Dacă baza de date este bazată pe fișiere, atunci baza de informații trebuie convertită. După începerea conversiei, nu va fi posibilă lucrul cu această bază de informații cu versiunile anterioare ale platformei 1C:Enterprise 8. Dacă dezvoltarea se realizează folosind un depozit de configurare, trebuie să faceți o copie a depozitului înainte de a converti baza de informații

IMPORTANT. Pentru a obține efectul schimbării modului de compatibilitate, trebuie să faceți o restructurare prin intermediul configuratorului: „Administrare → Testare și corectare → Restructurare tabelele bazei de informații”.

Mai întâi este necesar să se efectueze restructurarea pe o bază de testare și să se măsoare timpul de execuție a acestei operațiuni.
Dacă utilizați o versiune de server 1C mai veche decât 8.2.19, de exemplu, versiunea 8.3, atunci pot apărea următoarele erori atunci când efectuați restructurarea:

În acest caz, trebuie să faceți următoarele:
Instalați o versiune separată de server 1C 8.2.19 și implementați baza de date care este investigată
Deschideți baza de date în configuratorul de pe serverul 1C versiunea 8.2.19, schimbați modul de compatibilitate la „Nu utilizați”
Restructurați tabelele bazei de informații
După ce restructurarea este finalizată, mutați baza de informații la versiunea originală a serverului 1C 8.3

Costul transferului configurației din modul de compatibilitate 8.2.13 în modul 8.2.16 (modul necompatibil când se utilizează platforma 8.2.16, 8.2.19 și modul de compatibilitate 8.2.16 când se folosește platforma 8.3) este 12.000 de ruble.

Un șablon de contract de muncă poate fi descărcat.

Traducerea configurației 8.2.16 → 8.3.10

Lucrarea de traducere a configurației include următoarele modificări de configurare:

1. Eliminați conflictele de nume de proprietate. Modificarea numelor variabilelor pentru a se potrivi cu noile proprietăți care au apărut în 1C:Enterprise 8.3.
2. Eliminați numele de imagini conflictuale. Redenumirea numelor imaginilor cu nume care se potrivesc cu numele din biblioteca de imagini.
3. Rafinarea codului la modificarea proprietăților structurii fixe. Înlocuirea indicației proprietăților unei structuri fixe cu re-crearea unei structuri fixe sau înlocuirea utilizării acesteia cu un tip similar de „Structură”.
4. Înlocuirea plasării valorilor neserializabile în stocarea temporară cu cod suportat în 1C:Enterprise 8.3.
5. Înlocuirea apelării metodei „Afișați” pentru detaliile formularului gestionat cu utilizarea proprietăților „CurrentElement”, „CurrentPage” și a metodei „Activate”
6. Înlocuiți numele obiectelor cu metadate mai lungi de 80 de caractere cu nume de 80 de caractere sau mai puțin pentru obiectele cu metadate
7. Redenumirea metodelor și proprietăților, conform metodologiei de migrare la versiunea 8.3.
8. Îmbunătățirea mecanismelor de lucru cu selecții, formatare condiționată, grupări și ordine în liste dinamice.
9. Rafinarea codului pentru interogări cu cuvântul cheie „REZULTATE GENERALE”, descărcat în
„Ocolirea rezultatului interogării. Prin grupare”, pentru a păstra logica anterioară de lucru.
10. Modificări ale numelor claselor de obiecte COM. Înlocuirea numelor „V82.COMConnector” cu „V83.COMConnector” și „V82.Application” cu „V83.Application”.
11. Refuzul în codul de program al evenimentului „Începutul selecției din listă” pentru câmpurile de introducere în modul de selecție dintr-o listă
12. Refuz în codul programului de la proprietatea „ChoiceList Button” pentru câmpurile de introducere prin setarea proprietății „Dropdown List Button”.
13. Modificarea codului pentru a lua în considerare modificarea tipului de valoare returnată de metoda contextului global „SafeMode()”
14. Modificarea codului pentru a ține cont de o modificare a rezultatului unei interogări pentru constante (la accesarea câmpului „Valoare” din tabelul de constante, dacă constanta stochează o valoare de tip „Depozitare valori”, „Identificator unic” sau „External DataSourceTableReference”.
15. Înlocuirea proprietății de configurare „MainRole” cu „MainRoles”
16. Refuzul proprietăților „Utilizator” și „Parolă” pentru obiectul „InternetProxy” și înlocuirea cu metodele „Set()”, „Utilizator()”, „Parolă()”.
17. Rafinarea codului pentru a suporta comanda „Afișare în listă”, conform metodei de trecere la versiunea 8.3.
18. Rafinarea codului pentru a menține logica anterioară a funcționării sistemului atunci când valoarea returnată a proprietății SystemInformation.OSVersion s-a schimbat,
19. Rafinarea codului pentru a menține logica anterioară a sistemului atunci când se refuză utilizarea enumerarii sistemului OptionOpenWindow, care nu mai este disponibilă în versiunea 8.3.
20. Rafinarea codului ținând cont de refuzul utilizării ferestrelor modale.
21. Îmbunătățirea codului pentru suportul clientului web și anume refuzul apelurilor pe server și deschiderea ferestrelor în „Înainte de închidere”, refuzul apelurilor la server în „La închidere”.
22. Îmbunătățirea codului pentru a face posibilă utilizarea corectă a funcției RoleAvailable() atunci când se transmite funcția ca parametru unui rol lipsă.
23. Pentru o aplicație gestionată: începând de la versiunea 8.3.8 în handlerele de evenimente ale unei aplicații gestionate BeforeSystemShutdown, WhenSystemShutdown, precum și în handlerele de evenimente ale unui formular gestionat care se află în modul de închidere, BeforeClosing, WhenClosing, Este interzisă deschiderea ferestrelor și efectuarea oricăror apeluri pe server. Configurația trebuie îmbunătățită, astfel încât formularele să poată fi închise corect - fără apeluri de server.
24. Conflict de nume de variabilă: nu puteți utiliza numele de variabilă FormParameters într-un modul de formular. Prin urmare, este necesar să se modifice toate modulele de formulare gestionate care utilizează variabile numite FormParameters prin redenumirea acestor variabile.

Pretul pentru aceste lucrari este preliminar si valabil pentru majoritatea configuratiilor. Înainte de a începe lucrul la încheierea unui contract, verificăm configurația și După verificare, confirmăm prețul și condițiile de lucru. Verificarea este necesară deoarece configurațiile pot fi foarte diferite, inclusiv rescrise puternic.

Costul muncii: 76.800 de ruble.

Un șablon de contract de muncă poate fi descărcat.

Costul transferului configurației în modul de compatibilitate cu 8.3.10 poate fi a crescut, Dacă:
Configurația folosește formulare gestionate
Este necesar să se renunțe la utilizarea modalității
Este necesar să se mențină funcționalitatea configurației în sistemul de operare Linux

Am lansat o nouă versiune a panoului de telefonie pentru 1C.

  • versiune 1.2.24.10 Pentru comun aplicatii
  • versiune 1.4.26.17 Pentru a reușit aplicatii

În versiunea de lansare pentru o aplicație gestionată, a devenit posibilă încorporarea unui panou de telefonie cu modificări minime configurația de bază folosind mecanism de expansiune configuratii.

Beneficiile utilizării extensiei

Extensia este foarte asemănătoare cu configurația obișnuită. Pentru a lucra cu acesta, se folosesc aceleași tehnici de lucru ca și în configurația obișnuită. Extensiile sunt create în primul rând pentru a face mai ușor să faceți modificări în program. Nu mai trebuie să inserați „bucăți de cod” în anumite module și să adăugați noi obiecte de metadate, trebuie doar să adăugați o extensie la configurație.

Un mare avantaj al folosirii extensiilor este actualizare automata configurația principală. Acum nu este nevoie să schimbați setările de asistență pentru o configurație tipică.

Caracteristici de încorporare a unui panou de telefonie pentru 1C

Astfel de caracteristici au devenit disponibile extensiilor pentru platformă începând de la versiune 8.3.9.1818 . Deci, pentru a profita de acest lucru, am dezactivat modul de compatibilitate pentru extensie de la versiune 8.3.9 nesuportată încă. În consecință, devine necesară dezactivarea modului de compatibilitate pentru configurația principală, altfel va apărea o eroare: " Modul de compatibilitate al extensiei de configurare este mai mare decât modul de compatibilitate al configurației principale".

2) Adăugăm un rol la configurația principală MIKO_Softphone, pentru care ne retragem toate drepturile.

La adăugarea unui nou obiect de metadate, în acest caz un rol, este necesară actualizarea directorului MetadateObjectIdentifiers. Când am adăugat acest rol la extensie, configurațiile standard l-au ignorat, adică la actualizarea directorului MetadataObjectIdentifiers rolul nu a apărut în el. Din această cauză, mecanismul de profil al setărilor panoului de telefonie nu a funcționat corect și a apărut eroarea: " Identificatorul obiectului de metadate pentru rolul MIKO_Softphone nu a fost găsit".

Mai mult, această situație nu a apărut în toate configurațiile, ci în „Gestionarea comerțului, 11.2.3.218”Și „Automatizare complexă, 2.0.3.222” Nu au existat probleme cu rolul când a fost adăugat la extensia în sine. Pentru a oferi o oarecare versatilitate soluției noastre și pentru a asigura o funcționare fără probleme în majoritatea configurațiilor pe care le suportăm, am decis să adăugăm rolul MIKO_softphoneîn configurația principală și împrumutați-o în extensie, apoi implementați setările pentru acest rol în extensie.

O caracteristică foarte importantă este faptul că, dacă odată instalată extensia noastră, doriți să încorporați panoul conform instrucțiunilor noastre vechi, trebuie să dezactivați extensia și să eliminați rolul MIKO_softphone. Dacă doriți să utilizați din nou extensia, trebuie mai întâi să adăugați rolul și apoi să adăugați extensia.

Să rezumam

Chiar și prin includerea capacității de a schimba configurația de bază și a aduce modificări minime la configurație, am simplificat procesul de încorporare a unui panou de telefonie. Acum nu trebuie să faceți modificări modulelor aplicației gestionate, să adăugați procesare și subsisteme la configurație sau să configurați roluri. Extensia va face toate acestea pentru tine! Vom continua să îmbunătățim procesul de încorporare a unui panou de telefonie pentru 1C!

Puteți găsi instrucțiuni pentru încorporarea unui panou de telefonie pentru 1C folosind mecanismul de extensie.

Puneți întrebările dvs. prin intermediul formularului de feedback.

© 2019. MIKO LLC Toate drepturile rezervate.

A fost lansată o nouă versiune a platformei 8.3.11, care vă permite să adăugați și să modificați obiecte de metadate prin extensie. Putem implementa acum orice îmbunătățiri fără a elimina configurația din suport? Merită să promiți unui client munți de aur fără nicio consecință?

În primul rând, trebuie să fii conștient de limitările pe care le au extensiile.

Limitarea obiectelor create

Momentan puteți crea:

  • Directoare
  • Documentație
  • Registre de informații
  • Schimb de planuri

Puteți adăuga detalii la:

  • Directoare
  • Documentație

Cu ce ​​ajungem? Nu toate tipurile de obiecte de metadate pot fi adăugate. Cele mai comune și populare, dar încă nu toate. În plus, noi dimensiuni și resurse nu pot fi adăugate registrelor de informații. Puteți crea doar un registru complet nou.

Funcționalitatea extensiilor depinde de modul de compatibilitate al configurației la care se aplică extensia.

Modul de compatibilitate 8.3.8- puteți schimba doar formele obiectelor și modulele acestora, puteți adăuga propriile rapoarte și procesare.

Modul de compatibilitate 8.3.10- puteți schimba modulele generale, modulele obiect și manager, rolurile, utilizați directivele „Înainte”, „După”, „În loc” pentru orice module.

Modul de compatibilitate „Nu utilizați”- puteți folosi toate funcționalitățile extensiilor, inclusiv adăugarea de noi obiecte.

În acest moment, standardul UT 11.3 are modul de compatibilitate 8.3.8. În UT 11.4, modul de compatibilitate este 8.3.10, adică, de exemplu, pentru UT, cea mai mare parte a funcționalității de extensie nu este disponibilă, inclusiv crearea de obiecte de metadate.

Acest lucru ar părea să ridice întrebarea: de ce să nu dezactivați pur și simplu rădăcină, să setați modul de compatibilitate la „Nu folosiți” și să utilizați în liniște extensiile? La schimbarea modului de compatibilitate, comportamentul formularelor și al rezultatelor interogării se poate modifica, de exemplu. comportamentul sistemului în ansamblu. Se recomandă insistent să nu schimbați modul de compatibilitate fără a testa mai întâi. Dar este evident că pare posibil să se testeze integral (sau măcar parțial documentele folosite) o întreagă soluție de aplicație. Prin urmare, nu ar trebui să utilizați această opțiune.

Când conectați o extensie la o configurație standard și împrumutați obiecte standard, extensia controlează modul de compatibilitate al configurației principale și tipurile de obiecte împrumutate și detaliile acestora. Dacă proprietățile monitorizate nu se potrivesc, extensia este dezactivată și nu funcționează până când cauza este eliminată. Adică, cu o actualizare majoră, există o probabilitate mare de a schimba cel puțin una dintre proprietățile controlate și de a provoca pierderea funcționalității extensiei.


În plus, dacă modificările sunt semnificative, multe proceduri și funcții ale configurației standard sunt înlocuite, va fi necesar să le monitorizați cu atenție și, dacă este necesar, să le aduceți în conformitate cu configurația standard, păstrând modificările efectuate anterior.


În cazurile de mai sus, veți avea în continuare nevoie de ajutorul unui programator și, eventual, de timp semnificativ pentru modificare (dar tot mai puțin decât atunci când actualizați o configurație care a fost eliminată din suport).

concluzii

  • Noua versiune a platformei a oferit noi oportunități de utilizare a extensiilor, a devenit posibilă adăugarea de obiecte de metadate, dar, în ciuda acestui fapt, funcționalitatea are anumite limitări.
  • Modul de compatibilitate al configurației la care se aplică extensia limitează foarte mult capacitățile extensiei; schimbarea modului de compatibilitate nu este recomandată.
  • Actualizările mari necesită în continuare atenția dezvoltatorului, deoarece există o probabilitate mare de modificare a proprietăților controlate.

În acest articol, îmi propun să luăm în considerare ce este o „extensie de configurare”, cum să adăugați o extensie sau să o dezactivați. Începând cu versiunea 1C 8.3.6.1977 a fost introdus în platformă un nou mecanism - extensii de configurare. În primul rând, o mică teorie.

În 1C, extensiile sunt ceva de genul configurațiilor paralele care sunt combinate automat cu configurația principală a furnizorului. Mai mult, în extensii puteți adăuga atât propriile obiecte, cât și împrumutați obiecte din configurația principală.

Pentru ce sunt extensiile?

În primul rând, extensiile sunt create pentru a facilita efectuarea modificărilor programului. Adică, dacă utilizatorii cer să adauge vreo funcționalitate, atunci înainte de apariția extensiilor, programatorii trebuiau să elimine configurația din suport complet și să schimbe configurația standard.

Eliminarea de la asistența completă implică o serie de inconveniente:

  • dispare posibilitatea actualizării automate, ceea ce duce cel puțin la o creștere a timpului necesar;
  • este necesar un specialist cu înaltă calificare care deservește programul;
  • dacă s-au făcut modificări obiectelor standard ale unei configurații standard, atunci în timpul unei actualizări acestea pot dispărea, adică pot fi înlocuite din nou cu cele standard de la furnizor.

Când utilizați extensii, când faceți modificări, programatorul nu va atinge configurația standard. Toate modificările vor fi făcute folosind extensii, care (cum am scris mai sus) sunt, de asemenea, configurații. În acest fel, configurația principală va rămâne pe deplin suportată.

După actualizarea configurației principale, dacă în noua ediție există modificări la un obiect care a fost modificat anterior de extensie, atunci modificările vor fi în continuare preluate din extensie. Adică, extensiile au prioritate mai mare decât configurația principală.

Video - extensii în 1C în 45 de minute

Obțineți 267 de lecții video pe 1C gratuit:

Un exemplu de adăugare a unei extensii la 1C

Pentru a arăta ce este o extensie, este mai bine să dați un exemplu de creare a acesteia în configuratorul 1C.

În configurator, accesați meniul „Configurare” și selectați „Extensii de configurare”. Se va deschide o fereastră cu o listă de extensii (dacă există). Faceți clic pe butonul „Adăugați” și adăugați o nouă extensie. Acum puteți deschide configurația extensiei:

După cum puteți vedea, configurația extensiei are exact aceeași structură ca cea principală. Doar că inițial este complet curat, fără obiecte.

Am scris recent un articol despre cum să-l faci singur. Folosind exemplul ei, vreau să îl fac încorporat folosind o extensie.

În procesare am un câmp cu un link către directorul „Organizații”. De aceea am nevoie de acest ghid. Dar nu vom crea un nou director „Organizații”, mai ales că platforma nu va permite acest lucru. Este imposibil ca o configurație de extensie să conțină obiecte cu același nume ca obiectele din configurația principală.

Prin urmare, vom împrumuta cartea de referință din configurația principală:

Acum faceți clic dreapta pe „Procesări” și selectați „Inserați procesare externă, raportați...” Astfel, vom adăuga o nouă procesare la configurația extensiei. Dacă utilizați procesarea mea, atunci redenumiți-o imediat, deoarece configurația principală are deja o procesare cu același nume.

Ei bine, atingerea finală. Doresc ca procesarea mea să fie reflectată în meniul Administrare. Pentru a face acest lucru, vom împrumuta subsistemul cu același nume din configurația principală. Nu uitați să indicați în procesare că aparține acestui subsistem.

Aceasta este structura cu care am venit:

Să vedem ce avem. Actualizăm configurația bazei de date și lansăm programul în 1C: modul Enterprise și mergem la meniul „Administrare”. Da, aproape am uitat, configurația extensiei trebuie să fie închisă, altfel programul nu va porni: