Pavel Chistov. Apertura software di elaborazione esterna. Violazione dell'accesso all'elaborazione in modalità provvisoria 1c

A partire dalle nuove versioni, l'azienda 1C: ha tentato di eliminare l'ondata di criptovirus limitando il lancio di report ed elaborazioni esterne per tutti gli utenti di un particolare sistema contabile.

Naturalmente, ciò ha causato un'ondata di incomprensioni sia da parte degli utenti che della direzione del reparto IT (programmatori, amministratori).

In effetti, le misure adottate furono, ovviamente, forzate, perché... molti utenti potrebbero non sospettare nemmeno che alcuni dei file che aprono potrebbero contenere una terribile minaccia - interrompendo tutti gli affari e perdita Tutti i dati sulle risorse aziendali aperte.

Sì, certo, con le corrette impostazioni di backup, alcuni dati possono essere salvati, ma cosa succede se la tua azienda inserisce dati ogni giorno/ora/minuto, che non è possibile ripristinare o richiedono molto sforzo? quindi: risorse umane, tempo, budget, ecc.

Cosa significa: beh, la prima cosa che l'utente incontra è il banale lancio di moduli ed elaborazioni specializzate incluse nel sistema contabile, ad es. l'utente non potrà avviare nemmeno, ad esempio, un account di organizzazione modificato e unificato, o, ad esempio, un report per la distribuzione gestionale di DDS, ecc.

È chiaro che ciò non è adatto né al personale amministrativo dell'organizzazione né all'utente finale, che ha compiti associati a tale trattamento esterno.

Come risolvere questo problema? È chiaro che nessun moderno sistema antivirus o sistema di limitazione dei diritti di accesso può proteggere completamente l’utente dal pericolo di “infettare” il virus, ma per specifici specialisti a cui sono state notificate le minacce ed è stato svolto un programma formativo il lancio di elementi potenzialmente pericolosi, l'accesso dovrà comunque essere aperto.

Quindi cosa si dovrebbe fare:

  1. Stabilire la responsabilità del dipendente che deve avviare tali miglioramenti, file, relazioni;
  2. Svolgere una formazione educativa con questo dipendente per comprendere appieno le minacce e la sicurezza;
  3. Fornisci a questo dipendente la possibilità di avviare l'elaborazione esterna in 1C:

Non tocchiamo i primi 2 punti, perché... Questo è sulla coscienza del personale amministrativo e dei dipendenti del reparto IT dell'azienda, ma per quanto riguarda il punto 3 è possibile utilizzare le istruzioni descritte di seguito:

  1. Innanzitutto dovrai accedere al configuratore 1C: un utente con tutti i diritti;
  2. Lanciamo il configuratore sotto un utente con pieni diritti;
  3. Nel menù generale (solitamente è in alto) troviamo la voce “Amministrazione” -> “Utenti”

4. Selezionare l'utente da modificare:

Deseleziona la casella di controllo "Protezione da attività pericolose" e vai all'altra scheda e qui, se questo utente non ha precedentemente installato il ruolo "Apertura interattiva di moduli ed elaborazione esterni", seleziona la casella:

Tutto. Dopo queste manipolazioni, l'utente a cui sono state applicate queste impostazioni deve accedere nuovamente al programma. Successivamente, sarà in grado di avviarsi da fonti esterne.

Ci auguriamo davvero che tu abbia letto questo articolo dall'inizio e che tu sia consapevole dei rischi di queste manipolazioni.

L'apertura programmatica dell'elaborazione esterna viene eseguita utilizzando l'oggetto di contesto globale ExternalProcessing, che ha il tipo Responsabile elaborazione esterna. Per ciascuna modalità operativa della piattaforma 1C (modalità di applicazione normale e modalità di applicazione gestita), vengono utilizzati diversi metodi oggetto per lavorare con l'elaborazione esterna.

Esecuzione dell'elaborazione esterna in modalità applicazione normale

In un'applicazione tipica, è necessario utilizzare il metodo Create() dell'oggetto ExternalProcessing, a cui viene passato il nome completo del file di elaborazione esterno. Il metodo restituisce un oggetto di tipo Elaborazione esterna, questo oggetto è l'elaborazione esterna che viene aperta. Se è necessario aprire un modulo di elaborazione esterno, chiamare il metodo GetForm() sull'oggetto ricevuto, che restituirà il modulo principale, quindi chiamare il metodo Open() per aprirlo.


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

