Internet Windows Android

Cum să permiteți utilizarea procesoarelor externe. Cum se elimină interdicția de deschidere a procesării externe

Buna ziua. Prin căutare, nu am găsit nimic asemănător, dacă nu corect - băgați-vă nasul, voi fi recunoscător.

BP 3.0 (3.0.59.54), platforma 8.3.10.2580. Este necesar să începeți procesarea „UniversalDataXML”. Este inclus în configurație și poate fi deschis prin "" dar numai sub rolul de administrator. Dar este nevoie să o faceți sub utilizator obișnuit... Chiar nu vreau să mă retrag din asistență și să editez drepturile. L-am salvat ca unul extern, am dezactivat verificarea drepturilor de acces în cod, l-am deschis ca utilizator obișnuit prin meniul „Fișier” - totul se deschide bine. Desigur, acest lucru nu este convenabil și doriți să îl conectați prin „Adițional”. Ok, adaug o descriere prin procedura OnCreateAtServer, o conectez, o afișez în interfața cu utilizatorul și .. obțin un șurub. Fereastra de procesare nu se deschide. Mai degrabă, se deschide pentru o fracțiune de secundă și apoi se închide imediat. Mai mult, acest lucru se întâmplă indiferent de drepturile utilizatorului, inclusiv sub administrator. Poate cineva să-mi spună unde să sap?

Codul de validare a modulului formularului:

& Pe server
Procedură OnCreateAtServer (Eșec, procesare standard)

// Verificarea drepturilor de acces trebuie plasată foarte întâi.
Dacă nu este drept de acces („Administrare”, metadate), atunci
// CallException NStr ("ru =" Utilizarea procesării în modul interactiv este disponibil numai administratorului. "");
EndIf;

Cod funcție Informații de procesare externă

# Zona Descriere Prelucrare
Informații de procesare externe () Export de funcții
// Declarați o variabilă în care vom salva și returna datele necesare „în afara”
Parametrii de înregistrare = Structură nouă;

// Declarați o altă variabilă de care avem nevoie mai jos
AssignmentArray = Matrice nouă;

// Primul parametru pe care trebuie să îl specificăm este ce fel de procesare ar trebui să înregistreze sistemul.
// Tipuri permise: AdditionalProcessing, AdditionalReport, FillObject, Report, Printable, Create LinkedObjects
Parametri de înregistrare.Insert („Vizualizare”, „Procesare suplimentară”);

// Acum trebuie să trecem sub forma unei matrice de nume, la care VPF-ul nostru va fi conectat
// Rețineți că puteți seta numele în acest formular: Document. * - în acest caz, procesarea va fi conectată la toate documentele din sistem,
// care suportă mecanismul VPF
ArrayAssignments.Add ("Subsisteme.Administrare");
Parametri de înregistrare.Insert („Atribuire”, matrice de sarcini);

