1C Cloud. Recomandări pentru pregătirea extensiilor de configurare, rapoarte suplimentare și procesare
Ghidul dezvoltatorului / Pentru proprietarii de conturi în 1C Cloud / 1C Cloud. Recomandări pentru pregătirea extensiilor de configurare, rapoarte suplimentare și procesareRecomandări pentru pregătirea extensiilor de configurare, rapoarte suplimentare și procesare
Acest articol oferă sfaturi despre cum ar trebui pregătite extensiile de configurare, rapoartele suplimentare și procesarea pentru a fi utilizate în serviciu, pentru a se asigura că sunt de calitate adecvată și pot fi auditate rapid.
Conținut
1. Recomandări pentru pregătirea extensiilor de configurare
2. Recomandări pentru întocmirea de rapoarte suplimentare și prelucrare
3. Cum să utilizați metodele interzise în Safe Mode
5. Prelucrare și extensii universale
6. Utilizarea fișierelor temporare
1. Recomandări pentru pregătirea extensiilor de configurare
1.1. Principalele motive de refuz
În extensiile de configurare care nu sunt auditate, în majoritatea cazurilor se constată că:
- Extensia nu este destinată să ruleze în modul sigur.
- Extensia nu este pregătită pentru utilizare în serviciu.
- Versiunea extensiei nu este specificată.
- Extensia de configurare care extinde datele este utilizată în configurațiile care nu acceptă încă această funcție.
1.2. Caracteristici ale extensiilor de configurare
- O extensie trebuie să aibă un nume unic și o versiune a extensiei specificate.
- Dezvoltarea trebuie efectuată pe aceeași versiune a platformei.
- Este necesară adaptarea la modul securizat și la modul de partajare a datelor.
1.3. Informații utile
- Este necesar să se respecte cerințele specificate în Ghidul dezvoltatorului 1C:Enterprise 8.3: capitolul „Extensie de configurare” (consultați urmați linkul).
- Dacă extensia conține formulare, dezvoltatorul trebuie să asigure funcționalitatea acestora în clientul web în toate browserele web acceptate de platforma tehnologică 1C:Enterprise 8.
2. Recomandări pentru întocmirea de rapoarte suplimentare și prelucrare
2.1. Principalele motive de refuz
În rapoartele și procesările suplimentare care nu au fost auditate, în majoritatea cazurilor se constată că:
- Raportul sau procesarea suplimentară este conectată incorect la BSP.
- Raportarea sau procesarea suplimentară nu este destinată să fie efectuată în modul securizat.
- Rapoartele sau procesarea suplimentară nu sunt pregătite pentru utilizare în serviciu.
- Există un apel incorect la raportare/procesare suplimentară din cod.
2.2. Conectarea unui raport/procesare suplimentar la BSP
Înregistrarea unui raport suplimentar sau procesare în infobază are loc pe baza parametrilor de înregistrare pe care raportul/prelucrarea îi furnizează. Acești parametri de înregistrare ar trebui formați sub forma unei structuri ca urmare a executării funcției Informații DESPRE PRELUCRAREA EXTERNĂa raportului/modulului de procesare :
O descriere a câmpurilor structurii parametrilor de înregistrare este dată în documentația BSPlink.
Parametrii de înregistrare includ un tabel de comenzi furnizat de raportul suplimentar (prelucrare suplimentară):
- pentru rapoarte/procesare suplimentare globale, aceste comenzi sunt plasate în interfața de comandă globală;
- pentru rapoarte/procesare suplimentare alocate, aceste comenzi sunt plasate în contextul obiectelor pentru care sunt destinate, iar obiectele destinație (o matrice de șiruri de nume de obiecte de metadate) trebuie specificate în parametrii suplimentari de înregistrare a raportului/procesării. .
Tipul raportului/prelucrării suplimentare și tipul de utilizare a comenzilor furnizate trebuie să corespundă intenției raportului/prelucrării suplimentare.
2.3. Accesarea raportării/procesării suplimentare din cod
Vă rugăm să rețineți că nu puteți accesa un raport/prelucrare suplimentară după nume, de exemplu:
<big>Procesare externă a documentelor în mod secvenţial</big>
Un raport/prelucrare suplimentară este conectat la o bază de informaţii cu un alt nume (identificator unic). Prin urmare, pentru a crea un apel către un raport/procesare suplimentar, ar trebui să definiți numele complet al raportului/procesării conectate în When CreatedOnServer handler după cum urmează:
<big>Object FullName = Form AttributesValue(„Object”).Metadata().FullName();</big>
Și apoi accesați raportarea/procesarea suplimentară după cum urmează:
<big>Numele complet al obiectului + „.Repostarea documentelor”</big>
2.4. Depanare raportare/procesare suplimentară
Când depanați un raport suplimentar sau procesați, nu îl deschideți prin meniul principal: Fișier — Deschideți și prin interfața subsistemului pentru rapoarte suplimentare și procesarea BSP.
Deschideți și verificați procesarea nu cu drepturi de administrator, ci cu setul de drepturi ale acelor utilizatori care vor folosi procesarea.
3. Cum să utilizați metodele interzise în Safe Mode
3.1. Modul sigur
Toate extensiile de configurare și rapoartele/prelucrarea suplimentară sunt efectuate în serviciu în modul sigur folosind profiluri de securitate.
Următoarele operațiuni sunt interzise în modul sigur:
- Executarea metodelor Execute() și Calculate()
- Modul privilegiat
- Lucrul cu componente externe
- Lucrul cu sistemul de fișiere, cu excepția fișierelor temporare
- Lucrul cu aplicațiile sistemului de operare
- Obiecte COM (codul de server poate rula pe Linux, nu putem garanta prezența obiectelor COM pe server)
- Acces la internet etc.
Mai multe detalii despre modul sigur pot fi găsite în documentația 1C:Enterprise urmați linkul.< / div>
3.2. Profiluri de securitate
Unele acțiuni interzise în modul sigur pot fi permise folosind Profiluri de securitate.
Un profil de securitate este un set de permisiuni definite în mod explicit pentru a efectua anumite acțiuni care pot fi atribuite bazelor de informații, extensiilor de configurare, rapoartelor suplimentare și procesării. Profilurile de securitate sunt stocate într-un cluster de servere 1C:Enterprise.
Profilurile de securitate sunt generate automat (dacă este necesar) pentru extensiile de configurare, rapoarte suplimentare și procesare încărcate în serviciu:
- pentru extensiile de configurare - pe baza solicitărilor de permisiuni pentru a efectua acțiuni nesigure specificate la încărcarea extensiei în serviciu, precum și a rezultatelor verificării automate a extensiei de configurare;
- pentru rapoarte suplimentare și procesare de configurare - pe baza solicitărilor de permisiuni pentru a efectua acțiuni nesigure specificate în funcția Informații DESPRE PROCESAREA EXTERNĂ a raportului sau procesării suplimentare.
Mai multe detalii despre profilurile de securitate pot fi găsite în documentația 1C:Enterprise prin link și în secțiuni Profiluri de securitate din capitolele „Configurarea și utilizarea subsistemelor la dezvoltarea unei configurații” și „Interfața de programare” din documentația Bibliotecii de subsisteme standard (BSL), consultați aici.
3.3. Ce metode nesigure pot și nu pot fi folosite
Următoarele operațiuni nesigure pot fi utilizate în extensiile de configurare, rapoarte suplimentare și procesări destinate utilizării în serviciul e-Cont.md:
- acces la directorul de fișiere temporare (citire și/sau scriere);
- acces la resursele de internet;
- modul privilegiat;
- acces la componentele externe incluse în configurație pentru care este dezvoltată extensia de configurare, raportul suplimentar sau procesarea.
Este interzisă utilizarea:
- acces la sistemul de fișiere (cu excepția accesului la directorul de fișiere temporare);
- accesul la obiectele COM (deoarece codul serverului poate rula pe Linux, nu putem garanta prezența obiectelor COM pe server);
- accesul la componente externe care nu fac parte din configurația pentru care este dezvoltată extensia de configurare, raportul suplimentar sau procesarea;
- aplicații ale sistemului de operare;
- instrumente de criptare pe partea serverului.
Rețineți că operațiunile nesigure sunt interzise numai pe server!
3.4. Solicitarea de permisiuni pentru extensiile de configurare
Dacă o extensie de configurare utilizează operațiuni care nu sunt permise în modul sigur, atunci când încărcați versiunea extensiei în serviciu, trebuie să specificați permisiunile necesare pentru a efectua operațiuni nesigure (pentru mai multe detalii, consultați articolul link):
Nu trebuie să solicitați permisiuni pentru a accesa componentele externe incluse în configurație, acestea vor fi acordate automat.
3.5. Solicitarea de permisiuni pentru rapoarte suplimentare și procesare
Dacă trebuie să-l utilizați într-un raport suplimentar sau în operațiuni de proces care nu sunt permise în modul sigur:
- Solicitați permisiunile necesare în funcția Informații DESPRE PROCESAREA EXTERNĂ a unui raport sau procesare suplimentară folosind apeluri de funcție:
<big>Se lucrează în modul sigur Permisiunea de a utiliza componente externe</big>
<big>Se lucrează în modul sigur Permisiunea de a utiliza resursa de internet</big>
- În funcția Informații DESPRE PRELUCRAREA EXTERNĂ a unui raport sau procesare suplimentară, specificați modul de operare al raportului sau procesării suplimentare Sigur.
4. Probleme de performanță
Extensiile de configurare, rapoartele suplimentare și procesarea nu ar trebui să provoace degradarea performanței serviciului. Prin urmare, interogările utilizate în limbajul încorporat trebuie să fie construite optim și să respecte standardele (pentru mai multe detalii, consultați aici și aici ). Motivele tipice pentru performanța suboptimă a interogărilor și metodele de optimizare a interogărilor sunt discutate în articolul 1C:ITS link.
O atenție deosebită trebuie acordată optimizării:
- conexiuni cu tabele virtuale, subinterogări (pot duce la o încetinire semnificativă a interogării);
- selecții cu „SAU”;
- interogări cu primirea datelor printr-un punct din câmpurile unui tip de referință compus (la executarea unei astfel de interogări, se va realiza o conexiune cu toate tabelele de obiecte incluse în tipul compus).
Forme frecvente de refuz:
- Interogarea nu este creată optim.
- Trebuie să urmați recomandările https://its.1c.ru/db/metod8dev/content/5842/hdoc.
Când scrieți extensii de configurare, raportare suplimentară și procesare, trebuie să evitați codul a cărui execuție poate duce la o creștere nerezonabilă a consumului de timp CPU. În primul rând, aceasta se referă la bucle „goale”:
5. Prelucrare și extensii universale
Ar trebui evitate extensiile de configurare generice și procesarea suplimentară, mai ales dacă pot modifica datele utilizatorului. Ar trebui create extensii și procesări care au ca scop rezolvarea unor probleme specifice. Extensiile și procesarea universală sunt periculoase din următoarele motive:
- utilizarea lor poate necesita un nivel ridicat de calificare a utilizatorului, iar acest lucru nu poate fi garantat;
- utilizatorul poate modifica detaliile obiectelor de serviciu sau ale obiectelor pe care nu a intenționat să le modifice;
- posibila încălcare a logicii de afaceri a soluției aplicației.
Forme frecvente de refuz:
- Nu putem permite utilizarea tratamentelor universale, deoarece utilizarea lor necesită un nivel ridicat de calificare a utilizatorilor și este imposibil să se garanteze această calificare.
6. Utilizarea fișierelor temporare
Când accesați fișiere temporare, trebuie să respectați cerințele standardelor descrise de link. În special, este incorect să scrieți:
<big>TempFile = "/tmp/temx.txt"</big>
Corect:
<big>TempFile = GetTemporaryFileName(„txt”)</big>
În acest caz:
- unicitatea numelui fișierului temporar este garantată;
- curățarea automată este efectuată atunci când fluxul de lucru este repornit.
De asemenea, este necesar să vă asigurați că fișierele temporare sunt șterse după utilizare.
Forme frecvente de refuz:
- Pentru a obține numele unui fișier temporar, trebuie să utilizați metoda GetTemporaryFileName();
- Este necesar să ștergeți fișierele temporare după utilizare.
7. Alte întrebări
La dezvoltarea extensiilor de configurare, a rapoartelor suplimentare și a procesării, trebuie luate în considerare următoarele cerințe.
- Operațiunile lungi trebuie efectuate în fundal (pentru mai multe detalii, consultați aici și aici).
- Dacă datele utilizatorului părăsesc serviciul, utilizatorul trebuie să își dea acordul.
- Logica de operare standard a soluțiilor de aplicație (configurații) nu trebuie să fie perturbată. Nu ar trebui să dezactivați mecanismele și verificările standard, de exemplu folosind constructe precum:
<big>Schimb de date.Load = True</big>
- Informațiile despre eroarea de sistem primite în instrucțiunea Încercați' - Excepție nu ar trebui să fie ascunse utilizatorului. Fără aceste informații, echipa de asistență de service va fi mult mai dificil să înțeleagă cauzele erorii.