Documento de Entrada

Documento de Saída

Nova Abordagem de Contabilização
Com o intuito de aprimorar o processo contábil, foi implementada uma solução que permite que a contabilização utilize a Classificação do Tributo (definida na Regra de Cálculo - Documentos Fiscais) como base, em vez do código da sigla específico do tributo (F2D_TRIB).
Vantagens da Nova Abordagem
Esta implementação possibilita:
Função de Contabilização CTBVLTRIB
📊 Foi desenvolvida uma função de contabilização especializada chamada CTBVLTRIB, que pode ser utilizada diretamente nos lançamentos padrões de contabilização para obter o valor do tributo desejado.
Sintaxe da Função
CTBVLTRIB(<ID_TRIBUTO>, <TRIBUTO>, <OPERACAO>)Onde:
A funcionalidade para o parâmetro Operação, apenas estará disponível no release 12.1.2410 em diante. |
Exemplo de Uso
CTBVLTRIB(SD2->D2_IDTRIB, "ICMSST")Caso o terceiro argumento não seja informado, o valor padrão ( |
Funcionamento
A função CTBVLTRIB opera da seguinte forma:
O nome do Tributo deve ser informado conforme a Regra de Cálculo - Documentos Fiscais. |

Exemplo Configuração do Lançamento Padrão:

A função CTBVLTRIB possui um terceiro parâmetro chamado <OPERACAO>, cujo funcionamento depende da regra de Custo definida para o tributo informado no segundo parâmetro <TRIBUTO>.
O parâmetro <OPERACAO> é do tipo booleano e pode assumir os valores .T. (verdadeiro) ou .F. (falso).
Quando definido como .T., a função considera a operação associada ao tributo informado no segundo parâmetro. O comportamento da função varia conforme a regra de Custo configurada para o tributo:
Operação 0 – Sem ação: a função retorna zero.
Operação 1 – Somar: a função retorna o valor do tributo.
Operação 2 – Subtrair: a função retorna o valor do tributo com sinal negativo.
Caso a Regra de Cálculo - Documentos Fiscais não tenha o campo Custo preenchido, a função retornará o valor do tributo. Caso um Custo seja vinculado à Regra de Cálculo - Documentos Fiscais, mas a ação do custo esteja em branco ou não preenchida, a função retornará zero. |
O objetivo desse comportamento — especialmente no caso da operação "2 – Subtrair", que retorna o valor negativo — é permitir a criação de lógicas condicionais e cálculos dinâmicos nas rotinas contábeis, utilizando o sinal como critério de decisão.
Exemplo de uso com lógica condicional:
IIF(CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.) < 0, FAÇA_X(), FAÇA_Y())
Neste exemplo, a função verifica se o valor do tributo é negativo, permitindo executar diferentes rotinas conforme o tipo da operação (como crédito ou débito).
Exemplo de cálculo com ajuste automático:
SD1->D1_TOTAL + CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.)
Se CTBVLTRIB retornar -180 e D1_TOTAL for 1000, o resultado será 820.
Esse cálculo representa o valor líquido da operação, considerando automaticamente a dedução do ICMS — viabilizada pelo sinal negativo retornado pela função.
Esse comportamento é especialmente útil para simplificar regras e fórmulas nos lançamentos contábeis, evitando a necessidade de ajustar o sinal manualmente.
Sintaxe:
CTBVLTRIB(<ID_TRIBUTO>, <TRIBUTO>,<OPERACAO>)
Exemplo: CTBVLTRIB(SD1->D1_IDTRIB, "ICMS",.T.)
Cadastro Regra Custo:
Exemplo Cadastros:

Vinculo do Custo a Regra de Cálculo Documentos Fiscais:

Abaixo será demonstrado o impacto da configuração do terceiro parâmetro da função CTBVLTRIB — quando o mesmo está definido como .T. (true).
Quando esse parâmetro é ativado, a função considera a operação de custo configurada para o tributo no Configurador de Tributos, o que influencia diretamente o resultado do lançamento contábil.
Serão apresentados três cenários práticos com a regra fictícia ATF001 aplicada ao tributo ICMS, cada um ilustrando um tipo de operação de custo: Somar (1), Sem Ação (0) e Subtrair (2).
Esses exemplos permitirão compreender de forma clara como a configuração da operação impacta os valores lançados, facilitando a correta aplicação da lógica contábil e evitando divergências na apuração dos resultados.
➕ Cenário 1 – Operação de Soma para o Tributo ICMS
🏛️ Configuração no Configurador de Tributos:
A regra ATF001 está configurada para o tributo ICMS com a operação de custo definida como "Somar".
📄 Configuração do Lançamento Padrão:
O lançamento 650/002 utiliza a seguinte fórmula:CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.)
Documento de Entrada:
(F12) Exibir Lançamento Contábil: Sim
(F12) Contabilização Online: Sim
Valor de D1_TOTAL: R$ 1.000,00
Valor do ICMS (calculado via Configurador de Tributos pela regra ATF001): R$ 180,00
📊 Resultado da Contabilização:
Ao confirmar a inclusão do lançamento contábil, será exibido o valor de R$ 180,00 referente à LP 650/002, correspondente ao valor do ICMS, conforme definido pela operação de Soma.

➖ Cenário 2 – Operação 2 (Subtrair) para o Tributo ICMS
🏛️ Configuração no Configurador de Tributos:
A regra ATF001 está configurada para o tributo ICMS com a operação de custo definida como "2 – Subtrair".
📄 Configuração do Lançamento Padrão:
O lançamento 650/002 utiliza a seguinte fórmula:SD1->D1_TOTAL+CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.)
Documento de Entrada:
(F12) Exibir Lançamento Contábil: Sim
(F12) Contabilização Online: Sim
Valor de D1_TOTAL: R$ 1.000,00
Valor do ICMS (calculado via Configurador de Tributos pela regra ATF001): R$ 180,00
📊 Resultado da Contabilização:
Como a operação definida para o tributo ICMS é "2 – Subtrair", o valor retornado pela função CTBVLTRIB será -180,00.
🚫 Cenário 3 – Operação 0 (Sem Ação) para o Tributo ICMS
🏛️ Configuração no Configurador de Tributos:
A regra ATF001 está configurada para o tributo ICMS com a operação de custo definida como "0 – Sem Ação".
📄 Configuração do Lançamento Padrão:
O lançamento 650/002 utiliza a seguinte fórmula:CTBVLTRIB(SD1->D1_IDTRIB, "ICMS", .T.)
Documento de Entrada:
(F12) Exibir Lançamento Contábil: Sim
(F12) Contabilização Online: Sim
Valor de D1_TOTAL: R$ 1.000,00
Valor do ICMS (calculado via Configurador de Tributos pela regra ATF001): R$ 180,00
📊 Resultado da Contabilização:
Como a operação definida para o tributo ICMS é "0 – Sem Ação", o retorno da função CTBVLTRIB será zero.
Portanto, o lançamento contábil da LP 650/002 não será exibido, pois não há valor a ser contabilizado.