Casa / Skype / 1c elaborazione esterna impostata in modalità provvisoria. Modalità di funzionamento sicura. Avvio dell'elaborazione esterna in modalità applicazione normale

1c elaborazione esterna impostata in modalità provvisoria. Modalità di funzionamento sicura. Avvio dell'elaborazione esterna in modalità applicazione normale

Stampa (Ctrl+P)

Oggetti di configurazione

Se è necessario utilizzare un codice di programma "non affidabile" sul server: elaborazione esterna o codice di programma inserito dall'utente per l'utilizzo nei metodi Execute() e Calculate(), è possibile utilizzare la modalità operativa sicura.

In modalità provvisoria:

  • Modalità privilegiata annullato.
  • Passaggio alla modalità privilegiata ignorato.
  • Proibito operazioni che comportano l'utilizzo di strumenti esterni in relazione alla piattaforma 1C:Enterprise (compresi gli analoghi non bloccanti delle modalità di cui sopra):
  • Meccanismi COM:
    • COMOggetto();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Caricamento di componenti esterni:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Accesso al file system:
    • valoreInFile();
    • Copia il file();
    • Unisci file();
    • SpostaFile();
    • DividiFile();
    • CreaDirectory();
    • Cancella file();
    • Nuovo file;
    • Nuova xBase;
    • ScriviHTML.OpenFile();
    • ReadingHTML.OpenFile();
    • ReadingXML.OpenFile();
    • ScriviXML.OpenFile();
    • ReadFastInfoset.OpenFile();
    • WriteFastInfoset.OpenFile();
    • CanonicalWriterXML.OpenFile();
    • Trasformazione XSL.LoadFromFile();
    • WriteZipFile.Open();
    • ReadZipFile.Open();
    • NewTextReader() se il primo argomento è una stringa;
    • ReadText.Open() se il primo parametro è una stringa;
    • New TextWrite() se il primo parametro è una stringa;
    • WriteText.Open() se il primo parametro è una stringa;
    • Nuovo ExtractText();
    • modifica della proprietà ExtractText.FileName;
    • EstraiTesto.Scrivi();
    • New Image() se il primo parametro è una stringa;
    • Immagine.Registra();
    • Nuovi dati binari();
    • BinaryData.Write();
    • New DataWrite() se il primo parametro è una stringa;
    • New DataRead(), il primo parametro è una stringa;
    • tutti i metodi dell'oggetto FileStreamManager;
    • Nuovo FileStream();
    • FormattedDocument.Write();
    • Schema Geografico.Leggi();
    • GeographicScheme.Write();
    • Schema Geografico.Stampa();
    • SpreadsheetDocument.Read();
    • SpreadsheetDocument.Write();
    • SpreadsheetDocument.Print(); SchemaGrafico.Leggi();
    • GraphicScheme.Write();
    • Schema grafico.Stampa();
    • TextDocument.Read();
    • TextDocument.Write().
  • Accesso ad Internet:
    • Nuova connessione Internet,
    • Nuova posta Internet,
    • Nuovo proxy Internet,
    • Nuova connessione HTTP,
    • Nuova connessione FTP.

ATTENZIONE! Genera un'eccezione durante l'esecuzione di operazioni vietate in fase di esecuzione.

Nota. I report e le elaborazioni esterne, aperti tramite il menu File - Apri, vengono eseguiti in modalità provvisoria se l'utente non dispone dei diritti di accesso amministrativo.

Il numero di attivazioni in modalità provvisoria deve corrispondere al numero di arresti. Tuttavia, se la modalità provvisoria è stata abilitata (una o più volte) all'interno di una procedura o funzione, ma non è stata disabilitata, il sistema si spegnerà automaticamente tante volte quante sono state le attivazioni non completate nella procedura o funzione abbandonata.

Se in una procedura o in una funzione chiama il metodo ImpostaModalitàSicura(Falso) fatto più delle chiamate di metodo SetSafeMode(True), verrà generata un'eccezione.

