En 1C, les registres sont l'un des éléments clés du système. Ce terme a son pendant en anglais - grand livre. Il est apparu à l'origine dans la pratique comptable, mais au fil du temps, sa logique a commencé à être utilisée dans d'autres domaines.
Contrairement à 1C, où les registres sont l'un des types intégrés, il n'y a pas un tel concept dans la plate
- forme
lsFusion elle -
même . Mais il y a l'héritage, le polymorphisme et l'agrégation, qui, en particulier, vous permettent d'implémenter une logique de registre similaire. Dans cet article, je vais montrer comment exactement par des exemples.
Un registre est un ensemble d'enregistrements, dont chacun reflète un changement d'état pour un certain ensemble de sujets (ou dimensions).
Dans 1C, il existe 4 types de registres:
- Registre comptable
- Registre de facturation
- Registre d'épargne
- Registre d'information
Les deux premiers sont hautement spécialisés et ne sont utilisés que pour la comptabilité et la paie. Puisque lsFusion est une plate-forme universelle pour le développement d'applications métier, je ne les considérerai pas, bien qu'il soit assez simple de les implémenter. Arrêtons-nous uniquement sur les deux derniers types de registres.
Registres d'épargne
Toute entrée dans le registre peut être considérée comme un objet d'une classe abstraite. Supposons que vous souhaitiez implémenter un registre simple qui calcule le solde d'un produit en stock.
Pour ce faire, déclarez une classe
SkuLedger abstraite:
, ( ).
Sku () Stock () .
:
, :
, , , 1
. , .
:
, . , . ,
MATERIALIZED. , , 1.
, :
, , . , , . , , 1 , , 1 .
, , :
. , , .
, :
, . . , (MATERIALIZED), :
, , dateTime :
, .
,
. :
, .
ReceiptDetail SkuLedger:
, , :
, .
, :
, . () , . , :
, , .
, , ,
TransferSkuLedger,
SkuLedger:
AGGR , , ,
TransferSkuLedger, . .
:
, , .
, 1 , :
, . , .
, , . , . , .
, , .
. :
:
, , . , , :
, , 1, lsFusion . , .
, :
1 , ( ). , 1 . , , , , (), .
lsFusion , . , , .