Λογιστικές πληροφορίες. Λογιστικά στοιχεία BP 3.0 έλεγχος αρνητικών υπολοίπων

Αυτό το άρθρο προορίζεται για τους υλοποιητές 1C - και ειδικά για όσους προετοιμάζονται για την Πιστοποίηση 1C: Ειδικός πλατφόρμας.

Σήμερα θα κοιτάξουμε 2 μέθοδοι για τον έλεγχο των υπολοίπων - όχι μόνο τα υπόλοιπα στην αποθήκη, αλλά και, για παράδειγμα, αμοιβαίοι διακανονισμοί («Ποιο είναι το τρέχον χρέος του πελάτη και είναι δυνατόν να του αποσταλεί εμπορεύματα;»)

Και οι δύο μέθοδοι χρησιμοποιούνται σε τυπικές διαμορφώσεις και σε εργασίες πιστοποίησης. Και αφού είναι δύο από αυτούς - πρέπει να κατανοήσετε ξεκάθαρα πότε εφαρμόζεται η «νέα» τεχνική και πότε μόνο η «παλιά»..

Αυτή είναι βασική γνώση για προγραμματιστές 1C· συνιστούμε να μην αφήνετε κενά σε τέτοιους τομείς. Θα πρέπει να σε πάρει να σπουδάσεις 15 λεπτά :)

Διατύπωση του προβλήματος

Ας πάρουμε μια απλή διαμόρφωση με τα έγγραφα "Παραλαβή αγαθών" και "Πωλήσεις αγαθών":

Για να λογιστικοποιηθούν τα υπόλοιπα, χρησιμοποιείται το μητρώο συσσώρευσης «Δωρεάν υπόλοιπα»:

Κατά την ανάρτηση του παραστατικού "Παραλαβή εμπορευμάτων" πραγματοποιούνται οι ακόλουθες κινήσεις:

Διαδικασία επεξεργασίας (Αποτυχία, Λειτουργία)


Για κάθε κύκλο TechStringProducts From Products
Movement = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
Movement.Period = Ημερομηνία;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
EndCycle;

Τέλος Διαδικασίας

Η επεξεργασία της ανάρτησης του παραστατικού «Παραλαβή εμπορευμάτων» πραγματοποιήθηκε με τη χρήση του σχεδιαστή μετακίνησης και δεν ενδιαφέρει, αφού όταν φτάσει στην αποθήκη δεν χρειάζεται έλεγχος των υπολοίπων.

Μερικές φορές ο έλεγχος υπολοίπου εφαρμόζεται και για το παραστατικό «Παραλαβή αγαθών» - έτσι ώστε όταν το παραστατικό ακυρώνεται ή δημοσιεύεται εκ νέου, να μην σχηματίζεται αρνητικό υπόλοιπο.

Για παράδειγμα, 10 νέες τηλεοράσεις LG έφτασαν στην αποθήκη, 6 από αυτές πουλήθηκαν. Εάν το παραστατικό απόδειξης περιέχει 10 τεμάχια. διορθώστε κατά 5 τεμ. – σχηματίζεται αρνητικό υπόλοιπο «μείον 1 τεμάχιο».

Στο πρότυπο UT 11, αυτός ο έλεγχος είναι ενεργοποιημένος χρησιμοποιώντας τη λειτουργική επιλογή "Έλεγχος αγαθών οργανισμών κατά την ακύρωση αποδείξεων".

Κατά την ανάρτηση του εγγράφου "Πωλήσεις αγαθών" είναι απαραίτητο να οργανωθεί ο έλεγχος των υπολειμμάτων. Εάν δεν έχει απομείνει αρκετό προϊόν, το έγγραφο δεν δημοσιεύεται και εκδίδεται ένα διαγνωστικό μήνυμα. Αυτό είναι το πρόβλημα που λύνεται.

Εργαζόμαστε επίτηδες σε ένα απλό πρόβλημα όπου δεν υπολογίζεται το κόστος διαγραφής. Αυτό θα μας επιτρέψει να εστιάσουμε συγκεκριμένα στις αποχρώσεις του ελέγχου των υπολειμμάτων.

Σημείωση– οι αλγόριθμοι που παρουσιάζονται παρακάτω έχουν σχεδιαστεί για εκπαίδευση και πρέπει να είναι όσο το δυνατόν πιο σαφείς.
Μπορούν να βελτιστοποιηθούν, αλλά τότε ο "συντελεστής κατανόησης" θα είναι χαμηλότερος, επομένως δεν θα σταθούμε σε αυτό σε αυτό το άρθρο.

Φυσικά, μπορείτε να τα βελτιστοποιήσετε μόνοι σας ή να παρακολουθήσετε το μάθημά μας για την Επιτάχυνση και τη Βελτιστοποίηση του 1C :)

Όπως ήδη καταλάβατε, η επίλυση του προβλήματος μπορεί να γίνει με δύο τρόπους. Ας ξεκινήσουμε με μια τεχνική που χρησιμοποιείται από την εποχή του 1C:Enterprise 8.0.

Παλιά μέθοδος ελέγχου υπολειμμάτων

Η αρχή της παλιάς τεχνικής ελέγχου υπολειμμάτων είναι η εξής: Ελέγχουμε αν υπάρχουν υπόλοιπα αγαθά στην απαιτούμενη ποσότητα. Εάν υπάρχει, το διαγράφουμε, αν όχι, αναφέρουμε σφάλμα..

Ο αλγόριθμος στην παλιά μέθοδο αποτελείται από πολλά μπλοκ:

  1. Το αίτημα ανακτά τα υπόλοιπα προϊόντων και τα δεδομένα εγγράφων
  2. Ο κύκλος παρακολουθεί την επάρκεια των αγαθών
  3. Εάν δεν υπάρχουν αρκετά αγαθά, τότε το έγγραφο δεν αναρτάται
  4. Εάν υπάρχουν αρκετά αγαθά, πραγματοποιούνται κινήσεις κατανάλωσης

Έτσι φαίνεται ο κώδικας του προγράμματος:

// 1. Εκκαθάριση παλιών κινήσεων μητρώου
Movements.FreeRemainders.Write = True;
Movements.Record();

// 2. Λήψη δεδομένων εγγράφων και εγγραφή υπολοίπων κατόπιν αιτήματος
Request = New Request;
Αίτημα.Κείμενο =
"ΕΠΙΛΕΓΩ

