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

image

WorldSkills is an international professional competition for young people under the age of 22.



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



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



image



The IT block has a competency (a specific “sport”) called “Software Solutions for Business” (IT Software Solutions for Business).



In each competition, the permitted list of used tools 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 competency "Software solutions for business" the list of approved technologies that participants can use is strictly limited with specific technologies 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 with which they want and are used to working.



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



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



image



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



image



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



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



image



Experts from Finland, the 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 as part of the competition. The remaining 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 school student in Stavropol this year 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 the winner of the 2013 WorldSkills Championships in Leipzig; everyone has experience in WorldSkills and several years of professional experience in the industry).



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



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



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 Oil 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 specializing in field research, production, production, refining, transportation, and sale and distribution of oil, oil products and natural gas is located in Kazan (Russia).



image



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



Championship Terms



Tasks were given to participants in the form of modules (sessions) with the requirement to implement them in a limited time. There were 7 modules in total. Three sessions for a desktop solution - 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. 3.5 hours were allotted for this. The last session - tasks for reverse engineering of existing software, 2.5 hours. As part of reverse engineering, participants had to, based on the information provided to them, design the structure of the application database (by building an ER diagram), analyze the system’s usage scenarios (by constructing a diagram of use cases), and develop and design a software solution interface according to the provided functional requirements .



