WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there
WorldSkills is an international movement dedicated to organizing professional competitions for young people under the age of 22.

The international final is held every two years. This year the venue for the final was Kazan (the last final was in 2017 in Abu Dhabi, the next one will be in 2021 in Shanghai).

The WorldSkills Championships are the world's largest championships in professional skills. They started with working professions, and in recent years more and more attention has been paid to the “professions of the future”, including IT disciplines, for which a separate huge cluster was allocated at the championship in Kazan.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

In the IT block there is a competency (a specific "sport") called "Software solutions for business" (IT Software Solutions for Business).

In each of the competitions, the permitted list of tools used is limited. And if, for example, for “landscape design” the list of possible tools is limited (of course, without specifying an explicit manufacturer or color), then in the “Software solutions for business” competency, the list of approved technologies that participants can use is strictly limited with specific technologies indicated and specific platforms (.NET and Java with a specific set of frameworks).

The position of 1C on this issue is as follows: information technology is a very dynamic area, new technologies and development tools are constantly appearing in the world. From our point of view, it is right to allow specialists to use the tools they want and are used to working with.

In the fall of 2018, the WorldSkills Directorate heard us. Now it was necessary to test the methodology for including new technologies in competitions. It is not simple.

The infrastructure list of the championship in Kazan included the 1C: Enterprise platform (1C: Enterprise) and organized an experimental site IT Software Solutions for Business Sandbox.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Note that the official language of the championship is English. All materials with the results of solving tasks (source codes, accompanying documentation, software interfaces) were also to be transmitted in this language. Despite the doubts of some people (still!), you can write in English on 1C.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

9 young guys from 8 countries of the world (Philippines, Taiwan, Korea, Finland, Morocco, Russia, Kazakhstan, Malaysia) took part in the competitions at this site.

The jury - a team of experts - was headed by an expert from the Philippines, Joey Manansala.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Experts from Finland, UAE, Costa Rica, Korea, Russia and Taiwan were represented.

Separately, we note that participants from Russia (Pavkin Kirill, Sultanova Aigul) and Kazakhstan (Vitovsky Ludwig) decided to use the 1C: Enterprise platform in the competition. The rest of the participants used .NET for desktop and Android Studio for mobile development. It is interesting that the participants who chose 1C are very young (Kirill is a student of a school in Stavropol, this year he moved to grade 11, Aigul is a college student, Kazan, Tatarstan), while their rivals were much more experienced (for example, a participant from Korea is a WorldSkills 2013 Leipzig medalist; all have WorldSkills experience and several years of professional experience in the industry).

Taking into account that during the competition the participants used various modern technologies, we had a chance to test the 1C:Enterprise platform in real combat conditions, to compare both the quality of the solutions obtained with its help and the speed of development achieved with its use.

Separately, we note that within the framework of the special platform IT Software Solutions for Business Sandbox, the participants performed the same tasks as the participants in the main platform IT Software Solutions for Business.

The task itself is a complex task for the automation of a certain business, this year the conditional company KazanNeft became an example of a business.

Legend

Kazan Neft is one of the largest oil companies in the Republic of Tatarstan, acting as a national market player and an internationally recognized brand in this field. The head office of the company, which specializes in exploration, production, production, refining, transportation, and sale and distribution of oil, oil products and natural gas, is located in Kazan (Russia).

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

As the company pursues a strategy of rapid expansion and the creation of new offices throughout Russia, the company's management decided to introduce new business automation software aimed at maintaining and managing some of the operations.

Championship conditions

The tasks were given to the participants in the form of modules (sessions) with the requirement to complete them in a limited time. There were 7 modules in total. Three sessions for solving on the desktop - 2.5 hours each. Three sessions - client-server development, where the client was a mobile application, and communication between the client and the server was carried out through the WEB-API. This took 3.5 hours. Last session - tasks for reverse engineering of existing software, 2.5 hours. As part of reverse engineering, the participants had, based on the information provided to them, to design the structure of the application database (by building an ER diagram), analyze the use cases for the system (by building a use case diagram), and develop and design a software solution interface according to the provided functional requirements .

