Computer finestre Internet

Limitazione dell'accesso ai diritti della directory 1c. Limitazione dell'accesso a livello di record RLS. Azioni di limitazione dell'accesso

Il programma 1C ha un sistema di diritti di accesso integrato, che si trova in Configuratore - Generale - Ruoli.

Da cosa è caratterizzato questo sistema e qual è il suo scopo principale? Consente di descrivere insiemi di diritti che corrispondono alle posizioni dell'utente o ai tipi di attività. Questo sistema di diritti di accesso è di natura statica, il che significa che quando l'amministratore imposta i diritti di accesso su 1C, è così. Oltre a quello statico, esiste un secondo sistema di diritti di accesso: dinamico (RLS). In questo sistema, i diritti di accesso vengono calcolati dinamicamente, a seconda dei parametri specificati, durante il funzionamento.

Ruoli in 1C

Le impostazioni di sicurezza più comuni in diversi programmi sono il cosiddetto insieme di permessi di lettura/scrittura per vari gruppi di utenti e, in futuro, l'inclusione o l'esclusione di un utente specifico dai gruppi. Un sistema di questo tipo viene utilizzato ad esempio nel sistema operativo Windows AD (Active Directory). Il sistema di sicurezza utilizzato nel software 1C è chiamato ruoli. Cos'è? Ruoli in 1C è un oggetto che si trova nella configurazione nel ramo: Generale - Ruoli. Questi ruoli 1C sono gruppi per i quali vengono assegnati diritti. In futuro ogni utente potrà essere incluso o escluso da questo gruppo.

Facendo doppio clic sul nome del ruolo, si aprirà l'editor dei diritti per il ruolo. A sinistra c'è un elenco di oggetti, selezionane uno qualsiasi e a destra vedrai le opzioni per i possibili diritti di accesso:

— lettura: ottenere record o loro frammenti parziali da una tabella di database;
— aggiungere: nuovi record salvando quelli esistenti;
— modifica: apportare modifiche ai record esistenti;
— eliminazione: alcuni record, lasciando invariato il resto.

Tieni presente che tutti i diritti di accesso possono essere divisi in due gruppi principali: questo è un diritto "giusto" e questo è esattamente il diritto con l'aggiunta della caratteristica "interattiva". Cosa significa questo? E il punto è questo.

Nel caso in cui l'utente apra un modulo, ad esempio l'elaborazione, e contemporaneamente faccia clic su di esso con il mouse, il programma nel linguaggio 1C integrato inizia a eseguire azioni specifiche, ad esempio eliminando documenti. I diritti "Semplicemente" 1C sono responsabili di consentire tali azioni eseguite dal programma.

Nel caso in cui un utente apra un diario e inizi a inserire autonomamente qualcosa dalla tastiera (nuovi documenti, ad esempio), i diritti "interattivi" 1C sono responsabili di consentire tali azioni. Ogni utente può avere accesso a più ruoli contemporaneamente, quindi i permessi vengono sommati.

RLS nel 1C

È possibile abilitare l'accesso alla directory (o al documento) o disabilitarlo. Non puoi “accenderlo un po’”. A questo scopo esiste una certa estensione del sistema di ruoli 1C, chiamato RLS. Si tratta di un sistema dinamico di diritti di accesso che introduce restrizioni parziali sull'accesso. Ad esempio, solo i documenti di una determinata organizzazione e magazzino diventano disponibili per l'utente e non vede il resto.

Va tenuto presente che il sistema RLS deve essere utilizzato con molta attenzione, poiché il suo schema intricato è piuttosto difficile da comprendere; diversi utenti potrebbero avere domande quando, ad esempio, confrontano lo stesso report, che viene generato da utenti diversi. Consideriamo questo esempio. Seleziona una directory specifica (organizzazioni, ad esempio) e un diritto specifico (lettura, ad esempio), ovvero consenti la lettura per il ruolo 1C. In questo caso, nel pannello remoto Restrizioni di accesso ai dati, si imposta il testo della richiesta, in base al quale viene impostato su False o True, a seconda delle impostazioni. In genere, le impostazioni vengono salvate in uno speciale registro di informazioni.

