Marque marcado, marcado e marcado. A marcação é fácil !?

Este ano, vários artigos foram publicados ao mesmo tempo sobre a prática de trabalhar com o novo sistema de marcação "Marca Honesta". Foram elaborados por “especialistas em informática” dos departamentos de informática das empresas participantes do turnover, o que reflete sua visão sobre o andamento do projeto piloto e os primeiros dias de lançamento do sistema de combate. Por exemplo, aqui e ali .



O sistema foi muitas vezes criticado e criticado, principalmente devido a alterações frequentes na API, bugs na conta pessoal e manchas brancas em alguns processos.


Decidimos, ainda que não os primeiros, divulgar nossa experiência e nosso pensamento sobre esse novo ambicioso projeto de Estado, do qual participamos ativamente.



Pode parecer que o artigo é uma bagunça, mas a rotulagem como um todo é uma bagunça, muitos aspectos convergem em um só lugar.



imagem



Resumidamente sobre nós



A Cleverens desenvolve software para trabalhadores móveis, principalmente para equipamentos especiais de terminais de coleta de dados (TSD) e gravadores de aposentadoria (RV).



Pode parecer a alguém que existe uma floresta, uma árvore na floresta, um besouro em uma árvore e um micróbio vive em um besouro, e o nicho de software para TSD é sobre micróbios em um besouro.



A isso podemos responder que a mobilidade da equipe é um mercado em crescimento muito grande, e hardware especial com software pronto é geralmente o futuro de todo o hardware atual. No final, qualquer coisa realmente inovadora é o resultado de muitos anos de trabalho em um nicho estreito ( veja a famosa entrevista de Andrey Doronichev sobre o YouTube para celular).



Basicamente, os produtos da Cleverence são vendidos com integração pronta com os sistemas de contabilidade, os quais (integração) nós próprios escrevemos e apoiamos (por exemplo, Armazém 15 ).



Tentamos executar todo software e hardware em indústrias, depósitos, lojas, etc. reais Por exemplo, quando o projeto de etiquetagem de calçados estava apenas começando, fomos à China para testar processos de negócios e, ao mesmo tempo, eles gravaram um vídeo sobre isso.



Qual é o sistema de rotulagem e "Fair Mark"



A grosso modo, esta é uma Internet público-privada das coisas em códigos de barras e RFID para rastreamento total da movimentação de unidades de mercadorias.



Existe muita informação sobre o sistema de etiquetagem, o principal recurso é o site Honest Sign .



imagem



A atitude dos participantes do mercado em relação à rotulagem



Não é segredo que a atitude dos participantes do mercado em relação à rotulagem é polar. De "Rússia, em frente!" e “A ideia é boa, mas a implementação nos decepcionou” para “voltam a magoar os pequenos”.



As vantagens incluem branquear o mercado e controlar as cadeias de abastecimento. Das desvantagens - remoção da UTII ao negociar mercadorias marcadas.



Quase todos grandes negócios para etiquetagem. Pequenos empreendedores que querem trabalhar lindamente e de branco - também para etiquetagem, para eles isso é uma vantagem competitiva sobre os mercados cinza.



A maioria das pequenas e médias empresas é contra a rotulagem, que considera tudo isso um fardo desnecessário para elas.


As reclamações são formuladas principalmente como “pequena empresa está sendo estrangulada de novo” ou “você tem tanto dinheiro e pessoas, você poderia ter feito isso e aquilo”, “tal e tal processo de negócios não está bem pensado”. Embora tenha sido em uma pequena empresa e seus processos que o dinheiro principal foi gasto - este é um site com a conta pessoal de um participante, um gravador de emissão de código baseado em nuvem, etc.



A posição dos especialistas em TI também merece destaque, sobre ela a seguir.



Ao mesmo tempo, o portal de informações "Honest Mark", que publica informações, está funcionando perfeitamente. Por exemplo, onde posso encontrar informações em inglês? Bem aqui . E em chinês? Bem aqui .



Problemas de inicialização que todos estavam falando



Enquanto o piloto caminhava, havia muitos bugs no sistema. Basicamente, eles conseguiram curá-los antes de 1º de julho de 2020.



