1C:Enterprise
A Russian enterprise application development platform with a bilingual (Russian/English) built-in scripting language, metadata-driven architecture, and dominant market position in the CIS business software ecosystem.
Created by 1C Company (Boris and Sergei Nuraliev)
1C:Enterprise (Russian: 1С:Предприятие) is a business application development platform created by 1C Company that dominates the enterprise software market in Russia and the Commonwealth of Independent States (CIS). More than just a programming language, it is an integrated ecosystem combining a metadata-driven development environment, a bilingual scripting language (with interchangeable Russian and English keywords), an application server, and a suite of pre-built business solutions. According to 1C Company, the platform is used by over 1.5 million organizations for accounting, ERP, CRM, and HR automation.
History & Origins
The story of 1C:Enterprise begins with 1C Company, founded in 1991 by Boris Nuraliev in Moscow. The company initially operated as a software distributor, selling Western business software such as Lotus 1-2-3. In 1992, Boris’s brother Sergei Nuraliev (who remains the chief architect of all 1C business software) wrote “1C:Accounting” (1С:Бухгалтерия), a DOS-based bookkeeping program. Even this first product included a built-in macro language, establishing the design philosophy that would define the entire platform: configurable business software with embedded programming capability.
The company name “1C” reportedly derives from the system’s original promise of delivering database query responses within approximately one second.
Through the early 1990s, 1C released several DOS-based versions (3.0, 4.0, 5.0, 6.0) as specialized accounting products. A Windows version (6.0) arrived around 1995. The pivotal shift came with 1C:Enterprise 7.0 in 1996, which introduced the “Enterprise” (Предприятие) branding and transformed the product from standalone accounting software into a configurable platform that could integrate accounting, inventory management, payroll, and sales. Version 7.7, released in 1999, became extremely popular and remained in widespread legacy use long after newer versions appeared.
A fundamental architectural overhaul arrived with 1C:Enterprise 8.0 in 2003. This version introduced a completely new platform architecture with client-server capabilities and a redesigned programming language that was not backward-compatible with version 7.x. The 8.x line has continued to evolve through versions 8.1, 8.2, and 8.3, with 8.3 (released in 2013) being the current major version branch and still receiving regular updates.
Design Philosophy
1C:Enterprise embodies a distinctive design philosophy that sets it apart from both general-purpose programming languages and other enterprise platforms like SAP or Oracle:
Metadata Over Code
The platform’s core principle is that business applications should be built primarily through declarative metadata configuration, not imperative code. Applications are composed of approximately 20 integrated object types called “Configuration Objects” or “Building Blocks”:
- Catalogs – reference data (products, customers, employees)
- Documents – business transactions (invoices, receipts, orders)
- Registers – data storage (accumulation, information, accounting, calculation)
- Business Processes – workflow definitions
- Charts of Accounts – accounting structures
- Exchange Plans – data synchronization rules
Each object type comes with its own data structure, processing logic, and auto-generated user interface. The platform automatically creates database schemas, forms, and reports from metadata definitions. The programming language is deliberately used only when algorithmic logic is needed – such as tax calculations, data validation, or custom business rules – while structural and visual elements are handled by configuration.
Bilingual Syntax
One of 1C:Enterprise’s most unusual features is its bilingual built-in scripting language, commonly known in the developer community as BSL (Built-in Script Language). All keywords exist in both Russian and English and can be used interchangeably, even within the same module:
| English | Russian |
|---|---|
Procedure | Процедура |
EndProcedure | КонецПроцедуры |
Function | Функция |
If / Then / Else | Если / Тогда / Иначе |
For Each / Do | Для Каждого / Цикл |
Return | Возврат |
This design choice reflects the platform’s primary audience: Russian-speaking developers who may find native-language keywords more natural, while also enabling international developers to work with the platform using English syntax.
Low-Code by Design
1C positions its approach as low-code development. The guiding principle is: “Let the platform handle the routine; code only when strictly necessary.” This minimizes the volume of programming required while enabling deep customization for complex business logic.
Key Features
The Built-in Scripting Language (BSL)
BSL is a dynamically typed, object-based (explicitly not fully object-oriented) language with syntax that, according to 1C’s documentation, “has much in common with” Pascal, JavaScript, and Basic. Developers can inherit objects from integrated platform types (Catalogs, Documents, Registers), but further inheritance from developer-created objects is not supported. This is a deliberate design choice to keep the platform metadata-driven rather than code-driven.
// English syntax
Procedure CalculateTotal(Document)
Total = 0;
For Each Line In Document.Lines Do
Total = Total + Line.Quantity * Line.Price;
EndDo;
Document.Total = Total;
EndProcedure
// Russian syntax (equivalent)
Процедура РассчитатьИтог(Документ)
Итого = 0;
Для Каждого Строка Из Документ.Строки Цикл
Итого = Итого + Строка.Количество * Строка.Цена;
КонецЦикла;
Документ.Итого = Итого;
КонецПроцедуры
The language compiles to bytecode that runs on the 1C:Enterprise virtual machine, with implementations for Windows, Linux, macOS, and browsers (via JavaScript for the web client).
Built-in Data Types and Collections
BSL provides rich built-in collection types designed for business application scenarios:
- Array – indexed collections, can be multidimensional
- Structure – key-value pairs with string keys
- Map – key-value pairs with flexible key types
- Value Table – dynamic tabular data storage
- Value Tree – hierarchical data structures
- List of Values – dynamic sets for user interface tasks
Three-Tier Architecture
1C:Enterprise uses a three-tier architecture: client applications, a server cluster, and a database backend. The platform supports multiple client types:
- Thin client (Windows, Linux, macOS) with minimal local processing
- Web client running in browsers via IIS or Apache, requiring no installation
- Mobile clients for iOS and Android with offline synchronization
Database backends include a native file-based system (for development and small deployments), Microsoft SQL Server, PostgreSQL, Oracle Database, and IBM DB2.
Customization Framework
1C:Enterprise addresses a critical enterprise software challenge: allowing customers to modify applications while still receiving vendor updates. Two mechanisms support this:
- Extensions – separate custom configurations that overlay standard ones, enabling automated update installation without losing customizations
- External processors/reports – add-on scripts that do not modify core code
This approach contrasts with platforms where customization often makes future upgrades difficult or impossible.
Development Tools
- Designer – the primary proprietary IDE for metadata and code development, with debugging, profiling, and auto-completion
- 1C:Enterprise Development Tools – a newer IDE based on Eclipse, supporting Git/SVN integration and plugin extensibility
Evolution
The evolution of 1C:Enterprise reflects the broader transformation of business computing:
The DOS Era (1992-1995): Standalone accounting programs with basic macro capabilities, targeting small Russian businesses navigating the post-Soviet transition to market economics.
Platform Emergence (1996-2002): Version 7.0 introduced the configurable platform concept. Version 7.7 (1999) refined this into a mature product that became the backbone of Russian business automation.
Modern Architecture (2003-2012): Version 8.0 brought a clean-break redesign with client-server architecture, a new language, and support for larger-scale deployments. Versions 8.1 and 8.2 added thin and web clients, enabling browser-based access.
Cloud and International Era (2013-present): Version 8.3 introduced cloud capabilities via the 1cFresh SaaS platform. In 2017, the establishment of 1C International (1Ci) marked a serious push into global markets, with the platform now deployed in approximately 95 countries and localized in over 20 languages.
Market Position
1C:Enterprise holds a dominant position in the Russian and CIS enterprise software markets. By number of organizations, the platform is reportedly used by the majority of Russian businesses for some form of automation. By revenue in the ERP segment, 1C has reportedly competed closely with SAP, holding a significant share of the Russian market since the late 2000s.
According to 1C Company, the platform’s ecosystem includes over 7,000 franchisee partners across approximately 750 cities, more than 1,500 certified solutions, and hundreds of thousands of completed automation projects. This extensive partner network is a key competitive advantage, providing implementation and support services that would be impractical for a single company to deliver across Russia’s vast geography.
Internationally, 1C faces a different competitive landscape. Products like 1C:Drive (targeting SMBs) and 1C:ERP (targeting larger enterprises) are being promoted through 1Ci in European, Asian, Middle Eastern, and Latin American markets, though the platform remains far less known outside the CIS than within it.
Why 1C:Enterprise Matters
1C:Enterprise is one of the most commercially successful programming platforms that most Western developers have never heard of. It demonstrates that a metadata-driven, domain-specific approach to enterprise software development can be remarkably effective – the platform’s ability to handle the full complexity of Russian tax law, accounting regulations, and business practices through a configurable system rather than custom code is a significant engineering achievement.
The bilingual syntax is nearly unique in the programming language world, offering a practical solution to the tension between internationalization and developer accessibility. The platform’s longevity – spanning over three decades of continuous development from DOS to cloud – shows the value of a coherent, opinionated approach to enterprise application development.
For programming language historians, 1C:Enterprise represents an important data point: a fourth-generation, metadata-driven platform that chose to optimize for business domain modeling rather than general-purpose expressiveness, and succeeded commercially on a massive scale. Its story illustrates how local market conditions, regulatory requirements, and language accessibility can shape technology adoption in ways that global platforms sometimes struggle to address.
Timeline
Notable Uses & Legacy
Russian Business Accounting
Reportedly used by over 1.5 million organizations across Russia and the CIS for mandatory bookkeeping, tax reporting, and regulatory compliance, making it the de facto standard for business automation in the region.
Enterprise Resource Planning (ERP)
1C:ERP provides integrated manufacturing, supply chain, financial management, and HR modules, competing with SAP and Oracle in the Russian market where 1C reportedly holds a significant market share.
Government and Public Sector
Widely adopted by Russian government agencies and public institutions for payroll, budgeting, and administrative automation, driven by localization of Russian legal and tax requirements.
International SMB Solutions
Through 1C International, reportedly deployed in approximately 95 countries via products like 1C:Drive for small and medium businesses, with localization in over 20 languages.