As development platforms, they were used on the main platform .NET (C #) and Java (including Android Studio for mobile development). The experimental SandBox used .NET, Java, and 1C: Enterprise version 8.3.13.



According to 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 tasks 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 difficult task from the point of view of algorithmics will have more weight than an elementary one. For example, the creation of a functioning accounting system of three tables for business is more important than a beautiful reporting form, with complex algorithms that are completely unnecessary without these tables.



image



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



image



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



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





Session 1



From the point of view of assets (for example, a car fleet), it was necessary to implement their accounting (establishing a new one, editing current ones), quick search and various filters to display information, moving assets between divisions of the Company, 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.



image



Kirill : An interesting subtask was the implementation of buttons in the list of assets. A dynamic list was used for the solution: we write an arbitrary request, and when receiving data on the server we assign navigation links to images from the image library to the necessary fields.



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



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



image



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



Fun, but simple tasks include filters in a dynamic list, a search in two fields (number and name), generation of the asset’s serial number.



Expert commentary : from the point of view of the solution on the 1C: Enterprise platform, the task is quite understandable. In addition to actually creating a mobile application, it was necessary to attend to the transfer of data from the DBMS of the “server” (MS SQL on the desktop) to the mobile application and vice versa. For this, we used the mechanisms of external data sources and http-services in the desktop “proxy application”. For the mobile platform itself, the increased complexity was represented by the output of images to a dynamic list.



Session 2



It was necessary to establish repair management for the assets of the Company. As part of this task, it was necessary to keep a list of requests for repairs (by units and groups), take into account priorities for urgency of repairs, plan the schedule of repairs in accordance with priorities, order the necessary components and take into account existing ones. An interesting subtask was that some components had an expiration date; if a part has already been ordered for this asset and its period 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 form of authorization for two roles: the responsible person and the service manager. The peculiarity lies in the fact that after authorization, you must automatically select one of the roles.



image



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



image



Kirill : Here you can only highlight the backlog of incomplete service requests. It is solved by conditional appearance in a dynamic list.



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



image



There is nothing complicated from the point of view of 1C in this form.



The form available to the service manager is as follows:



image



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



image



In addition to protection from the fool, in this form it was proposed to implement a list of spare parts for repair. The subtask is interesting because the parts have an expiration date. This means that if emergency situations have already occurred with this asset and a part has been ordered for it, the validity of which has not expired, then it can be reused. This should be shown to the user.



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



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



Session 3



For maintenance (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 by terms - for example, every second month of the 3rd day. So for some kind of quantitative indicator - for example, the odometer of a car (oil change every 5000 km, tire change every 20,000 km). The maintenance manager should have received a convenient mobile application that dynamically displays a list of expired, current and completed maintenance for the specified period. In addition, each type of maintenance should have been painted in color according to specially agreed rules. The mobile application was supposed to provide the establishment of new maintenance schedules and mark already completed directly in the workshops with the operational updating of this information on the server.



image



Cyril : There are two types of repairs: time (time-based) and mileage (run-based). Within each variation is allowed. For example, a repair plan should occur every Friday, the 13th of a month, or every 20,000 kilometers. A task is considered completed if there is a checkmark to its right.



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



When you click on the button below, you can create a new service plan:



image



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



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



Session 4



For components and consumables, it was necessary to take stocks into account, plan expenses and future purchases. In addition, batch accounting appeared here, but not for all goods. All this had to be carried out in the framework of many warehouses, including receipt, expenditure and movement. According to the conditions of the task, it was necessary to ensure control of residuals and avoid conflicts when working with actual reserves. Purchasing managers work in the desktop version of the software.



The main form is presented below:



image



Cyril : In addition to sorting from the condition, it was proposed to give the user the option of arbitrary sorting. At 1C, you can not even 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 remnants of goods in warehouses. So, the appropriate message should be displayed when trying to delete a receipt. Here we recall the exam for a platform specialist. Invoice form below:



image



Each part has a feature by which it is determined whether it should be attached to a particular party. For such spare parts, it is necessary to indicate the batch number in all documents. This is an additional measurement when monitoring residual parts. They can also be moved between warehouses:



image



The form differs from the previous one only in that instead of the customer it is necessary to indicate the warehouse from which delivery will be carried out. The selection list for the batch is automatically compiled after the selection of the part. The user can generate a report on the balance of spare parts:



image



Here we can see the remaining 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 explicit batch separation for the parts for which it is required. The balances for each batch number of the selected spare part can be viewed using the navigation link on the right.



Expert commentary : in this session (module), party accounting first appeared. Participants were required to consider consumables and goods not only on their own, but also in batches. In general, the task is perfectly suitable for the 1C: Enterprise platform - just to develop it all, you had to start from scratch and manage in 2.5 hours.



Session 5



In the fifth session, we were tasked with well management functionality. For reconnaissance groups, it was necessary to create a mobile application that records wells for oil or gas production. Here it was necessary to obtain a list of actual wells from the server and display a graphically selected well in layers (soil, sand, stone, oil) taking into account the depths of each layer. In addition, the application was supposed to allow updating information about the well and adding new wells. For this application, the customer set special working conditions in offline and online modes (monitoring communication with the server) - checking communication with the server every 5 seconds and changing the functionality of the application depending on the availability of the server.



image



Cyril : When choosing a well, a bar chart is displayed, on which the layers to the oil or gas deposits are highlighted. For each layer, its name, color and range are stored. Due to design features, diagrams built into the platform do not save, but a spreadsheet document does an excellent job. Wells can be created and modified:



image



In addition to multiple protection from the fool, there was nothing interesting in this form.

It was further proposed to control the connection to the server. Every 5 seconds we try to connect. If it doesn’t work out, then we limit the application’s functionality and display a message.



Expert commentary : the task of this session is primarily interesting for its graphical capabilities. Participants using the 1C: Enterprise platform solved it in two different ways - someone using a diagram engine, someone using a spreadsheet document. Each of the methods has its pros and cons. As part of the decision at the WorldSkills championship, the key was time (again, we recall 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 general indicators of the company for the specified period in graphical and tabular form. The main form is a cost report:



image



In addition to Dashboard, it was necessary to implement the distribution of spare parts for asset repairs using the FIFO / LIFO / “The cheapest leaves first” decommissioning methods.



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



Kirill : For the solution, tables of values ​​with software column generation were used, since there can be any number of columns:





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



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



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



image



In this form, we are finally starting to spend parts on repairs. Here we first find the details that we will need to fix the asset. For the selected fields and the distribution method (FIFO, LIFO or minimum price), the matches found or a message are displayed if there are none. After that, you can mark the details 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 fall into the parts found.



Expert Commentary : A very interesting session. It makes maximum use of the capabilities of the 1C: Enterprise platform - here, both competent work with virtual tables of accumulation registers, and program work with form elements (first of all, tables, and secondly, headers), and diagrams. And even LIFO / FIFO when analyzing stocks, profit / loss analysis, etc.



Session 7



At the end of the assignment (7th session), the customer provided software (exe-file) on project activities and a short video on working with him. It was necessary to carry out reverse engineering and based on this create 2 diagrams: a diagram of use cases and an entity-relationship diagram. In addition, some requirements for the creation of software in the future were put forward - it was necessary to form a layout of the interface for 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. Charts for the conditions of the competition were created in MS Visio. But the prototype interface could be created in an empty 1C information database.



General remarks



At the beginning of each session, it was proposed to import data using an SQL script. This was the main disadvantage of using 1C compared to C #, since we spent at least half an hour on data transfer to external data sources, creating our own tables and moving rows from external sources to our tables. The rest needed only to click 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 the server database. They stored data there and provided access to them via http services.



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



image

Cyril finished the story :)



In conclusion, it should be recalled that the contractor did not need to “just program the task according to the ToRs” —it was necessary to analyze the task, select blocks for the implementation of subtasks, design them and determine what exactly he would be able to realize from this in an extremely short allotted time. All 4 days I had to act in conditions of severe time pressure, often starting every next session from scratch. Even an adult specialist with many years of experience in the industry with great difficulty will be able to complete the assigned task for the session at 100% in the allotted time.



Special mention deserves the adopted assessment system.



For each session, the task authors 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 are developing their solutions specially provided to the participants.



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



results



The final results were impressive.



Kirill Pavkin from Russia, using the 1C: Enterprise platform, won the fight. Cyril 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 overall table of the top six results looks like this:



image



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 an instrument entered the top five - which is an unconditional confirmation of the world-class 1C: Enterprise technology.



According to the results of the competition, the winners were awarded at the KazanExpo Media Center, the guys received pure gold medals (in accordance with the place taken) and cash prizes. The guys also received certificates allowing them to undergo an internship at 1C.



image







All Articles