Questa richiesta verrà eseguita dinamicamente (durante il tentativo di organizzare la lettura) per tutte le voci della directory. Funziona così: quei record per i quali è stata assegnata la richiesta di sicurezza - Vero, l'utente vedrà, ma gli altri no. I diritti 1C con restrizioni stabilite sono evidenziati in grigio.

L'operazione di copia delle impostazioni RLS identiche viene eseguita utilizzando i modelli. Per cominciare, crei un modello, chiamandolo, ad esempio, MyTemplate, in cui rifletti la richiesta di sicurezza. Quindi, nelle impostazioni dei diritti di accesso, specifica il nome di questo modello in questo modo: "#MyTemplate".

Quando un utente lavora in modalità 1C Enterprise, quando si connette a RLS, potrebbe apparire un messaggio di errore del tipo: "Diritti insufficienti" (per leggere la directory XXX, ad esempio). Ciò indica che al sistema RLS è bloccata la lettura di alcuni record. Per evitare che questo messaggio appaia nuovamente è necessario inserire nel testo della richiesta la parola CONSENTITO.

L'ottava versione della piattaforma 1C:Enterprise (oggi 8.3) portava molti cambiamenti rispetto ai “sette”, tra i quali spiccava soprattutto il meccanismo per limitare i diritti di accesso a livello record. Nonostante sia teoricamente possibile farne a meno, utilizzando solo i ruoli, RLS consente di ottenere impostazioni di accesso più dettagliate. Ma per far funzionare correttamente questo meccanismo, è necessario comprenderne chiaramente l'essenza e avere sufficiente esperienza nello sviluppo in 1C.

Cos'è la RLS?

L'essenza di questa funzionalità è la capacità dello sviluppatore di impedire a un utente specifico o a un gruppo di utenti di accedere alle tabelle o ai campi delle tabelle del database. In genere, le restrizioni vengono utilizzate per impedire agli utenti 1C di visualizzare e modificare informazioni riservate e segrete, ad esempio limitando i dipendenti di un'azienda inclusa in un gruppo alla visualizzazione dei documenti solo per la propria organizzazione. Inoltre, il meccanismo per limitare i diritti di accesso a livello di record può essere utilizzato per rimuovere informazioni non necessarie dall'interfaccia.

Per poter scrivere query per le restrizioni RLS, è necessario creare un ruolo o assumerne uno esistente. La configurazione di RLS in 1C 8.3 può essere utilizzata per le seguenti azioni dell'utente:

  • Aggiunta;
  • Lettura;
  • Eliminare;
  • Modifica.

Oltre alle più ampie possibilità di personalizzazione dell'accesso, RLS presenta anche degli svantaggi:

  1. Requisiti per le qualifiche dello sviluppatore, poiché la richiesta dovrà essere scritta nel linguaggio integrato, tenendo conto delle regole di sintassi;
  2. Mancanza di capacità di eseguire rapidamente il debug delle condizioni;
  3. Possibilità limitate per descrivere la logica: condizioni troppo complesse dovranno ancora essere scritte in moduli di documenti e libri di consultazione;
  4. Nella versione client-server del database è possibile la crescita implicita delle tabelle incluse nella query. Inoltre, è molto difficile seguire questo processo;
  5. Requisiti di risorse. Le restrizioni RLS consumano molta energia sul computer client e sul server;
  6. Poca documentazione è disponibile gratuitamente.

Un altro problema che potrebbe sorgere dopo aver impostato 1C RLS possono essere i report. Il fatto è che gli sviluppatori prevedono possibili restrizioni RLS e creano report in modo tale da mostrare solo i dati consentiti. Se per gli utenti sono configurate restrizioni RLS diverse, i dati nel report per gli stessi parametri potrebbero essere diversi. Ciò può sollevare domande, quindi è necessario tenere conto di queste situazioni quando si progettano report o si scrivono query in RLS.

Creare un vincolo RLS

Per aggiungere una restrizione RLS, è necessario trovare il ruolo desiderato e aprirlo facendo doppio clic.

