Learning the programming language 1c 8.3. Fundamentals of programming in the "1c: enterprise" environment

MINISTRY OF BRANCH OF RUSSIA

Federal State Budgetary Educational

institution of higher professional education

"PENZA STATE UNIVERSITY"

A. E. Khokhlov

Fundamentals of programming in the "1c: enterprise" environment

Penza, 2016

UDC 631.3 (075)

R e c e n z e n t:

Head of the Department of Applied Informatics

Penza State Technological Academy,

Professor A.P. Remontov

Khokhlov A. E.

X86 Fundamentals of programming in the 1C: Enterprise environment: Textbook / A.E. Khokhlov, E.M. Golobokova, Yu.V. Teryakova - Penza: Penz Publishing House. state University, 2015 .-- 144 p.

The tutorial allows you to master the techniques of developing and modifying applied solutions on the 1C: Enterprise 8.3 platform. On the example of creating a real applied solution, the structure of various objects of the system, their purpose and method of use are shown. The procedures are given in the built-in language, including those using the query language.

UDC 631.3 (075)

© Khokhlov A.E., 2016

© Publishing house of Penza State University, 2016

2.1. Composition of the 1C: Enterprise 8 program system 7

2.2. Configuration structure 9

2.3. Architectures of the 1C: Enterprise software system 12

3. Object model of the 1C: Enterprise platform 18

7. Registers 75

Introduction

The 1C: Enterprise 8 software system is designed to automate the activities of enterprises, organizations and individuals. The system is based on a flexible technology platform, the capabilities of which allow you to create and modify a wide variety of business applications.

The main feature of the 1C: Enterprise system is its configurability. Technological platform "1C: Enterprise" is a set of mechanisms designed to manipulate various types of objects in the subject area. A specific set of objects, structures of information arrays, information processing algorithms are determined by a specific configuration ... Together with the configuration, the 1C: Enterprise platform acts as a ready-to-use software product focused on certain types of enterprises and classes of tasks to be solved.

The functioning of the system is divided into two processes:

    configuration (description of the domain model by means provided by the system),

    execution (data processing of the subject area).

The configuration process, in turn, breaks down into several components:

    "Visual" creation of the configuration structure (such configuration objects as directories, documents, etc.),

    setting up dialog forms of objects,

    defining the specifics of the behavior of objects, forms (writing code in the system language in certain places of the configuration),

    creation of interfaces, sets of user rights (roles).

In the process of execution, the system already operates with specific concepts described at the configuration stage (reference books of goods and organizations, invoices, etc.).

The tutorial provides an example of developing a configuration on the platform release 8.3.6.2014 (educational version).

An educational version or a version for teaching programming can be downloaded from the site http://online.1c.ru/catalog/free/learning.php

To learn programming, we need 1C 8.3 (no less than 8.3.4.482).

If you have 1C version 8.3 installed - use it. If not, download and install the educational version, which 1C produces specifically for educational purposes.

Task Ml. Download and install educational version 1C 8.3.

Instructions for execution:

  • 1. Unpack the archive downloaded from the link into a separate folder on your desktop:
  • 1.1. Dropbox download link (Nsl variant) https: //www.dropbox.eom/s/t69xyrrhsdugfzf/lC_Predprijatie_ 8.3_uchebnaja_versija.zip?dl=l
  • 1.2. link to download from Mail.ru (option N ° 2) https://cloud.mail.ru/public/59a9a532864d/lC_Predprijatie_8.3_ uchebnaja_versija.zip
  • 2. Run the "setup.exe" file.
  • 3. Click Next, Next, Install.
  • 4. Wait for the installation to complete.

After completing Task No. 1, the following shortcut should appear on your desktop (Fig. 1):

Enterprise e (educational version)

Rice. 1. Launch shortcut 1C: Enterprise

First program

This has already become a tradition for programmers - when learning a new language, the first thing they write in it is a program that prints the phrase "Hello, World!" On the screen.

Let's make the computer display this phrase in Russian "Hello, World!"

Task number 2. Write a program in 1C 8.3, which, when launched, displays the phrase "Hello, World!"

Instructions for execution:

  • 1. Launch the "1C: Enterprise" shortcut on your desktop.
  • 2. The list of 1C bases has opened in front of you (Fig. 2). As you can see, it is empty. Let's create a learning base in which we will program. Click the button "Add".
  • 3. Select an item and press the button "Further"(fig. 3).
  • 9 SCH Adding infobase / g> tpy X

