Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Recenzii
  • Modul sigur 1s. Deschiderea procesării externe în mod programatic

Modul sigur 1s. Deschiderea procesării externe în mod programatic

Faptul este că atunci când se utilizează versiunea client-server a operațiunii 1C, procesarea / rapoartele externe sunt deschise în modul sigur, în care utilizarea modului privilegiat este interzisă. Iar modul privilegiat este folosit foarte des în configurații tipice: formarea de formulare tipărite, diverse verificări de servicii (înregistrarea schimburilor), etc. Ca urmare, chiar și folosind un raport obișnuit pe ACS fără formular (în mod implicit, se folosește formularul general „Formular de raportare”) și salvând setările de raport personalizate (la referința corespunzătoare), veți primi o eroare despre acces insuficient drepturi la diferite constante și parametri de sesiune utilizați în scopuri de service după linie SetPrivilegedMode (Adevărat);

Soluția „corectă” ar fi conectarea proceselor și rapoartelor externe prin mecanismele BSP „Rapoarte și procesări suplimentare” cu dezactivarea modului sigur sau adăugarea de permisiuni (în opinia mea, din versiunea BSP 2.2.2.1). Dar dacă, dintr-un motiv oarecare, este necesar să utilizați fișiere de raportare/procesare externe, atunci puteți configura un profil de securitate cluster care este utilizat ca profil de securitate în mod sigur pentru o anumită bază de informații.

Aș dori să remarc imediat că această opțiune nu este de preferat, dar din cauza diverselor circumstanțe, poate fi utilizată într-o formă atât de simplificată. De exemplu, am mai multe baze în diferite orașe, un local comun cu drepturi strict limitate, USB închis, etc., undeva folosesc Contabilitate 2.0, iar undeva 3.0, fac aproape toate rapoartele folosind ACS fără formulare, astfel încât acestea deschis în ambele versiuni. Servirea tuturor acestor rapoarte pentru versiuni diferite și baze de date diferite este o afacere consumatoare de timp și nepromițătoare. planurile includ o tranziție la o singură configurație și bază...

Creăm un profil.
În consola cluster, creați un profil de securitate în care setăm steaguri „Poate fi folosit ca profil de securitate în modul sigur”și „sub” Control total permis: „ „în modul privilegiat”.

În multe cazuri de utilizare a rapoartelor și procesare simplă, această metodă va fi aplicabilă. Pentru situații mai complexe, nu are sens să descriem procesul, deoarece este menționat în documentație (capacitatea de a personaliza profiluri de securitate pentru anumite fișiere externe prin specificarea hash-ului acestuia etc.).

P.S. Am crezut că profilurile de securitate funcționează doar atunci când se folosesc licențe pentru platforma și serverul de nivel CORP, dar această funcționalitate este îndeplinită și pe platforma 1C: Enterprise 8.3 (condițional, puteți apela PROF prin analogie cu configurațiile standard Basic/PROF/ CORP)

Când porniți programul Încărcarea documentelor ca utilizator obișnuit, eroarea „Modul sigur este setat. Operarea este interzisă”.

Această complexitate apare deoarece nu sunt suficiente drepturi pentru a începe prelucrarea externă. Pentru a configura drepturile de acces, accesați baza de date în modul 1C Enterprise în numele Administratorși mergi la secțiune Setări utilizator și drepturi / Profiluri de acces de grup, clic Pentru a crea un grup.

Introduceți numele grupului și bifați casetele disponibile pentru utilizatorii acestui grup de roluri -

  • Deschiderea interactivă a rapoartelor și procesatorilor externi
  • Utilizarea rapoartelor și procesării suplimentare

Click pe Arde și închide


Reveniți la meniul Utilizatori și selectați din listă angajatul care va lucra cu programul Descărcare documente. Faceți clic pe Permisiuni. În lista de profiluri, marcați profilul creat anterior. Click pe Scrie.


Este recomandat să adăugați Încărcare document la lista de procesoare externe, astfel încât utilizatorii să poată începe procesarea. Pentru asta în meniu Administrare / Imprimare formulare și procesare / Rapoarte suplimentare și procesare creează un nou tratament. Căutați și denumiți fișierul LoadDocuments.epf. Specificați locația procesării în meniu de unde utilizatorul o poate lansa în viitor, de exemplu, selectați meniul Directoare

Făcând clic pe elementul Acces rapid, indicați care dintre utilizatori are acces la procesare:


După setare, faceți clic Arde și închide... Pentru a începe procesarea, utilizatorii vor trebui doar să reintroducă baza de date și să o deschidă din meniul de acces (în exemplu, Referințe) și să facă clic pe A executa.


Deschide Meniu - Toate funcțiile ..... și găsiți opțiunea Profiluri de securitate în uz din listă.


Este suficient să debifați opțiunea „Se folosesc profiluri de securitate”.


