1C:Enterprise
# 1C:Enterprise

1C:Enteprise è un software per l'automazione dei processi aziendali (ERP) prodotto dalla software house russa "1C:Company" che viene commercializzato e sviluppato da una rete di società partner in tutto il mondo coordinate dalla 1C International.

La piattaforma 1C: Enterprise, lanciata nel 1995, è leader del mercato in Russia e nei Paesi CSI e negli ultimi anni ha cominciato ad essere commercializzata anche negli USA e negli altri Paesi Occidentali anche grazie allo sviluppo della rete 1C: Developer Network. Si tratta di una suite di programmi per il lavoro arrivata ormai alla versione 8.3 che includono ERP, CRM, SRM, MRP, contabilità, gestione finanziaria, payroll&HR, gestione di documenti, contatti, inventario, Web Client, applicazioni mobile e molto altro (si contano oltre 1 500 applicazioni). La piattaforma è utilizzata da oltre 1 milione di società nel mondo. Dal 2018 la piattaforma è commercializzata anche in Italia tramite la società 1C:Italia.

Inizialmente, "1C: Enterprise" era destinato all'automazione della contabilità e della contabilità di gestione (compresa la gestione paghe e del personale), ma ad oggi si tratta di un prodotto completo in grado di automatizzare tutti i processi aziendali. Il prodotto si caratterizza per la flessibilità, un proprio linguaggio di programmazione open-source, una architettura flessibile e studiata per la gestione cloud, un costo di licenza e di implementazione competitivo.

A seguito dello scandalo Russiangate, la 1C ha registrato un forte aumento delle vendite in diversi mercati tra cui gli stessi USA.

## Architettura

La piattaforma tecnologica "1C: Enterprise" è un applicativo software legato a un database. Impiega database basati su file DBF in 7.7, formato nativo 1CD dalla versione 8.0 o DBMS Microsoft SQL Server. Inoltre, dalla versione 8.1 l'archiviazione dei dati è possibile in PostgreSQL e IBM DB2 e dalla versione 8.2 è stato aggiunto anche Oracle. La piattaforma ha il proprio linguaggio di programmazione interno, che fornisce, oltre all'accesso ai dati, la possibilità di interagire con altri programmi tramite OLE e DDE, nelle versioni 7.7, 8.0 e 8.1 - utilizzando una connessione COM.

La parte client della piattaforma funziona nell'ambiente Microsoft Windows, e dalla versione 8.3, anche in Linux e Mac OS X. A partire dalla versione 8.1, la parte server della piattaforma nella versione client-server di 1C: l'operazione Enterprise può essere eseguita su Microsoft Windows e linux.

Esistono versioni speciali di utilizzo di 1C per laptop e PDA, software per la creazione di applicazioni Web che interagiscono con il database di "1C: Enterprise".

Il prodotto è stato concepito per essere usato in cloud e si adatta perfettamente all'impiego con soluzioni Software-As-A-Service (SaaS).

## Informazioni tecniche

### La piattaforma 1C:Enterprise (archiviato dall'url originale il 27 maggio 2019).

Dal punto di vista tecnico (fonte sito 1C:DN.) il sistema può essere logicamente suddiviso in 2 principali componenti che sono strettamente legati fra loro:

1) La applicazione: intesa come il programma che automatizza i processi aziendali e definisce le regole contabili e di business

2) La piattaforma: il software che permette all'applicazione di funzionare

Per spiegare in parole semplici la relazione tra i componenti del sistema di 1C: Enterprise, lo confrontiamo con un lettore Blu-ray. È noto che è necessario un lettore per guardare video, ascoltare musica o riprodurre altri contenuti multimediali. Il Blu-ray è uno standard ma soddisfa la vasta gamma di esigenze dei clienti attraverso una gamma di dischi disponibili con video o musica per tutti i gusti.

Per guardare un video, è necessario inserire un disco Blu-ray in un lettore e questi riprodurrà il contenuto (video/musica) registrato su di esso. Inoltre, i lettori Blu-ray ti consentono di registrare i tuoi contenuti, ovvero creare un nuovo disco Blu-ray con un video di casa o di aggiungere contenuti (ad esempio i sottotitoli) su un video esistente.

Da solo, il lettore è inutile senza un disco Blu-ray, e allo stesso modo, un disco Blu-ray è inutile senza un lettore (tranne forse come un sottobicchiere per la tua tazza di caffè). Tornando a 1C:Enterprise, possiamo dire che la piattaforma è il "lettore", e l'applicazione è appunto un "disco". La piattaforma consente di eseguire l'applicazione, nonché di modificarla o crearne una nuova. Esiste un'unica piattaforma (1C:Enterprise 8), ma è possibile creare un numero illimitato di applicazioni. Per eseguire un'applicazione, devi sempre avere sia la piattaforma che l'applicazione stessa (vedi lo schema). La piattaforma non esegue alcuna attività di automazione autonomamente, poiché il suo scopo è fornire l'ambiente per lo sviluppo e l'esecuzione di applicazioni. Lo stesso vale anche per un'applicazione: ha bisogno della piattaforma 1C:Enterprise per essere eseguita.