.NET (C#) and Java (including Android Studio for mobile development) have been used as development platforms in the mainstream. The experimental SandBox used .NET, Java and 1C:Enterprise version 8.3.13.

Based on the results of each session, the experts evaluated the result - a ready-made workable project that implements the tasks set at the beginning of the session.

A feature of the tasks is their "vitality" - a lot of requirements and a limited time. Most of the problems are not special Olympiad problems, but very close to real industrial problems — specialists face them every day. But there are many tasks, and time is limited. The participant must solve the maximum number of tasks that will have the greatest benefit for the business. It is not at all a fact that a task that is difficult from the point of view of algorithms will have more weight than an elementary one. For example, the creation of a functioning accounting system of three tables is more important for business than a beautiful reporting form with complex algorithms, which is completely unnecessary without these tables.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

We asked the winner of the competition, a participant from Russia, Kirill Pavkin, to tell us more about what the tasks were and how he approached them.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Below is a description of the task, Kirill's own story about how he solved the task. We also asked Vitaly Rybalka, an employee of 1C, one of the IT Solutions for Business Sandbox experts, to comment on Kirill's decisions.

As part of the task, it was required to automate the activities of several types of users:

  • Responsible for accounting for company assets
  • Responsible for unscheduled repairs and scheduled maintenance of company assets
  • Purchasing managers for spare parts and consumables
  • Oil exploration and oil production divisions
  • Top management needed analytical reports

Session 1

In terms of assets (for example, a car park), it was necessary to implement their accounting (creating a new one, editing current ones), quick search and various kinds of filters for displaying information, moving assets between the Company's divisions, and groups of assets themselves. Keep a history of such movements and provide analytics on them in the future. Asset accounting was mainly implemented for mobile user groups.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Kirill: An interesting subtask was the implementation of buttons in the list of assets. For the solution, a dynamic list was used: we write an arbitrary query, and when we receive data on the server, we assign navigation links to images from the image library to the required fields.

By condition, photos can be attached to an asset in two ways: take a photo (multimedia tools) and select from the gallery (file selection dialog).

Some forms needed to be redrawn when the screen was rotated:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

When changing the screen parameters, we change the visibility of button groups.

Interesting but simple tasks include filters in a dynamic list, search by two fields (number and name), generation of an asset serial number.

Expert Commentary: from the point of view of the solution on the 1C: Enterprise platform, the task is quite clear. In addition to the actual creation of a mobile application, it was necessary to attend to the transfer of data from the “server” DBMS (MS SQL on the desktop) to the mobile application and back. For this, the mechanisms of external data sources and http-services in the desktop “proxy application” were used. For the mobile platform itself, displaying images in a dynamic list was more difficult.

Session 2

It was necessary to establish repair management for the Company's assets. As part of this task, it was necessary to maintain a list of requests for repairs (by departments and groups), take into account the priorities of the urgency of repairs, plan a repair schedule in accordance with priorities, order the necessary components and take into account existing ones. An interesting subproblem was that some components had an expiration date; if a part has already been ordered for this asset and its term has not expired, then for this asset it is not necessary to purchase the same part again. The repair interface was developed for the desktop component of the company's software.

It was also required to create a non-trivial authorization form for two roles: the responsible person and the service manager. The peculiarity lies in the fact that after authorization, one of the roles must be automatically selected.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

The form of the list available to the responsible person is presented below:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Kirill: Only highlighting pending service requests can be selected here. It is solved by conditional design in a dynamic list.

By clicking on the button at the bottom of the screen, the user can navigate to the following form:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

There is nothing complicated in terms of 1C in this form.

The form available to the service manager is below:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

This form has sorting by priority and request date. By clicking on the button below, the user can go to the form of the selected request:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

In addition to being fool-proof, this form offered to implement a list of spare parts for repairs. The subproblem is interesting because parts have an expiration date. This means that if an asset has already experienced emergencies and a part has been ordered for it that has not expired, then it can be reused. This should be shown to the user.

Expert Commentary: here Cyril himself correctly placed the accents. From the point of view of implementation on the 1C: Enterprise platform, there is nothing daunting. It required a careful analysis of the conditions for accounting and use of spare parts and competent implementation of the task as a whole. In addition, it was necessary to correctly organize the accounting of service requests. The main difficulty was only the time pressure of 2.5 hours.

In addition, as in mobile development, the participant should correctly receive data from an external DBMS (MS SQL).

Session 3

For TO (maintenance), it was proposed to implement a long-term planning service. An interesting feature here was the requirement to form a maintenance schedule for assets as for terms - for example, every second month on the 3rd day. So it is according to some quantitative indicator - for example, according to the car odometer (oil change every 5000 km, tire change every 20000 km). The maintenance manager had to get a convenient mobile application that dynamically displays a list of overdue, current and completed maintenance for a specified period. In addition, each type of TO had to be painted in color according to specially agreed rules. The mobile application was supposed to ensure the establishment of new maintenance schedules and the marking of those already completed directly in the workshops with the prompt updating of this information on the server.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Kirill: There are two types of repairs: time-based and run-based. Within each, variability is allowed. For example, according to the plan, repairs should occur every Friday on the 13th of the month, or every 20,000 kilometers. A task is considered completed if there is a checkmark to the right of it.

A condition was provided for sorting tasks in the list. Also, each line should be highlighted in color depending on the conditions.

By clicking on the button below, you can create a new maintenance plan:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

The required fields are displayed depending on the selected chart type. If we have selected a weekly time schedule, then we will be shown two fields: the number of the week and the day of the week. For example, on Tuesdays every 3 weeks.

Expert Commentary: as in the previous mobile development on the 1C: Enterprise platform, here the task is globally divided into 2 components - communication with the “server” via web-api and competent display of a dynamic list with conditional design and filtering (selection) of data. In addition, it was interesting to implement the requirement to record repairs both by periods and by a quantitative indicator.

Session 4

For components and consumables, it was necessary to take into account stocks, plan expenses and future purchases. In addition, batch accounting appeared here, but not for all goods. All of this had to be managed across multiple warehouses, including receipts, expenditures, and transfers. According to the terms of the task, it was necessary to ensure the control of residues and avoid conflicts when working with actual reserves. Purchasing managers work in the desktop version of the software.

The main form is shown below:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Kirill: In addition to sorting from a condition, it was proposed to give the user the possibility of arbitrary sorting. On 1C you don't even have to think about it. The field with the number of parts should be highlighted in green for incoming invoices.

In this session, they asked to control the balance of goods in warehouses. So, the corresponding message should be displayed when you try to delete the incoming invoice. Here we recall the exam for a platform specialist. Invoice form below:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Each part has a sign that determines whether it should be tied to a particular batch. For such spare parts, it is imperative to indicate the lot number in all documents. This is an additional dimension when inspecting part residues. They can also be moved between warehouses:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

The form differs from the previous one only in that instead of the customer, you need to specify the warehouse from which the delivery will be made. A selection list for a lot is automatically generated after the part has been picked. The user can generate a report on the balance of spare parts:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Here we can see the balance of goods in the selected warehouse. The checkboxes to the right of the warehouse allow you to configure filtering and sorting. The list does not have an explicit division into lots for those parts for which it is mandatory. The balance of each batch number of the selected spare part can be viewed using the navigation link on the right.

Expert Commentary: in this session (module), batch accounting appeared for the first time. Participants were required to take into account consumables and goods not only by themselves, but also by batches. In general, the task is perfectly suitable for the 1C:Enterprise platform - only it had to be developed from scratch and completed in 2.5 hours.

Session 5

In the fifth session, we were entrusted with the functionality of well management. For exploration teams, it was necessary to create a mobile application that records wells for oil or gas production. Here it was necessary to receive a list of current wells from the server and display the selected well graphically by layers (soil, sand, stone, oil), taking into account the depths of each layer. In addition, the application should have allowed updating information about the well and adding new wells. For this application, the customer set special conditions for working in offline and online modes (controlling connection with the server) - checking the connection with the server every 5 seconds and changing the functionality of the application depending on the availability of the server.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Kirill: When a well is selected, a bar graph is displayed, which highlights the layers up to oil or gas deposits. For each layer, its name, color and occurrence range are stored. Due to the design features, the charts built into the platform do not save, but the spreadsheet document does an excellent job. Wells can be created and modified:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Apart from multiple foolproofing, there was nothing interesting about this form.
Next, it was proposed to control the connection to the server. Every 5 seconds we try to connect. If it doesn't work, then we limit the functionality of the application and display a message.

Expert Commentary: the task of this session is interesting primarily for its graphical capabilities. Participants using the 1C:Enterprise platform solved it in two different ways - someone using a diagram mechanism, someone using a spreadsheet document. Each of the methods has its pros and cons. As part of the decision at the WorldSkills Competition, time was the key (again, remember the time limit). A separate interesting task is to ping the server every 5 seconds and change the behavior of the mobile application depending on the availability or inaccessibility of the server.

Session 6

For top management, it was proposed to create a workspace - Dashboard. On one screen, it was necessary to display the overall performance of the company for the specified period in graphical and tabular form. The main form is the cost report:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

In addition to the Dashboard, it was necessary to implement the distribution of spare parts for asset repairs using FIFO / LIFO / “Cheapest goes first” write-off methods.

During the distribution, batch accounting was taken into account, control of balances and protection against unauthorized actions of the user (“fool protection”) were used.

Kirill: Tables of values ​​with programmatic generation of columns were used for the solution, since there can be an arbitrary number of them:

  • The first table is responsible for the total costs of departments by month. The most unprofitable and profitable divisions are highlighted in red and green, respectively.
  • The second table shows the most expensive and most used parts for each month. If there are several details that match the criteria, then they should be displayed in one cell separated by commas.
  • The most expensive (in terms of spare parts costs) assets are displayed in the first line of the third table. The second line displays the unit to which the asset belongs from above. If there are two most expensive assets with the same costs, then they should be displayed in the same cell separated by commas.

Diagrams were displayed using the built-in mechanisms of the platform, and filled in programmatically using queries.

It was also proposed to implement support for multilingualism. The program loads XML files with the localization of interface elements, and the form should be redrawn when the language is selected in the drop-down list.

When you click on the button in the lower left corner of the screen, the inventory management form opens:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

In this form, we finally start spending spare parts on repairs. Here we first find the parts that we will need to repair the asset. For the selected fields and distribution method (FIFO, LIFO or minimum price), the found matches or a message are displayed if there are none. After that, you can mark the parts as intended for repairing this asset. Balance control is relevant for the current session. If we have already assigned parts, then they can no longer be included in the found ones.

Expert Commentary: very interesting session. It makes the most of the capabilities of the 1C: Enterprise platform - here is competent work with virtual tables of accumulation registers, and programmatic work with form elements (first of all, tables, secondly, headings), and diagrams. And even LIFO/FIFO for inventory analysis, profit/loss analysis, etc.

Session 7

At the end of the task (session 7), the customer provided software (exe-file) for project activities and a short video on working with it. It was required to carry out reverse engineering and, on the basis of this, create 2 diagrams: a use case diagram and an entity-relationship diagram. In addition, some requirements were put forward for the creation of software in the future - it was necessary to form an interface layout according to these requirements.

According to the terms of the competition, only MS Visio was required to create diagrams.

Expert Commentary: in this session, the capabilities of the 1C: Enterprise platform were practically not used. Diagrams according to the conditions of the competition were created in MS Visio. But the interface prototype could be created in an empty 1C infobase.

General remarks

At the beginning of each session, it was proposed to import data using an SQL script. This was the main drawback in using 1C compared to C#, since we spent at least half an hour distilling data into external data sources, creating our own tables, and moving rows from external sources to our tables. The rest needed only to press the Execute button in Microsoft SQL Studio.

For obvious reasons, storing data on a mobile device is not worth it. Therefore, in mobile sessions, we created a server base. They stored data there and provided access to them via http services.

Expert Commentary: the balance of 1C / non-1C is interesting here - while 1C: Enterprise programmers spent significant time connecting to an external DBMS (Kirill mentioned this separately above), C # / Java developers (Android Studio for mobile development) spent time on other areas interfaces, writing more code. Therefore, the results of each session were unpredictable and extremely interesting for all experts. And this intrigue persisted to the end - just look at the final table of winners with the distribution of points.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there
Cyril finished the story 🙂

In conclusion, it should be recalled that the performer needed not “just to program the task according to the TOR” - it was necessary to analyze the task, select blocks for the implementation of subtasks, design them and decide what exactly he would be able to implement from this in an extremely short allotted time. All 4 days I had to work in conditions of severe time pressure, often starting each next session from scratch. Even an adult specialist with many years of experience in the industry will have great difficulty in completing the assigned task for the session by 100% in the allotted time.

The adopted grading system deserves special mention.

For each session, the authors of the task develop a complex system of criteria, including both checking the functionality, correct operation, and requirements for the application interface, and even following the style guide of the company for which they develop their solutions, specially provided to the participants.

Evaluation criteria are very finely granulated - with a total cost of a session assignment of tens of points, the fulfillment of some criterion can add tenths of a point to a participant. Thus, an extremely high and objective level of evaluation of the results of each participant in the competition is achieved.

The results

The final results were impressive.

In a bitter struggle, Kirill Pavkin from Russia won, using the 1C: Enterprise platform. Kirill is 17 years old, he is from Stavropol.

Literally tenths of a point separated the winner from the pursuers. The second place was taken by a participant from Taiwan. The general table of the best six results looks like this:

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Of course, Cyril won thanks to his talent, knowledge and skills.

However, we note that all three participants who used the 1C:Enterprise platform as a tool entered the top five, which is an unconditional confirmation of the world-class 1C:Enterprise technology.

Following the results of the competition in the KazanExpo media center, the winners were awarded, the guys received solid gold medals (according to their place) and cash prizes. The guys also received certificates allowing them to take an internship at 1C.

WorldSkills final, development of IT solutions for business - what it is, how it was and why 1C programmers won there

Source: habr.com

Add a comment