Nell'elaborazione esterna, il modulo principale deve sempre essere regolare e il modulo controllato deve essere sempre aggiuntivo, altrimenti il ​​metodo GetForm() non funzionerà nella normale modalità di applicazione.

Esecuzione dell'elaborazione esterna in modalità applicazione gestita

Nella modalità moduli gestiti, l'algoritmo è diviso per contesto di esecuzione. Sul client riceviamo dati binari utilizzando il nome completo del file di elaborazione esterno. Trasferiamo i dati binari ricevuti al server e li inseriamo nella memoria temporanea. Successivamente è necessario chiamare il metodo Connect() dell'oggetto ExternalProcessing, al quale viene passato l'indirizzo per l'archiviazione temporanea. Il metodo restituisce il nome dell'elaborazione esterna connessa. Restituiamo il nome dell'elaborazione esterna al client, creiamo un percorso di stringa al modulo di elaborazione e utilizziamo il metodo OpenForm() per aprire il modulo di elaborazione esterna.

&Sul server
Funzione GetExternalProcessingName(BinaryData)
IndirizzoInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Restituisce ExternalProcessing.Connect(AddressInTemporaryStorage);
EndFunction

&SuClient
FullFileName = ""; // Nome completo del file di elaborazione esterno.
FileData = nuovo BinaryData(FullFileName);
NomeProcessingEsterno = GetNomeProcessingEsterno(FileData);
OpenForm("ExternalProcessing." + NomeProcessingEsterno + ".Form");

Modalità provvisoria per l'elaborazione esterna

I metodi Create() e Connect() dell'oggetto ExternalProcessing hanno un parametro in entrata SafeMode, un segno di connessione dell'elaborazione esterna in modalità provvisoria. Se il parametro non viene specificato la connessione verrà effettuata in modalità protetta.
La modalità provvisoria è progettata per proteggere il sistema dall'esecuzione di codice di programma "non attendibile" sul server. Il potenziale pericolo deriva dall'elaborazione esterna o dal codice di programma immesso dall'utente per l'utilizzo nei metodi Run() e Calculate().
La modalità provvisoria impone le seguenti restrizioni:
  • la modalità privilegiata viene annullata se era installata;
  • i tentativi di accedere alla modalità privilegiata vengono ignorati;
  • le operazioni con oggetti COM sono vietate;
  • è vietato caricare e collegare componenti esterni;
  • è vietato l'accesso al file system (ad eccezione dei file temporanei);
  • L'accesso a Internet è vietato.
I processi aperti in modo interattivo non vengono eseguiti in modalità provvisoria, pertanto si consiglia di implementare un meccanismo per l'apertura di processori esterni in modalità provvisoria, nonché a livello di autorizzazione per vietare all'utente di aprire in modo interattivo processori esterni.
Per vietare l'apertura interattiva del trattamento, in tutti i ruoli assegnati all'utente, è necessario rimuovere il diritto “Apertura interattiva del trattamento esterno” (vedi Figura 1).
Figura 1. Diritti per aprire in modo interattivo elaborazioni/report esterni
Il diritto di "Apertura interattiva del trattamento esterno" non pregiudica in alcun modo l'oggetto del trattamento esterno.

L'apertura programmatica dei report esterni è simile all'elaborazione esterna, ma è necessario utilizzare l'oggetto di contesto globale ExternalReports, che ha il tipo Gestore dei rapporti esterni.

In questo articolo parleremo della configurazione dei diritti di accesso dell'utente agli oggetti di sistema 1C.

In 1C 8, per controllare l'accesso degli utenti, viene utilizzato un oggetto di metadati separato, chiamato Ruoli.

Nota! Questo articolo è stato scritto per aiutare i programmatori. L'impostazione dei diritti in modalità utente utilizzando l'esempio di Contabilità 1C viene discussa in.

Un ruolo definisce l'insieme di diritti di cui dispone un utente. Il meccanismo dei ruoli è molto simile ai meccanismi dei diritti di Windows Active Directory. Per ciascuno degli oggetti (directory, documenti), lo sviluppatore imposta il proprio insieme di diritti: lettura / scrittura / aggiunta / modifica / ...