|ΤΟΠΟΣ Προϊόντα
|ΑΠΟ
|ΠΟΥ
| Προϊόντα.Σύνδεσμος = &Σύνδεσμος
|ΟΜΑΔΑ ΑΠΟ
| Προϊόντα.Ονοματολογία
|ΕΥΡΕΤΗΡΙΟ ΑΠΟ
| Ονοματολογία
|;

|ΕΠΙΛΟΓΗ
,
| ΑΝΤΙΠΡΟΣΩΠΗΣΗΣΥΝΔΕΣΗ(Προϊόντα.Ονοματολογία) AS ΟνοματολογίαΑναπαράσταση,
| Προϊόντα.Ποσότητα AS Ποσότητα,
| ISNULL(Remaining.NumberRemaining, 0) AS Remainder
|ΑΠΟ
| Προϊόντα AS Προϊόντα
| ΑΡΙΣΤΕΡΑ ΣΥΜΜΕΤΟΧΗ RegisterAccumulations.FreeRemains.Remains(
| &Στιγμή του χρόνου,
| Ονοματολογία Β
| (ΕΠΙΛΕΓΩ
| Προϊόντα.Ονοματολογία AS Nomenclature
| ΑΠΟ
| Software Products.Nomenclature = Remaining.Nomenclature";
Request.SetParameter("TimePoint", TimePoint());

// 3. Διέλευση αποτελεσμάτων ερωτήματος

// 4. Έλεγχος επάρκειας αγαθών
Έλλειμμα = SampleProducts.Quantity - SampleProducts.Remaining;
Αν Έλλειμμα>0 Τότε
Απόρριψη = Αλήθεια;
Message.Text = "Το προϊόν "+SelectionProducts.NomenclaturePresentation+" δεν είναι αρκετό σε ποσότητα "+Shortage+" τεμ.";
Message.Message();
τέλος εαν;

// 5. Μεταβείτε στην αρχή του βρόχου εάν υπήρχαν σφάλματα
Αν Αποτυχία Τότε
Να συνεχίσει;
τέλος εαν;

// 6. Εκτέλεση κινήσεων σε μητρώα
Movement.Period = Ημερομηνία;

EndCycle;

// 7. Ορισμός της σημαίας για την καταγραφή κινήσεων στο τέλος της συναλλαγής
Movements.FreeRemainders.Write = True;

Τέλος Διαδικασίας

Ας σχολιάσουμε τα βασικά σημεία του αλγορίθμου.

1. Εκκαθάριση παλιών κινήσεων μητρώου

Κάτω στον αλγόριθμο θα υπάρχει ένα αίτημα για το υπόλοιπο του μητρώου.

Εάν το τρέχον έγγραφο είχε αναρτηθεί προηγουμένως, τότε υπάρχει πιθανότητα λήψης παλιών κινήσεων εγγράφων σε ένα αίτημα– αυτό είναι ένα σοβαρό πρόβλημα.

Πότε είναι δυνατή μια τέτοια κατάσταση; Πότε είναι η ημερομηνία του εγγράφου προχωρά μπροστά.

Ας δείξουμε με ένα παράδειγμα σε τι θα οδηγήσει αυτό:

  1. Υπόλοιπα επιτραπέζια φωτιστικά 10 τμχ.
  2. Το έγγραφο με ημερομηνία 16/02/17 βρίσκεται υπό επεξεργασία, διαγράφουμε 6 λάμπες
  3. Η ημερομηνία στο έγγραφο αλλάζει σε 17/02/17 (η ημερομηνία μπορεί να μετατεθεί προς τα εμπρός κατά τουλάχιστον 1 δευτερόλεπτο), ας αναδημοσιεύσουμε το έγγραφο.

Εάν δεν καθαρίσετε τις κινήσεις, το σύστημα θα αναφέρει έλλειψη 2 τεμαχίων. Γιατί; Ναι, επειδή οι παλιές κινήσεις εγγράφων διέγραψαν 6 στους 10 υπάρχοντες λαμπτήρες. Στη συνέχεια, το σύστημα προσπαθεί να διαγράψει άλλα 6 κομμάτια, αλλά έχουν απομείνει μόνο 4.

Το πρόβλημα επιλύεται σε 3 γραμμές κώδικα:

  • Το σύνολο εγγραφών εκκαθαρίζεται (μπορεί να έχει διαβαστεί στη φόρμα ή σε προηγούμενους χειριστές)
  • Το σύνολο ρεκόρ έχει το σύνολο σημαιών "Εγγραφή".
  • Όλα τα σύνολα που έχουν σετ σημαίας "Εγγραφή" καταγράφονται.

Αυστηρά μιλώντας, μπορούμε να ελέγξουμε τον καθαρισμό των κινήσεων κατά την ανάρτηση εγγράφων:

Συνιστάται η επιλογή διαγραφής κινήσεων κατά την ακύρωση της εκτέλεσης - εμείς οι ίδιοι ελέγχουμε πότε είναι απαραίτητο να διαγράψουμε πραγματικά κινήσεις.

2. Λήψη στοιχείων παραστατικών και εγγραφή υπολοίπων κατόπιν αιτήματος

Το αίτημα αποτελείται από δύο πακέτα:

  • Στο πρώτο, λαμβάνονται ομαδοποιημένα δεδομένα από το τμήμα πίνακα - δημιουργείται ένας προσωρινός πίνακας
  • Στη δεύτερη αίτηση, τα υπόλοιπα από το μητρώο προσαρτώνται στα δεδομένα του εγγράφου.

Τι πρέπει να προσέξετε σε αυτό το αίτημα:

  1. Κατά τη δημιουργία ενός προσωρινού πίνακα, το πεδίο στο οποίο θα πραγματοποιηθεί η ένωση είναι ευρετήριο - αυτό γίνεται για βέλτιστη απόδοση
  2. Η στιγμή λήψης των υπολοίπων – αντιστοιχεί στη θέση του παραστατικού στον άξονα του χρόνου
  3. Ενδέχεται να μην υπάρχουν υπόλοιπα στον καταχωρητή - επομένως, εκτελείται μια αριστερή ένωση και χρησιμοποιείται η συνάρτηση "ECTNULL" για τον πόρο "Ποσότητα" - η τιμή NULL μειώνεται στο μηδέν.

3. Παράκαμψη αποτελεσμάτων ερωτήματος

Το αίτημα που αναπτύχθηκε περιέχει ομαδοποιημένα δεδομένα εγγράφων και υπόλοιπα κατά στοιχεία.

Σε έναν βρόχο περνάμε από το αποτέλεσμα αυτού του αιτήματος.

4. Έλεγχος επάρκειας αγαθών

Καθορίζουμε την έλλειψη αγαθών.

Εάν το έλλειμμα είναι μεγαλύτερο από μηδέν, σημαίνει ότι υπάρχει έλλειψη αγαθών:

  • Εκδίδουμε διαγνωστικό μήνυμα
  • Ορίστε την παράμετρο "Refusal" για την επεξεργασία δημοσίευσης σε "True"

Εάν η "Άρνηση" είναι ίση με "Αληθή", τότε το αποτέλεσμα της συναλλαγής ανάρτησης εγγράφων δεν θα καταγραφεί. Με απλά λόγια, αυτή είναι μια εντολή προς το σύστημα να μην επεξεργαστεί αυτό το έγγραφο.

5. Πηγαίνετε στην αρχή του κύκλου εάν υπήρχαν σφάλματα

Εάν υπήρχαν σφάλματα σε αυτό ή σε προηγούμενα βήματα του κύκλου (Αποτυχία = Αληθινό), τότε δεν υπάρχει λόγος να σχηματιστούν κινήσεις. Παρόλα αυτά, δεν θα καταγραφούν στη βάση δεδομένων.

6. Εκτέλεση κινήσεων σε μητρώα

Εάν ο έλεγχος των υπολοίπων ήταν επιτυχής, δημιουργούμε την κίνηση εξόδων.

7. Ρύθμιση της σημαίας εγγραφής κίνησης στο τέλος της συναλλαγής

Εάν αυτή η σημαία δεν έχει οριστεί, τότε οι κινήσεις ΔΕΝ θα καταγράφονται.

Στο τέλος της συναλλαγής ανάρτησης εγγράφων, γράφονται μόνο εκείνα τα σύνολα εγγραφών που έχουν οριστεί η σημαία "Εγγραφή".

Για να είμαστε δίκαιοι, σημειώνουμε ότι ο ορισμός της ιδιότητας "Εγγραφή" ενός συνόλου εγγραφών έχει νόημα υπό μία προϋπόθεση - στην ιδιότητα εγγράφου "Εγγραφή κινήσεων κατά την εκτέλεση" πρέπει να προσδιορίζεται η τιμή "Επιλεγμένη εγγραφή":

Ωστόσο, είναι η τιμή "Επιλεγμένη εγγραφή" που είναι το de facto πρότυπο:

  • Χρησιμοποιείται σε τυπικά διαλύματα
  • Ορίζεται από προεπιλογή κατά τη δημιουργία νέων εγγράφων.

Μια άλλη αξία της ιδιότητας - "Εγγραφή τροποποιήθηκε" - είναι ξεπερασμένη και πρακτικά δεν εμφανίζεται ποτέ σε σύγχρονες διαμορφώσεις.

Νέα μέθοδος ελέγχου υπολειμμάτων

Η νέα μέθοδος χρησιμοποιεί την αρχή: διαγράφουμε τα απαραίτητα αγαθά και μετά ελέγχουμε αν έχουν σχηματιστεί αρνητικά υπόλοιπα για τα αγαθά του παραστατικού. Εάν ναι, τότε πρέπει να επαναφέρετε το έγγραφο.

Όπως μπορείτε να δείτε, υπάρχει μια θεμελιώδης διαφορά στη στιγμή του ελέγχου των υπολοίπων:

  • Η παλιά μέθοδος είναι να ελέγξετε πρώτα το υπόλοιπο και μετά να το διαγράψετε
  • Νέα τεχνική - πρώτα διαγράφουμε, μετά ελέγχουμε την ισορροπία.

Ως αποτέλεσμα, ο κώδικας του προγράμματος θα μοιάζει με αυτό:

Διαδικασία επεξεργασίας (Αποτυχία, Λειτουργία)

// 1. Λήψη δεδομένων εγγράφου κατόπιν αιτήματος
Request = New Request;
Query.TemporaryTableManager = NewTemporaryTableManager;
Αίτημα.Κείμενο =
"ΕΠΙΛΕΓΩ
| Προϊόντα.Ονοματολογία AS Ονοματολογία,
| SUM(Είδη.Ποσότητα) ΩΣ Ποσότητα
|ΤΟΠΟΣ Προϊόντα
|ΑΠΟ
| Έγγραφο Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά AS Goods
|ΠΟΥ
| Προϊόντα.Σύνδεσμος = &Σύνδεσμος
|ΟΜΑΔΑ ΑΠΟ
| Προϊόντα.Ονοματολογία
|ΕΥΡΕΤΗΡΙΟ ΑΠΟ
| Ονοματολογία
|;
|////////////////////////////////////////////////////////////////////////////////
|ΕΠΙΛΟΓΗ
| Προϊόντα.Ονοματολογία AS Ονοματολογία,
| Προϊόντα.Ποσότητα ΩΣ Ποσότητα
|ΑΠΟ
| Προϊόντα AS Προϊόντα";
Request.SetParameter("Σύνδεσμος", Σύνδεσμος);
RequestResult = Request.Execute();

// 2. Σχηματισμός κινήσεων - καταγραφή κατανάλωσης
Movements.FreeRemains.Clear();
SelectionProducts = Αποτέλεσμα ερωτήματος.Select();
Ενώ βρόχος SelectProducts.Next().
Movement = Movements.Free Remainings.AddExpense();
Movement.Period = Ημερομηνία;
Movement.Nomenclature = SelectionProducts.Nomenclature;
Movement.Quantity = SampleProducts.Quantity;
EndCycle;

// 3. Καταγραφή κινήσεων στη βάση δεδομένων
Movements.FreeRemainders.Write = True;
Movements.Record();

// 4. Ερώτημα που λαμβάνει αρνητικά υπόλοιπα από τον καταχωρητή
Αίτημα.Κείμενο =
"ΕΠΙΛΕΓΩ
| Ονοματολογία AS Ονοματολογία,
| REPRESENTATIONLINK(Remains.Nomenclature) AS NomenclatureRepresentation,
| -Υπόλοιπο.Ποσότητα Υπόλοιπο AS Έλλειμμα
|ΑΠΟ
| RegisterAccumulations.FreeRemains.Remains(
| &Στιγμή του χρόνου,
| Ονοματολογία Β
| (ΕΠΙΛΕΓΩ
| Προϊόντα.Ονοματολογία AS Nomenclature
| ΑΠΟ
| Προϊόντα AS Products)) AS Απομεινάρια
|ΠΟΥ
| Remaining.QuantityRemaining< 0";

Control Border = New Boundary(TimePoint(), BorderView.Including);
Request.SetParameter("TimePoint", Control Boundary);
RequestResult = Request.Execute();

// 5. Εμφάνιση μηνυμάτων σχετικά με ελλείψεις αγαθών
Αν δεν είναι QueryResult.Empty() Τότε
Απόρριψη = Αλήθεια;
ErrorSelect = QueryResult.Select();
Ενώ βρόχος SelectErrors.Next().
Message = New MessageToUser;
Message.Text = "Το προϊόν "+SampleErrors.NomenclaturePresentation+" δεν επαρκεί σε ποσότητα "+SampleErrors.Deficiency+" τεμ.";
Message.Message();
EndCycle;
τέλος εαν;

Τέλος Διαδικασίας

Ας δούμε τα βασικά σημεία του αλγορίθμου.

1. Λήψη δεδομένων εγγράφων κατόπιν αιτήματος

Αυτό το ερώτημα είναι απαραίτητο για την ομαδοποίηση των δεδομένων στο τμήμα πίνακα του εγγράφου.

Σημειώστε ότι το πρώτο ερώτημα της παρτίδας δημιουργεί έναν προσωρινό πίνακα - θα χρησιμοποιηθεί στο επόμενο ερώτημα. Αυτό είναι δυνατό χάρη στον προσωρινό διαχειριστή πίνακα που έχει δημιουργηθεί για αυτό το ερώτημα.

2. Σχηματισμός κινήσεων - καταγραφή κατανάλωσης

Στον κύκλο, τα δεδομένα από το έγγραφο εγγράφονται στο μητρώο - δηλαδή, πραγματοποιείται άνευ όρων (χωρίς επαλήθευση) διαγραφή αγαθών.

3. Καταγραφή κινήσεων στη βάση δεδομένων

Για να αλλάξουν τα υπόλοιπα στο μητρώο πρέπει να καταγράφονται κινήσεις.

4. Ερώτημα που λαμβάνει αρνητικά υπόλοιπα από το μητρώο

Τώρα, με ένα απλό αίτημα, επιλέγουμε αρνητικά υπόλοιπα για αγαθά παραστατικών.

Εδώ χρησιμοποιείται ο προσωρινός πίνακας που δημιουργήθηκε στο πρώτο βήμα - επιβάλλεται μια συνθήκη στο αντικείμενο (για αυτό δεν δημιουργούμε νέο αντικείμενο τύπου "Αίτηση", αλλά χρησιμοποιούμε αυτό που δημιουργήθηκε νωρίτερα).

Δώστε προσοχή στον τρόπο μετάδοσης της χρονικής στιγμής - χρησιμοποιείται ο τύπος δεδομένων "Boundary". Τα εναπομείναντα υπόλοιπα πρέπει να ληφθούν σε μια χρονική στιγμή ΑΜΕΣΩΣ ΜΕΤΑ το τρέχον παραστατικό.

Ήταν δυνατή η λήψη υπολοίπων χωρίς περίγραμμα, για παράδειγμα, προσθέτοντας 1 δευτερόλεπτο στην ημερομηνία του εγγράφου;

Οχι! Εξάλλου, σε ένα δευτερόλεπτο μπορεί να υπάρχει μεγάλος αριθμός εγγράφων. Επομένως, η μόνη σωστή επιλογή είναι να χρησιμοποιήσετε τον τύπο περιγράμματος «Συμπερίληψη».

5. Εμφάνιση μηνυμάτων σχετικά με ελλείψεις αγαθών

Εάν το αποτέλεσμα του ερωτήματος δεν είναι κενό, τότε υπάρχουν αρνητικά υπόλοιπα - σε αυτήν την περίπτωση, το έγγραφο δεν υποβάλλεται σε επεξεργασία και εμφανίζονται μηνύματα σχετικά με όλα τα σφάλματα.

Οφέλη από τον έλεγχο των υπολειμμάτων με τη νέα μέθοδο

Έτσι, και οι δύο αλγόριθμοι λύνουν το ίδιο πρόβλημα.

Η διαφορά μεταξύ των αλγορίθμων είναι ορατή, αλλά τα πλεονεκτήματα δεν είναι προφανή.

Ας τα επισημάνουμε λοιπόν:

  1. Δεν χρειάζεται να καθαρίσετε τις παλιές κινήσεις εγγράφων. Ουσιαστικά, αυτή είναι η λειτουργία της εγγραφής ενός κενού συνόλου κινήσεων στη βάση δεδομένων και της διαγραφής των υπαρχουσών κινήσεων - αυτές είναι λειτουργίες που απαιτούν αρκετά πόρους
  2. Ένα ερώτημα που ανακτά δεδομένα για αρνητικά υπόλοιπα έχει πρόσβαση μόνο σε έναν πίνακα - Δεν χρειάζεται να κάνετε αριστερή ένωση με τα δεδομένα του εγγράφου και να χρησιμοποιήσετε τη συνάρτηση "ISNULL()".

Επιπλέον, κατά την κανονική πορεία των επιχειρηματικών διαδικασιών, ο χρήστης υποδεικνύει μια ποσότητα που δεν υπερβαίνει το υπόλοιπο στην αποθήκη.

Σε αυτήν την περίπτωση, το δεύτερο αίτημα δεν θα επιστρέψει δεδομένα και η επεξεργασία των εγγράφων θα είναι όσο το δυνατόν πιο γρήγορη.

Είναι πραγματικά τόσο σημαντικά αυτά τα χιλιοστά του δευτερολέπτου;

Σε βάσεις δεδομένων με μικρό όγκο δεδομένων και χρηστών, η διαφορά δεν θα είναι αισθητή. Αλλά σε πολυσύχναστα συστήματα με δεκάδες χρήστες, το κόστος κάθε χιλιοστού του δευτερολέπτου είναι υψηλό.

Επιπλέον, κατά τη διάρκεια της εξέτασης 1C:Platform Specialist, πρέπει οπωσδήποτε να χρησιμοποιήσετε μια νέα μέθοδο ελέγχου των υπολοίπων, εάν μια συγκεκριμένη εργασία το επιτρέπει.

Εντάξει, θα πρέπει να χρησιμοποιείτε πάντα μια νέα τεχνική, σωστά;

Όχι, δεν είναι αλήθεια!

Η νέα τεχνική μπορεί να χρησιμοποιηθεί μόνο εάν όλα τα απαραίτητα δεδομένα για την επεξεργασία του εγγράφου βρίσκονται στο ίδιο το έγγραφο.

Δηλαδή, για να αποκτήσετε δεδομένα, δεν χρειάζεται να έχετε πρόσβαση στα μητρώα που ελέγχουν τα υπόλοιπα.

Έτσι, για παράδειγμα, εάν το ποσό λαμβανόταν υπόψη και στο μητρώο «Δωρεάν υπόλοιπα», τότε θα έπρεπε να χρησιμοποιηθεί η παλιά μέθοδος ελέγχου.

Παρεμπιπτόντως, στο πρότυπο "1C: Trade Management 11" ο έλεγχος υπολοίπου εφαρμόζεται με τη νέα μέθοδο και στο "1C: Accounting 8" - σύμφωνα με την παλιά μέθοδο.

Αλλά δεν είναι μόνο αυτό!

Οι αλγόριθμοι που παρουσιάζονται παραπάνω μπορούν να χρησιμοποιηθούν μόνο για εκπαιδευτικούς σκοπούς. Το θέμα είναι ότι δεν λαμβάνουν υπόψη ελεγχόμενες κλειδαριές, το οποίο πρέπει να χρησιμοποιείται εάν υπάρχουν περισσότεροι από ένας χρήστες στο σύστημα.

Συζητούνται μπλοκ και για τις δύο μεθόδους ελέγχου υπολειμμάτων. Επίσης, σε αυτό το άρθρο λύνουμε ένα πιο περίπλοκο πρόβλημα - εκτός από τον έλεγχο των υπολοίπων, υπολογίζουμε το κόστος των διαγραμμένων στοιχείων. Σας συνιστούμε να το μελετήσετε προσεκτικά.

Και για αρχή, ας το πούμε μόνο αυτό Η εγκατάσταση μιας κλειδαριάς με τη νέα μέθοδο είναι πολύ απλή– και αυτό είναι ένα άλλο πλεονέκτημα της νέας μεθόδου ελέγχου των καταλοίπων.

Αποτελέσματα

Ας συνοψίσουμε εν συντομία.

Εξετάσαμε δύο τεχνικές ελέγχου υπολειμμάτων, καθεμία από τις οποίες χρησιμοποιείται σε σύγχρονες τυπικές διαμορφώσεις.

Βασική διαφορά μεταξύ των τεχνικώντη στιγμή του ελέγχου των υπολοίπων:

  • Παλιά τεχνική - έλεγχος πριν την καταγραφή κινήσεων σε μητρώα
  • Νέα τεχνική - έλεγχος μετά την καταγραφή κινήσεων σε μητρώα

Γενικά, η νέα τεχνική είναι πιο αποτελεσματική, αλλά δεν είναι πάντα εφαρμόσιμη.

Κριτήριο εφαρμογής– εάν δεν υπάρχει ανάγκη πρόσβασης σε δεδομένα από ελεγχόμενο μητρώο για τη δημιουργία κινήσεων, μπορεί να χρησιμοποιηθεί μια νέα τεχνική.

Αν μιλάμε για έλεγχο των υπολοίπων προϊόντων, τότε η χρήση μιας νέας τεχνικής είναι δυνατή όταν τα δεδομένα σχετικά με το κόστος και τα υπόλοιπα της αποθήκης αποθηκεύονται σε διαφορετικά μητρώα.

Και τέλος, παραδείγματα από τυπικές διαμορφώσεις:

  • ΣΕ UT 11υπάρχουν 2 κύρια μητρώα για τη λογιστική των στοιχείων: Δωρεάν υπόλοιπα (ποσότητα) και Κόστος αγαθών (στοιχεία κόστους) - χρησιμοποιείται μια νέα μεθοδολογία
  • ΣΕ BP 3.0δεδομένα σχετικά με το κόστος και τα υπόλοιπα αποθηκεύονται σε ένα λογιστικό μητρώο - χρησιμοποιείται η παλιά μέθοδος ελέγχου των υπολοίπων.

Οποιοσδήποτε οργανισμός πρέπει να παρακολουθεί τα υπόλοιπα αποθεμάτων. Και συχνά προκύπτει μια κατάσταση όταν το προϊόν είναι πραγματικά διαθέσιμο, αλλά δεν είναι στο πρόγραμμα. Και τότε ο λογιστής αναγκάζεται να πάρει μια απόφαση:

  • να επιτρέπεται να πουληθεί.
  • αναβάλει μέχρι να καταστεί σαφές γιατί προέκυψε αυτή η κατάσταση.

Η απόφαση, κατά κανόνα, λαμβάνεται με βάση την πολιτική που ακολουθείται στον οργανισμό σε σχέση με τη λογιστική των υπολοίπων. Μερικές φορές μπορείτε να αφήσετε το προϊόν στην άκρη και να πείτε στον αγοραστή ότι δεν είναι δυνατό να το πουλήσει τώρα. Μερικές φορές αυτό είναι αδύνατο να γίνει. Για παράδειγμα, όταν ο αγοραστής βλέπει αυτό το προϊόν ή το κρατά ήδη στα χέρια του.

Μπορείτε, φυσικά, απλώς να δημιουργήσετε ένα παραστατικό πωλήσεων και να μην δημοσιεύσετε το έγγραφο, αλλά δεν το επιτρέπουν όλοι οι οργανισμοί. Επομένως, στο πρόγραμμα 1C 8.3 (όπως στο 8.2) είναι δυνατό να απενεργοποιήσετε τον έλεγχο των αρνητικών υπολοίπων.

Εάν είναι ενεργοποιημένος ο έλεγχος υπολοίπου, τότε κατά την πώληση ενός αντικειμένου που δεν είναι σε απόθεμα (ή στον απαιτούμενο λογαριασμό), το πρόγραμμα θα εκδώσει την ακόλουθη προειδοποίηση:

Η στήλη «Ποσότητα» στη γραμμή 1 της λίστας «Προϊόντα» δεν έχει συμπληρωθεί σωστά.
Η αναγραφόμενη ποσότητα υπερβαίνει το υπόλοιπο. Απομένουν: 18; Λείπουν: 111.093

Λάβετε 267 μαθήματα βίντεο στο 1C δωρεάν:

Απενεργοποίηση ελέγχου αρνητικών υπολοίπων στο 1C 8.3

Για να απενεργοποιήσετε ή να ενεργοποιήσετε τον έλεγχο ισορροπίας στο 1C, πρέπει να μεταβείτε στο μενού "Κύριο" και, στη συνέχεια, στην ενότητα "Ρυθμίσεις" επιλέξτε " ".

Σε ορισμένες εκδόσεις του 1C Accounting, αυτές οι ρυθμίσεις βρίσκονται στο μενού "Διαχείριση - Ρυθμίσεις δημοσίευσης εγγράφων".

Στις "Λογιστικές Παράμετροι" πρέπει να μεταβείτε στην καρτέλα "Αποθέματα" 1C και να ελέγξετε το πλαίσιο ελέγχου "Να επιτρέπεται η διαγραφή αποθεμάτων εάν δεν υπάρχουν υπόλοιπα σύμφωνα με τα λογιστικά δεδομένα":

Στη συνέχεια, το μόνο που έχετε να κάνετε είναι να κάνετε κλικ στο κουμπί "Αποθήκευση και κλείσιμο". Τώρα, κατά τη διαγραφή, τα υπόλοιπα δεν θα ελέγχονται.

Αλλά μια τέτοια μέθοδος θα οδηγήσει αναπόφευκτα στην εμφάνιση αρνητικών υπολοίπων στην αποθήκη (δηλαδή στο πρόγραμμα). Ας δούμε πώς να το αντιμετωπίσουμε αυτό.

Αναφορά «Έλεγχος αρνητικών υπολοίπων»

Στην απλούστερη περίπτωση, απλά πρέπει να επιλέξετε μια τελεία και να κάνετε κλικ στο κουμπί «Δημιουργία». Και ήταν εδώ που με περίμενε η πρώτη έκπληξη.

Προσομοίωσα συγκεκριμένα στο πρόγραμμα δοκιμών μια κατάσταση όπου πούλησα περισσότερα αγαθά από όσα έχω σε απόθεμα. Επιπλέον, έκανε αυτή την πώληση το 2013. Λογικά, έχω ακόμα το ίδιο προϊόν στο κόκκινο τώρα, το 2016. Επομένως, δεν άγγιξα καν την περίοδο, αλλά αμέσως έκανα κλικ στο "Δημιουργία". Δεν μου βγήκε. Αποδεικνύεται ότι η αναφορά μπορεί να εμφανίζει πληροφορίες σχετικά με αρνητικά υπόλοιπα μόνο για την επιλεγμένη περίοδο.

Στα εκπαιδευτικά βίντεο μου, μιλώ συχνά για το γεγονός ότι η βάση δεδομένων 1C πρέπει να προετοιμαστεί για το κλείσιμο της περιόδου και την αναφορά. Και ένα από τα σημαντικά σημεία μιας τέτοιας προετοιμασίας είναι ο έλεγχος των αρνητικών υπολοίπων αγαθών, υλικών και τελικών προϊόντων. Ποιες αναφορές πρέπει να χρησιμοποιήσετε για να ελέγξετε την κατάσταση των λογαριασμών αποθέματος στο 1C: Accounting; Ας δούμε μερικά από αυτά.

1. Αναφορά «Ισολογισμός λογαριασμού»

Πολλοί λογιστές συνηθίζουν να εργάζονται με ισολογισμούς λογαριασμών. Αυτή η αναφορά μπορεί πράγματι να χρησιμοποιηθεί για τον έλεγχο των υπολοίπων αποθέματος, απλά πρέπει να βεβαιωθείτε ότι οι ρυθμίσεις έχουν ρυθμιστεί ώστε να εμφανίζουν ποσοτικούς δείκτες.
Κάντε κλικ στο κουμπί "Εμφάνιση ρυθμίσεων" και μεταβείτε στην καρτέλα "Δείκτες".

Στη συνέχεια, εξετάζουμε προσεκτικά την αναφορά και αναλύουμε τα σφάλματα που εντοπίστηκαν

Ο ισολογισμός είναι βολικός επειδή σας επιτρέπει να αξιολογήσετε όχι μόνο την παρουσία αρνητικών ποσοτικών υπολοίπων, αλλά και να εντοπίσετε άλλες προβληματικές καταστάσεις:
- ποσοτικό υπόλοιπο ειδών αποθέματος χωρίς ποσό.
- συνολικό υπόλοιπο χωρίς ποσότητα.
- αρνητικό ισοζύγιο.
Ωστόσο, εάν ένας μεγάλος αριθμός αντικειμένων εμπλέκεται στη λογιστική, τότε ένας τέτοιος έλεγχος μπορεί να είναι αρκετά απαιτητικός. Επιπλέον, το SALT θα πρέπει να δημιουργηθεί ξεχωριστά για κάθε λογιστικό λογαριασμό (10, 41, 43), γεγονός που επίσης περιπλέκει κάπως τη διαδικασία εργασίας.

2. Αναφορά «Έλεγχος αρνητικών υπολοίπων»

Η διαμόρφωση 1C: Enterprise Accounting 8 edition 3.0 παρέχει μια αναφορά που είναι ιδανική για την παρακολούθηση αρνητικών ποσοτικών υπολοίπων ειδών αποθέματος. Η αναφορά βρίσκεται στην καρτέλα "Αποθήκη".

Υποδεικνύουμε την περίοδο, την οργάνωση και δημιουργούμε μια αναφορά.

Η αναφορά περιλαμβάνει μόνο εκείνα τα στοιχεία για τα οποία εντοπίστηκε αρνητικό ποσοτικό υπόλοιπο. Το μεγάλο πλεονέκτημα είναι ότι αναλύονται δεδομένα για όλους τους λογαριασμούς αποθέματος. Κατά τη γνώμη μου, είναι πιο βολικό να δουλεύεις με την αναφορά παρά με το OSV.
Υπάρχει όμως και ένα μείον - η αναφορά σάς επιτρέπει να παρακολουθείτε μόνο αρνητικά ποσοτικά υπόλοιπα, αφήνοντας πίσω από τη σκηνή άλλα προβλήματα που σας επιτρέπει να εντοπίσετε το SALT.

3. Αναφορά "Analysis of subconto"

Έχω μιλήσει για αυτήν την έκθεση περισσότερες από μία φορές. Η ανάλυση Subconto είναι μια από τις αγαπημένες μου αναφορές, η οποία σας επιτρέπει όχι μόνο να εντοπίζετε σφάλματα, αλλά και, σε πολλές περιπτώσεις, να κατανοείτε τις αιτίες τους.
Μεταβείτε στην ενότητα "Αναφορές" - "Ανάλυση δευτερεύοντος παραθύρου".

Επιλέξτε το υποσύνολο «Ονοματολογία» και ελέγξτε ότι η εμφάνιση ποσοτικών δεικτών είναι ενεργοποιημένη στις ρυθμίσεις αναφοράς.

Η ανάλυση Subconto είναι καλή, επειδή σας επιτρέπει να λαμβάνετε πληροφορίες σχετικά με την κίνηση των στοιχείων αποθέματος σε όλους τους λογιστικούς λογαριασμούς. Για παράδειγμα, για να παρακολουθείτε καταστάσεις όπου ένα προϊόν έφτασε σε έναν λογιστικό λογαριασμό, αλλά πουλήθηκε από άλλο.

Ωστόσο, με μεγάλο αριθμό στοιχείων, μπορεί να είναι δύσκολο να αναλυθούν τα δεδομένα.
Μίλησα περισσότερα για την εργασία με αυτήν την αναφορά στο εκπαιδευτικό βίντεο Πώς να εργαστείτε με την αναφορά "Ανάλυση Subconto" στο 1C - VIDEO.
Επομένως, κάθε μία από τις αναθεωρημένες αναφορές έχει τα πλεονεκτήματα και τα μειονεκτήματά της. Στη δουλειά μου, θα συνιστούσα να τα συνδυάσω:
- βρείτε τα χονδροειδή σφάλματα χρησιμοποιώντας την αναφορά "Έλεγχος αρνητικών υπολοίπων".
- μετά δείτε το SALT για όλους τους λογαριασμούς αποθέματος.
- για να προσδιορίσετε τους λόγους για ένα λανθασμένο υπόλοιπο, χρησιμοποιήστε την αναφορά "Ανάλυση Subconto".
Συζήτησα επίσης ενδιαφέροντα παραδείγματα που σχετίζονται με την εύρεση και τη διόρθωση σφαλμάτων κατά τον υπολογισμό των στοιχείων αποθέματος σε δύο χρήσιμα βίντεο:

Ο έλεγχος των υπολοίπων της αποθήκης είναι μια υποχρεωτική λογιστική διαδικασία σε κάθε επιχείρηση που εργάζεται με αγαθά. Συχνά μπορεί να αντιμετωπίσετε μια κατάσταση όπου δεν υπάρχει προϊόν στο πρόγραμμα, αλλά στην πραγματικότητα βρίσκεται στην αποθήκη. Σε μια τέτοια κατάσταση, υπάρχουν δύο επιλογές:

  • Στείλε το προς πώληση.
  • Αφήστε το στην αποθήκη μέχρι να διευκρινιστούν οι συνθήκες αυτής της κατάστασης.

Η επιλογή εξαρτάται από διάφορους παράγοντες, όπως οι οργανωτικές πολιτικές ή η συγκεκριμένη κατάσταση. Εάν το προϊόν βρίσκεται στον πάγκο και ο αγοραστής ενδιαφέρεται για αυτό (κρατώντας το στα χέρια του), δεν είναι σκόπιμο να αρνηθεί την πώληση.

Ορισμένες επιχειρήσεις εξασκούν τη δημιουργία ενός παραστατικού πωλήσεων χωρίς να το δημοσιεύσουν, αλλά δεν χρησιμοποιούν όλες αυτήν την πρακτική. Σε περίπτωση τέτοιων καταστάσεων, το πρόγραμμα 1C στις πιο πρόσφατες εκδόσεις του προσφέρει τη δυνατότητα απενεργοποίησης του ελέγχου των αρνητικών υπολοίπων.

Όταν ενεργοποιηθεί ο έλεγχος, η πώληση αγαθών που δεν είναι σε απόθεμα σύμφωνα με το πρόγραμμα θα δώσει στον χρήστη μια προειδοποίηση: «Η στήλη «Ποσότητα» στη γραμμή 1 της λίστας «Προϊόντα» δεν έχει συμπληρωθεί σωστά. «Η αναγραφόμενη ποσότητα υπερβαίνει το υπόλοιπο. Υπόλοιπα: 18. Λείπουν 111.093.”

Απενεργοποίηση ελέγχου αρνητικών υπολοίπων σε 1C

Η λειτουργία ενεργοποίησης/απενεργοποίησης ελέγχου των υπολοίπων στο 1C πραγματοποιείται μέσω του μενού "Κύρια" - "Ρυθμίσεις" - "Λογιστικές παράμετροι" - "Αποθέματα". Εδώ πρέπει να επιλέξετε το πλαίσιο «Να επιτρέπεται η διαγραφή αποθέματος εάν δεν υπάρχει απόθεμα σύμφωνα με τα λογιστικά δεδομένα».

Μετά από αυτό, η ενέργεια επιβεβαιώνεται με το κουμπί "Εγγραφή και κλείσιμο". Με τη σειρά τους, τέτοιες ενέργειες είναι εγγυημένο ότι θα αποτελέσουν τη βάση για το σχηματισμό αρνητικών υπολοίπων στη λογιστική. Θα χρειαστεί να εξαλειφθούν.

Αναφορά «Έλεγχος αρνητικών υπολοίπων»

Αυτή η αναφορά δημιουργείται μέσω του μενού "Αποθήκη" - "Αναφορές", όπου παρουσιάζεται το έγγραφο. Ο χρήστης πρέπει να καθορίσει το διάστημα αιτημάτων και να κάνει κλικ στο κουμπί «Δημιουργία». Η απουσία καθορισμένης περιόδου δεν θα σας επιτρέψει να εμφανίσετε αρνητικά υπόλοιπα, κάτι που είναι χαρακτηριστικό του συστήματος που απαιτεί υποχρεωτική συμπλήρωση της στήλης "Περίοδος".

Η ολοκληρωμένη αναφορά έχει την ακόλουθη εμφάνιση.

Ένα τυπικό σύνολο φίλτρων είναι διαθέσιμο για την ίδια την αναφορά, συμπεριλαμβανομένης της ομαδοποίησης, της ταξινόμησης και άλλων μετασχηματισμών δεδομένων σύμφωνα με τα αιτήματα και τις ανάγκες των χρηστών. Χρησιμοποιώντας το κουμπί "Εμφάνιση ρυθμίσεων", μπορείτε να συμπεριλάβετε μη αυτόματα πρόσθετες σειρές στην αναφορά.

Αυτή η αναφορά βοηθά στη λήψη συνοπτικών ή λεπτομερών πληροφοριών σχετικά με αρνητικά υπόλοιπα σε 41 λογαριασμούς ανά πάσα στιγμή. Το αποτέλεσμα της αναφοράς εμφανίζεται με προεπιλεγμένες λεπτομέρειες (βλ. Εικ. 1)

Επειδή Εφόσον η αναφορά είναι πλήρως γραμμένη χρησιμοποιώντας ένα σχήμα διάταξης δεδομένων, δεν θα είναι δύσκολο για τον χρήστη να αλλάξει τις ενότητες αναφοράς από τη λειτουργία χρήστη (βλ. Εικ. 2)

Η εξωτερική αναφορά προορίζεται για τη διαμόρφωση "1C: Enterprise Accounting 8, edition 3.0" και "έκδοση 3.0 (KORP)", που εκτελείται στην έκδοση 8.2 της πλατφόρμας στη λειτουργία "ΔΙΑΧΕΙΡΙΣΜΕΝΗ ΕΦΑΡΜΟΓΗ".

Δωρεάν περίοδος υποστήριξης: 1 μήνας.

Λόγοι για αγορά

Τα αρνητικά υπόλοιπα είναι πάντα πονοκέφαλος για κάθε λογιστή. Τα αρνητικά υπόλοιπα σε 41 λογαριασμούς επιδεινώνουν διπλά αυτήν την κατάσταση. Αυτή η έκθεση δείχνει γρήγορα και ξεκάθαρα τα πάντα Η «κοκκινίλα» σε 41 μετράει σε βολική και οπτική μορφή. Επιπλέον λΟποιοδήποτε αρνητικό υπόλοιπο σε 41 λογαριασμούς μπορεί να αποκρυπτογραφηθεί χρησιμοποιώντας τις αναφορές "Subconto Analysis" και "Account Card". Ταυτόχρονα, συνδυάζοντας τη χρήση αυτών των αναφορών, είναι δυνατό να κατέβουμε κατευθείαν στο επίπεδο των εγγράφων εγγραφής που προκάλεσαν τη διακίνηση των εμπορευμάτων. Για να το κάνετε αυτό, απλώς κάντε κλικ στον απαιτούμενο αριθμό στην αναφορά και επιλέξτε την αναφορά για αποκωδικοποίηση.

Σύμφωνα με πολυάριθμα αιτήματα χρηστών, δημιουργήθηκε μια ξεχωριστή έκδοση της αναφοράς «Έλεγχος αρνητικών υπολοίπων σε λογαριασμούς αποθέματος», η οποία πρόσθεσε τη δυνατότητα ελέγχου αρνητικών υπολοίπων, όχι μόνο για 41 λογαριασμούς, αλλά και άλλους κύριους λογαριασμούς για την κίνηση του αποθέματος είδη:

Λογαριασμός 07 Εξοπλισμός για εγκατάσταση
- Λογαριασμός 08.04 Απόκτηση παγίων
- Λογαριασμός 10 όλοι, εκτός από 10.07 (Υλικά που μεταφέρονται για επεξεργασία σε τρίτους)
- Λογαριασμός 21 Ημικατεργασμένα προϊόντα ίδιας παραγωγής
- Λογαριασμός 41 όλοι, εκτός από το 41.12 (Εμπορεύματα στο λιανικό εμπόριο (σε NTT σε αξία πώλησης))
- Λογαριασμός 42.01 Εμπορικό περιθώριο σε αυτοματοποιημένα σημεία λιανικής
- Λογαριασμός 43 Έτοιμα προϊόντα

Επίσης, να θυμάστε ότι αρνητικά υπόλοιπα μπορούν να προκύψουν όχι μόνο στους λογαριασμούς αποθεμάτων, αλλά και στον λογαριασμό της τελωνειακής διασάφησης. Εάν πρέπει να ελέγξετε και αυτόν τον λογαριασμό, σας συνιστούμε να εξοικειωθείτε με την εξωτερική αναφορά

Πλεονεκτήματα

  1. Σύνδεση μέσω του μηχανισμού εξωτερικής επεξεργασίας και αναφοράς. Αυτό σας επιτρέπει να χρησιμοποιείτε την αναφορά χωρίς να κάνετε αλλαγές στην τυπική διαμόρφωση. Είναι επίσης δυνατό να ανοίξετε μια τυπική αναφορά μέσω "Αρχείο" -> "Άνοιγμα".
  2. Δυνατότητα προσαρμογής της αναφοράς "για τον εαυτό σας" από τη λειτουργία χρήστη.

Εγγύηση επιστροφής χρημάτων

Η Infostart LLC σας εγγυάται 100% επιστροφή χρημάτων εάν το πρόγραμμα δεν αντιστοιχεί στη δηλωμένη λειτουργικότητα από την περιγραφή. Τα χρήματα μπορούν να επιστραφούν πλήρως εάν το ζητήσετε εντός 14 ημερών από την ημερομηνία λήψης των χρημάτων στον λογαριασμό μας.

Το πρόγραμμα έχει αποδειχθεί τόσο αποτελεσματικό που μπορούμε να δώσουμε μια τέτοια εγγύηση με απόλυτη εμπιστοσύνη. Θέλουμε όλοι οι πελάτες μας να είναι ικανοποιημένοι με την αγορά τους.