După aceea, programul va începe cu succes.

Odată cu lansarea platformei 8.3.9.2033, a apărut un nou mecanism „Protecție împotriva acțiunilor periculoase”.

Datorită acestei inovații, 1C -ka a început acum să înjure la deschiderea procesării (și nu numai):

Avertizare de securitate

Deschide „My external processing” din fișierul „My_External_Processing.epf”

Este recomandat să acordați atenție sursei din care se obține acest fișier. Dacă nu există un acord cu sursa cu privire la dezvoltarea modulelor suplimentare sau există îndoieli cu privire la conținutul fișierului, atunci nu este recomandat să îl deschideți, deoarece acest lucru poate dăuna computerului și datelor.

Doriți să permiteți deschiderea acestui fișier?

Așa că 1C a decis să lupte împotriva codului rău intenționat!

De unde va veni acest „cod rău intenționat” la întreprindere este încă un mister)

Acțiunile potențial periculoase au inclus:

  • Încărcarea unui raport extern, procesarea sau extinderea configurației.
  • Încărcați sau actualizați configurația/extensia.
  • Acces dintr-un raport extern/prelucrare sau extensie la următoarele caracteristici:
  • Executarea comenzilor sistemului de operare.
  • Gestionarea utilizatorilor (înregistrarea sau ștergerea informațiilor despre un utilizator al bazei de informații).
  • Apelarea metodei Connect () a managerului de procesoare externe (rapoarte).
  • Apelarea metodei ConfigurationExtension.Write ().
  • Lucrul cu obiecte COM.

Cum poate fi oprit acest „miracol”?

Pentru a face acest lucru, trebuie să rulați 1C Enterprise în modul configurator.
Selectați meniul „Administrare” - „Utilizatori”.
În fereastra deschisă a utilizatorilor noștri, trebuie să deschideți fereastra cu setările utilizatorului și în fila „De bază” eliminați caseta de selectare „Protecție împotriva acțiunilor periculoase”

Există și alte modalități de a dezactiva acest lucru:

A fost implementată capacitatea de a specifica o listă de baze de informații, atunci când se lucrează cu care protecția împotriva acțiunilor periculoase va fi dezactivată.
Responsabil pentru această funcție este parametrul DisableUnsafeActionProtection din fișierul conf.cfg, care vă permite să dezactivați mecanismul de protecție împotriva acțiunilor periculoase pentru toți utilizatorii anumitor baze de informații ale căror șiruri de conexiune satisfac măștile specificate în parametrul DisableUnsafeActionProtection.

În acest parametru, puteți specifica mai multe măști separate prin simbolul „;”, de exemplu:

DisableUnsafeActionProtection = test _. *; Etapa _. *;

În plus, protecția împotriva acțiunilor periculoase ale utilizatorului poate fi dezactivată programatic, pentru care există următorii parametri și proprietăți:

  • Parametru Protecție împotriva acțiunilor periculoase ale metodelor Conectați () managerii de procesare externă (rapoarte)
  • Proprietatea HazardousActionProtection a obiectuluiConfigurationExtension înainte de a apela metoda Write () a acestui obiect.

Verificarea necesității utilizării protecției împotriva acțiunilor periculoase se realizează în următoarea ordine:

1. Dacă caseta de selectare „Protecție împotriva acțiunilor periculoase” este debifată pentru utilizatorul actual, atunci protecția este considerată dezactivată.

2. Dacă șirul de conexiune la baza de informații se potrivește cu unul dintre șabloanele specificate în parametrul DisableUnsafeActionProtection al fișierului conf.cfg, atunci protecția este considerată dezactivată.

3. Dacă protecția este dezactivată în mod explicit utilizând parametrul AntiDangerousActions al unei procesări sau unui raport extern.

4. Dacă protecția este dezactivată în mod explicit folosind proprietatea extensiei AntiDangerousActions.

Imprimare (Ctrl + P)

Obiecte de configurare

Dacă trebuie să utilizați cod de program „nesigur” pe server: procesare externă sau cod de program introdus de utilizator pentru a fi utilizat în metodele Execute () și Calculate (), puteți utiliza modul sigur de operare.