Rice. 3.

4. Select an item ... "(fig. 4) and press the button "Further".


Rice. 4.

5. For the name of the base, specify "Educational"(fig. 5) and press the button "Further".


Rice. 5.

6. Specify any empty folder as the base directory (in this case it is the "Training" folder in my documents (Fig. 6)). Press "Next".


Rice. 6.

7. Specify an authentication option "Select automatically", launch mode "Thick client". Do not specify anything as version 1 С: Enterprise, click the "Finish" button (fig. 7).


Rice. 7.

8. As you can see, the first database, which we have just created ourselves, has finally appeared in the list (Fig. 8)! Let's start writing some code. Click the button "Configurator".

Rice. eight.

9. In the window that opens, select through the menu "Configuration" paragraph "Open configuration"(fig. 9).

Configurator (educational version) - Configurator

Rice. 9. Selecting a menu item "Open configuration"

10. In the panel that opens on the left, right-click on ""Configuration" and select from the list "" Open a module of a managed application "(fig. 10).

Configuration

Actions »f / | X i 4

© *? General _А КрнСіаміь !.

Configuration

^ Open Managed Application Module Open Session Module

Rice. ten. Selecting "Open Managed Application Module"

11. A window with an editor has opened (Fig. 11). You can write text here! We will work with him in the future.

Rice. eleven. Managed application module

12. Rewrite the following text in this window (fig. 12):

Report ("Hello World!");


13. The code for our first program is now complete. Let's launch it for execution. Through the menu " Debugging" "Start Debugging"(or key / ’i) (Fig. 13).

Ді Configurator (educational version) - Configuration

і file Edit Text Configuration Otlahka Alg4nstriroe »« e Service Windows Help

10 сЗЬІїХ *

i in & d t? © "і а а і //