L'installazione programmatica della modalità provvisoria può essere richiesta quando lo sviluppatore della configurazione presume l'uso di codice di programma di terze parti (in relazione alla configurazione), la cui affidabilità lo sviluppatore non può garantire. Un esempio di tale codice è l'esecuzione dei metodi Execute() e Calculate() nei casi in cui il codice eseguibile viene ricevuto dal mondo esterno. In questo caso, è buona norma impostare la modalità provvisoria prima di eseguire questi metodi:

// Il codice del programma viene generato per essere eseguito // È possibile che il codice venga caricato da fonti esterne// o inserito manualmente ExecutableCode = GetExecutableCodeFrom OutsideWorld(); // Abilita la modalità provvisoria SetSafeMode(True); // Esegui codice potenzialmente pericoloso Execute(ExecutableCode); // Disabilita la modalità provvisoria SetSafeMode(False);

In alcuni casi, le impostazioni della modalità provvisoria potrebbero entrare in conflitto con le impostazioni della modalità privilegiata. Un esempio di tale conflitto è la pubblicazione di un documento con la proprietà Modalità di registrazione privilegiata impostata dal codice 1C in esecuzione in modalità provvisoria. In questo caso, la modalità privilegiata è disabilitata e i tentativi di abilitarla vengono ignorati. Di conseguenza, il codice 1C:Enterprise che "si basa" sulla modalità privilegiata abilitata "entra in collisione" con la sua assenza, il che porta a errori con motivi non ovvi per la visualizzazione. Per prevenire tale situazione, 1C:Enterprise disabilita automaticamente la modalità provvisoria per i gestori di eventi disponibili in un modulo oggetto o in un modulo manager, a condizione che il codice eseguibile nel linguaggio 1C:Enterprise non si trovi nell'estensione di configurazione. Tali gestori sono contrassegnati nell'assistente alla sintassi in modo speciale.

Fornisce inoltre l'opzione per disabilitare la modalità provvisoria dalla prima lingua (se il codice da cui si tenta la disabilitazione non è in un'estensione di configurazione). Metodo per disabilitare la modalità provvisoria SetDisableSafeMode(). Verifica che sia attiva la modalità provvisoria questo momento disabilitato (automaticamente o con una chiamata al metodo), è possibile utilizzare il metodo GetDisableSafeMode().

All'interno di un metodo 1C:1, non può esserci più di un livello di nidificazione dell'impostazione della modalità provvisoria (chiamando il metodo SetSafeMode()) e dell'impostazione della disabilitazione della modalità provvisoria (automaticamente al momento dell'esecuzione dei gestori di eventi degli oggetti di metadati o chiamando il SetSafeModeDisable()). Quando si tenta di aumentare l'annidamento, viene generata un'eccezione:

// Procedura di utilizzo corretta NomeProcedura() SetSafeModeDisable(True); ImpostaModalitàSicura(Vero); ImpostaModalitàSicura(Falso); SetSafeModeDisable(False); EndProcedure // Utilizzo non corretto Procedure ProcedureName() SetSafeModeDisable(True); ImpostaModalitàSicura(Vero); SetSafeModeDisable(False); // Eccezione EndProcedure ProcedureProcedureName() SetSafeMode(True); SetSafeModeDisable(False); // Eccezione EndProcedure

Il fatto è che quando si utilizza la versione client-server di 1C, l'elaborazione / i report esterni vengono aperti in modalità provvisoria, in cui è vietato l'uso della modalità privilegiata. E la modalità privilegiata viene utilizzata molto spesso in configurazioni tipiche: la formazione di moduli stampati, i vari controlli di servizio (registrazione di scambi), ecc. Di conseguenza, anche utilizzando un normale rapporto sull'ACS senza modulo (per impostazione predefinita viene utilizzato il modulo generale "ReportForm") e salvando le impostazioni utente del rapporto (nella directory corrispondente), riceverai un errore per insufficiente diritti di accesso a varie costanti e parametri di sessione utilizzati per scopi ufficiali dopo la riga ImpostaModalità Privilegiata(Vero) ;