### Configurazione

Configurazione: una soluzione applicativa sviluppata sulla piattaforma tecnologica "1C: Enterprise".

Le configurazioni di base (specializzate) sono progettate per funzionare sulle versioni di base della piattaforma (per la versione 7.x - con il corrispondente "componente"). Le configurazioni di base sono fornite solo da 1C, non consentono modifiche, ma possono essere convertite in quelle standard. Tutte le configurazioni non specializzate, "non di base", comprese quelle tipiche di 1C, consentono all'utente di cambiare (configurare).

Le soluzioni di terzi sono spesso protette da un "sistema di protezione della configurazione" (SLC), offerto da 1C o simile, e prevede la presenza di una chiave aggiuntiva distribuita con la configurazione. Senza questa chiave, il programma funziona in modalità limitata o dimostrativa (come consigliato da 1C) o il lavoro è completamente impossibile. Parte del testo del programma non è disponibile per la lettura e la modifica (anche se è presente una chiave). Queste chiavi SZK non sostituiscono le chiavi della piattaforma tecnologica, continuano a rimanere necessarie.

Le configurazioni 7.x possono utilizzare gli oggetti di base e gli oggetti di altri "Componenti standard". Per utilizzare un oggetto di qualsiasi componente, è necessario disporre di un componente appropriato nella piattaforma tecnologica. Se la configurazione è scritto utilizzando solo oggetti di base ( "componente-indipendente"), per il suo uso della necessaria piattaforma tecnologica 7.x con qualsiasi di almeno un "componente", non meno di "Accounting (Standard)." È necessario distinguere il concetto di "servizi di base" e "configurazione base": per esempio, configurazione non specializzato che utilizza solo oggetti di base, non funzionerà sulla piattaforma sottostante, ma la configurazione di base non è limitato all'utilizzo di strutture di base.

### Linguaggio 1C

Tutte le applicazioni basate sulla piattaforma 1C:Enterprise sono in codice aperto e sviluppate con il linguaggio proprietario "1C". Si tratta di un linguaggio ad oggetti che facilita lo sviluppo e la personalizzazione di applicativi per la gestione dei processi aziendali e della contabilità. Secondo i numeri forniti da 1C:Company ci sono oltre 65.000 programmatori certificati 1C, accanto a questi si stimano circa 350.000 programmatori che siano in grado di sviluppare su linguaggio 1C. La maggior parte di questi si trova nei Paesi dell'Est-Europa.

### Sicurezza

La piattaforma 1C:Enterprise si caratterizza per la sua estrema sicurezza dal punto di vista di protezione dei dati e l'impossibilità di avere intrusioni esterne.

## Soluzioni applicative di base per il mercato Italiano

1C:Drive: Drive è una soluzione completa per semplificare e gestire i processi chiave di una Piccola e Media Impresa. Si tratta di una soluzione studiata per società con un limitato numero di utenti (di solito 5-10) e per società a non elevata automazione. Prodotto similari e concorrenti sono Microsoft Dynamics e SAP Business One.

1C:Erp: È un prodotto completo adatto a grandi aziende o medie aziende supporta un elevato numero di utenze. Automatizza i processi aziendali attraverso processi basati sulle best practice internazionali. I principali concorrenti a livello mondiale sono SAP R/3, SAGE, Microsoft Dynamics.

AccountingSuite: software per gestire la contabilità aziendale di una piccola azienda inizialmente studiato per il mercato Americano.

1C:Advertising: Software verticale per il settore della pubblicità e delle affissioni.

1C:DocumentManagement: Prodotto per la gestione del flusso dei documenti inclusivi dei processi relativi alla archiviazione sicura degli stessi.

## Storia delle versioni di 1C:Enterprise

### Prime versioni

Originariamente il prodotto girava su DOS. La prima versione per windows è la 6.0 nel 1995. Queste versioni puntavano soprattutto ad automatizzare i processi contabili e di controllo (incluso il personale).È con la versione 7 (nel 1999) che comincia ad estendersi a tutte le attività aziendali e a diventare un vero e proprio ERP (Enterprise Resource Planning).La piattaforma è in questo caso ancora divisa per componenti separati.

### Versione 8

Il 14 agosto 2002 è stata rilasciata la versione di prova di 1C: Enterprise 8.0 ed il rilascio ufficiale è stato il 31 luglio 2003.

