Finale WorldSkills, développement de solutions informatiques pour les entreprises - ce que c'est, comment c'était et pourquoi les programmeurs 1C y ont gagné

image
WorldSkills est un concours professionnel international pour les jeunes de moins de 22 ans.

Les finales internationales ont lieu tous les deux ans. Cette année, le lieu de la finale était Kazan (la dernière finale a eu lieu en 2017 à Abu Dhabi, la prochaine aura lieu à Shanghai en 2021).

Les Championnats WorldSkills sont les plus grands championnats du monde d'excellence professionnelle. Ils ont commencé par les professions actives et, ces dernières années, une attention croissante a été accordée aux «professions du futur», y compris les disciplines informatiques, pour lesquelles un énorme cluster distinct a été attribué lors du championnat de Kazan.

image

Le bloc informatique a une compétence (un «sport» spécifique) appelée «Solutions logicielles pour les entreprises» (Solutions logicielles pour les entreprises).

Dans chaque compétition, la liste autorisée d'outils utilisés est limitée. Et si, par exemple, pour la «conception paysagère», la liste des outils possibles est limitée (bien sûr, sans spécifier de fabricant ou de couleur explicite), alors dans la compétence «Solutions logicielles pour les entreprises», la liste des technologies approuvées que les participants peuvent utiliser est strictement limitée à des technologies spécifiques et des plateformes spécifiques (.NET et Java avec un ensemble spécifique de frameworks).

La position de 1C sur cette question est la suivante: les technologies de l'information sont un domaine très dynamique, les nouvelles technologies et les outils de développement font constamment leur apparition dans le monde. De notre point de vue, il est juste de permettre aux spécialistes d'utiliser les outils qu'ils souhaitent et avec lesquels ils ont l'habitude de travailler.

À l'automne 2018, la direction de WorldSkills nous a entendus. Il fallait maintenant tester la méthodologie d'intégration des nouvelles technologies dans les compétitions. Ce n'est pas facile.

Dans la liste des infrastructures du championnat de Kazan, ils ont inclus la plateforme 1C: Enterprise (1C: Enterprise) et organisé le site expérimental IT Software Solutions for Business Sandbox.

image

Notez que la langue officielle du championnat est l'anglais. Tous les documents avec les résultats de la résolution des tâches (codes sources, documentation à l'appui, interfaces logicielles) doivent également être transmis dans cette langue. Malgré les doutes de certaines personnes (toujours!), 1C peut être écrit en anglais.

image

9 jeunes enfants de 8 pays du monde (Philippines, Taiwan, Corée, Finlande, Maroc, Russie, Kazakhstan, Malaisie) ont participé aux concours sur ce site.

Le jury - une équipe d'experts - était dirigé par un expert des Philippines, Joey Manansala.

image

Des experts de Finlande, des Émirats arabes unis, du Costa Rica, de Corée, de Russie et de Taïwan étaient représentés.