La soluzione "corretta" sarebbe quella di collegare l'elaborazione esterna e la rendicontazione attraverso i meccanismi BSP" Rapporti aggiuntivi ed elaborazione" con la disabilitazione della modalità provvisoria o l'aggiunta di permessi (secondo me, da BSP versione 2.2.2.1). Ma se per qualche motivo è necessario utilizzare file esterni report/elaborazione, è possibile configurare il profilo di sicurezza del cluster utilizzato come profilo di sicurezza in modalità provvisoria per uno specifico base informativa.

Vorrei subito notare che questa opzione non è preferita, ma a causa di varie circostanze, può essere utilizzata in una forma così semplificata. Ad esempio, ho diverse basi in città diverse, un locale comune si siede con duro diritti limitati, USB chiuso, ecc., da qualche parte viene utilizzato Accounting 2.0 e da qualche parte 3.0, creo quasi tutti i report utilizzando ACS senza moduli, in modo che si aprano in entrambe le versioni. Servi tutti quei rapporti per diverse versioni e basi diverse è un'attività che richiede tempo e poco promettente, perché ci sono piani per passare a un'unica configurazione e base ...

Creiamo un profilo.
Nella console del cluster, crea un profilo di sicurezza in cui impostiamo i flag "Può essere utilizzato come profilo di sicurezza in modalità provvisoria" e " sotto "Accesso completo consentito:" "al modo privilegiato".

In molti casi di utilizzo di report e di semplice elaborazione, questo metodo sarà applicabile. Per situazioni più complesse, non ha senso descrivere il processo, perché. è descritto nella documentazione (la possibilità di configurare profili di sicurezza per specifici file esterni specificandone la somma hash, ecc.).

PS Pensavo che i profili di sicurezza funzionassero solo quando si utilizzano licenze per piattaforma e server di livello CORP, ma questa funzionalità funziona anche sulla piattaforma 1C:Enterprise 8.3 (possiamo chiamare condizionalmente PROF per analogia con le configurazioni standard Basic / PROF / CORP)

Utilizzando l'esempio di Trade Management 11.3, consideriamo un semplice processo di connessione di un modulo di stampa esterno. Prenderemo in considerazione anche le caratteristiche del nuovo sistema di sicurezza.

Passaggio veloce

Azioni preliminari

Per cominciare, dovresti abilitare la funzionalità oppure verifica la disponibilità

1. Abbiamo tutti i diritti sull'infobase.

2. Vai al menu "NSI e amministrazione" / Blocco "Amministrazione" / Comando " Moduli di stampa, segnalazioni ed elaborazioni”.

Addendum

Nella sezione aperta:

Aggiungi l'elaborazione tramite il pulsante "Crea" (questo è importante) o "Aggiorna!" esistente:

  • Selezionalo nell'elenco (se non è selezionato o vuoto, il comando non funzionerà, ma non dirà nulla).
  • Fare clic sul pulsante "Carica da file".

Dopo l'apparizione per 1C in elaborazione esterna le nuove configurazioni hanno controlli di sicurezza.

Dovresti installare solo elaborazioni create autonomamente o ricevute attraverso canali di comunicazione noti (non dalla posta, solo da un sito con certificato valido, o forniti dai dipendenti dello sviluppatore, da lui confermati telefonicamente).

Se tutto viene scritto nell'elaborazione dallo sviluppatore, verrà impostato "Posizionamento": gli oggetti in cui sarà coinvolta l'elaborazione, verranno visualizzati i comandi.
Per funzionare, sarà sufficiente fare clic su "Registra e chiudi".

Visita medica

Subito dopo, a seconda del tipo di lavorazione:

  • Il modulo di stampa diventa disponibile all'apertura di un documento o dalla sua lista (per uno già aperto alla riapertura) cliccando sul pulsante "Stampa".
  • I trattamenti sono disponibili nelle sezioni "Trattamenti aggiuntivi" in ciascun sottosistema
  • Elaborazione del riempimento tramite il pulsante "Riempi" dell'elenco o il pannello di comando principale del modulo oggetto.