Insieme di diritti disponibili - la raccolta di tutte le autorizzazioni nei ruoli utente.

Se apriamo l'oggetto Metadati del ruolo, possiamo vedere la seguente immagine:

L'oggetto ha due schede: Diritti e Modelli di restrizione. Diritti - scheda principale, Modelli - scheda per l'impostazione dei diritti a livello di record in 1C ( RLS). Questo è un argomento molto importante, che cercherò di descrivere nei prossimi articoli.

Considereremo solo la scheda Diritti.

  • Oggetti— un elenco per il quale verranno fissati i diritti.
  • Diritti— un elenco di possibili impostazioni dei diritti per l'impostazione.
  • Limitare l'accesso ai dati— campi ruolo per la personalizzazione

Si prega di prestare attenzione alle caselle di controllo in basso:

  • Imposta le autorizzazioni per i nuovi oggetti— se il flag è impostato per il ruolo, i diritti permissivi verranno impostati automaticamente sui nuovi oggetti di metadati. Ti consiglio di installarlo se ti dimentichi spesso di impostare i diritti su nuovi oggetti.
  • Imposta le autorizzazioni per i dettagli e le parti tabulari per impostazione predefinita— un flag, se impostato, i dettagli e le parti tabulari erediteranno i diritti del proprietario (rubrica, documento, ecc.)
  • Diritti indipendenti degli oggetti subordinati— se il flag è impostato, il sistema prenderà in considerazione i diritti sull'oggetto principale quando determina i diritti su un oggetto di configurazione

Impostazioni delle autorizzazioni per l'intera configurazione

Se apriamo il Ruolo e facciamo clic sulla root di configurazione, vedremo le seguenti impostazioni:

Maggiori dettagli su ciascuno diritti sull'intera configurazione:

Ottieni 267 lezioni video su 1C gratuitamente:

  • Amministrazione— amministrazione della base informativa (richiede il diritto “Amministrazione dei dati”)
  • Amministrazione dei dati— il diritto ad azioni amministrative sui dati
  • Aggiornamento della configurazione del database- giusto per
  • Modalità monopolio— utilizzo della modalità esclusiva
  • Utenti attivi— visualizza l'elenco degli utenti attivi
  • - diario di bordo
  • - diritto di lanciare un thin client
  • - diritto di avviare il client web
  • Cliente grasso– diritto al ruolo di lancio del Thick Client
  • Unione esterna— il diritto di avviare una connessione esterna
  • Automazione— il diritto di utilizzare l'automazione
  • Modalità tutte le funzioni— in modalità applicazione gestita
  • Salvataggio dei dati utente— autorizzazione o divieto di salvare i dati dell'utente (impostazioni, preferiti, cronologia). Ciò è particolarmente vero per i moduli gestiti 1C.
  • Apertura interattiva delle elaborazioni esterne— apertura del trattamento esterno
  • Apertura interattiva di report esterni— apertura di relazioni esterne
  • Conclusione— stampa, registrazione e copia negli appunti

Impostazione dei diritti 1C 8.2 su altri oggetti di metadati

Per gli altri oggetti principali (directory, costanti, documenti, registri...), l'insieme dei diritti per il ruolo è abbastanza standard:

  • Lettura- lettura (software)
  • Aggiunta- aggiunta (software)
  • Modifica- cambiamento (software)
  • Rimozione- rimozione (software)
  • Visualizzazione- visualizzazione
  • Aggiunta interattiva- aggiunta interattiva
  • La modifica- la modifica
  • Flag di cancellazione interattiva— contrassegno interattivo per la cancellazione
  • Deseleziona in modo interattivo l'eliminazione— deselezionare per la cancellazione
  • Rimozione interattiva di contrassegnati— eliminazione degli oggetti contrassegnati
  • Ingresso linea— utilizzando la modalità di input linea
  • Rimozione interattiva— cancellazione diretta (shift +canc)

Diritti solo per documenti:

  • Conduzione interattiva- realizzazione
  • Cancellazione— cancellazione di documenti
  • Conduzione interattiva non operativa— tenere (con comandi in formato standard) un documento in modalità non operativa
  • Cancellazione interattiva— cancellazione interattiva
  • Cambio interattivo della spesa— modificare il documento pubblicato. Se il diritto del ruolo non è impostato, l'utente non può eliminare un documento pubblicato, impostare un contrassegno di eliminazione, inviarlo nuovamente o annullarne la pubblicazione. Il modulo di tale documento si apre in modalità di visualizzazione