În modul sigur:

  • Mod privilegiat anulat.
  • Intrarea în modul privilegiat ignorat.
  • Sunt interzise operațiuni care conduc la utilizarea fondurilor externe în legătură cu platforma 1C: Enterprise (inclusiv analogi neblocatori ai metodelor de mai sus):
  • Mecanisme COM:
    • Obiect COM ();
    • GetCOMObject ();
    • Wrapper HTMLDocument.GetCOMObject ().
  • Încărcarea componentelor externe:
    • Încărcați componentă externă ();
    • Conectați componenta externă ().
  • Acces la sistemul de fișiere:
    • ValueInFile ();
    • Copiaza fisier ();
    • CombineFiles ();
    • MoveFile ();
    • SplitFile ();
    • CreateDirectory ();
    • Sterge fisierele ();
    • Fișier nou;
    • xBase nou;
    • HTMLWrite.OpenFile ();
    • Citirea HTML.OpenFile ();
    • Citiți XML.OpenFile ();
    • XMLWrite.OpenFile ();
    • ReadingFastInfoset.OpenFile ();
    • WriteFastInfoset.OpenFile ();
    • CanonicalXMLWriter.OpenFile ();
    • ConversionXSL.LoadFromFile ();
    • WriteZipFile.Open ();
    • Citirea unui ZipFile.Open ();
    • NewTextReader (), dacă primul parametru este un șir;
    • ReadText.Open () dacă primul parametru este un șir;
    • NewWriteText (), dacă primul parametru este un șir;
    • WriteText.Open (), dacă primul parametru este un șir;
    • NewExtractText ();
    • modificarea proprietății RetrieveText.FileName;
    • ExtractText.Write ();
    • Imagine nouă (), dacă primul parametru este un șir;
    • Poza.Scrie ();
    • Date binare noi ();
    • BinaryData.Write ();
    • NewDataWrite (), dacă primul parametru este un șir;
    • NewReaderData (), există primul parametru - un șir;
    • toate metodele obiectului FileStreamManager;
    • FileStream nou ();
    • FormattedDocument.Write ();
    • GeographicSchema.Read ();
    • GeographicSchema.Record ();
    • GeographicSchema.Print ();
    • TabularDocument.Read ();
    • TabularDocument.Write ();
    • TabularDocument.Print (); GraphicSchema.Read ();
    • GraphicalScheme.Write ();
    • GraphicalScheme.Print ();
    • TextDocument.Read ();
    • TextDocument.Scrie ().
  • Acces la internet:
    • Noua conexiune la internet,
    • Noua poștă internet,
    • Nou InternetProxy,
    • Noua conexiune HTTP,
    • Noua conexiune FTP.

ATENŢIE! Aruncă o excepție când se efectuează operațiuni interzise în timpul execuției.

Notă. Rapoartele externe și procesările deschise folosind meniul Fișier - Deschidere sunt executate în modul sigur dacă utilizatorul nu are drepturi de acces administrativ.

Numărul de defecțiuni trebuie să fie același cu numărul de opriri. Cu toate acestea, dacă un mod sigur a fost activat (o dată sau de mai multe ori) în cadrul unei proceduri sau funcție, dar nu a fost oprit, sistemul se va opri automat de câte ori au fost porniri neterminate în procedura sau funcția care urmează să fie abandonat.

Dacă o procedură sau o funcție apelează o metodă Setați modul sigur (fals) făcut mai mult decât apeluri de metodă Setați modul sigur (adevărat) atunci se va arunca o excepție.

Setarea software-ului în modul sigur poate fi necesară atunci când dezvoltatorul de configurație presupune utilizarea unui cod de program terță parte (în legătură cu configurația), a cărui fiabilitate dezvoltatorul nu poate garanta. Un exemplu de astfel de cod este executarea metodelor Execute () și Compute () în cazurile în care codul executabil este obținut din lumea exterioară. În acest caz, este o practică bună să setați modul sigur înainte de a executa aceste metode:

// Este generat un cod de program care ar trebui executat // Este posibil ca codul să fie încărcat din surse externe // sau introdus manual ExecutableCode = GetExecutiveCodeFrom the ExternalWorld (); // Enable Safe Mode Set Safe Mode (True); // Executați cod potențial periculos Execute (Cod executabil); // Opriți modul sigur Setați modul sigur (fals);

În unele cazuri, setările modului sigur pot intra în conflict cu setările modului privilegiat. Un exemplu de astfel de conflict este postarea unui document care are modul Privilegiat pe proprietatea de postare setată din codul încorporat care rulează în modul sigur. În acest caz, modul privilegiat este dezactivat, iar încercările de a-l activa sunt ignorate. Drept urmare, codul în limbajul încorporat care „se bazează” pe modul privilegiat activat „se ciocnește” cu absența acestuia, ceea ce duce la erori din motive neevidente. Pentru a preveni o astfel de situație, sistemul 1C: Enterprise dezactivează automat modul sigur pentru gestionatorii de evenimente care sunt disponibili în modulul obiect sau modulul manager, cu condiția ca codul executabil în limbajul încorporat să nu fie localizat în extensia de configurare. Astfel de handlere sunt marcate într-un mod special în asistentul de sintaxă.

De asemenea, oferă opțiunea de a dezactiva modul sigur din limbajul încorporat (dacă codul programului de la care se încearcă deconectarea nu se află într-o extensie de configurare). Pentru a dezactiva modul sigur, utilizați metoda Setați modul sigur Dezactivați ()... Puteți verifica dacă modul sigur este dezactivat în prezent (automat sau apelând o metodă) folosind metoda GetDisableSafeMode ().