[Coifiguradoya *

Actions?

KoiFigure

$ O # General 8? Constants 1111 References ® С] Documents

Document journals (..)

Configurator (educational version)

L The editable configuration is different from the database configuration. Update database configuration?

....................

Rice. 13. Running the program for execution

14. The answer to the question is in the affirmative.

15. After a second or two, 1C will start and the inscription "Hello, World!" Will appear in the window below. We got what we wanted from the computer, our first program started working (Fig. 14).

Messages:

Hello World!

Rice. fourteen. Results of the program

An excellent video course on programming in the 1C: Enterprise system. Includes 7 courses:

1. 1C: Enterprise 8.3. Developer first steps
- to navigate in the structure of the new version of the 1C: Enterprise 8.3 system;
-understand the general principles of system development;
-select ways of further study and development of the "1C: Enterprise 8" system;
-use basic skills of work in the environment "1C: Enterprise 8";
-work with reference books, documents and other objects, customize their properties;
- at the initial level, work with basic form controls, event handlers and other system functionality.

2. 1C: Enterprise 8.3. Introduction to configuration. Main objects
-You will understand the general principles of building the 1C: Enterprise 8 system
- Master the basic skills of working in the "1C: Enterprise 8" environment

3. Using queries in the 1C: Enterprise 8 system. Query language
-Write requests
-Work with Query Builder
-Correctly use different types of IB tables
-Get familiar with the peculiarities of working with virtual tables of registers

4.1C: Enterprise 8.3. Solving operational tasks
-Work with accumulation registers
-Write algorithms for the conditional holding of documents
-Use managed locking mechanism
-Explore ways to improve the performance of solutions

5.1C: Enterprise 8.3. Solution of accounting problems
- To independently design a chart of accounts and an accounting register for solving problems of synthetic, multi-company, analytical, quantitative and currency accounting;
-Correctly fill in the register with movements for all types of accounting, both when posting documents and when recording manual transactions;
-Describe the optimal complex processing of conducting primary and regulatory documents with the analysis of the results of the accounting register in multi-user mode when using configuration-controlled locks;
-Use the data composition mechanism for the development of any accounting reports, both summary synthetic and detailed analytical.

6.1C: Enterprise 8.3. Solving computational problems
-Confidently own the tools "1C: Enterprise 8.3"
-Know and be able to apply in practice methods of solving problems of automation of payroll and personnel accounting
-Be able to control the performance of the developed solution
-Understand the relationship of configuration objects, physical tables and virtual tables of the calculation register
-Find and correct errors: both methodological and software
-Ownership of the functionality of the platform "1C: Enterprise 8.3" in the part necessary to solve computational problems

7. 1C: Enterprise 8.3. Integration and data exchange tools
-Work with text files and documents
-Work with .dbf files
-Organize internet connections
-Work with e-mail and use the protocols http, ftp
-Use OLE and COM technologies
-Use a consistent XML access model
-Use XDTO and mixed XML model
-Organize data exchange
-Use the mechanisms of the "Exchange Plans" object
-Use the "Data Conversion" configuration

Even if you have studied other programming languages ​​in advance, for example, C ++, PHP, Java, it is worth remembering that 1C, although in many respects, still has many fundamental differences.

The most important thing in 1C is that you don't need to invent your own types of objects. All of them are already in the configuration.

Install the 1C technological platform on your computer, and open a new or existing base in the configurator. For starters, you can absolutely use it to teach programming.

On the left side of the window, you will see a tree of configuration objects. These include documents, directories, registers, business processes, and more.

The data is also stored in the DBMS, but the developer usually does not work with them directly. With the help of the technological platform, the programmer already refers to the objects of the configuration or infobase.

In 1C, as in many other programming languages, queries are very often used. similar to the T-SQL language. Requests can be written in both English and Russian, among other things, like the rest of the code.

Everything seems to be simple, but knowledge of a programming language is often not enough to work "in the field". The fact is that in most organizations using 1C, standard configurations are installed, and you need to know them.

In the work plan for 1C programmers, there are two main branches: franchisee or self-employment and work as a full-time programmer of the IT department of any organization. This choice depends only on your preferences.

When working for a franchisee, freelancing or running your own business, the payment will be piecework. There can be a lot of work and you need to give all your best. There is no cap on wages, and you can make an impressive amount of money.

If you decide to work as a freelancer or open your own business, you will not need to “share” your earnings with anyone (except for the state and the freelance platform, of course). But in this case, it will be necessary to look for clients on your own.

If you nevertheless decide to get a job in the organization as a full-time programmer, then you will not depend much on the volume of work performed. In this case, there is some stability, but the salary bar is also limited.

Of course, these two methods can be combined, working as a full-time programmer during the day and freelancing in the evenings.

What is good about 1C programmers is that you may not have a technical education (for example, you are an economist, accountant, etc.). To confirm your knowledge in front of clients or an employer, you can provide your 1C certificates.

Certificates are of various types, both by platform (for programmers) and by standard solutions. You can get them at 1C by passing an exam in the form of a test or practical assignment.

Books on 1C

It is best to study 1C from books that were published by 1C. From the source, so to speak. Some of them come with standard configurations. You can also buy individual books.

The book "1C: Programming for Beginners" is intended for people far from programming, but who want to learn how to create their own solutions on 1C 8.3 from scratch.

"Hello, 1C" shows the simplest, basic possibilities of developing applied solutions in the 1C: Enterprise 8 system.

101 Tips describes different ways to accomplish the same tasks.

A practical guide for the developer 1C Enterprise 8.3 is a very detailed guide that describes development techniques with simple and understandable examples. This book is one of the best for learning 1C programming.

This tutorial describes a query language from scratch for those who are not even familiar with SQL.

If you write in SI
Be at least three times lamer
They say about this:
"He's a cool programmer!"
(Fidoshnye songs - "What is Suxxx and What is Rulezzz")

Foreword

The reason for writing this article was the negative attitude of the professional community towards this platform and programmers.

As a programmer who chose 1C, I think this opinion is unfounded. The 1C platform is far from ideal, but, in my opinion, it is the best, and most importantly, a domestic product!

And even more so - it is inadequate to judge the abilities of a programmer by the language in which he writes.

In this article I will describe the benefits that I have found for myself in the program. The article will turn out to be almost an advertisement, so immediately disclaimer:

  • I have no direct relation to 1C;
  • This article is not customized, and is written solely on a voluntary basis;
  • In some cases, a personal opinion is expressed, which may not coincide ...;
  • The entire article, with the exception of the prologue, is the author's, any coincidences are an accident;
  • We will talk about the 1C Enterprise 8.2 platform (currently version 8.3 is relevant, but I have not studied it yet - a lot of work on 1C 8.2). However, most of what has been said applies to both the 8.3 platform and earlier versions, and some of it applies to version 7.7 as well.
So let's get started.

What are we talking about?

Platform 1C Enterprise 8 is:
  • Works in two versions - file and server (three-link) - each has its own advantages and disadvantages;
  • An independent accounting system that is easy to install and configure;
  • Powerful ecosystem for programmers with all the necessary objects and tools;
  • Nice ergonomic interface;
  • A relatively inexpensive business solution;
  • Franchisee network, initial training;
  • A powerful base of developments and knowledge accumulated over the years;
  • At times problematic platform for system administrators;
  • Not the fastest execution of algorithms (although not the slowest) is a tribute to the information content (in case of errors, the line number and its content are indicated);
  • The programming language has no classes (inheritance, encapsulation, polymorphism), no anonymous functions and other modern features. But for solving most of the problems, this is not necessary!
For the organization of accounting - one platform is not enough. The platform is a kind of "engine", an intermediate link between the program and the database. The programs for this "engine" are called configurations. The configuration describes the structure of the database in the form of objects, the texts of procedures stored in separate modules (there are many modules, both each object and the system as a whole have them, and there are also common modules). The platform provides a level of abstraction that does not require direct access to the database, and also allows you to abstract from the operating system and the type of database.

File and server databases

The platform consists of several parts and can work in a file or server version.

In the file version, the entire database is contained in one file (with the "1cd" extension) - the platform is installed on each computer and directly reads / writes to the database.

The advantages of the file option are low cost and ease of deployment.

Cons - the structure of the "1cd" file is closed, there is no single system interacting with the database. As a result, it is difficult to use with a large number of users (tried for 20+ users - you can work). In addition, dynamic updates fail when the database size is approximately 15 GB (or more). Resolving such failures is a difficult task, and the database repair utility does not always effectively repair, and sometimes even cripples the database.

There is a solution - this is, first of all, setting up a daily database backup. In addition, craftsmen not only publish the 1cd file format, but have also developed utilities for working with such files and a number of methods to solve similar problems.

In the server version, the platform for storing the database uses a SQL server (usually this is MS SQL, but starting from 8.2.14 - you can use some others, for example, Firebird PostgreSQL, IBM DB2, Oracle Database), and the platform itself uses a three-tier architecture:

Some of the code is executed on the client, some on the server. In this case, only the server interacts with the database. At the same time, starting from version 8.2, in addition to the standard operating mode, which was called the “thick client” mode, two new operating modes appeared - “thin client” and “web client”; also appeared "managed forms", the appearance of which is built in the form of an abstract tree of elements. Programming for managed forms and a three-tier architecture is more difficult, but it allows you to transfer almost all the load to the server (i.e. you can buy one powerful server and a hundred of the cheapest office computers).

Platform advantages: "three-link" - load distribution, database openness (officially 1C company refuses responsibility for any data corruption if changes were made to the SQL database except by means of their platform or server, but this stops few people), no restrictions.

Cons - the price: you will have to buy separately client licenses for each client computer, separately - one license for the 1C server, a separate license for the SQL server, if you do not use the free one. Also, sometimes there are difficulties in the operation of the database. They are solved much faster due to the availability of data and the availability of external tools for working with the database. In addition, in this case, you should make a backup of the database.

The general advantage is the versatility of the configuration code: with some exceptions, the configuration developed for the file database will work on the server database, and vice versa. An example of an exception is the transfer of a mutable value to the server or from the server to the client (in the file version this will not cause exceptions, but in the client-server version it is prohibited).

Another plus: the platform is installed very simply, something like this: "Next-Next-Next-Ok", no fine tuning and installation of any components is required.

For the server version, there are a few more settings, but everything is done in the installation dialog and does not require prescribing anything in separate files. The installation of a SQL server can be somewhat difficult, since in this case, there are much more settings (and to fine-tune it, you need to study additional instructions). But this does not apply to the problems of the 1C platform. Moreover, if you install, for example, an MS SQL server with all the default settings, then 1C will be able to work with it.

It's more than accounting

When it comes to the 1C platform, it is presented, first of all, as a program for accounting. Indeed, this is the most popular area of ​​using the 1C platform. But 1C does not live by accounting alone!
Those who are familiar with the platform say that it is an accounting system (accounting automation). This is closer to the truth - there are many configurations, both from 1C and from third-party developers. Some are only indirectly related to accounting, some are not related at all.

In general, it is more correct to represent the 1C platform as a shell for object modeling of the database, interface and programming in the 1C language. The only limitation is that for each configuration its own database is created, and only one (however, it is possible to additionally connect external data sources as part of the configuration, i.e. other databases).

Ecosystem for programmers

Consider now the 1C language and the platform from the developer's point of view:
Database Object Model. First, we do not work directly with databases. It's not needed. For our convenience, all data is presented as interconnected objects (directories, documents, information registers, accumulation registers, ...), and the platform automatically pulls this data out of the database.
For example, provided that the variable "ItemNomenclature" contains a link to the item of the catalog "Nomenclature", the catalog "Nomenclature" has the attribute "MainSupplier", of the type "Directory. then the code:

ItemNomenclature.PrimarySupplier.Full
... will lead to the fact that the 1C platform, using internal mechanisms, finds an entry in the table corresponding to the "Contractors" directory by the identifier from the "Main Supplier" field of the item item and returns the value of the field corresponding to the "FullName" field in the object model of the "Contractors" directory.

There can be many such dereferences - the system will cope. The only caveat is that the system does not know how to optimize dereferencing, so you should strive to take them out of all possible loops.

In addition to objects that describe data, there are a huge number of system objects - for a wide variety of functions. I will highlight some of them:

Value stores
Array- an object that stores a set of data, in contrast to the classical representation of arrays. It can be data of various types (number, string, reference, other object). It has minimal functionality and is mainly used as a temporary container for transferring values ​​between other storages.

List of Values- an object, mainly for working with the user interface. In addition to data, for each element it can also contain a view, a flag sign and a picture (pictogram). It also has the methods "SelectElement ()" and "MarkElements ()" - when called, the interface dialog is shown to the user (which is convenient - there is no need to create this dialog in the configuration).

Structure and Correspondence- storages of paired values ​​"Key and value". In the "Key" structure, this is a string that obeys the rules for naming variables in 1C (no spaces, start not with a digit, consists only of letters, numbers and an underscore). According to - "Key" is any value. The fastest searching for objects is matching (faster than in an array and an indexed table of values).

Table of Values- a very convenient, and rather fast, object for storing and processing data. Columns in the value table can be added and removed, regardless of the number of entries. In this case, the data in the rows is not lost (or only data from the cells corresponding to the deleted columns is deleted). Also, it has a "SelectRow ()" method that invokes the row selection dialog. There are indices.

Value Tree- an object representing hierarchical data. Contains columns, the set of columns is the same for all records at all levels. Removing / adding columns in a value tree is just as easy as it is in a value table. Also, it has a "SelectRow ()" method.

Interface objects and objects for working with various data TextDocument, SpreadsheetDocument, Web Browser, FileReader, FileWrite, ZIPFile Reading, ZIPFileWrite, XMLReader, XMLWriter, HTTPRequest and many more objects, and there is built-in help for everything in the configurator. The purpose of the listed objects can be seen from their names and all this is immediately available in the platform.

Separately, it should be noted that there is an object "Metadata" - with the help of which you can study the data structure in the programming language, as well as for each link or object for a reference book, document, chart of accounts, etc. there is a method "Metadata ()" - providing a description of this reference book / document / chart of accounts / etc. in the database (what details, tabular sections are available, the length of the code / number, etc.). It is often very convenient.

And we should also separately mention the objects: "Query", "QueryConstructor", "QueryBuilder", "ReportBuilder", "DataCompositionSchema". This family implements a set of objects for working with the powerful 1C query language.

Query language. Queries in 1C are used only to obtain a sample of data with convenient selection, sorting, groupings. As a first approximation, this is the “SELECT” statement from SQL translated into Russian, however, in the 1C query language there is also functionality that is absent in SQL, namely:

  • Working with 1C configuration objects instead of SQL tables;
  • Working with links instead of SQL identifier fields;
  • Dereferencing support, similar to how it is done in code;
  • Selection by entry into the group (for reference books);
  • Hierarchical totals;
  • Temporary tables and subqueries (SELECT * FROM (SELECT…)));
  • Query constructor - convenient, object-oriented, automatically optimizing the query text for quick reading, which can parse the query text (parse the query text and build an object model from it);
  • Report Builder is an add-on over the query engine, which has added the functionality of automatic presentation of results, as well as flexible configuration of the query itself in the "Enterprise" mode (ie by the user). As a result, a universal report appeared in standard 1C platforms, in which the user can configure what data and in what order he wants to see what is in the rows, what is in the columns, and the report itself generates the output table;
  • ACS (Data Composition System) is the next model that has incorporated the functionality of a universal report and supplemented it with some functions for processing results.

