Internet Windows Android

1c programming from scratch in Russian. File and server databases

A question has arisen before you How to become a 1C programmer, but you didn’t find a definite answer to it?

Let's figure it out together.

First of all, I consider it necessary to describe the pros and cons of the profession, so that you know what awaits you.

pros:

  • a large number of vacancies in the labor market,
  • relatively high level of income (subject to developed competencies),
  • creative work, very diverse tasks,
  • the increasing popularity among programmers is gaining the ability to work remotely (if you work "for yourself"),
  • the lack of qualified specialists makes it easier to achieve success in the profession,
  • monopolization of the business automation market by 1C allows predicting a constant demand for the services of specialists in 1C: Enterprise.

Now let's talk about cons(they are also available):

  • sedentary work,
  • the need to master related areas of knowledge in order to be successful (accounting and tax accounting, payroll, etc.),
  • Constant changes in development tools (1C: Enterprise platform) and standard configurations (due to changes in legislation) sometimes make the modifications that were successfully used earlier inoperable / irrelevant.

There is one more nuance - work with people... I did not write it down on any list, since all people are different, and someone will regard it as a plus, and someone vice versa. Decide for yourself.

Based personal experience, these are the main positive and negative sides profession, perhaps other specialists will find additions.

If after this analysis you have not lost your desire to become a programmer, let's move on.

About basic training

To begin with, you will need initial training, which will give you an impetus to study 1C and teach you the very basics, and will be able to convey information to you in an accessible form, in "human language".

As such training, face-to-face programming courses in your city in one of the 1C franchisee firms, which provide services for servicing 1C programs, are suitable. Just make sure that this company has a 1C: CSO status, i.e. Center for certified training. This status implies that the company has sufficiently competent specialists to conduct training, as well as the fact that upon completion of training you will receive an appropriate certificate (I will tell you about the benefits of certificates later). The advantage of such a start is a live teacher to whom you can ask questions right away if something is not clear to you. Training is usually group, in a group of 10-20 people. Duration of training is 2-4 weeks.

If your city is not so large and there is no such company in it (or you want to save on training), then I recommend you training courses from Evgeniya Gileva... This is a high-class specialist, I have not seen cooler than him. On the site Courses-1s.rf you can either purchase its paid courses or download free ones. In this case, I'm talking about his free video course "Programming in 1c - in 21 days". You can get it on this site. In this course, Eugene will give you the necessary "base" in a simple and accessible language.

Further, in order to become a quality 1C specialist, I recommend you another video course by Evgeny Gilev as a desktop guide Course 1C: Specialist(it can be found on the Internet without any problems). The course weighs about 22 GB and consists of a basic and an advanced block. The first gives the basics, the second gives in-depth knowledge of the platform. Having mastered this video course, you will become a really good 1C specialist.

About certificates