Într-o singură metodă de limbaj încorporat, nu poate exista mai mult de un nivel de imbricare de setare a modului sigur (prin apelarea metodei SetSafeMode ()) și setarea pentru a dezactiva modul sigur (automat pe durata gestionatorilor de evenimente ale obiectelor metadate sau apelând metoda SetDisableSafeMode ()). Când încercați să creșteți imbricarea, este aruncată o excepție:

// Utilizare corectă Procedure ProcedureName () SetSafeModeDisable (True); Setați modul sigur (adevărat); Setați modul sigur (fals); Setați modul de siguranță dezactivat (fals); EndProcedure // Utilizare incorectă Procedure ProcedureName () SetSafeModeDisable (True); Setați modul sigur (adevărat); Setați modul de siguranță dezactivat (fals); // Excepție EndProcedure Procedure ProcedureName () SetSafeMode (True); Setați modul de siguranță dezactivat (fals); // Excepție EndProcedure

Folosind exemplul „Trade Management 11.3”, vom lua în considerare un proces simplu de conectare a unei plăci de imprimare externe. Vom lua în considerare și caracteristicile noului sistem de securitate.

Trecere rapidă

Acțiuni preliminare

Mai întâi ar trebui activați funcționalitatea sau verificați disponibilitatea acestuia

1. Mergem cu drepturi depline la baza de informații.

2. Accesați meniul „Date de referință și administrare” / Bloc „Administrare” / Comanda „Imprimare formulare, rapoarte și procesare”.

Adăugând

În secțiunea care se deschide:

Adăugați procesarea făcând clic pe butonul „Creare” (acest lucru este important) sau „Actualizare!” existent:

  • Selectați-o în listă (dacă nu este selectată sau goală, comanda nu va funcționa, dar nu va spune nimic).
  • Apăsați butonul „Încărcare din fișier”.

După apariția pentru 1C în procesarea externă, au apărut verificări de securitate în configurații noi.

Ar trebui să instalați doar procesări create independent sau obținute prin canale de comunicare cunoscute (nu din mail, doar de pe un site cu certificat valabil, sau furnizate de angajații dezvoltatorului, confirmate de acesta telefonic).

Dacă dezvoltatorul a scris totul pentru procesare, atunci va fi setat „Plasament” - obiecte în care va fi implicată procesarea, vor apărea comenzile.
Pentru a funcționa, va fi suficient să faceți clic pe „Înregistrați și închideți”.

Examinare

Imediat după aceea, în funcție de tipul de prelucrare:

  • Documentul imprimabil devine disponibil atunci când deschideți un document sau din lista acestuia (pentru deja deschis la redeschidere) făcând clic pe butonul „Imprimare”.
  • Tratamentele sunt disponibile în secțiunile „Tratamente suplimentare” din fiecare subsistem
  • Procesarea completării făcând clic pe butonul „Umplere” din listă sau din panoul principal de comandă al formularului obiect.

Pentru procesarea de mai sus, lansarea va arăta astfel:

Dacă documentul este nou, ar trebui scris, mecanismul extern de procesare vă va avertiza despre acest lucru:

Comportamentul suplimentar depinde de funcționalitatea încorporată: este posibil să deschideți un formular sau o simplă prelucrare a datelor.

Avertismente de securitate în 1C

În noile versiuni și configurații ale platformei, protecția împotriva lansării de programe rău intenționate a fost crescută.

În procesare, Excel poate fi apelat pentru încărcare, caz în care noul subsistem de securitate vă va avertiza și:

În acest caz, codul de gestionare este întrerupt.

Dacă faceți clic pe „Da”, sistemul vă va cere să apelați din nou comanda:

Este posibil ca utilizatorul bazei de informații să dezactiveze protecția împotriva acțiunilor periculoase prin Configurator:

Acest lucru nu poate fi schimbat din modul „Enterprise”, poate a fost făcut intenționat, poate apărea după actualizare.

De asemenea, trebuie remarcat faptul că, dacă procesarea folosește Excel, trebuie să ruleze într-un mod nesigur (așa era cazul înainte de introducerea noului sistem, funcționează în paralel):

„Nu se poate încărca MS EXCEL !!!” „Modul de siguranță este setat. Operarea este interzisa"

În procesarea externă, arată astfel:

Dezvoltatorul ar trebui să îl seteze la „False” în descrierea procesării interne, apoi totul va fi bine:

Funcția ExternalProcessingData () Export RegistrationParameters = Structură nouă; Parametri de înregistrare.Insert ("SafeMode", False);

La actualizarea configurației, a apărut și un text de avertizare despre sursa din care a fost obținut fișierul de configurare:

Top articole similare