Programming language
In terms of syntax, 1C language is similar to "Russian Pascal", but differs from "Pascal" in less rigor and the absence of some constructions:

  • There is no need to declare variables - you can initialize directly in the text of the module;
  • There is no rigid typing of variables. The system has value types, but there are no strict typing rules for variables. The variable that stored the link can already store a number or a string in a couple of lines of code;
  • You can add variables with values ​​of different types, and the type of the result will be the same as the type of the first variable, for example:
    k = “25” +1; // k = “251”, not 26
  • Variables with values ​​of different types can be compared for equality or inequality (but not more or less, this will cause an exception) - naturally, such variables are not equal;
  • There are functions and procedures, it is permissible to use recursion (with limited recursion depth);
  • When specifying a function or procedure without parameters - all the same, be sure to include empty parentheses at the end: here_so ();
  • There are modules: each reference book and document has several of them, in addition, registers, reports and processing have modules and each form, and also as part of the configuration, it is possible to create common modules;
  • No classes, inheritance, encapsulation, polymorphism;
  • The function cannot be passed as a reference, there are no anonymous functions;
  • There is no reverse loop (for i: = 5 downto 1 do), but it is really needed when deleting records. We get by with a slightly longer recording through the "Bye" cycle.

Tools

  • The 1C platform has the ability to unload and load a configuration, compare the configuration with another configuration and partially load changes;
  • It is possible to unload module texts for batch processing and load them back into the configuration;
  • If the configuration is on support (all configurations from 1C are initially on support), then you can always compare and see what was changed by third-party developers or local specialists;
  • It is also possible to unload / load the entire database (along with data);
  • For collective work on one configuration, the configuration store is used;
  • There are also a number of rules for making changes to standard configurations, there is even a document from 1C describing methods and standards for changing typical configurations (and any others).