Per l'elaborazione di cui sopra, il lancio sarà simile al seguente:

Se il documento è nuovo, dovrebbe essere registrato, il meccanismo di elaborazione esterno ti avviserà di questo:

Un ulteriore comportamento dipende dalla funzionalità intrinseca: è possibile aprire un form o semplice elaborazione dati.

Avvisi di sicurezza in 1C

Nelle nuove versioni della piattaforma e delle configurazioni è stata rafforzata la protezione contro il lancio di programmi dannosi.

L'elaborazione potrebbe causare l'avvio del caricamento di Excel, nel qual caso il nuovo sottosistema di sicurezza ti avviserà anche:

In questo caso il codice gestore viene interrotto.

Se fai clic su "Sì", il sistema ti chiederà di richiamare nuovamente il comando:

È possibile per un utente dell'infobase disabilitare la protezione contro le azioni pericolose tramite il Configuratore:

Dalla modalità "Enterprise", questo non può essere modificato, forse è stato fatto apposta, potrebbe apparire dopo l'aggiornamento.

Si noti inoltre che se l'elaborazione utilizza Excel, deve iniziare in modalità non sicura (questo era il caso prima dell'introduzione del nuovo sistema, funziona in parallelo):

"Impossibile caricare MS EXCEL!!!" "La modalità provvisoria è impostata. Operazione vietata"

Nell'elaborazione esterna, si presenta così:

Lo sviluppatore dovrebbe impostarlo su "False" nella descrizione dell'elaborazione interna, quindi tutto andrà bene:

ExternalProcessingDetails() ExportRegistrationParameters = Nuova struttura; RegistrationParameters.Insert("SafeMode", False);

Durante l'aggiornamento della configurazione, c'era anche un testo di avviso sulla fonte da cui è stato ottenuto il file di configurazione:

Quando si esegue il programma Scarica documenti come utente normale, si verifica un errore "Modalità provvisoria impostata. Operazione vietata".

Questa difficoltà sorge perché non ci sono diritti sufficienti per avviare l'elaborazione esterna. Per impostare i diritti di accesso, vai al database in modalità 1C Enterprise per conto di amministratore e vai alla sezione Impostazioni utente e diritti / Profili gruppo di accesso, clic Per creare un gruppo.

Immettere il nome del gruppo e selezionare le caselle a disposizione degli utenti questo gruppo di ruoli -

  • Apertura interattiva di report ed elaborazioni esterne
  • Utilizzo di report ed elaborazioni aggiuntive

Clic Scrivi e chiudi


Torna al menu Utenti e seleziona un dipendente dall'elenco che lavorerà con il programma Caricamento documenti. Fare clic su Autorizzazioni. Nell'elenco dei profili, contrassegnare il profilo creato in precedenza. Clic bruciare.


Affinché gli utenti possano avviare l'elaborazione, si consiglia di aggiungere Caricamento documenti all'elenco delle elaborazioni esterne. Per fare questo, il menu Amministrazione / Stampa moduli ed elaborazione / Rapporti aggiuntivi ed elaborazione creare una nuova elaborazione. Specificare il percorso del file "DocumentUpload.epf" e assegnargli un nome. Specificare la posizione dell'elaborazione nel menu, da cui l'utente può avviarla in futuro, ad esempio selezionare il menu Libri di riferimento

Cliccando su un elemento Accesso rapido si specifica a quale utente è disponibile l'elaborazione:


Dopo l'impostazione, fare clic Scrivi e chiudi. Per avviare l'elaborazione, gli utenti dovranno solo rientrare nel database e aprirlo dal menu di accesso (nell'esempio - Directory) e fare clic su Correre.


aprire Menu - Tutte le funzioni... e trova l'opzione "Utilizzo dei profili di sicurezza" nell'elenco.


È sufficiente deselezionare l'opzione "Sono utilizzati profili di sicurezza".


Successivamente, il programma verrà eseguito correttamente.