Eles prometeram que no início o EGAIS funcionaria melhor e, em geral, a disponibilidade do serviço é maior.



Agora o sistema está sempre disponível em fumo e calçados, tudo dá certo rápido, exceto uma rara paralisação para trabalho tecnológico à noite por algumas horas.



imagem



Mas o principal problema no início foi que "você não pode ir sem o controle" e 99% dos participantes da rotatividade (em termos de número) estupidamente ignoraram esse sistema, não se registraram, não deram a carga, esperaram pelo dia do julgamento e exigiram um adiamento.



2019 «» , 10 , ( ). 10 .



, , .


Todos sabiam desse problema, estavam se preparando para isso, mas quando o prazo do sapato acabou, ele ainda entrou em colapso. Alguns UOTs se apressaram em escrever códigos gratuitos para os restantes com 20 anos de antecedência, o que, em seu pico, aumentou a carga nos servidores x40 vezes. Tais jogos, é claro, não serão em vão, porque o sistema é digital e, como dizem, “todos os movimentos são registrados”.



Infelizmente, os pioneiros da marcação também sofreram - essas são as empresas que estão no piloto de marcação desde o primeiro dia, tentaram de boa fé, mas no final também pediram um adiamento.



É preciso dizer aqui que o sistema estadual não é um iPhone para fazer alegria desde o primeiro dia de vendas. E o objetivo de sua criação não era coletar curtidas de especialistas de TI ou fazer análises de vídeo como "quando for lançado, então vou ver e decidir por mim mesmo se devo comprar".



Por alguma razão, as pessoas esperam que desde o primeiro dia o sistema funcione como se estivesse em produção há 5 anos.



Em geral, se você esperar nessa lógica, quando tudo vai ficar perfeito, então tudo deve ser adiado para 2030, ou melhor, depois da conquista de Marte, sim.



Posição de especialistas em TI



A posição dos especialistas em TI não é “a favor” ou “contra”, mas “dar”. Exija que todas as mudanças sejam anunciadas com antecedência, exija melhor documentação, mais casos de teste, sandboxes, menos restrições.



Em geral, o projeto tem muitos hardwares e padrões internacionais diferentes, o que traz apenas dor e sofrimento para os especialistas clássicos de TI.



Os especialistas em TI são pessoas muito corrosivas e inteligentes, com opinião própria sobre qualquer assunto. E não há consenso sobre a rotulagem, exceto para reivindicações sobre o API, em geral, não há.



A API do sistema muda com mais frequência do que gostaríamos em um cenário de "fazer e esquecer". Mas, ao mesmo tempo, considera-se que vários métodos devem ser adicionados à API para trabalhar com pacotes de grupos (agregados), para autorização simplificada, etc., mas isso novamente significa alterar a API.



Nós próprios somos pessoas de TI e temos a mesma posição dupla de que a API carece de métodos, mas a API muda com muita frequência. Aqui, como se costuma dizer, “a bandeira é racista, mas esta é a nossa história ”.



Em geral, a API precisa ser aprimorada, mas é aconselhável avisar sobre isso com 1 a 2 meses de antecedência e dar às pessoas tempo para fazer alterações em seus sistemas. E foi nessa época que havia uma versão mais recente da API no ciclo de combate da marcação de tabaco do que no ciclo de teste.


Aspectos técnicos da marcação



Os desafios técnicos enfrentados pelos profissionais de TI basicamente se resumem à seguinte lista:



  • Sysadmin questões com UKEP, que foram e continuarão, enquanto houver fragmentação por versões de sistemas operacionais e navegadores
  • Problemas de codificação que não podem ser resolvidos pesquisando StackOverflow no Google porque o sistema é novo e único, apesar de usar software de código aberto
  • Perguntas de implementação, quando as pessoas usam "gerador de código de barras online" ou "disjuntor de teclado" e depois se perguntam por que o absurdo saiu


Olha, aqui está o Java e o Reactive (RxJava), o Spring e até o Netflix:



imagem



Para formar sua opinião, você pode ler o bate-papo do techno no carrinho .



Autorização