General impression
The 1C language combines the clarity of the texts of the Pascal language with the frivolity of working with the variables of the BASIC language. It lacks a number of features inherent in modern programming languages, but it is quite possible to do without them. In addition, the 1C platform has a powerful garbage collector, i.e. there is no need, for example, to clear tables after use or to delete them.

1C Enterprise 8.2 interface

1C Company paid special attention to the interface of its program. First of all, it is the color palette. She's gorgeous! The program windows are recognizable even from afar, while for many years of work - they do not cause hostile feelings, on the contrary - I want all programs to be as cool.
At the same time, the style of the platform is very strict, without frills and other frills. At the same time, there are very useful functions, for example, remembering the sizes of windows (the sizes are remembered only when they are changed by the user, and, at the same time, you can always reset the user settings - to the default sizes and positions by pressing Alt + Shift + R).
The 8.2 Web client interface raises a number of complaints, but it seems that the 8.3 platform brings with it a new redesigned interface - Taxi.

Prices, supply and demand, franchising

The most "tasty" plus of the 1C platform is its price. This is especially true now, during the crisis. After all, 1C is completely our, domestic product. And it is sold for our wooden ones. Such solutions from a foreign manufacturer will cost a lot of money. And licenses for 1C are quite acceptable.

In addition, 1C has an interesting licensing policy. The licenses and configurations themselves are purchased once. At the same time, licenses are bought for a workplace and for a server, but not for databases, and not even for connections, i.e. under one license, the same user can run an unlimited number of 1C sessions, working with any number of databases. The same applies to configurations: by purchasing one configuration license, an organization can use it to create any number of databases, moreover, it is officially allowed to use parts of the code and objects of this configuration when developing its own configurations (while own configurations can be sold / transferred - stipulating that to use them, you need to buy a configuration from 1C).