La finestra che si apre contiene 2 schede: “Diritti” e “Modelli di restrizione”. Per imporre determinate restrizioni a un'azione specifica, è necessario selezionarla e fare clic sul segno più verde in basso a destra. Apparirà una riga in cui possiamo impostare le restrizioni RLS 1C nella lingua incorporata in 1C.


Se conosci la sintassi 1C (come il palmo della tua mano), puoi scrivere direttamente nel campo "Restrizione di accesso". Gli sviluppatori 1C hanno fornito la possibilità di aprire un costruttore di query, che aiuterà e suggerirà quali restrizioni possono essere apportate. Per aprirlo è necessario cliccare sul pulsante con tre punti (Seleziona) o F4 e apparirà una finestra con il pulsante “Query Builder…”.


Nella finestra che appare, puoi configurare le restrizioni non solo per questa directory, ma anche per altri oggetti di sistema. Per fare ciò, è necessario aggiungerli nella scheda "Tabelle e campi". Registriamo le restrizioni sui campi della directory “Nomenclatura” e facciamo clic su “OK”. Fai attenzione ai nomi delle variabili: i parametri RLS vengono impostati all'inizio della sessione utente e devono essere contenuti nell'oggetto metadati.


Nella scheda "Modelli di vincoli", si specificano le query necessarie quando si copiano le stesse impostazioni RLS in 1C 8.3. Dopo aver aggiunto il modello, puoi utilizzare il suo nome nelle impostazioni dei diritti di accesso.

È anche possibile aggiungere contemporaneamente restrizioni a più ruoli. Per fare ciò, nell'albero di configurazione è necessario fare clic con il tasto destro sulla sezione "Ruoli" e selezionare "Tutti i ruoli".


In conclusione, vorrei sottolineare che questo articolo è rivolto ai consulenti sviluppatori 1C e può aiutare principalmente coloro che hanno già esperienza nello sviluppo 1C:Enterprise. Nonostante la sua apparente semplicità, la conoscenza della semantica e la comprensione della struttura dei processi aziendali della propria impresa o dell'organizzazione del cliente per la corretta distribuzione dei diritti richiedono un certo livello di conoscenza ed esperienza.

RLS- questa è la capacità dello sviluppatore di impostare condizioni sulle tabelle del database per determinati utenti (gruppi di utenti) e impedire loro di vedere cose non necessarie. La condizione è di tipo booleano. Se la condizione risulta vera, l'accesso viene concesso, altrimenti viene negato.

RLS viene utilizzato contemporaneamente all'impostazione dei normali diritti di accesso. Pertanto, prima di iniziare a configurare la sicurezza a livello di riga, è necessario assegnare diritti regolari agli oggetti di configurazione.

RLS viene utilizzato per i seguenti tipi di diritti di accesso:

  • Lettura
  • Aggiunta
  • Modifica
  • Rimozione

Come configurare la sicurezza a livello locale

Diamo un'occhiata ad un semplice esempio di come configurarlo. Gli screenshot sono stati acquisiti nella versione 1C Enterprise 8.2 (8.2.9.356). La sintassi dei modelli di testo dei vincoli è descritta nella documentazione della versione 8.2 nel libro “Guida per sviluppatori. Parte 1”, quindi non ci soffermeremo su questo.

Pertanto, il primo passaggio consiste nel definire modelli di vincoli per ciascun ruolo esistente.

Successivamente, in base ai modelli specificati, vengono impostate le restrizioni sugli oggetti necessari. Per modificare il testo di una condizione, è possibile utilizzare la finestra di progettazione delle restrizioni di accesso ai dati.

Per modificare più ruoli, è conveniente gestirli tramite la finestra "Tutti i ruoli".

È possibile utilizzare la finestra Tutte le restrizioni di accesso per copiare le condizioni in altri ruoli. I modelli possono essere copiati solo manualmente in altri ruoli.

È tutto. Puoi controllare il risultato.

Svantaggi dell'utilizzo di RLS:

  1. L'utilizzo di un meccanismo di limitazione dell'accesso a livello di record porta ad un aumento implicito delle tabelle che partecipano alla query, che può portare ad errori nella modalità client-server del database.
  2. Potrebbe essere difficile o impossibile implementare una logica applicativa complessa per il controllo di scrittura. In questi casi è preferibile utilizzare le condizioni nella procedura OnWrite().
  3. La scrittura di una condizione (query) richiede determinate qualifiche dello sviluppatore.
  4. Ulteriori difficoltà possono essere create dall'impossibilità di eseguire il debug di una condizione (query).