A autorização no IS MP ocorre em 2 etapas.



Primeiro, você precisa solicitar uma determinada "chave" pseudo-aleatória, que deve ser assinada e enviada para o url "/ api / v3 / auth / cert /" (e no momento da redação deste texto, o final do url deve ter uma barra "/", caso contrário, não funcionou, que parece estranho).



A obtenção da "chave" é a seguinte (você precisa substituir o hospedeiro desejado, existem muitos diferentes, dependendo se é uma caixa de areia ou de combate, roupas ou outra coisa):



//   /api/v3/auth/cert/key “”  ,   
var uri1 = new Uri("< >/api/v3/auth/cert/key")
var randomDataResponse = REST.Invoke<RandomDataResponse>(uri1, "GET", timeout);


Em seguida, você precisa assinar esta “chave” pseudo-aleatória usando o CEP selecionado e enviá-la ao GIS MT para receber um token de autorização em resposta.



Para fazer isso, estamos procurando um certificado CEP para uma impressão digital selecionada pelo usuário (certificateThumb). O certificado está neste caso na pasta “Pessoal” da máquina local. Além disso, o contexto do certificado deve estar associado ao armazenamento do par de chaves (esses certificados são marcados com um ícone de chave na lista de certificados no snap-in do Windows):



imagem



Obtenção de um certificado no código para gerar uma assinatura:



X509Certificate2 cert = null;
using(store = new X509Store(StoreName.My, StoreLocation.LocalMachine))
{
    store.Open(OpenFlags.ReadOnly);
    cert = from c in store.Certificates where string.Compare(c.Thumbprint, certificateThumb, true) == 0 select c;
}


Assinamos desta forma:



//   
var content = new ContentInfo(randomDataResponse.Data);
var signedCms = new SignedCms(content, false);

//    ,  
var signer = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, cert);
signer.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));

//  
signedCms.ComputeSignature(signer, false);
var sign = signedCms.Encode();


Uma mensagem CMS assinada (sinal) é a assinatura de verificação que deve ser enviada para autorização, após ser convertida para o formato Base64.



var tokenRequest = new TokenRequest();
tokenRequest.UUID = randomDataResponse.UUID;
tokenRequest.Data = Convert.ToBase64String(sign);

//    /api/v3/auth/cert/
var uri2 = new Uri("< >/api/v3/auth/cert/")
var tokenResponse = REST.Invoke<TokenResponse>(uri2, "POST", tokenRequest);


A resposta é um token JWT codificado em Base64.



A propósito, os documentos a serem enviados são posteriormente assinados da mesma forma, apenas se forma a chamada assinatura “destacada”:



var signedCms = new SignedCms(content, true);


Classes auxiliares (com um esquema idêntico aos esquemas de documento XSD da API):



/// <summary>
///    GET /api/v3/auth/cert/key  .
/// </summary>
public class RandomDataResponse
{
    /// <summary>
    ///     ,  string
    /// </summary>
    [Newtonsoft.Json.JsonProperty(PropertyName = "uuid")]
    public string UUID { get; set; }

    /// <summary>
    ///  ,  string
    /// </summary>
    [Newtonsoft.Json.JsonProperty(PropertyName = "data")]
    public string Data { get; set; }
}

/// <summary>
///     .
/// POST /api/v3/auth/cert/
/// </summary>
public class TokenRequest
{
    /// <summary>
    /// uuid -      /api/v3/auth/cert/key
    /// </summary>
    [Newtonsoft.Json.JsonProperty(PropertyName = "uuid")]
    public string UUID { get; set; }

    /// <summary>
    ///        base64
    /// </summary>
    [Newtonsoft.Json.JsonProperty(PropertyName = "data")]
    public string Data { get; set; }
}

/// <summary>
///     .
/// POST /api/v3/auth/cert/
/// </summary>
public class TokenResponse
{
    /// <summary>
    ///    base64-
    /// </summary>
    [Newtonsoft.Json.JsonProperty(PropertyName = "token")]
    public string EncodedTokenBase64 { get; set; }
}


Se você conseguiu entrar, você completou uma pequena missão.



Problemas com a geração e leitura de códigos de barras



