Como desativar a edição de campos na Solicitação de Compras no Protheus (sem alterar o configurador)

Se você já precisou restringir a edição de campos em uma Solicitação de Compras no Protheus (MATA110), sabe que essa não é exatamente uma tarefa simples — especialmente quando queremos aplicar a regra apenas para determinados usuários, sem mexer no Modo de Edição do Configurador.

Pois é, essa dúvida é mais comum do que parece.
E neste artigo, vamos mostrar como desativar a edição de campos específicos da grid da Solicitação de Compras de forma prática, utilizando um ponto de entrada.

Essa é uma solução leve, segura e totalmente reversível — perfeita para quem quer manter o controle sem alterar o comportamento padrão do sistema.

O desafio

Um dos nossos alunos perguntou recentemente se seria possível bloquear alguns campos da tela de Solicitação de Compras (programa MATA110), mas sem alterar o modo de edição via Configurador — e aplicando isso apenas para determinados usuários.

A resposta é: sim, é possível.
E o segredo está no ponto de entrada MA110TEL, que permite manipular a grid de forma dinâmica.

A lógica por trás da solução

A ideia é simples e elegante:

  1. Verificamos se o processo é uma alteração (modo 4).
  2. Checamos se o usuário logado está em uma lista de exceções (definida via parâmetro).
  3. Percorremos o array aHeader, que contém as definições de cada coluna da grid.
  4. Identificamos os campos que queremos bloquear.
  5. Alteramos a posição do array responsável pela validação, forçando o valor para .F., o que impede a digitação.

Assim, apenas os usuários autorizados conseguem editar os campos desejados, e o comportamento da tela se ajusta automaticamente conforme o login.

Código-fonte completo

Abaixo está o código do ponto de entrada, pronto para ser implementado:

#Include "TOTVS.ch"

/*/{Protheus.doc} MT110TEL
Ponto de entrada que manipula a tela de Solicitação de Compras
@type user function
@author Atilio
@since 17/06/2025
@see https://tdn.totvs.com/pages/releaseview.action?pageId=6085447
/*/

User Function MT110TEL()
    Local aArea     := FWGetArea()
    Local nOpc      := PARAMIXB[3]
    Local cUsrLogad := RetCodUsr()
    Local cUsrPodem := SuperGetMV("MV_X_USALT", .F., "000005;000006;000011;")
    Local nAtual    := 0
    Local cCampo    := ""

    // Se for alteração
    If nOpc == 4

        // Se o usuário logado NÃO estiver na lista dos que podem alterar
        If ! cUsrLogad $ cUsrPodem

            // Percorre todos os campos da grid
            For nAtual := 1 To Len(aHeader)
                cCampo := Alltrim(aHeader[nAtual][02])

                // Se for o campo de Quantidade, Preço ou Observação
                If cCampo + ";" $ "C1_QUANT;C1_PRECO;C1_OBS;"
                    // Bloqueia a edição
                    aHeader[nAtual][06] := ".F."
                EndIf
            Next
        EndIf

    EndIf

    FWRestArea(aArea)
Return

Como configurar o parâmetro de controle de usuários

No código acima, usamos o parâmetro MV_X_USALT para definir quais usuários podem alterar os campos.
Basta configurar esse parâmetro no dicionário de dados, separando os códigos dos usuários com ponto e vírgula (;).

Exemplo:

MV_X_USALT = 000005;000006;000011;

Assim, apenas esses usuários conseguirão editar os campos bloqueados para os demais.

Dica prática

Essa abordagem é ideal para cenários onde:

  • Você quer limitar alterações sensíveis (como preço ou quantidade) a perfis específicos;
  • Deseja evitar erros de digitação em campos críticos;
  • Ou simplesmente quer melhorar o controle interno de compras sem precisar mexer no configurador ou aplicar bloqueios via dicionário.

Além disso, por ser uma customização feita via ponto de entrada, ela é fácil de manter, testar e remover, sem comprometer o ambiente padrão do Protheus.

Conclusão

Bloquear a edição de campos na Solicitação de Compras pode parecer uma tarefa complicada, mas com o ponto de entrada MA110TEL e um pouco de lógica em ADVPL, é possível fazer isso de forma simples, elegante e totalmente segura.

Na Geeker Company, acreditamos que pequenas automações como essa fazem toda a diferença no dia a dia da operação — reduzindo erros, melhorando o controle e dando mais agilidade para o time de compras.

Se você quer levar esse tipo de melhoria para o seu ambiente Protheus, fale com a gente.
Nós ajudamos sua empresa a evoluir com soluções práticas, inteligentes e que fazem o sistema trabalhar a seu favor.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

Vendedor 24h por dia: como automatizar seu processo comercial e vender mesmo dormindo
Você já imaginou ter um vendedor que trabalha 24 horas por dia, sem pausa, sem folga e sem pedir aumento?Parece exagero, mas esse “funcionário dos sonhos” já existe — e ele está nas automações que conectam seus canais digitais, CRM e processos comerciais. No mundo de hoje, quem depende apenas do horário comercial para vender […]
reforma tributária
Como garantir que seu Protheus está pronto para a reforma tributária
A tão falada reforma tributária está batendo à porta — e, ao contrário de outros assuntos que parecem distantes do dia a dia das empresas, essa vai mexer diretamente com a rotina fiscal, contábil e até operacional de praticamente todo negócio no país. E se você usa o Protheus, da TOTVS, já deve ter ouvido […]
Solicitação
Como desativar a edição de campos na Solicitação de Compras (MATA110) via ponto de entrada
Em muitos projetos com o Protheus, surge a necessidade de controlar quem pode alterar certos campos em uma tela — principalmente em rotinas sensíveis como a Solicitação de Compras (MATA110). No artigo de hoje, vamos mostrar como desativar a alteração de campos da grid da Solicitação de Compras utilizando ponto de entrada, sem precisar mexer […]
TOTVS
O que é TOTVS Insights e como ele pode transformar sua tomada de decisão
Vivemos em um momento em que os dados valem mais do que a intuição.As empresas que tomam decisões baseadas em informações confiáveis e atualizadas crescem mais rápido, erram menos e reagem melhor às mudanças do mercado. Mas ainda há um abismo enorme entre ter dados e saber o que fazer com eles. Quem usa o […]