PS Se ancora non riesci a capire i ruoli utente, puoi ordinare .
Video con un esempio di impostazione dei diritti in 1C Accounting 3.0:

Il fatto è che quando si utilizza la versione client-server di 1C, le elaborazioni/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: generazione di moduli stampati, vari controlli di servizio (registrazione degli scambi), ecc. Di conseguenza, anche utilizzando un rapporto regolare sul sistema di controllo degli accessi senza modulo (per impostazione predefinita, viene utilizzato il modulo generale "ReportForm") e salvando le impostazioni del rapporto personalizzato (nella directory corrispondente), riceverai un errore di accesso insufficiente diritti su varie costanti e parametri di sessione utilizzati per scopi ufficiali dopo la riga Imposta modalità privilegiata (Vero) ;

La soluzione “corretta” sarebbe quella di connettere elaborazioni e report esterni attraverso i meccanismi BSP “Report ed elaborazioni aggiuntive” disabilitando la modalità provvisoria o aggiungendo autorizzazioni (a mio avviso, dalla versione BSP 2.2.2.1). Ma se per qualche motivo è necessario utilizzare file di reporting/elaborazione esterni, è possibile configurare un profilo di sicurezza del cluster utilizzato come profilo di sicurezza in modalità provvisoria per una specifica infobase.

Vorrei subito notare che questa opzione non è preferibile, ma a causa di varie circostanze può essere utilizzata in una forma così semplificata. Ad esempio, ho diversi database in diverse città, uno locale comune con diritti strettamente limitati, USB chiuso, ecc., Da qualche parte utilizzo Contabilità 2.0 e da qualche parte 3.0, creo quasi tutti i report utilizzando strumenti ACS senza moduli, in modo che aperto in entrambe le versioni. Mantenere tutti questi report per versioni diverse e database diversi è laborioso e inutile, perché È previsto il passaggio a un'unica configurazione e base...

Creiamo un profilo.
Nella console del cluster creiamo un profilo di sicurezza in cui impostiamo i flag "Può essere utilizzato come profilo di sicurezza in modalità provvisoria" e " nella sezione "Accesso completo consentito:" "in modalità privilegiata".

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

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

Come abilitare l'apertura interattiva di report ed elaborazioni esterne? (1C: Contabilità 8.3. edizione 3.0)

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

Se quando si apre un'elaborazione o un report esterno tramite il menu File->Apri

Viene visualizzato l'errore "Violazione di accesso":

Esistono solo due opzioni per utilizzare l'elaborazione.

La prima opzione è registrare l'elaborazione nella directory “Report ed elaborazioni aggiuntive” (a questo proposito).

Ma cosa succede se il trattamento non supporta tale registrazione? E l'elaborazione è molto utile e voglio davvero aprirla.

In questo caso è possibile scegliere la seconda opzione e riattivare la possibilità di aprire l'elaborazione nel database tramite il menu File->Apri.

Le istruzioni per questo sono riportate di seguito.

Vai al configuratore del database:

Eseguire il comando di menu "Amministrazione" -> "Utenti":

Fai doppio clic per aprire il tuo utente:

Vai alla scheda "Altro", seleziona la casella di controllo "Apertura interattiva di report ed elaborazioni esterne" e fai clic su "OK":

Ora chiudi il configuratore e il database (se lo avevi aperto).

Torna al database e prova ad aprire il report tramite il menu "File" -> "Apri".

Ora tutto funzionerà

Ci sono sfumature...

Il metodo che ho descritto in queste istruzioni funziona al 100%, ma quando lo si utilizza, il diritto di "Aprire in modo interattivo l'elaborazione esterna" potrebbe scomparire di nuovo dopo un po'.

Per evitare ciò, seleziona la stessa casella in modalità 1C:Enterprise nel profilo del gruppo di accesso corrente per il tuo utente.

Quando si utilizza questo metodo, possono sorgere varie sfumature (ad esempio, se si utilizza un profilo integrato che non può essere modificato), quindi non fornirò istruzioni dettagliate per questo caso.

Cordiali saluti, Vladimir Milkin(insegnante e sviluppatore).