After this one-time purchase, you only need to subscribe to updates and pay once a year to renew the subscription, the so-called. ITS. By the way, the subscription is very inexpensive, like two client licenses.

In general, it all looks very profitable.

The second "tasty", but already with a fly in the ointment, plus, is the presence of fairly universal configurations from 1C itself and from partners.

About versatility

The concept of "universality" was defined by one school teacher on CWP using the example of gas masks: there are universal ones that protect against many damaging factors, but the degree of protection is average or below average, and there are also specialized gas masks that protect against one impact, but with a high degree of protection. Until now, I have not come across a more precise definition.
And configurations from 1C are universal. Practically, there are no tasks where they could be fully used without modifications. Nevertheless, 1C has managed to create a universal set of tools that covers the needs of most branches of modern business.


The third plus (and also with a fly in the ointment) is the network of franchisees and training centers, both for users and for novice programmers and administrators. Good idea, but mediocre implementation quality. Nevertheless, the prevalence and aggressive marketing is one of the reasons for the widespread popularity of 1C in our country (and this is also the reason for negativity, envy and hatred).

A spoon of tar

Having painted 1C in all colors, it would be unfair not to say about its shortcomings, and they really are:

Unstable releases- both in the platform and in configurations, there are a huge number of errors and glitches. And this is in the official releases. Before the official version is released, a “Familiarization Version” is issued. There is also feedback for submitting bug descriptions so that they can be accepted for correction. However, either the versions for acquaintance are not very popular, or the 1C company itself does not have time to process all the letters by the release date, but it is a fact. Each time you update the platform or configuration, you may stumble upon the most unexpected "surprises". The 1C company has already been repeatedly asked to test its developments more thoroughly.