// Acum setați numele sub care VPF va fi înregistrat în director tratamente externe
Parametri de înregistrare.Insert („Nume”, „ Schimb universal date ");

// Setați permisiunea de procesare pentru a utiliza modul sigur. Mai multe detalii găsiți în ajutorul pentru platformă (metoda InstallSafeMode)
Parametri de înregistrare.Insert („SafeMode”, fals);

// Următorii doi parametri joacă un rol mai informațional, adică aceasta este ceea ce utilizatorul va vedea în informațiile pentru procesare
Parametrii de înregistrare. Inserați ("Versiune", "1.0");
Parametri de înregistrare. Inserare („Informații”, „Prelucrare pentru schimbul de date între baze 1C arbitrare”);

// Creați un tabel de comenzi (a se vedea mai jos pentru mai multe detalii)
CommandTable = GetCommandTable ();

// Adăugați comanda în tabel
Adăugați o comandă (tabel de comenzi, „Universal Exchange Date XML"," Formular gestionat "," Formular de deschidere ");

// Salvați tabelul de comenzi în parametrii de înregistrare de procesare
Parametri de înregistrare.Insert ("Comenzi", CommandTable);

// Acum întoarceți parametrii noștri la sistem
Returnarea parametrilor de înregistrare;
EndFunction

Funcția GetCommandTable ()

// Creați un tabel de comenzi gol și coloane în el
Comenzi = New ValuesTable;

// Cum va arăta utilizatorul descrierea imprimabilului
Commands.Columns.Add ("Vizualizare", Descriere nouă a tipurilor ("Șir"));

// Numele aspectului nostru, astfel încât să putem distinge comanda invocată în procesarea tipăririi
Commands.Columns.Add ("Identificator", Descriere nouă a tipurilor ("Șir"));

// Așa ar trebui apelată comanda de procesare
// Opțiuni posibile:
// - Deschiderea formularului - în acest caz, coloana de identificare ar trebui să conțină numele formularului pe care sistemul ar trebui să îl deschidă
// - CallClientMethod - apelați procedura de export client din modulul formular de procesare
// - CallServerMethod - apelați procedura de export a serverului din modulul obiect de procesare
Commands.Columns.Add ("Utilizare", Descriere nouă a tipurilor ("Șir"));

// Următorul parametru specifică dacă se afișează o alertă când începe și se termină procesarea. Nu are sens atunci când deschideți un formular
Commands.Columns.Add ("ShowAlert", Descriere nouă a tipurilor ("Boolean"));

// Pentru un tipărit, acesta trebuie să conțină linia PrintMXL
Commands.Columns.Add ("Modificator", Descriere nouă a tipurilor ("Șir"));
Întoarcerea poruncii;
EndFunction

Procedură AddCommand (CommandTable, View, Identifier, Usage, ShowNotification = False, Modifier = "")
// Adăugați o comandă în tabelul de comenzi conform descrierii trecute.
// Parametrii și valorile lor pot fi vizualizate în funcția GetCommandTable
NewCommand = CommandTable.Add ();
NewCommand.View = Vizualizare;
NewCommand.Identifier = Identificator;
NewCommand.Use = Utilizați;
NewCommand.ShowNotification = ShowNotification;
NewCommand.Modifier = Modificator;

Sfârșitul procedurii
#EndRegion

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

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

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

  • Descoperire interactivă rapoarte externeși tratamente
  • 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 pe care l-ați creat mai devreme. Click pe Scrie.


Se recomandă adăugarea Document Upload la lista de procesoare externe, astfel încât utilizatorii să poată începe procesarea. Pentru aceasta în meniu Administrare / Tipărirea formularelorși procesare / Rapoarte și procesare suplimentare creați un nou tratament. Răsfoiț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 Referințe

Făcând clic pe element Acces rapid indicați către care dintre utilizatori este disponibilă prelucrarea:


După setare, faceți clic pe 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 utilizare în listă.


Este suficient să debifați opțiunea „Se utilizează profilurile de securitate”.


După aceea, programul va începe cu succes.

Procesarea externă este deschisă programatic utilizând obiectul context global ExternalProcessing, care are tipul ExternalProcessingManager... Pentru fiecare mod de operare al platformei 1C (modul de aplicație normal și modul de aplicație gestionat), diferite metode obiect pentru lucrul cu tratamente externe.

Rulați procesarea externă în modul normal de aplicație

ÎN aplicare normală trebuie să utilizați metoda Create () a obiectului ExternalProcessing, în care este trecut numele complet al fișierului de procesare extern. Metoda returnează un obiect de tip Prelucrare externă, acest obiect este deschiderea procesării externe. Dacă trebuie să deschideți un formular de procesare extern, atunci apelați metoda GetForm () pe obiectul rezultat, care va returna formularul principal, apoi apelați metoda Open () pentru a-l deschide.


Processing = ExternalProcessing.Create (FullFileName);
Processing.GetForm (). Open ();

În procesoarele externe, formularul principal trebuie să fie întotdeauna un formular obișnuit, iar formularul gestionat trebuie să fie întotdeauna unul suplimentar, altfel metoda GetForm () nu va funcționa în modul normal de aplicație.

Rularea procesării externe în modul aplicație gestionată

În modul formulare gestionate apare împărțirea algoritmului în funcție de contextul de execuție. Pe client, obținem date binare după numele complet al fișierului de procesare extern. Transferăm datele binare primite pe server și le punem în stocare temporară. Apoi, trebuie să apelați metoda Connect () a obiectului ExternalProcessing, la care este transmisă adresa către stocarea temporară. Metoda returnează numele procesării externe conectate. Returnăm numele procesării externe către client, formăm o cale de șir către formularul de procesare și folosim metoda OpenForm () pentru a deschide formularul de procesare extern.

& Pe server
Funcția GetExternalProcessingName (BinaryData)
AddressToTemporaryStorage = PutToTemporaryStore (BinaryData);
Returnează ExternalProcessing.Connect (AddressInTemporaryStorage);
EndFunction

& OnClient
FullFileName = ""; // Numele complet fișier de procesare extern.
FileData = New BinaryData (FullFileName);
ExternalProcessingName = GetExternalProcessingName (FileData);
OpenForm ("ExternalProcessing." + ExternalProcessingName + ".Form");

Mod sigur pentru tratamente externe

Metodele Create () și Connect () ale obiectului ExternalProcessing au un parametru de intrare SafeMode - un semn al conectării procesării externe la modul sigur... Dacă parametrul nu este specificat, conexiunea se va face în modul sigur.
Modul sigur este conceput pentru a proteja sistemul de executarea codului de program „de încredere” pe server. Pericolul potențial este procesarea externă sau codul de program introdus de utilizator pentru utilizarea în metodele Execute () și Calculate ().
Modul sigur are următoarele restricții:
  • modul privilegiat este anulat dacă a fost setat;
  • încercările de a intra în modul privilegiat sunt ignorate;
  • operațiile cu obiecte COM sunt interzise;
  • încărcarea și conectarea componentelor externe este interzisă;
  • a refuzat accesul la Sistemul de fișiere(cu excepția fișierelor temporare);
  • Accesul la internet este refuzat.
Procesările deschise interactiv nu se efectuează în modul sigur, de aceea se recomandă implementarea unui mecanism pentru deschiderea procesoarelor externe în modul sigur, precum și pentru a împiedica utilizatorul să deschidă în mod interactiv procesoare externe la nivelul drepturilor.
Pentru a interzice deschiderea interactivă a procesării, în toate rolurile atribuite utilizatorului, este necesar să eliminați dreptul „Deschiderea interactivă a procesării externe” (a se vedea Figura 1).
Figura 1. Drepturile de deschidere interactivă a procesărilor / rapoartelor externe
Dreapta „Deschideți procesoarele externe interactiv” nu afectează în niciun fel obiectul ExternalProcessing.

Deschiderea rapoartelor externe programatic, în mod similar cu procesoarele externe, ar trebui să utilizați numai obiectul context global Rapoarte externe, care are tipul External ReportsManager.

Începând cu noile versiuni, 1C: a încercat să elimine valul de viruși criptomonedă, limitând lansarea rapoartelor externe și procesarea tuturor utilizatorilor unui anumit sistem de contabilitate.

Desigur, acest lucru a provocat un val de neînțelegere atât din partea utilizatorilor, cât și a managerilor IT (programatori, administratori).

De fapt, măsurile luate sunt, desigur, forțate, de vreme ce este posibil ca mulți utilizatori să nu suspecteze că unele dintre fișierele pe care le deschid pot conține o amenințare teribilă - oprește toate afacerileși pierdere toate datele asupra resurselor deschise ale întreprinderii.

Da, desigur, cu setări corecte Rezervați copia, unele dintre date pot fi salvate, dar ce se întâmplă dacă compania dvs. introduce date în fiecare zi / oră / minut, care fie nu este posibilă recuperarea, fie va fi nevoie de mult efort pentru ao face: resurse umane, timp, buget , etc.

Ce înseamnă acest lucru: bine, primul lucru pe care îl întâlnește utilizatorul este lansarea banală a formularelor specializate și a procesării incluse în sistem de contabilitate- adică utilizatorul nu va putea nici măcar să ruleze, de exemplu, un cont modificat și unificat al organizației sau, de exemplu, un raport pentru gestionarea distribuției DDS, bine etc.

Este clar că acest lucru nu se potrivește nici cu structura administrativă a organizației, nici cu utilizatorul final, în a cărui persoană există sarcini asociate unei astfel de prelucrări externe.

Cum poate fi rezolvată această problemă? este clar că niciun sistem anti-virus modern sau un sistem de restricții privind drepturile de acces nu poate proteja complet utilizatorul de pericolul de „infectare”, ci pentru specialiști specifici care au fost înștiințați cu privire la amenințări și au efectuat un program educațional pentru a lansa elemente potențial periculoase, accesul va trebui totuși deschis ...

Deci, ceea ce se presupune a fi făcut:

  1. Stabiliți responsabilitatea pentru angajatul care trebuie să lanseze astfel de îmbunătățiri, fișiere, rapoarte;
  2. Desfășurați un program educațional cu acest angajat pentru a înțelege pe deplin amenințările și securitatea;
  3. Oferiți acestui angajat posibilitatea de a lansa procesare externă în 1C:

Nu atingem primele 2 puncte, pentru că acest lucru este pe conștiința personalului administrativ și a angajaților departamentului IT al companiei, dar conform punctului 3, puteți utiliza instrucțiunile descrise mai jos:

  1. În primul rând, aveți nevoie de acces la configuratorul 1C: utilizator cu drepturi depline;
  2. Rulați configuratorul ca utilizator cu drepturi depline;
  3. În meniul general (de regulă, este deasupra) găsim elementul „Administrare” -> „Utilizatori”

4. Selectați utilizatorul care urmează să fie schimbat:

Debifați caseta „protecție împotriva acțiunilor periculoase” și accesați cealaltă filă și aici, dacă utilizator dat, rolul „Descoperire interactivă forme externeși tratamente ", bifați caseta:

Tot. după aceste manipulări, utilizatorul căruia i-au fost aplicate aceste setări trebuie să reintre în program. După aceea, abilitatea de a fugi surse externe el va avea.

Sperăm cu adevărat că ați citit acest articol de la bun început și că sunteți conștienți de riscurile acestor manipulări.

Cum se permite deschiderea interactivă a rapoartelor și procesărilor externe? (1C: Contabilitate 8.3. Revizuirea 3.0)

2016-12-08T15: 52: 26 + 00: 00

Dacă, atunci când deschideți o procesare externă sau un raport prin Fișier-> Deschidere

apare o eroare „Încălcarea accesului”:

Apoi, există doar două opțiuni pentru utilizarea procesării.

Prima opțiune este înregistrarea procesării în directorul " Rapoarte suplimentareși procesare "(despre asta).

Dar, dacă procesarea nu acceptă o astfel de înregistrare? Și procesarea este foarte utilă și chiar vreau să o deschid.

În acest caz, puteți merge la a doua opțiune și reactivați posibilitatea de a deschide procesarea în baza de date prin meniul Fișier-> Deschidere.

Instrucțiunile pentru acest lucru sunt mai jos.

Accesați configuratorul de bază:

Rulați comanda din meniul „Administrare” -> „Utilizatori”:

Faceți dublu clic pentru a vă deschide utilizatorul:

Accesați fila „Altele”, bifați caseta de selectare „Deschiderea interactivă a rapoartelor și procesării externe” și faceți clic pe „OK”:

Acum închideți configuratorul și baza (dacă l-ați avut deschis).

Accesați din nou baza de date și încercați să deschideți raportul prin meniul „Fișier” -> Meniu „Deschidere”.

Acum totul se va rezolva

Există nuanțe ...

Metoda pe care am descris-o în această instrucțiune funcționează 100%, dar atunci când o utilizați, dreptul de a „deschide interactiv procesarea externă” după un timp poate dispărea din nou.

Pentru a evita acest lucru, setați aceeași casetă de selectare în 1C: Mod Enterprise în profilul curent al grupului de acces pentru utilizatorul dvs.

Atunci când utilizați această metodă, pot apărea diverse nuanțe (de exemplu, dacă utilizați un profil încorporat care nu poate fi editat), prin urmare instrucțiuni detaliate Nu voi cita pentru acest caz.

Cu sinceritate, Vladimir Milkin(profesor și dezvoltator).