Nelle configurazioni tipiche, i diritti a livello di record possono essere impostati in modo interattivo per i seguenti oggetti: organizzazioni, controparti, articoli, magazzini, divisioni, individui, applicazioni candidate e altri.

Va ricordato che le restrizioni sui diritti di accesso a livello di record sono un meccanismo piuttosto dispendioso in termini di risorse e più complesse sono le restrizioni impostate, più lento funzionerà il programma, soprattutto con un database di grandi dimensioni.

Problema classico: dare all'utente l'accesso a un oggetto, ma non a tutti gli elementi/documenti, ma solo ad alcuni.

Ad esempio, in modo che il manager possa vedere i report solo per i suoi clienti.

Oppure potrebbe essere una limitazione “tutti tranne alcuni”.
Oppure la restrizione non riguarda libri/documenti di consultazione, ma per registrare i dati

Ad esempio, in modo che gli utenti non possano estrarre dati sui pagamenti ai partner utilizzando qualsiasi report.

In sostanza, si tratta di un'impostazione sottile e molto flessibile di "ciò che questo utente può vedere e ciò che non ha bisogno di indovinare".

Perchè RLS?

La maggior parte delle implementazioni richiedono che utenti diversi impostino diversi livelli di accesso alle informazioni nel database.

Nelle configurazioni, speciali oggetti di metadati - i ruoli - sono responsabili dei possibili diritti di accesso ai dati. A ogni utente dell'infobase vengono assegnati uno o più ruoli. Determinano se sono possibili operazioni su specifici oggetti di metadati (lettura, scrittura, pubblicazione, ecc.).

Ma non è tutto.

Spesso è necessario non solo aprire/negare l'accesso a un determinato oggetto, ma limitare l'accesso a parte dei dati in esso contenuti.

Questo problema non può essere risolto utilizzando solo i ruoli.– a tal fine è stato implementato un meccanismo di limitazione dell’accesso a livello di record (RLS).

I vincoli rappresentano le condizioni alle quali sarà consentita un'azione sui dati (lettura, scrittura, ecc.). – in questo modo è possibile limitare l'accesso non all'oggetto nel suo insieme, ma solo a una parte dei suoi dati.

Informazioni su RLS - più in dettaglio: 8 video e PDF

Poiché si tratta di un'attività amministrativa comune di 1C, suggeriamo di consultare materiali più dettagliati:

Limitare l'accesso ai dati utilizzando i ruoli

Questo video spiega come limitare l'accesso ai dati utilizzando i ruoli. Viene chiarito che i ruoli limitano l'accesso a un tipo di oggetti dell'infobase (una directory separata, ma non elementi specifici della directory).

Limitazione del livello di registrazione (RLS)

Questo video parla del meccanismo di limitazione dell'accesso a livello di record (RLS), quando è possibile configurare l'accesso non all'intera directory nel suo insieme, ma ai suoi singoli elementi, a seconda di quelli archiviati nel database delle informazioni. Restrizioni simili sono prescritte nei ruoli.

Implementazione di restrizioni di accesso a livello di record per la directory Contractors

Questo video spiega come impostare l'accesso manager solo alle proprie controparti a loro assegnate nella configurazione demo dell'applicazione gestita.

Come funzionano le restrizioni di accesso a livello di record di basso livello

Questo video spiega come la piattaforma trasforma le query inviate al server DBMS per l'esecuzione quando sono presenti restrizioni di accesso a livello di record.

Applicazione simultanea di più restrizioni di accesso a livello di record

A un utente dell'infobase possono essere assegnati diversi ruoli. Inoltre, ogni ruolo può avere le proprie restrizioni di accesso a livello di record. Questo video spiega come si comporta il sistema quando vengono imposte restrizioni.

Imporre restrizioni utilizzando il metodo ALL

Questo video descrive il primo metodo per imporre restrizioni a livello record: il metodo ALL. In questo caso, se la selezione comprende record ad accesso limitato, verrà visualizzato un messaggio di errore.

