O WorldSkills é uma competição profissional internacional para jovens com menos de 22 anos.
As finais internacionais são realizadas a cada dois anos. Este ano, o local da final foi
Kazan (a última final foi em 2017 em Abu Dhabi, a próxima será em Xangai em 2021).
O WorldSkills Championships é o maior campeonato mundial de excelência profissional. Eles começaram com profissões de trabalho e, nos últimos anos, foi prestada cada vez mais atenção às “profissões do futuro”, incluindo disciplinas de TI, para as quais um grande cluster separado foi alocado no campeonato em Kazan.
O bloco de TI possui uma competência (um “esporte” específico) chamado “Soluções de Software para Negócios” (Soluções de Software para Negócios para TI).
Em cada competição, a lista permitida de ferramentas usadas é limitada. E se, por exemplo, para "paisagismo" a lista de ferramentas possíveis é limitada (é claro, sem especificar um fabricante ou cor explícita), na competência "Soluções de software para negócios", a lista de tecnologias aprovadas que os participantes podem usar é estritamente limitada a tecnologias específicas e plataformas específicas (.NET e Java com um conjunto específico de estruturas).
A posição da 1C sobre esse assunto é a seguinte: a tecnologia da informação é uma área muito dinâmica, novas tecnologias e ferramentas de desenvolvimento estão constantemente aparecendo no mundo. Do nosso ponto de vista, é correto permitir que especialistas usem as ferramentas que desejam e estão acostumadas a trabalhar.
No outono de 2018, a gerência da WorldSkills nos ouviu. Agora era necessário testar a metodologia para incorporar novas tecnologias nas competições. Isto não é fácil.
Na lista de infraestrutura do campeonato em Kazan, eles incluíram a plataforma 1C: Enterprise (1C: Enterprise) e organizaram o site experimental IT Software Solutions for Business Sandbox.

Observe que o idioma oficial do campeonato é o inglês. Todos os materiais com os resultados da resolução de tarefas (códigos-fonte, documentação de suporte, interfaces de software) também devem ser transmitidos nesse idioma. Apesar das dúvidas de algumas pessoas (ainda!), 1C pode ser escrito em inglês.

9 crianças de 8 países do mundo (Filipinas, Taiwan, Coréia, Finlândia, Marrocos, Rússia, Cazaquistão, Malásia) participaram das competições neste site.
O júri - uma equipe de especialistas - foi liderado por um especialista das Filipinas Joey Manansala.

Estiveram representados especialistas da Finlândia, Emirados Árabes Unidos, Costa Rica, Coréia, Rússia e Taiwan.
Deve-se observar separadamente que participantes da Rússia (Pavkin Kirill, Sultanova Aigul) e Cazaquistão (Vitovsky Ludwig) decidiram usar a plataforma 1C: Enterprise como parte da competição. Os participantes restantes usaram o .NET para desktop e o Android Studio para desenvolvimento móvel. É interessante que os participantes que escolheram o 1C sejam muito jovens (Kirill é um estudante de Stavropol este ano mudou-se para a 11ª série, Aigul é um estudante universitário, Kazan, Tartaristão), enquanto seus rivais eram muito mais experientes (por exemplo, um participante de A Coréia é a vencedora do WorldSkills Championship de 2013 em Leipzig; todos têm experiência no WorldSkills e vários anos de experiência profissional no setor).
Considerando que os participantes usaram várias tecnologias modernas no âmbito da competição, tivemos a chance de testar a plataforma 1C: Enterprise em condições realmente de combate, para comparar a qualidade das soluções obtidas com sua ajuda e a velocidade de desenvolvimento alcançada com seu uso.
Separadamente, observamos que, na estrutura da plataforma especial Sandbox IT Solutions for Business, os participantes executaram as mesmas tarefas que os participantes da plataforma principal IT Solutions Solutions for Business.
A tarefa em si é uma tarefa complexa para a automação de um determinado negócio.Este ano, a empresa condicional KazanNeft se tornou um exemplo de negócio.
Legend
A Kazan Oil é uma das maiores empresas de petróleo da República do Tartaristão, atuando como participante do mercado nacional e uma marca reconhecida internacionalmente neste campo. A sede da empresa especializada em pesquisa de campo, produção, produção, refino, transporte e venda e distribuição de petróleo, derivados e gás natural está localizada em Kazan (Rússia).