O sistema de marcação é baseado em padrões internacionais, com exceção da parte com criptografia. Isso é excelente e louvável.



Infelizmente, o especialista de TI médio não lê nenhum padrão, não estuda nada sobre nada, mas imediatamente esculpe suas bicicletas a partir de componentes gratuitos sobre geração de código de barras, impressão, processos de negócios, etc.



A primeira dificuldade é imprimir o código de barras da etiqueta em seu design. Fora da caixa "Honest Sign" fornece uma ferramenta gratuita, mas ninguém, é claro, começou a lidar com isso, porque há um "gerador de código de barras online" e editores de relatório integrados em 1C / SAP / NAV / DAX.



A emboscada é que o código de barras moderno não é apenas uma representação gráfica de símbolos (teremos um artigo separado sobre isso). Portanto, os problemas de prefixos, separadores, codificações, caracteres obrigatórios não imprimíveis e assim por diante que ninguém conhecia e não queria entender imediatamente vieram à tona.



Exemplo com caractere especial GS (ASCII 29)



imagem



Exemplo com caractere especial FNC1 (ASCII 232) As capturas de



imagem



tela são tiradas do aplicativo Checkmark .



Aqui está um trecho do código-fonte da Checkmark que analisa um código de barras lido por uma câmera e por nossa plataforma:



var km = BarcodeData.GS1;
if (km.Contains("01") && km.Contains("21"))
{
    if ((km.Contains("17") || km.Contains("7003")) && !km.Contains("10"))
    {
         = true;

        if ((km.GetValue("01").Length == 14) && (km.GetValue("21").Length == 7 || 
             km.GetValue("21").Length == 13) && (km.GetValue("17").Length == 6 || 
             km.Getvalue("7003").Length == 10) && (km.GetValue("93").Length == 4))
        {
              = true;
             MSG2 = " KM   .";
             if (km.GetValue("21").Length == 7)
                 MSG2 = "      .";
        }
        else
        {
             //        (EntriesRows)
             //    -     
             EntriesRows = I(EntriesRows, Al = 93, BarcodeData);
             MSG2Error = "   3!     .";
             Msg = "<b>#N005</b>" + Msg;
         }
    }
    else if (km.Contains("8005") || km.Contains("93"))
    {
          = true;

         if (km.GetValue("01").Length == 14 && km.GetValue("21").Length == 7 && 
             km.GetValue("8005").Length == 6 && km.GetValue("93").Length == 4)
         {
              = true;
             MSG2 = "    .";
         }
         else
         {
             EntriesRows = I(EntriesRows, AI = 8005, BarcodeData)
             EntriesRows = I(EntriesRows, Al = 93, BarcodeData)
             MSG2Error = "   3!     .";
             Msg = "<b>#N004</b>" + sg;
         }
    }
    else if (km.Contains("92") && km.Contains("92").Length > 66)
    {
         = true;
        if (km.GetValue("01").Length == 14 && km.GetValue("21").Length == 13 &&
            km.GetValue("91").Length == 4 && km.GetValue("92").Length == 88)
        {
            ... ( ..) ...


De onde vieram os personagens especiais? Do padrão. "Honest Sign" fazia tudo de acordo com o padrão, e os participantes do giro de mercadorias também tinham que ler o padrão.



BTW: você só pode verificar a exatidão do conteúdo do DataMatrix digitalizando com uma câmera (mesmo que digitalize de um TSD, você precisa acessar a câmera). Como todos os leitores de código de barras, de acordo com o padrão, não devem retornar 1 em 1 o que lêem, pelo menos devem descartar o primeiro caractere FNC1 . Em geral, os scanners podem adicionar ou remover caracteres de código de barras importantes durante a digitalização, reorganizar os blocos em locais, dependendo das configurações, tudo isso interfere na verificação.



Porque Uma vez que a integração do sistema não envolve programas, mas sim pessoas e como elas escrevem e lêem especificações, a presença desses caracteres especiais imediatamente levou a alguma discordância ao trocar códigos de barras.



Por exemplo, eles poderiam, sem realmente ler as especificações, adicionar uma string de 4 caracteres “FNC1” ao código de barras em vez de um caractere ASCII 232 ( FNC1) . E ainda, ao trocar entre subsistemas, tais caracteres são freqüentemente filtrados e perdidos, eles chegam à impressão sem tais caracteres, enquanto em editores de texto comuns especiais. os caracteres geralmente não são exibidos e as pessoas se perguntam por que algo está errado se os códigos de barras coincidem.



Da mesma forma, se você não especificar o símbolo FNC1no código de barras, algum hardware ou software pode não entender o que é e como desmontá-lo, porque este símbolo no início do código de barras apenas indica que este é um formato GS1 DataMatrix.



Um exemplo recente que quase todos encontraram foi o aparecimento de parênteses e sinais de pontuação no número de série.



imagem



De onde vêm os parênteses e sinais de pontuação no número de série? Fora do padrão! O padrão GS1 permite que eles sejam usados. Porque o número de série tem apenas 13 caracteres, e há muitos produtos para marcação, você deve usar todos os caracteres disponíveis.



Lulzes separados - colchetes no número de série. Eles são permitidos lá pelo padrão, mas ninguém os esperava. Na chamada notação legível por humanos (HID), os parênteses têm um significado especial: eles enquadram os números de grupos de caracteres significativos. Por exemplo, “(21)” significa que o número de série irá mais adiante na linha.



Se é ingênuo pensar que o código de barras contém apenas uma sequência de caracteres, então na sequência "(21) abcd12 (3) d (1, (91)") o número de série parece ser "abcd12", e a parte sobre "(1," parece ser um erro.



Na verdade, o número de série aqui é “abcd12 (3) d (1,”, e depois da vírgula há um símbolo GS ilegível ). E a questão não é que o número de série deva ter 13 caracteres (porque formalmente o comprimento da série em GS1 DataMatrix pode ser diferente , e em pneus, por exemplo, pode ter 20 caracteres). O ponto está precisamente no invisívelGS , que deve ser levado em consideração, e que não aparece nos campos de nenhum sistema contábil, não é aceito para entrada e é geralmente proibido (e também não é visível em um Bloco de Notas normal, não é mostrado, você precisa do Bloco de Notas ++).



A presença de tais caracteres especiais impõe restrições à transmissão e armazenamento dos dados do código de barras, que devem ser rastreados ou codificados, por exemplo, em Base64.



BTW: existe um padrão para armazenar e transmitir códigos de barras como uma string (ISO / IEC 15424-2018), mas por algum motivo ninguém o usa. Os dados do código de barras GS1 DataMatrix armazenados como uma string devem começar com “] d2”.



Agora quase todo mundo consertou seus componentes de impressão de código de barras (provavelmente). Mas quem lê os padrões, certo?



Para verificação, lição de casa:Aqui está o tópico, que se o campo for de comprimento fixo, então GS não precisa ser inserido, mas se o comprimento for variável e o valor do campo não for do comprimento máximo, então você precisa inserir. Na verdade, não é assim que essa regra funciona. O caractere especial GS não é inserido apenas se AI começar com um par de dígitos desta tabela:



imagem

E em todos os outros casos, ele é inserido. Seu código de barras / código de análise funciona da mesma forma?



Outro problema é a digitalização da marcação do código de barras com ferramentas lamer como “scanner em teclado wedge”. Antes da etiquetagem, o maior problema era que um zero extra estava sendo cortado ou inserido em algum lugar. Com a introdução de novos códigos, as marcações Lulz com digitalização são levadas a um nível totalmente novo.



Freqüentemente, esses não são problemas do scanner em si ou de suas configurações, mas problemas com a falta de experiência e compreensão dos princípios do código de barras.



Por exemplo, ao conectar o leitor "a um teclado" (ou ao emular este modo), bem como ao conectar o leitor como um dispositivo HID, pode haver problemas com a substituição de alguns caracteres em um código de barras lido por outros ou o desaparecimento de certos caracteres.



imagem

Esquema de conexão do leitor ao quebra do teclado



Ao trabalhar nos modos indicados, o leitor não transmite para o computador os símbolos do código de barras (sic!), Mas sim os códigos das teclas do teclado, que teriam que ser pressionados para digitar os símbolos deste código de barras no teclado.



Ao mesmo tempo, é óbvio que vários caracteres possíveis podem corresponder a uma tecla do teclado ao mesmo tempo, dependendo do idioma do layout e pressionando as teclas modificadoras (Shift, Caps Lock, Alt e Ctrl).



Por exemplo, quando você pressiona esta tecla na parte inferior direita do teclado:



imagem



O resultado pode ser qualquer um dos caracteres '?', '/', ',' Ou '.', Dependendo do layout selecionado e do uso de teclas modificadoras. O caractere específico inserido é determinado pelas configurações do teclado do sistema operacional, e não pelo scanner.



É por isso que, em vez de alguns seriados, outros completamente diferentes caem no caixa, ou o código não é encontrado.



Aliás, esses problemas poderiam ter sido evitados se houvesse um checksum no serial, quando pelo último dígito você pode verificar se o código está correto, se foi lido / digitado corretamente. Para contas-correntes, TIN, números de cartão, EAN13, ao todo, o último dígito é um valor de cheque para verificação, para que pessoas e carros não cometam erros ao entrar.



imagem



Obviamente, eles esperavam que o DataMatrix verificasse automaticamente, além de haver uma cauda criptográfica. Mas uma coisa é o código de barras completo, a autoverificação, e outra coisa é um pedaço de código com um número de série, que poderia ter sido digitado pelo teclado.



Disputas separadas de especialistas de TI foram causadas pela chamada “cauda criptográfica”.



"Cryptotail" é uma parte necessária do código de barras de marcação, graças ao qual é possível verificar com uma chave simétrica que o número de série do item não foi sugado do dedo.



imagem



A cripto-cauda está apenas no código de barras e não é armazenada no banco de dados de marcação para que nenhum hacker possa quebrar a base e imprimir códigos de barras de outras pessoas.



Essa. este é um tipo de assinatura digital. Mas desde o código de barras não é borracha, mas são muitas mercadorias, o comprimento dessa assinatura digital é curto, o que não permite o uso de chaves de criptografia abertas a todos.



Obviamente, todos os números de série estão no banco de dados de marcação, mas se você verificar online, com qualquer queda na Internet, todos os depósitos e lojas ficarão de pé imediatamente.



O Cryptotail pretende resolver esse problema, mas até agora (para o verão de 2020) ele não começou a funcionar com força total.



O fato é que a criptografia é russa e está ligada ao hardware. Mas ainda não há alternativa para a cripta russa, o sistema estatal russo não pode usar uma cripta estrangeira, será um buraco . Portanto, você terá que suportar o russo, é razoável e não difícil.



Em geral, a criptografia é um tópico muito complexo. Existem muitas informações e é muito difícil encontrar uma descrição de como assinar ou criptografar dados em um caso particular.


Todos que tentaram se integrar com a API de rotulagem enfrentaram isso. Houve muitas perguntas em chats como “Por que não fazer login?”, “Como assinar?”, “Compartilhe um exemplo!”, “A assinatura foi gerada, mas uma recusa veio, por quê?” e muitos outros.



Na maioria das vezes, os erros eram comuns. Por exemplo, após a assinatura, os dados foram alterados, ou um espaço ou caractere de alguma forma insignificante foi perdido, mas isso é fundamental para a assinatura, e após o envio para a API, foi recebida uma recusa sem explicação, porque a assinatura não foi verificada.



Felizmente, nos bate-papos, eles costumam ajudar e responder a essas perguntas. Em geral, todos esses problemas estão sendo tratados ou já foram curados em 1º de julho de 2020.



“ ” 1 2020 - , , . , .





Na Cleverance, pensamos que os problemas de software não são o principal. Pior, os participantes da circulação de mercadorias ainda não entendem a essência das mudanças. Este é um problema muito maior do que bugs de software.



As pessoas tratam a rotulagem como outro relatório de contabilidade que pode ser compilado enquanto estão em um computador em 1C / SAP / NAV / DAX, corrigido, alterado retroativamente, etc. O tipo será utilizado por contadores e logísticos, e os especialistas em TI deverão “cortar” os módulos e processamentos necessários para isso.



O principal pedido de nossos clientes é que o warehouse / Chinese / tetyamasha escaneie algo e então carregue “corretamente” em 1C / SAP / NAV / DAX. E estamos fazendo isso com sucesso.



Mas esse é um erro óbvio, que será revelado quando as empresas começarem a equilibrar suas contas entre si e o estado começar a multar.



Qual é o sistema de marcação real



A rotulagem do produto é um sistema para refletir movimentos reais.



Problemas reais de rotulagem



Este é puramente nosso IMHO.



Todos os problemas reais do autômato surgem do que o sistema de marcação realmente serve, ou seja, um sistema de reflexão de movimentos reais.



Em primeiro lugar, a contabilidade real dos movimentos contraria os princípios atuais de contabilidade ao longo de toda a cadeia, quando tudo é contabilizado por SKU, por lote ou por média. Retrospectivamente, reduzir e corrigir é tudo para nós.



O sistema de contabilidade em qualquer empresa é um conto de fadas penteado e corrigido sobre como tudo ficou ótimo depois de 100.500 ligações, correções, repostagens e erros de limpeza.



Em uma das reuniões prolongadas em um grande distribuidor estrangeiro de drogas, somente após uma hora de discussão, o chefe de logística finalmente revirou os olhos e disse: “Esse código de barras é diferente para cada maço?”. E as palavras “único”, “número de série”, “cada cópia”, “digitalizar tudo”, etc., aparentemente voaram.



Em segundo lugar, a contabilização real dos movimentos é contrária às práticas comerciais atuais e aos princípios de separação de interesses.



Mesmo que a empresa seja grande e o funcionário não tenha o direito de editar alguns documentos - existe um número de telefone, você pode ligar ou escrever para alguém que possa corrigir.



Ou, por exemplo, os documentos são assinados pelo CEP do diretor por algum funcionário de base e, se houver autenticação de dois fatores, via SMS. O sistema de rotulagem tem um bloqueio sobre os usuários e seus direitos, você pode dar CEPs separados a cada um, mas as pessoas não têm pressa em fazer isso.



Este é um problema claro que será resolvido fornecendo cada vez mais direitos e ferramentas de contabilidade para os funcionários comuns que estão bem próximos ao produto rotulado.



Além disso, as regras para calcular o preço de custo ou contabilizar movimentos no sistema contábil são baseadas em médias e simplificações, como PEPS / UEPS e o preço médio. E os princípios contábeis que foram aplicados em todos os lugares por décadas, da produção ao varejo, são baseados nessas simplificações e vão contra a rastreabilidade real de unidades exclusivas.



Por isso, na prática, verifica-se, por exemplo, que as mercadorias são encaminhadas para o sistema de marcação pelo FIFO / LIFO, mas o que foi expedido de fato é o que estava mais próximo da saída.



Isso também é resolvido com equipamentos e softwares especiais para funcionários comuns que, pela natureza do seu trabalho, não podem se sentar diante do computador.



Outro problema é uma tentativa de “puxar uma coruja no globo” e inserir códigos de marcação em todos os documentos ERP padrão para que um contador, logístico ou gerente responsável possa vê-los lá.



Embora ele não tenha nada pelo que olhar para eles, nada pode fazer com eles.



Na verdade, bem, como um contador ou gerente, olhando para o monitor, ele pode entender que fez a varredura do armazém lá ontem, e por que há discrepâncias destacadas em vermelho em três cigarros entre milhares?



Isso também é resolvido por ferramentas para o pessoal de base com acesso a todas as informações necessárias.



Bem isso é não se trata de problemas técnicos de alguns sistemas, que em geral já foram corrigidos até 1º de julho de 2020, mas de reestruturações do trabalho das empresas em um novo caminho.


conclusões



A principal vantagem da etiquetagem é que o estado forçou todos a digitalizar e mudar para EDF com assinaturas digitais e criptografia.



“A maré levanta todos os barcos” e a transição de todo o mercado para trilhos comuns tem um grande efeito de sinergia.



Feliz automação a todos!



All Articles