Imporre restrizioni utilizzando il metodo ALLOWED

Questo video descrive il primo metodo per imporre restrizioni a livello di record: il metodo CONSENTITO. In questo caso, nella selezione verranno inclusi solo i record ai quali l'utente dispone dei diritti di accesso.

Ecco alcuni argomenti del corso:

  • Installazione e aggiornamento della piattaforma 1C:Enterprise 8 – manuale e automatico, per Windows e Linux
  • Avvio automatico per eseguire operazioni di routine
  • Aggiornamento delle configurazioni dalla modalità utente
  • Aggiornamento delle configurazioni non standard. Come evitare problemi durante l'aggiornamento configurazioni standard modificate
  • Crea il tuo consegna file cfu
  • Strumenti BSP: modulistica esterna, elaborazione della compilazione di documenti, ecc.
  • Utilizzo DBMS PostgreSQL gratuito
  • Installazione e lancio gruppo di server 1C:impresa 8
  • Utilità di amministrazione per la configurazione di un cluster e di server di lavoro
  • Impostazioni RLS utilizzando l'esempio di UPP 1.3 e ERP 2
  • Cosa fare, se i dati nella sicurezza delle informazioni sono danneggiati
  • Impostazioni scambi di dati tra le configurazioni
  • Organizzazione sviluppo del gruppo
  • Configurazione e utilizzo chiavi di protezione hardware
  • Licenze software 1C: installazione e collegamento ad apparecchiature esterne

In ogni caso, ad un certo punto dovrai implementare 1C, configurare prenotazioni, diritti di accesso, varie modalità di avvio, testare l'integrità dei database, garantire il funzionamento dei server, ecc.

Ed è meglio farlo subito.

In modo che non succeda più tardi “...! Ebbene, che diavolo...! Il tuo...!" – e altre espressioni di rammarico :)

Come configurare i diritti di accesso in 1C 8.3?

In questo articolo vedremo come lavorare con gli utenti in 1C Accounting 8.3:

  • creare un nuovo utente
  • configurare i diritti: profili, ruoli e gruppi di accesso
  • come configurare la limitazione dei diritti a livello di record (RLS) in 1C 8.3, ad esempio per organizzazione

Le istruzioni sono adatte non solo per il programma di contabilità, ma anche per molti altri basati su BSP 2.x: 1C Trade Management 11, Gestione salari e personale 3.0, ERP 2.0, Gestione piccole imprese e altri.

Nell'interfaccia del programma 1C, la gestione degli utenti viene effettuata nella sezione “Amministrazione”, alla voce “Configurazione utenti e diritti”:

Come creare un nuovo utente in 1C

Per creare un nuovo utente in 1C Accounting 3.0 e assegnargli determinati diritti di accesso, nel menu "Amministrazione" è presente la voce "Impostazioni utente e diritti". Andiamo la:

L'elenco degli utenti è gestito nella sezione “Utenti”. Qui puoi creare un nuovo utente (o gruppo di utenti) o modificarne uno esistente. Solo un utente con diritti amministrativi può gestire l'elenco degli utenti.

Creiamo un gruppo utenti chiamato "Contabilità" e ci saranno due utenti al suo interno: "Contabile 1" e "Contabile 2".

Per creare un gruppo, fare clic sul pulsante evidenziato nella figura sopra e inserire un nome. Se nella base informativa sono presenti altri utenti idonei al ruolo di contabile, è possibile aggiungerli immediatamente al gruppo. Nel nostro esempio non ce ne sono, quindi facciamo clic su "Registra e chiudi".

Ora creiamo gli utenti. Posiziona il cursore sul nostro gruppo e fai clic sul pulsante “Crea”:

Nel nome completo inseriremo "Contabile 1" e il nome di accesso sarà impostato su "Contabile 1" (questo è ciò che verrà visualizzato quando si accede al programma). La password sarà “1”.

Assicurati che le caselle di controllo "Accesso al programma consentito" e "Mostra nell'elenco di selezione" siano selezionate, altrimenti l'utente non si vedrà durante l'autorizzazione.