À medida que a empresa implementa uma estratégia para a rápida expansão e criação de novos escritórios em toda a Rússia, a administração da empresa decidiu introduzir um novo software de automação comercial, destinado a manter e gerenciar determinadas operações.
Termos do Campeonato
As tarefas foram dadas aos participantes na forma de módulos (sessões) com o requisito de implementá-los em um tempo limitado. Havia 7 módulos no total. Três sessões para solução na área de trabalho - 2,5 horas cada. Três sessões - desenvolvimento cliente-servidor, onde o cliente era um aplicativo móvel, e a comunicação entre o cliente e o servidor foi realizada por meio da WEB-API. Foram atribuídas 3,5 horas para isso. A última sessão - tarefas para engenharia reversa do software existente, 2,5 horas. Como parte da engenharia reversa, os participantes tiveram que, com base nas informações fornecidas, projetar a estrutura do banco de dados do aplicativo (construindo um diagrama de ER), analisar os cenários de uso do sistema (construindo um diagrama de casos de uso) e desenvolver e projetar uma interface de solução de software de acordo com os requisitos funcionais fornecidos .
Como plataformas de desenvolvimento, elas foram usadas na plataforma principal.NET (C #) e Java (incluindo Android Studio para desenvolvimento móvel). O SandBox experimental usava .NET, Java e 1C: Enterprise versão 8.3.13.
De acordo com os resultados de cada sessão, os especialistas avaliaram o resultado - um projeto viável pronto que implementa as tarefas definidas no início da sessão.
Uma característica das tarefas é sua "vitalidade" - muitos requisitos e tempo limitado. A maioria das tarefas não são problemas especiais das olimpíadas, mas muito próximos de problemas industriais reais - os especialistas os enfrentam todos os dias. Mas há muitas tarefas e o tempo é limitado. O participante deve resolver o número máximo de tarefas que terão o maior benefício para os negócios. Não é fato que uma tarefa difícil do ponto de vista da algorítmica terá mais peso do que uma tarefa elementar. Por exemplo, a criação de um sistema de contabilidade funcional de três tabelas para negócios é mais importante que um belo formulário de relatório, com algoritmos complexos que são completamente desnecessários sem essas tabelas.

Pedimos ao vencedor da competição, o participante da Rússia, Kirill Pavkin, que nos dissesse mais sobre quais eram as tarefas e como ele abordou a solução delas.

Abaixo está uma descrição da tarefa, a história do próprio Cyril sobre como ele resolveu a tarefa. Também pedimos a Vitaliy Rybalka, um funcionário da 1C, um dos especialistas em soluções de TI para empresas, para comentar as decisões da Cyril.
Como parte da tarefa, foi necessário automatizar as atividades de vários tipos de usuários:
- Responsável pela contabilização dos ativos da empresa
- Responsável por reparos não programados e manutenção programada dos ativos da empresa
- Gerentes de compras de componentes e suprimentos
- Unidades de Exploração e Produção de Petróleo
- Os principais gerentes precisavam de relatórios analíticos
Sessão 1
Do ponto de vista dos ativos (por exemplo, uma frota de carros), era necessário implementar a contabilidade (estabelecer uma nova, editar as atuais), pesquisar rapidamente e vários filtros para exibir informações, movimentar ativos entre as divisões da empresa e os próprios grupos de ativos. Mantenha um histórico desses movimentos e forneça análises sobre eles no futuro. A contabilidade de ativos foi implementada principalmente para grupos de usuários móveis.
Kirill : Uma subtarefa interessante foi a implementação de botões na lista de ativos. Uma lista dinâmica foi usada para a solução: escrevemos uma solicitação arbitrária e, ao receber dados no servidor, atribuímos links de navegação a imagens da biblioteca de imagens nos campos necessários.
De acordo com a condição, as fotos podem ser anexadas a um ativo de duas maneiras: tire uma foto (multimídia) e selecione na galeria (caixa de diálogo de seleção de arquivo).
Alguns formulários tiveram que ser redesenhados quando a tela foi girada:

Ao alterar as configurações da tela, alteramos a visibilidade dos grupos de botões.
Tarefas divertidas, porém simples, incluem filtros em uma lista dinâmica, uma pesquisa em dois campos (número e nome), geração do número de série do ativo.
Comentários de especialistas : do ponto de vista da solução na plataforma 1C: Enterprise, a tarefa é bastante compreensível. Além de criar um aplicativo móvel, era necessário atender à transferência de dados do DBMS do “servidor” (MS SQL no desktop) para o aplicativo móvel e vice-versa. Para isso, usamos os mecanismos de fontes de dados externas e serviços http no "aplicativo proxy" da área de trabalho. Para a própria plataforma móvel, o aumento da complexidade foi representado pela saída de imagens em uma lista dinâmica.
Sessão 2
Era necessário estabelecer uma gestão de reparos para os ativos da Companhia. Como parte dessa tarefa, era necessário manter uma lista de solicitações de reparos (por unidades e grupos), levar em consideração prioridades de urgência de reparos, planejar o cronograma de reparos de acordo com as prioridades, solicitar os componentes necessários e levar em conta os existentes. Uma subtarefa interessante foi que alguns componentes tiveram uma data de validade; se uma peça já foi encomendada para um determinado ativo e seu prazo não expirou, para esse ativo não é necessário comprar a mesma peça novamente. A interface de reparo foi desenvolvida para o componente de desktop do software da empresa.
Também foi necessário criar um formulário de autorização não trivial para duas funções: a pessoa responsável e o gerente de serviço. A peculiaridade reside no fato de que, após a autorização, você deve selecionar automaticamente uma das funções.

O formulário de lista disponível para a pessoa responsável é apresentado abaixo:
Kirill : Aqui você pode destacar apenas o atraso de solicitações de serviço incompletas. É resolvido pela aparência condicional em uma lista dinâmica.
Ao clicar no botão na parte inferior da tela, o usuário pode ir para o seguinte formulário:

Não há nada complicado do ponto de vista de 1C neste formulário.
O formulário disponível para o gerente de serviço é o seguinte:

Este formulário tem classificação por prioridade e data da solicitação. Ao clicar no botão abaixo, o usuário pode acessar o formulário da solicitação selecionada:

Além da proteção contra os tolos, desta forma foi proposto implementar uma lista de peças de reposição para reparo. A subtarefa é interessante porque as partes têm uma data de validade. Isso significa que, se já ocorreram situações de emergência com esse ativo e uma peça foi solicitada para ele, cuja validade não expirou, ela poderá ser reutilizada. Isso deve ser mostrado ao usuário.
Comentário de especialista : aqui o próprio Cyril enfatizou corretamente. Do ponto de vista da implementação na plataforma 1C: Enterprise, não há nada assustador. Uma análise cuidadosa das condições de contabilidade e uso de peças de reposição e a implementação competente da tarefa como um todo foram necessárias. Além disso, era necessário configurar corretamente a contabilidade das solicitações de serviço. A principal dificuldade foi apenas a pressão do tempo em 2,5 horas.
Além disso, como no desenvolvimento móvel, o participante deve receber corretamente dados de um DBMS externo (MS SQL).
Sessão 3
Para manutenção (manutenção), foi proposto implementar um serviço de planejamento de longo prazo. Um recurso interessante aqui foi o requisito de formar um cronograma de manutenção de ativos conforme os termos - por exemplo, a cada dois meses do terceiro dia. Assim, para algum tipo de indicador quantitativo - por exemplo, o odômetro de um carro (troca de óleo a cada 5000 km, troca de pneu a cada 20.000 km). O gerente de manutenção deve ter recebido um aplicativo móvel conveniente que exibe dinamicamente uma lista de manutenção expirada, atual e concluída pelo período especificado. Além disso, cada tipo de manutenção deve ter sido pintado em cores de acordo com as regras acordadas especialmente. O aplicativo móvel deveria fornecer o estabelecimento de novos cronogramas de manutenção e a marca já concluída diretamente nas oficinas com a atualização operacional dessas informações no servidor.
Cirilo : Existem dois tipos de reparos: baseado no tempo (baseado no tempo) e quilometragem (baseado na execução). Dentro de cada variação é permitido. Por exemplo, um plano de reparo deve ocorrer toda sexta-feira, 13 de um mês ou a cada 20.000 quilômetros. Uma tarefa é considerada concluída se houver uma marca de seleção à direita.
Uma condição foi fornecida para classificar tarefas em uma lista. Além disso, cada linha deve ser destacada dependendo das condições.
Ao clicar no botão abaixo, você pode criar um novo plano de serviço:

Os campos obrigatórios são exibidos dependendo do tipo de gráfico selecionado. Se selecionarmos uma programação semanal, serão mostrados dois campos: número da semana e dia da semana. Por exemplo, às terças-feiras a cada 3 semanas.
Comentários de especialistas : como no desenvolvimento móvel anterior na plataforma 1C: Enterprise, a tarefa aqui foi globalmente dividida em 2 componentes - comunicação com o "servidor" via web-api e exibição competente de uma lista dinâmica com formatação e filtragem condicionais (seleção) de dados. Além disso, o requisito de contabilizar reparos por períodos e em quantidade foi interessante para a implementação.
Sessão 4
Para componentes e consumíveis, era necessário levar em consideração os estoques, planejar despesas e compras futuras. Além disso, as contas de lote apareceram aqui, mas não para todas as mercadorias. Tudo isso teve que ser realizado no âmbito de muitos armazéns, incluindo recebimento, despesas e movimentação. De acordo com as condições da tarefa, era necessário garantir o controle dos saldos e evitar conflitos ao trabalhar com reservas reais. Os gerentes de compras trabalham na versão desktop do software.
O formulário principal é apresentado abaixo:
Cirilo : Além de classificar a condição, foi proposto oferecer ao usuário a opção de classificação arbitrária. Na 1C, você nem consegue pensar nisso. O campo com o número de peças deve ser destacado em verde para as faturas recebidas.
Nesta sessão, eles pediram para controlar os saldos das mercadorias nos armazéns. Portanto, a mensagem apropriada deve ser exibida ao tentar excluir um recibo. Aqui recordamos o exame para um especialista em plataforma. Formulário de fatura abaixo:

Cada parte possui um recurso pelo qual é determinado se deve ser anexado a uma parte específica. Para essas peças de reposição, é necessário indicar o número do lote em todos os documentos. Essa é uma medida adicional ao monitorar peças residuais. Eles também podem ser movidos entre armazéns:

O formulário difere do anterior apenas no sentido de que, em vez do cliente, é necessário indicar o depósito no qual a entrega será realizada. A lista de seleção para o lote é compilada automaticamente após a seleção da peça. O usuário pode gerar um relatório sobre o saldo de peças de reposição:

Aqui podemos ver as mercadorias restantes no armazém selecionado. As caixas de seleção à direita do armazém permitem configurar a filtragem e a classificação. A lista não possui separação explícita de lote para as peças para as quais é necessária. Os saldos para cada número de lote da peça de reposição selecionada podem ser visualizados usando o link de navegação à direita.
Comentários de especialistas : nesta sessão (módulo), a contabilidade da parte apareceu pela primeira vez. Os participantes precisavam considerar consumíveis e mercadorias não apenas por conta própria, mas também em lotes. Em geral, a tarefa é perfeitamente adequada para a plataforma 1C: Enterprise - apenas para desenvolver tudo, você teve que começar do zero e ter tempo em 2,5 horas.
Sessão 5
Na quinta sessão, fomos encarregados da funcionalidade de gerenciamento de poço. Para grupos de reconhecimento, foi necessário criar um aplicativo móvel que registrasse poços para produção de petróleo ou gás. Aqui foi necessário obter uma lista de poços reais do servidor e exibir um poço selecionado graficamente em camadas (solo, areia, pedra, óleo), levando em consideração as profundidades de cada camada. Além disso, o aplicativo deveria permitir atualizar informações sobre o poço e adicionar novos poços. Para esse aplicativo, o cliente define condições especiais de trabalho nos modos offline e online (controle da comunicação com o servidor) - verificando a comunicação com o servidor a cada 5 segundos e alterando a funcionalidade do aplicativo, dependendo da disponibilidade do servidor.
Cirilo : Ao escolher um poço, é exibido um gráfico de barras, no qual as camadas dos depósitos de petróleo ou gás são realçadas. Para cada camada, seu nome, cor e intervalo são armazenados. Devido aos recursos de design, os diagramas incorporados à plataforma não são salvos, mas o documento da planilha faz um excelente trabalho. Os poços podem ser criados e modificados:

Além da proteção múltipla do tolo, não havia nada de interessante nessa forma.
Foi proposto ainda controlar a conexão com o servidor. A cada 5 segundos, tentamos nos conectar. Se não der certo, limitamos a funcionalidade do aplicativo e exibimos uma mensagem.
Comentário de especialista : a tarefa desta sessão é principalmente interessante por suas capacidades gráficas. Os participantes que usam a plataforma 1C: Enterprise resolveram isso de duas maneiras diferentes - alguém usando um mecanismo de diagrama, alguém usando um documento de planilha. Cada um dos métodos tem seus prós e contras. Como parte da decisão no campeonato WorldSkills, a chave era o tempo (novamente, lembre-se do limite de tempo). Uma tarefa interessante separada é executar ping no servidor a cada 5 segundos e alterar o comportamento do aplicativo móvel, dependendo da disponibilidade ou inacessibilidade do servidor.
Sessão 6
- – Dashboard. . :

Dashboard , FIFO/LIFO/« ».
, (« »).
: , :
, .
. XML- , .
:

- . , . (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 ) – , . . – .
:), « » – , , , . 4 , . , 100% .
.
, , , , , .
— , - . .
Resultados
.
, 1:. 17 , .
. . :

, , .
, , 1:, — 1:.
, ( ) . , 1.
