Erro da Validação

Boa Noite,
Tenho um formulário de usuários, que são definidos por TIPOS de usuários, conforme o TIPO selecionado eu habilito algum determinado campo específico para esse tipo, e quando habilito o campo coloca como obrigatório, utilizo a macro sc_field_display no Evento onRefresh, até ai tudo bem.

if ({TIPO} == 0) // Diretória - Tira a obrigatóriedade de infomrar Bloco e Filial
{
sc_field_no_validate({ID_FILIAL_01});
sc_field_no_validate({ID_BLOCO});
}

if ({TIPO} == 1) // Supervisão - Ativa campo Bloco, Inativa Filiais
{
sc_field_display({ID_BLOCO}, on);
sc_field_display({ID_FILIAL_01}, off);
sc_field_display({ID_FILIAL_02}, off);
sc_field_display({ID_FILIAL_03}, off);

sc_field_no_validate({ID_FILIAL_01});

}

if ({TIPO} == 2) // Gerencia - Ativa campo Filiais, Inativa Bloco
{
sc_field_display({ID_FILIAL_01}, on);
sc_field_display({ID_FILIAL_02}, on);
sc_field_display({ID_FILIAL_03}, on);
sc_field_display({ID_BLOCO}, off);

sc_field_no_validate({ID_BLOCO});

}

O Meu problema está na Edição (UPDATE) no cadastro já existente, no evento onValidate eu utilizo a macro sc_changed para verificar se o campo TIPO sofreu alteração, se não sofreu desabilitar a obrigatoriedade dos campos que ficam desabilitado com a macro sc_field_no_validate.

if (sc_changed({TIPO}))
{

}

else
{
sc_field_no_validate({ID_FILIAL_01});
sc_field_no_validate({ID_BLOCO});

}

Oque ocorre que a validação está ocorrendo depois que eu clico no salvar, clico no salvar, retorna a mensagem que os campos X e Y são obrigatórios, se clicar novamente ele salva, ou seja, oque está no evento onValidate, está sendo executado depois da validação, não deveria se antes ?

Se estiver correto, alguma duvida de como resolver ?

Não gostaria de ter que tirar a validação do campo, como obrigatório quando o campo não for alterado.

Obs. não estou conseguindo anexar imagens para melhorar o entendimento, retorna o erro
“The difference between the request time and the current time is too large.”