SD1 sao os itens da NF de entrada. Quantidade, preco, CFOP, TES, valor de impostos por item. Geracao de SD3 (movimento estoque) acontece a partir daqui.
Campos principais
| Campo | Tipo | Descricao |
|---|
| D1_FILIAL | C | Filial |
| D1_DOC | C | NF (link SF1) |
| D1_SERIE | C | Serie |
| D1_FORNECE | C | Fornecedor |
| D1_LOJA | C | Loja |
| D1_COD | C | Produto (SB1) |
| D1_ITEM | C | Sequencia do item |
| D1_QUANT | N | Quantidade |
| D1_VUNIT | N | Valor unitario |
| D1_TOTAL | N | Total (qtd * valor) |
| D1_TES | C | TES (SF4) |
| D1_CF | C | CFOP |
| D1_VALICM | N | ICMS |
| D1_VALIPI | N | IPI |
| D1_LOCAL | C | Armazem de entrada |
| D1_LOTECTL | C | Lote (se rastreado) |
Indices
| Ordem | Chave |
|---|
| 1 | D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM |
| 2 | D1_FILIAL+D1_COD+D1_DOC |
| 3 | D1_FILIAL+D1_PEDIDO+D1_ITEMPC |
Codigo tipico
// Iterar itens de uma NF
SD1->(DBSetOrder(1))
SD1->(DBSeek(xFilial("SD1") + cDoc + cSerie + cFor + cLoja))
While !SD1->(Eof()) .And. SD1->D1_DOC == cDoc
nTotal += SD1->D1_TOTAL
SD1->(DBSkip())
EndDo
Tabelas relacionadas
| Tabela | Relacao |
|---|
| SF1 | NF de entrada |
| SB1 | Produto |
| SC7 | Pedido compra (D1_PEDIDO) |
| SD3 | Movimento estoque gerado |
Pegadinhas
- D1_ITEM nem sempre sequencial — pode ter gaps.
- Em produto rastreado, D1_LOTECTL e obrigatorio.
- CFOP no D1_CF pode diferir do CFOP do TES (D1_TES → SF4_CF).
Veja também