Il convient de noter séparément que les participants de Russie (Pavkin Kirill, Sultanova Aigul) et du Kazakhstan (Vitovsky Ludwig) ont décidé d'utiliser la plate-forme 1C: Enterprise dans le cadre du concours. Les autres participants ont utilisé .NET pour le bureau et Android Studio pour le développement mobile. Il est intéressant de noter que les participants qui ont choisi 1C sont très jeunes (Kirill est un élève de l'école de Stavropol cette année est passé en 11e année, Aigul est un étudiant de collège, Kazan, Tatarstan), tandis que leurs rivaux étaient beaucoup plus expérimentés (par exemple, un participant de La Corée est lauréate des championnats du monde de compétences 2013 à Leipzig; tout le monde a de l'expérience dans les compétences mondiales et plusieurs années d'expérience professionnelle dans l'industrie).

Considérant que les participants ont utilisé diverses technologies modernes dans le cadre du concours, nous avons eu la chance de tester la plateforme 1C: Enterprise dans des conditions réellement de combat, pour comparer à la fois la qualité des solutions obtenues avec son aide et la vitesse de développement atteinte avec son utilisation.

Par ailleurs, nous notons que dans le cadre de la plate-forme Sandbox spéciale des solutions logicielles informatiques pour les entreprises, les participants ont effectué les mêmes tâches que les participants de la plate-forme principale des solutions logicielles informatiques pour les entreprises.

La tâche elle-même est une tâche complexe pour l'automatisation d'une certaine entreprise. Cette année, la société conditionnelle KazanNeft est devenue un exemple d'entreprise.

Légende


Kazan Oil est l'une des plus grandes sociétés pétrolières de la République du Tatarstan, agissant en tant qu'acteur du marché national et marque internationalement reconnue dans ce domaine. Le siège social de la société spécialisée dans la recherche sur le terrain, la production, la production, le raffinage, le transport, la vente et la distribution de pétrole, de produits pétroliers et de gaz naturel est situé à Kazan (Russie).

image

Alors que la société met en œuvre une stratégie d'expansion rapide et de création de nouveaux bureaux dans toute la Russie, la direction de la société a décidé d'introduire un nouveau logiciel d'automatisation commerciale visant à maintenir et à gérer certaines opérations.

Conditions du championnat


Des tâches ont été confiées aux participants sous forme de modules (sessions) avec la nécessité de les mettre en œuvre dans un temps limité. Il y avait 7 modules au total. Trois sessions de résolution sur le bureau - 2,5 heures chacune. Trois sessions - développement client-serveur, où le client était une application mobile, et la communication entre le client et le serveur a été réalisée via l'API WEB. 3,5 heures ont été allouées pour cela. La dernière session - tâches pour la rétro-ingénierie des logiciels existants, 2,5 heures. Dans le cadre de la rétro-ingénierie, les participants devaient, sur la base des informations qui leur étaient fournies, concevoir la structure de la base de données d'application (en construisant un diagramme ER), analyser les scénarios d'utilisation du système (en construisant un diagramme des cas d'utilisation), et développer et concevoir une interface de solution logicielle en fonction des exigences fonctionnelles fournies .