Franchisee (hereinafter - franchise)... Ideally, according to the idea, these should have been firms with qualified specialists who know the basic principles of the configurations and the platform. These same firms would have to sell the platform, configuration and support, slightly "finish" universal configurations to meet the client's requirements (and sometimes adjust these requirements), trying to modify the standard configuration to a minimum. So as not to complicate the future updates too much. In reality, the opposite is true.

When new licenses are sold to a client, francs receive 50% of their value (minus income tax 13% of this 50%). At the same time, you do not need to produce anything yourself, you just need to transfer the keys from 1C to the buyer.

When providing services, franches do not pay the 1C company anything (except for membership fees), but they need to pay an employee's salary. You also have to spend on taxes to the state - the FIU and income tax.

It turns out that both 1C and francs are profitable to sell licenses and unprofitable to provide further support. At the same time, in order for a client to buy a program, it must be initially adjusted to his requirements. And you have to pay for the work. And here, in order to save money, students, pupils, and non-specialists are attracted to whom you can pay a little, and sometimes not pay at all, they can not even be registered with the state (they will work unofficially, since there is something to pay for). The result is a huge number of sales with very low quality. Improvements tend to affect important mechanisms and complicate future updates. But at the stage of sale, neither 1C nor the franchisee is interested in this.

Note that this is not so much the fault of businessmen from franchises as of 1C. Focusing on sales, she did not take care of support at all (I'm not talking about schools now, but about the fact that it should be profitable for both the franchisee and 1C to provide support).

Technical support. In the understanding of 1C, technical support is providing access to the "update" section for the platform and configurations, as well as to information sections containing a description of some of the mechanisms and features of 1C operation. In addition, when subscribing, a disc with the specified materials is provided. There is also a forum (very scarce in comparison with the folk). It is also possible to send an e-mail to 1C - but without even hoping that it will be answered (or the robot will reply “The letter has been sent to the development department.” In terms of development, Yandex.Poisk and the help built into the configurator provide much more support.

Epilogue

I switched to 1C in 2008, and before that I worked in a company developing its own accounting program (Delphi 5, then Delphi 7). First, I got acquainted with the 1C Enterprise 7.7 platform and was struck by the simplicity of developing reports in it. At the same time, it was clear that reports are generated much longer than in similar mechanisms on Delphi, but accountants did not particularly care. Wait a few minutes instead of a few seconds is not a problem. On the contrary, you can paint your nails there, drink tea or discuss the latest news without stopping from work. After all, the overwhelming majority of accountants today are women.
However, the interface in 7.7 was very limited and the set of objects was quite sparse. I was looking for alternatives. I got acquainted with the external components, but they did not come to practical use, tk. the boss decided that it was time for us to switch to 8.1 (yes, 8.2 was not there yet), and in this platform, as a programmer, I found everything that I was missing earlier.
Currently, I have authority among colleagues, as well as clients who came to me from franches. They will probably never get in touch with francs again.


In general, I am quite satisfied with the work in the 1C Enterprise 8 platform. It is suitable for solving most of the accounting tasks and tasks using a database.

Tags: Add Tags