Lasciare la "Modalità di avvio" su "Auto".

Impostazione dei diritti di accesso: ruoli, profili

Ora devi specificare "Diritti di accesso" per questo utente. Ma devi prima scriverlo, altrimenti apparirà una finestra di avviso come mostrato nell'immagine sopra. Fare clic su “Registra”, quindi su “Diritti di accesso”:

Seleziona il profilo Ragioniere. Questo profilo è standard e configurato con i diritti di base richiesti da un contabile. Fare clic su "Registra" e chiudere la finestra.

Nella finestra “Utente (creazione)”, fare clic su “Salva e chiudi”. Stiamo anche creando un secondo contabile. Ci assicuriamo che gli utenti siano abilitati e possano lavorare:

È opportuno notare che lo stesso utente può appartenere a più gruppi.

Abbiamo scelto i diritti di accesso per i contabili tra quelli inclusi nel programma per impostazione predefinita. Ma ci sono situazioni in cui è necessario aggiungere o rimuovere alcuni diritti. Per fare ciò, è possibile creare il proprio profilo con una serie di diritti di accesso necessari.

Andiamo alla sezione "Accesso ai profili del gruppo".

Diciamo che dobbiamo consentire ai nostri contabili di visualizzare la registrazione del diario.

Creare un profilo da zero è piuttosto laborioso, quindi copiamo il profilo "Contabile":

E apportiamo le modifiche necessarie: aggiungiamo il ruolo "Visualizza registro":

Diamo al nuovo profilo un nome diverso. Ad esempio, "Contabile con integrazioni". E seleziona la casella di controllo "Visualizza registro di registrazione".

Ora dobbiamo modificare il profilo degli utenti che abbiamo creato in precedenza.

Limitazione dei diritti a livello di registrazione in 1C 8.3 (RLS)

Scopriamo cosa significa limitare i diritti a livello di record, o come lo chiamano in 1C - RLS (Record Level Security). Per ottenere questa opportunità è necessario selezionare la casella apposita:

Il programma richiederà la conferma dell'azione e ti informerà che tali impostazioni possono rallentare notevolmente il sistema. Spesso è necessario che alcuni utenti non vedano i documenti di determinate organizzazioni. È proprio per questi casi che esiste un'impostazione di accesso a livello di record.

Andiamo nuovamente nella sezione di gestione del profilo, facciamo doppio clic sul profilo “Ragioniere con Inseriti” e andiamo alla scheda “Restrizioni di accesso”:

“Tipo di accesso” seleziona “Organizzazioni”, “Valori di accesso” seleziona “Tutti consentiti, le eccezioni sono assegnate in gruppi di accesso”. Fare clic su "Salva e chiudi".

Ora torniamo alla sezione “Utenti” e selezioniamo, ad esempio, l'utente “Contabile 1”. Fare clic sul pulsante “Diritti di accesso”:

Utilizzando il pulsante "Aggiungi", seleziona l'organizzazione i cui dati saranno visualizzati dal "Contabile 1".

Nota! L'utilizzo di un meccanismo per separare i diritti a livello di record può influire sulle prestazioni del programma nel suo insieme. Nota per il programmatore: l'essenza di RLS è che il sistema 1C aggiunge una condizione aggiuntiva a ciascuna richiesta, richiedendo informazioni sul fatto che all'utente sia consentito leggere queste informazioni.

Altre impostazioni

Le sezioni “Copia impostazioni” e “Cancella impostazioni” non sollevano dubbi, i loro nomi parlano da soli. Queste sono le impostazioni per l'aspetto del programma e dei report. Ad esempio, se hai impostato un bell'aspetto per la directory "Nomenclatura", può essere replicato per altri utenti.

Nella sezione "Impostazioni utente", puoi modificare l'aspetto del programma ed effettuare impostazioni aggiuntive per facilità d'uso.

La casella di controllo "Consenti accesso a utenti esterni" consente di aggiungere e configurare utenti esterni. Ad esempio, desideri organizzare un negozio online basato su 1C. I clienti del negozio saranno utenti esterni. I diritti di accesso vengono configurati allo stesso modo degli utenti normali.

Basato su materiali da: programmist1s.ru