Tutti i "componenti" sono inclusi nella fornitura di base (la piattaforma non è ora divisa in "componenti" come nel caso della versione 7). Questo è un vantaggio per l'utente, poiché, dopo aver acquisito qualsiasi configurazione, l'utente può lavorare con tutte le funzionalità della piattaforma. Il server "componente" 1C 8.1 può funzionare nel sistema operativo Linux e utilizzare PostgreSQL.

Rispetto alla versione 7, il linguaggio di programmazione della piattaforma è cambiato in modo significativo. Non è compatibile con le versioni 6.x e 7.x. Ha un numero relativamente vasto di oggetti fissi. Il linguaggio incorporato divenne più riflessivo e logico, si avvicina al concetto di programmazione orientata agli oggetti, e appaiono molte collezioni e cataloghi necessari; il lavoro con le collezioni è stato sostanzialmente rivisto (l'elemento collezione è ora rappresentato come oggetto separato); gli oggetti di interfaccia (ad esempio i campi di tabella) diventano chiaramente delimitati dai dati visualizzati in essi (tabelle di valori e parti di tabella); nella programmazione dell'interfaccia, viene implementato un concetto completo di elaborazione degli eventi; il linguaggio di query ha iniziato a somigliare al linguaggio SQL (implementato solo da SELECT) con alcune aggiunte.

Nella versione 8, ci sono due modalità principali: modalità enterprise e modalità configuratore (in questa modalità, c'è anche una modalità di debug). La modalità di monitoraggio viene eliminata poiché il monitor è integrato in modalità e imprese e nel configuratore.

La piattaforma 1C: Enterprise 8 consente la configurazione, consente l'uso simultaneo di un database da più utenti se si dispone del numero necessario di licenze aggiuntive. Il costo di ulteriori licenze è sostanzialmente inferiore al costo del programma.

### Versione 8.2

La principale caratteristica distintiva è la modalità "applicazione gestita", in cui l'interfaccia utente è descritta in modo dichiarativo e il suo aspetto dipende dal tipo di Sistema Operativo client:

* "Thick" Client (le versioni meno recenti dell'applicazione client 8.0 e 8.1);
* "Thin" client;
* Client Web (include parti client e server: browser Internet Explorer e Mozilla Firefox sono supportati e il server Web può essere eseguito su Apache o IIS). L'interazione client-server viene implementata utilizzando le tecnologie AJAX (DHTML), XMLHttpRequest e JavaScript.

Differisce inoltre un'implementazione più "rigorosa" dell'architettura client-server, in particolare richiede il trasferimento dell'implementazione di tutte le logiche aziendali al codice server, implementato il bilanciamento dinamico del carico nel cluster di server, aggiunto il supporto per il database Oracle. Il 25 settembre 2009 è stata rilasciata la versione finale di 8.2.9.

La nuova versione della piattaforma implementa la tolleranza ai guasti del cluster di server "1C: Enterprises", il "componente" principale che fornisce l'interazione tra l'utente e il DBMS.

Il 26 maggio 2010 è stato rilasciato l'aggiornamento della piattaforma 8.2.11. In questa versione, l'ottimizzazione dei meccanismi interni e implementate alcune nuove funzionalità:

* lavorare con la protezione crittografica;
* esportazione di documenti in formati Microsoft Office 2007;
* eseguire il debug di un client Web;
* documento formattato;
* supporto per Google Chrome e Safari.

### Versione 8.3

Come importanti modifiche a questa versione, possiamo annotare:

* permettere l'impiego agli utenti client nativi a 64 bit sotto Linux e MacOS. (Le applicazioni client esistono solo per Mac OS X 10.8 e versioni successive e sono rilasciate a scopo di beta testing).
* Client e configuratore a 64 bit per Windows una piattaforma mobile a tutti gli effetti per iOS, Android e Windows Phone
* meccanismo di elaborazione per la disposizione degli elementi nelle forme
* cambiamenti nei meccanismi di interfaccia

Gli sviluppatori hanno anche ricevuto un gran numero di modifiche, tra cui:

* la possibilità di creare estensioni di configurazione che consentono di modificare la configurazione senza rimuoverla dal supporto
* Migliorato il meccanismo di archiviazione di configurazione e di confronto degli oggetti
* meccanismo di refactoring del codice
* meccanismo per test automatici dell'interfaccia
* esportazione della configurazione in file di formato testo, incluso parziale

### Enterprise Development Tools

Insieme alla continuazione dello sviluppo della piattaforma 8.3, 1C ha presentato agli sviluppatori una versione beta del nuovo configuratore. Il pacchetto di strumenti di sviluppo aziendale è basato su Eclipse ed è l'ulteriore sviluppo degli strumenti di sviluppo della piattaforma V8.