En tant que plates-formes de développement, ils ont été utilisés sur la plate-forme principale.NET (C #) et Java (y compris Android Studio pour le développement mobile). Le SandBox expérimental a utilisé .NET, Java et 1C: Enterprise version 8.3.13.

Selon les résultats de chaque session, les experts ont évalué le résultat - un projet réalisable prêt à l'emploi qui met en œuvre les tâches définies au début de la session.

Une caractéristique des tâches est leur «vitalité» - beaucoup d'exigences et un temps limité. La plupart des tâches ne sont pas des problèmes d'olympiades spéciales, mais très proches de vrais problèmes industriels - des spécialistes les affrontent quotidiennement. Mais les tâches sont nombreuses et le temps est limité. Le participant doit résoudre le nombre maximum de tâches qui auront le plus d'avantages pour l'entreprise. Ce n'est pas du tout le fait qu'une tâche difficile du point de vue de l'algorithmique aura plus de poids qu'une tâche élémentaire. Par exemple, la création d'un système comptable fonctionnel de trois tableaux pour les entreprises est plus importante qu'un beau formulaire de rapport, avec des algorithmes complexes qui sont complètement inutiles sans ces tableaux.

image

Nous avons demandé au gagnant du concours, le participant de Russie, Kirill Pavkin, de nous en dire plus sur les tâches et comment il a abordé leur solution.

image

Vous trouverez ci-dessous une description de la tâche, l'histoire de Cyril lui-même sur la façon dont il a résolu la tâche. Nous avons également demandé à Vitaliy Rybalka, un employé de 1C, l'un des experts IT Solutions for Business Sandbox, de commenter les décisions de Cyril.

Dans le cadre de la mission, il a été nécessaire d'automatiser les activités de plusieurs types d'utilisateurs:

  • Responsable de la comptabilité des actifs de l'entreprise
  • Responsable des réparations imprévues et de l'entretien planifié des actifs de l'entreprise
  • Directeurs des achats de composants et de fournitures
  • Unités d'exploration et de production pétrolières
  • Les cadres supérieurs avaient besoin de rapports analytiques

Séance 1


Du point de vue des actifs (par exemple, un parc automobile), il était nécessaire de mettre en œuvre leur comptabilité (en créer un nouveau, en éditer les actuels), une recherche rapide et divers filtres pour afficher les informations, déplacer les actifs entre les divisions de la Société et les groupes d'actifs eux-mêmes. Gardez un historique de ces mouvements et fournissez des analyses à leur sujet à l'avenir. La comptabilité des actifs a été principalement mise en œuvre pour les groupes d'utilisateurs mobiles.

image

Kirill : Une sous-tâche intéressante était l'implémentation de boutons dans la liste des actifs. Une liste dynamique a été utilisée pour la solution: nous écrivons une requête arbitraire, et lors de la réception de données sur le serveur, nous attribuons des liens de navigation aux images de la bibliothèque d'images vers les champs nécessaires.

Selon la condition, les photos peuvent être attachées à un élément de deux manières: prendre une photo (multimédia) et sélectionner dans la galerie (boîte de dialogue de sélection de fichier).

Certains formulaires ont dû être redessinés lors de la rotation de l'écran:

image

Lors de la modification des paramètres d'écran, nous modifions la visibilité des groupes de boutons.

Les tâches amusantes mais simples comprennent des filtres dans une liste dynamique, une recherche dans deux champs (numéro et nom), la génération du numéro de série de l'actif.

Commentaire d'expert : du point de vue de la solution sur la plateforme 1C: Enterprise, la tâche est assez claire. En plus de créer réellement une application mobile, il a fallu s'occuper du transfert des données du SGBD du «serveur» (MS SQL sur le bureau) vers l'application mobile et vice versa. Pour cela, nous avons utilisé les mécanismes des sources de données externes et des services http dans «l'application proxy» de bureau. Pour la plate-forme mobile elle-même, la complexité accrue était représentée par la sortie d'images vers une liste dynamique.

Session 2


Il était nécessaire d'établir une gestion des réparations pour les actifs de la Société. Dans le cadre de cette tâche, il était nécessaire de tenir une liste des demandes de réparations (par unités et groupes), de prendre en compte les priorités d'urgence des réparations, de planifier le calendrier des réparations en fonction des priorités, de commander les composants nécessaires et de tenir compte des existants. Une sous-tâche intéressante était que certains composants avaient une date d'expiration; si une pièce a déjà été commandée pour un actif donné et que sa durée n'est pas expirée, il n'est pas nécessaire pour cet actif de racheter la même pièce. L'interface de réparation a été développée pour le composant de bureau du logiciel de l'entreprise.

Il était également nécessaire de créer un formulaire d'autorisation non trivial pour deux rôles: la personne responsable et le gestionnaire de services. La particularité réside dans le fait qu'après autorisation, vous devez sélectionner automatiquement l'un des rôles.

image

Le formulaire de liste à la disposition de la personne responsable est présenté ci-dessous:

image

Kirill : Ici, vous ne pouvez que mettre en évidence l'arriéré des demandes de service incomplètes. Il est résolu par une apparence conditionnelle dans une liste dynamique.

En cliquant sur le bouton en bas de l'écran, l'utilisateur peut accéder au formulaire suivant:

image

Il n'y a rien de compliqué du point de vue de 1C sous cette forme.

Le formulaire à la disposition du gestionnaire de services est le suivant:

image

Ce formulaire a un tri par priorité et date de demande. En cliquant sur le bouton ci-dessous, l'utilisateur peut accéder au formulaire de la demande sélectionnée:

image

En plus de la protection contre les imbéciles, sous cette forme, il a été proposé de mettre en œuvre une liste de pièces de rechange pour la réparation. La sous-tâche est intéressante car les pièces ont une date d'expiration. Cela signifie que si des situations d'urgence se sont déjà produites avec cet actif et qu'une pièce a été commandée pour lui, dont la validité n'a pas expiré, il peut être réutilisé. Cela devrait être montré à l'utilisateur.

Commentaire d'un expert : ici Cyril lui-même a correctement souligné. Du point de vue de l'implémentation sur la plateforme 1C: Enterprise, il n'y a rien de décourageant. Une analyse minutieuse des conditions de comptabilisation et d'utilisation des pièces de rechange et une mise en œuvre compétente de l'ensemble de la tâche étaient nécessaires. De plus, il a fallu configurer correctement la comptabilité des demandes de service. La principale difficulté n'était que la pression du temps à 2,5 heures.

De plus, comme dans le développement mobile, le participant doit recevoir correctement les données d'un SGBD externe (MS SQL).

Session 3


Pour la maintenance (maintenance), il a été proposé de mettre en place un service de planification à long terme. Une caractéristique intéressante ici était l'exigence de former un calendrier de maintenance des actifs selon les termes - par exemple, tous les deux mois du 3ème jour. Donc, pour un indicateur quantitatif - par exemple, le compteur kilométrique d'une voiture (vidange d'huile tous les 5000 km, changement de pneus tous les 20 000 km). Le responsable de la maintenance doit avoir reçu une application mobile pratique qui affiche dynamiquement une liste de maintenance expirée, en cours et terminée pour la période spécifiée. De plus, chaque type d'entretien devrait avoir été peint en couleur selon des règles spécialement convenues. L'application mobile devait fournir la mise en place de nouveaux plannings de maintenance et marquer déjà finalisés directement dans les ateliers avec la mise à jour opérationnelle de ces informations sur le serveur.

image

Cyril : Il existe deux types de réparations: en fonction du temps (en fonction du temps) et du kilométrage (en fonction de l'exécution). Dans chaque variation est autorisée. Par exemple, un plan de réparation devrait avoir lieu tous les vendredis 13 du mois ou tous les 20 000 kilomètres. Une tâche est considérée comme terminée s'il y a une coche à sa droite.

Une condition a été fournie pour le tri des tâches dans une liste. De plus, chaque ligne doit être mise en évidence en fonction des conditions.

Lorsque vous cliquez sur le bouton ci-dessous, vous pouvez créer un nouveau plan de service:

image

Les champs obligatoires sont affichés en fonction du type de graphique sélectionné. Si nous avons sélectionné un horaire hebdomadaire, deux champs nous seront affichés: le numéro de la semaine et le jour de la semaine. Par exemple, le mardi toutes les 3 semaines.

Commentaire d'experts : comme dans le développement mobile précédent sur la plate-forme 1C: Enterprise, la tâche ici était globalement divisée en 2 composants - communication avec le «serveur» via web-api et affichage compétent d'une liste dynamique avec formatage conditionnel et filtrage (sélection) des données. En outre, l'exigence de comptabiliser les réparations par périodes et en termes de quantité était intéressante pour la mise en œuvre.

Session 4


Pour les composants et consommables, il fallait tenir compte des stocks, planifier les dépenses et les achats futurs. De plus, des comptes de lots apparaissent ici, mais pas pour toutes les marchandises. Tout cela devait être effectué dans le cadre de nombreux entrepôts, y compris la réception, les dépenses et les mouvements. Selon les conditions de la tâche, il fallait assurer le contrôle des soldes et éviter les conflits lors du travail avec les réserves réelles. Les directeurs des achats travaillent dans la version de bureau du logiciel.

Le formulaire principal est présenté ci-dessous:

image

Cyril : En plus du tri à partir de la condition, il a été proposé de donner à l'utilisateur la possibilité d'un tri arbitraire. Au 1C, vous ne pouvez même pas y penser. Le champ avec le nombre de pièces doit être surligné en vert pour les factures entrantes.

Au cours de cette session, ils ont demandé de contrôler les soldes des marchandises dans les entrepôts. Par conséquent, le message approprié doit s'afficher lorsque vous essayez de supprimer un reçu. Ici, nous rappelons l'examen pour un spécialiste de la plate-forme. Formulaire de facture ci-dessous:

image

Chaque pièce a une caractéristique par laquelle il est déterminé si elle doit être attachée à une partie particulière. Pour ces pièces de rechange, il est nécessaire d'indiquer le numéro de lot dans tous les documents. Il s'agit d'une mesure supplémentaire lors de la surveillance des pièces résiduelles. Ils peuvent également être déplacés entre les entrepôts:

image

Le formulaire ne diffère du précédent que par le fait qu'au lieu du client, il est nécessaire d'indiquer l'entrepôt à partir duquel la livraison sera effectuée. La liste de sélection du lot est automatiquement compilée après la sélection de la pièce. L'utilisateur peut générer un rapport sur le solde des pièces détachées:

image

Ici, nous pouvons voir les marchandises restantes dans l'entrepôt sélectionné. Les cases à cocher à droite de l'entrepôt vous permettent de configurer le filtrage et le tri. La liste ne comporte pas de séparation explicite des lots pour les pièces pour lesquelles elle est requise. Les soldes pour chaque numéro de lot de la pièce de rechange sélectionnée peuvent être consultés à l'aide du lien de navigation à droite.

Commentaire d'un expert : dans cette session (module), la comptabilité des partis est apparue pour la première fois. Les participants devaient considérer les consommables et les marchandises non seulement par eux-mêmes, mais également par lots. En général, la tâche convient parfaitement à la plate-forme 1C: Enterprise - juste pour tout développer, vous deviez repartir de zéro et avoir du temps en 2,5 heures.

Session 5


Lors de la cinquième session, nous avons été chargés de la fonctionnalité de gestion des puits. Pour les groupes de reconnaissance, il était nécessaire de créer une application mobile qui enregistre les puits pour la production de pétrole ou de gaz. Ici, il était nécessaire d'obtenir une liste des puits réels du serveur et d'afficher un puits sélectionné graphiquement en couches (sol, sable, pierre, pétrole) en tenant compte des profondeurs de chaque couche. De plus, l'application était censée permettre la mise à jour des informations sur le puits et l'ajout de nouveaux puits. Pour cette application, le client a défini des conditions de travail spéciales en modes hors ligne et en ligne (contrôle de la communication avec le serveur) - vérification de la communication avec le serveur toutes les 5 secondes et modification des fonctionnalités de l'application en fonction de la disponibilité du serveur.

image

Cyril : Lors du choix d'un puits, un graphique à barres s'affiche, sur lequel les couches des gisements de pétrole ou de gaz sont mises en évidence. Pour chaque couche, son nom, sa couleur et sa plage sont stockés.En raison des caractéristiques de conception, les diagrammes intégrés à la plate-forme ne sont pas enregistrés, mais le document de feuille de calcul fait un excellent travail. Les puits peuvent être créés et modifiés:

image

en plus d'une protection multiple contre le fou, il n'y avait rien d'intéressant dans cette forme.
Il a en outre été proposé de contrôler la connexion au serveur. Toutes les 5 secondes, nous essayons de nous connecter. Si cela ne fonctionne pas, nous limitons la fonctionnalité de l'application et affichons un message.

Commentaire d'experts : . , 1: – - , - . . WorldSkills ( ). – 5 .

6


- – Dashboard. . :

image

Dashboard , FIFO/LIFO/« ».

, (« »).

: , :

  • . .
  • . , , .
  • ( ) . , . , .

, .

. XML- , .

:

image

- . , . (FIFO, LIFO ) , . . . , .

: . 1: – , ( – , — ), . LIFO/FIFO , / ..

7


(7 ) (exe-) . - 2 : -. , – .

MS Visio.

: 1: . MS Visio. 1.


SQL-. 1C C#, , . - Execute Microsoft SQL Studio.

. . http-.

: 1/1 – 1: ( ), C#/Java (Android Studio ) – , . . – .

image
:)

, « » – , , , . 4 , . , 100% .

.

, , , , , .

— , - . .

Résultats


.

, 1:. 17 , .

. . :

image

, , .

, , 1:, — 1:.

Selon les résultats du concours, une cérémonie de récompense a eu lieu au centre des médias KazanExpo, les gars ont reçu des médailles d'or pur (selon la place prise) et des prix en argent. Les gars ont également reçu des certificats leur permettant d'effectuer un stage au 1C.

image

Source: https://habr.com/ru/post/fr473054/


All Articles