The 1C company has developed a standard for certification of specialists who maintain 1C: Enterprise programs. This standard includes several types of certificates, in this article I will focus on two main ones.

  • 1C: Professional - confirmation that its owner can effectively use the capabilities of the platform (if the certificate is for the platform) or typical 1C configurations (if the certificate is issued for one of the typical configurations. franchisee (14 questions, maximum can be 2 errors) In fact, this certificate indicates that you have initial knowledge.
  • 1C: Specialist - can also be either according to the 1C platform, or according to one of the typical configurations. This certificate already indicates that you have an understanding of the principles of building a platform, as well as the skills to implement custom tasks. In other words, the presence of this certificate indicates that "you are in the subject." To obtain such a certificate, you need to successfully pass an exam (4 tasks, 5 hours to complete), which comprehensively assesses your skills in working with the 1C platform.

1C: Professional certificate looks like this:

А 1C: Specialist look like this:

It must be said that there is no "obligation" to obtain certificates - it is your conscious choice whether to receive them or not. As a rule, they do not bring any material benefits. However, they have several obvious advantages:

  • in interviews with a potential employer, you can use them as your obvious advantage, as an argument in favor of increasing salaries,
  • When hiring a new employee, franchisee firms often assess his competence by the number (and quality) of certificates. And if there are none at all, your candidacy may not interest such an employer.

Speaking about the customer companies in which you will serve 1C, it is worth saying that their managers in the overwhelming majority of cases have no idea about certificates and they are indifferent to these pieces of paper.

So decide for yourself whether you need certificates or not.

About the required competencies

I will give a list of skills and abilities that, in my opinion, must be in the arsenal of a good 1C programmer:

  • knowledge of the 1C query language,
  • the ability to work with regular and controlled forms,
  • ability to create reports on the ACS data composition system,
  • knowledge of the peculiarities of internal configuration objects (documents, reference books, registers, plans of types of characteristics, etc.),
  • the ability to customize the exchange of data between different configurations 1C,
  • the ability to efficiently receive and upload data to files XML format, MS Excel, MS Word,
  • Library skills standard subsystems BSP, creation external reports, treatments and printed forms.

I would also like to highlight the following: I think that a good 1C programmer must know the functionality of typical 1C configurations:

  • Salary and Human Resources Management 3.1,

Ignorance of the capabilities of these configurations often leads to the fact that many specialists begin to "reinvent the wheel" and do developments to solve those tasks, the implementation of which is already provided for by the configuration functionality. I recommend that you master these configurations in parallel with the deepening of knowledge in programming the 1C platform.

It would also be nice to learn how to modify the program using extensions (without making changes to the configuration itself) - this will greatly facilitate its further maintenance and demonstrate your qualifications to the customer.

In conclusion, I will answer a few of the most frequently asked questions on this topic.

How long does it take to study?

It is impossible to answer unequivocally, it all depends on your learning ability and on what goals you set for yourself. If, nevertheless, to deduce the "average temperature in the hospital", then we can say that, having spent on training from six months to a year, you will be ready to solve most of the problems arising from real customers. Of course, provided that the training is intensive enough and you will learn from professionals in their field.

What are the prospects for the profession?

In my opinion, the prospects are quite good, given the fact that 1C is a monopoly company, and the overwhelming majority legal entities on the territory of Russia (and in the CIS countries) use software on the 1C: Enterprise platform. The plus is that, unlike Western counterparts, 1C can be purchased for much less money, and only this program takes into account the peculiarities of management and regulated accounting in our country.

How much do 1C programmers earn

There are no uniform standards here either - it all depends on the qualifications of the programmer and the city of residence. For example, in Moscow, a programmer's income level in the range of 150-170 thousand rubles can be considered decent, while, for example, in the cities of Siberia and the Far East, you will hardly be able to find such an employer and a salary of 70 thousand rubles. considered quite good here. Depending on the level of training of the programmer, the income ceiling in the same city for a programmer with minimal knowledge and a professional in his field may differ by 2-4 times. Based on the above, we can confidently assert the following:

If you want a higher income - constantly improve your skills and / or move to Moscow.

1. What is language 1c.
2. Methods, variables, other language constructions.

What is language 1c.

Any programming language is designed to instruct the program to perform the actions necessary for us. Writing code is like writing a manual, in which we tell you what to do and in what order. All executable configuration code can only be in modules, consider the main 4 types:

1.application module

2. common modules

3.object module

4. module of the form.

V different types modules, the code is executed at different stages of program execution. In an application module, the code can be executed when the program is started or when it is closed, in common modules when called from other modules, in an object module - during actions on an object (create, modify, delete), in a form module - during actions on a form. What can be used when writing code:
Variables, objects and their details, methods created by us (1C programmers) and system (built into the platform), as well as embedded language constructs.

Methods, variables, language constructs

Variables are used to store data during a user's session. A variable is a word that begins with a letter (Russian or English) or with an underscore "_" and consists of letters, numbers and underscores.
For example :

  • This is a variable
  • _ThisVariable
  • _This1_Variable

The fact that letters can be Russian and English can play a cruel joke when using letters similar in style from different languages.

The case of letters in the code is not taken into account, i.e. The variables "Variable1" and "Variable1" are the same when executing the code for the program. It is desirable that the names of the variables are meaningful. This improves the readability of the code.

Objects and requisites are read and changed in the process of working on the data.
An object is a set of data grouped according to a specific criterion. As a rule, objects in an infobase are a reflection of documents, lists of data, and enumerations of the material world. The requisites of objects, in fact, store data.

For example: Object "Sales receipt No. 00018 dated 01.01.2005".
We can distinguish this sales receipt from other sales receipts by the details it contains. This is the "Number" variable with the value "00018" ( type string ) and the "Date" attribute ( type date ) with the value "01.01.2005". The only thing that we could determine by the object, without knowing the values ​​of its details - this is its type "Sales receipt".
Methods are small and usually complete instructions.

For example, the system method "CurrentDate ()" is clear from the name that it will return the current date of the computer. Or let's say you can create a method " StringContainsDigit(CheckedString) "Which will return the answer True or Lie, here we pass parameters in brackets, i.e. data in terms of which the method should do some action. Both considered methods are functions, the language also has methods-procedures. There is one difference between them. The function must return a value.

Other language constructs (operators, collections of values, etc.) are words reserved by the 1c system that help to manipulate data.

For example :

For each ItemCollection From CollectionName Cycle EndCycle;

The example shows the construction of iterating over the elements of a collection. This construction is called cycle ... Most types of objects, as well as their attributes, are collections that can be iterated over in the above way and refer to a collection element by specifying its index (CollectionName [0]). All collections begin with an element with index = 0.

Android Development Director Stephanie Cuthberson announces Kotlin as one of the official languages ​​for OS, 2017 Source Google made Kotlin ...

  • Programming languages ​​developed by Russian and Soviet programmers

    Kotlin Kotlin (Kotlin) is a statically typed programming language that runs on top of the JVM and is developed by JetBrains. ...


  • Youtube channels with programming lessons

    ITVDN Technostream Mail.Ru Group Gosha Dudar loftblog Howdy Ho ™ - Just about the IT world! Kirill Antonov Byte ++ Ivan Booravoi splincode wd Web ...


  • RedMonk ranking: TypeScript and Kotlin are the fastest growing programming languages

    According to a new report from RedMonk, TypeScript and Kotlin have the best growth rates in terms of usage and outside interest ...

  • Google names Kotlin as the main programming language for developing Android apps

    Google announced at the 2019 I / O developer conference that the Kotlin programming language will now be a priority for development ...

  • Stack Overflow named the most popular and highest paid programming languages ​​in 2019

    Stack Overflow has named the most popular and highest paying programming languages ​​in 2019. The research is published on the website ...


  • How to Make Millions Open Source: From Red Hat to Nginx

    A source Open source went from a hobby of non-conformist romantics to a common tool for making money. New approaches ...

    This video lesson tells about the origin and development of programming and computers, mentions the key moments in history related to the development ...

  • Log in as a student

    Log in as a student to access school materials

    Internal programming language 1C 8.3 for novice programmers: installing 1C and your first program in 1C language

    If you have not read the introduction to the lessons, please read it:.

    Installing the educational version of 1C

    To learn programming, we need 1C 8.3 (not lower 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 releases specifically for educational purposes.

    Task number 1: download and install educational version 1C 8.3.

    Instructions for execution:

    • Unpack the archive downloaded from the link into a separate folder on your desktop:
      • link to download from Dropbox (option # 1)
      • link to download from Mail.ru (option number 2)
    • Run the "setup.exe" file.
    • Click Next, Next, Install.
    • Wait for the installation to complete.

    After completing Task # 1, the following shortcut should appear on your desktop:

    Congratulations! The 1C platform is installed and very soon you will be able to write the first program.

    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.

    We will not be an exception. But, being Russian programmers, let's make the computer display the phrase "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. A list of 1C bases has opened in front of you. As you can see, it is empty. Let's create training base, in which we will program. Click the " Add".

    3. Select " Creation of a new information base "and press the button" Further".

    4. Select " Creating an infobase without configuration ..."and press the button" Further".

    5. Specify " Training"and press the button" Further".

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

    7. Specify the authentication option " Select automatically", startup mode" Fat client". Do not specify anything as the 1C: Enterprise version, click the" Finish "button.

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

    9. In the window that opens, select through the menu " Configuration"->"Open configuration".

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

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

    12. Now, without hesitation, just rewrite the following text in this window:

    Report ("Hello World!");

    13. Excellent! The code for our first program is now complete. Let's launch it for execution. Through the menu " Debugging"->"Start debugging"(or key F5).

    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. Congratulations on your first program!

    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) - this 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, each object and the system as a whole have them, and there are also common modules). The platform provides a level of abstraction in which direct access to the database is not required, and also allows abstracting from 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.

    Pros of the file option - low price and ease of deployment.

    Cons - the structure of the "1cd" file is closed, no unified system interacting with the database. As a result, it is difficult to use when a large number 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 the daily Reserve copy Database. 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 “ fat client", There are two new operating modes -" thin client "and" web-client "; also appeared " managed forms», appearance 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).

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

    Cons - 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.

    A common plus is the versatility of the configuration code: with a few exceptions, a configuration designed for file base data will run on the server room 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 sources data, i.e. other bases).

    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 in the form of 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, will find an entry in the table corresponding to the "Contractors" directory by the identifier from the "Main Supplier" field of the item item and will return the value of the field corresponding to the "FullName" field in object model reference book "Contractors".

    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 try 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 could be data different 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, all of which have built-in help for everything. 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 which you can study the data structure in the programming language, as well as 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 mention separately about 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 a group (for reference books);
    • Hierarchical totals;
    • Temporary tables and subqueries (SELECT * FROM (SELECT…)));
    • Query constructor - convenient, object-oriented, automatically optimizing the request text for quick reading, which can parse the request text (parse the request text and build an object model from it);
    • Report Builder - an add-on over the query engine, in which the functionality of automatic formatting of results has been added, as well as flexible customization 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 the texts of modules for their batch processing and load back into the configuration;
    • If the configuration is on support (all configurations from 1C are initially on support), then you can always make a comparison 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 is a very useful functions, for example, remembering window sizes (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 the 8.3 platform seems to bring 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 workplace and to the server, but not to databases, and not even to 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. In practice, 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 a very mediocre quality of its implementation. Nevertheless, the prevalence and aggressive marketing is one of the reasons for the widespread popularity of 1C in our country (and this is the same 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 releasing official version, a "Familiarization Version" is released. There are also Feedback to send 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 can 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 at times - adjust these requirements), trying to modify the standard configuration as little as possible. 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 anything to 1C (with the exception of 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 franches 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 email to 1C - but not 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. Waiting for a few minutes instead of a few seconds is not a problem. On the contrary, you can paint your nails there, drink some tea or discuss 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. Acquainted with external components, but before practical application they did not reach them, 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:

    • programming languages ​​in Russian
    • 1C
    • 1C programming
    Add tags