1s 8.3 permit solduri negative. Informații contabile

Mărci

Controlul asupra soldurilor depozitului este o procedură contabilă obligatorie la orice întreprindere care lucrează cu mărfuri. Adesea este posibil să întâlniți o situație în care nu există niciun produs în program, dar acesta este de fapt în depozit. Într-o astfel de situație, există două opțiuni:

  • Trimite-l spre vânzare;
  • Lăsați-l în depozit până când se clarifică circumstanțele acestei situații.

Alegerea depinde de mai mulți factori, cum ar fi politicile organizaționale sau situația specifică. Dacă produsul este pe tejghea și cumpărătorul este interesat de el (ținându-l în mâini), nu este indicat să refuzi vânzarea.

Unele întreprinderi practică generarea unui document de vânzare fără a-l posta, dar nu toate folosesc această practică. În cazul în care situatii similare 1C programul lor ultimele versiuni sugerează capacitatea de a dezactiva controlul soldurilor negative.

Când controlul este activat, vânzarea mărfurilor care nu sunt în stoc conform programului va da utilizatorului un avertisment: „Coloana „Cantitate” din rândul 1 din lista „Produse” este completată incorect. „Cantitatea indicată depășește soldul. Au rămas: 18. Lipsă 111.093.”

Dezactivarea controlului soldurilor negative în 1C

Operația de pornire/dezactivare a controlului soldurilor în 1C se realizează prin meniul „Principal” - „Setări” - „Parametri contabili” - „Stocuri”. Aici trebuie să bifați caseta „Permiteți anularea inventarului dacă nu există inventar conform datelor contabile”.

După aceasta, acțiunea este confirmată cu butonul „Înregistrare și închidere”. La rândul lor, astfel de acțiuni sunt garantate să devină baza formării de solduri negative în contabilitate. Vor trebui eliminate.

Raport „Controlul soldurilor negative”

Formare acest raport efectuat prin meniul „Depozit” - „Rapoarte”, unde este prezentat documentul. Utilizatorului i se cere să determine intervalul de solicitare și să facă clic pe butonul „Generare”. Absența unei perioade specificate nu va permite afișarea soldurilor negative, ceea ce este o caracteristică a sistemului care necesită umplere obligatorie coloanele „Perioada”.

Raportul final are următorul aspect.

Un set standard de filtre este disponibil pentru raportul în sine, inclusiv gruparea, sortarea și alte transformări de date în conformitate cu solicitările și nevoile utilizatorilor. Folosind butonul „Afișați setările”, puteți include manual rânduri suplimentare în raport.

În tutorialele mele video, vorbesc adesea despre faptul că baza de date 1C trebuie pregătită pentru închiderea perioadei și raportare. Și unul dintre puncte importante o astfel de pregătire este controlul soldurilor negative ale mărfurilor, materialelor și produse finite. Ce rapoarte ar trebui să utilizați pentru a verifica starea conturilor dvs.? contabilitatea stocurilorîn 1C: Contabilitate? Să ne uităm la unele dintre ele.

1. Raportați „Banțul contului”

Mulți contabili sunt obișnuiți să lucreze cu bilanţurile de cont. Acest raport poate fi într-adevăr utilizat pentru a controla soldurile stocurilor, trebuie doar să vă asigurați că setările sunt setate pentru a afișa indicatori cantitativi.
Faceți clic pe butonul „Afișați setările” și accesați fila „Indicatori”.

Apoi revizuim cu atenție raportul și analizăm erorile detectate

Bilanțul este convenabil deoarece vă permite să evaluați nu numai prezența soldurilor cantitative negative, ci și să detectați alte situații problematice:
- soldul cantitativ al obiectelor de inventar fara suma;
- sold total fara cantitate;
- sold negativ.
Cu toate acestea, dacă un număr mare de articole sunt implicate în contabilitate, atunci o astfel de verificare poate fi destul de intensivă în muncă. În plus, SALT va trebui generată separat pentru fiecare cont contabil (10, 41, 43), ceea ce complică oarecum procesul de lucru.

2. Raportul „Controlul soldurilor negative”

Configurația 1C: Enterprise Accounting 8 ediția 3.0 oferă un raport care este ideal pentru monitorizarea soldurilor cantitative negative ale stocurilor. Raportul se află în fila „Depozit”.

Indicăm perioada, organizarea și generăm un raport.

Raportul include numai acele articole pentru care a fost detectat un sold cantitativ negativ. Marele avantaj este că datele din toate conturile de inventar sunt analizate. După părerea mea, este mai convenabil să lucrezi cu raportul decât cu OSV.
Dar există și un minus - raportul vă permite să monitorizați doar soldurile cantitative negative, lăsând în culise alte probleme pe care SALT vă permite să le detectați.

3. Raportul „Analiza subconto”

Am vorbit de mai multe ori despre acest raport. Analiza subconto este unul dintre rapoartele mele preferate, care vă permite nu numai să detectați erorile, ci și, în multe situații, să înțelegeți cauzele acestora.
Accesați secțiunea „Rapoarte” - „Analiza subconto”.

Selectați subconto-ul „Nomenclatură” și verificați dacă afișarea indicatorilor cantitativi este activată în setările raportului.

Analiza subconto este bună deoarece vă permite să obțineți informații despre mișcarea articolelor de inventar în toate conturile contabile. De exemplu, pentru a urmări situațiile în care un produs a ajuns la un cont contabil, dar a fost vândut din altul.

Cu toate acestea, cu un număr mare de articole, poate fi dificil să se analizeze datele.
Am vorbit mai multe despre lucrul cu acest raport în tutorialul video Cum se lucrează cu raportul „Analiza subconto” în 1C - VIDEO.
Astfel, fiecare dintre rapoartele revizuite are argumentele sale pro și contra. În munca mea, aș recomanda să le combin:
- găsiți erori grosolane folosind raportul „Controlul soldurilor negative”;
- apoi vizualizați SALT pentru toate conturile de inventar;
- pentru a identifica motivele unui echilibru incorect, utilizați raportul „Analiza Subconto”.
Am discutat, de asemenea, exemple interesante legate de găsirea și corectarea erorilor la contabilizarea articolelor de inventar în două videoclipuri utile:

Acest raport vă ajută să obțineți în orice moment informații rezumative sau detaliate despre soldurile negative din 41 de conturi. Rezultatul raportului este afișat cu detalii implicite (vezi Fig. 1)

Deoarece Deoarece raportul este scris complet folosind o schemă de aspect de date, utilizatorului nu va fi dificil să schimbe secțiunile raportului din modul utilizator (vezi Fig. 2)

Raportul extern este destinat configurației „1C: Enterprise Accounting 8, edition 3.0” și „ediția 3.0 (KORP)”, care rulează pe platforma versiunea 8.2 în modul „APLICAȚIE GESTIONATĂ”.

Perioada de suport gratuit: 1 lună.

Motive pentru a cumpăra

Soldurile negative sunt întotdeauna o bătaie de cap pentru orice contabil. Soldurile negative pe 41 de conturi sunt de două ori agravante această situație. Acest raport arată rapid și clar totul „roșeață” în 41 de numărări într-o formă convenabilă și vizuală. Mai mult, lOrice sold negativ din 41 de conturi poate fi descifrat folosind rapoartele „Analiza Subconto” și „Cartul de cont”. În același timp, prin combinarea utilizării acestor rapoarte, se poate coborî direct la nivelul documentelor de evidență care au determinat circulația mărfurilor. Pentru a face acest lucru, faceți clic pe numărul necesar din raport și selectați raportul pentru decodare.

Conform numeroaselor solicitări din partea utilizatorilor, a fost creată o versiune separată a raportului „Controlul soldurilor negative pe conturile de inventar”, care a adăugat capacitatea de a controla soldurile negative, nu numai pentru 41 de conturi, ci și alte conturi principale pentru mișcarea stocurilor. articole:

Contul 07 Echipamente pentru instalare
- Contul 08.04 Achizitie de mijloace fixe
- Contul 10 toate, cu excepția 10.07 (Materiale transferate pentru prelucrare către terți)
- Contul 21 Semifabricate de productie proprie
- Contul 41 toate, cu excepția 41.12 (Bunuri în comerț cu amănuntul (în NTT la valoarea vânzărilor))
- Contul 42.01 Marja comercială în punctele de vânzare cu amănuntul automatizate
- Contul 43 Produse finite

De asemenea, rețineți că soldurile negative pot apărea nu numai în conturile de inventar, ci și în contul declarației vamale. Dacă aveți nevoie să controlați și acest cont, vă recomandăm să vă familiarizați cu raport extern

Avantaje

  1. Conectare prin mecanismul de prelucrare și raportare externă. Acest lucru vă permite să utilizați raportul fără a face modificări în configurația standard. De asemenea, este posibil să deschideți un raport standard prin „Fișier” -> „Deschidere”.
  2. Posibilitatea de a personaliza raportul „pentru dumneavoastră” din modul utilizator.

Garanție de returnare a banilor

Infostart LLC vă garantează o rambursare de 100% dacă programul nu corespunde funcționalității declarate din descriere. Banii îi pot fi returnați în întregime, dacă raportați acest lucru în termen de 14 zile de la data primirii banilor în contul nostru.

Programul a fost atât de dovedit că funcționează, încât putem oferi o astfel de garanție cu deplină încredere. Ne dorim ca toți clienții noștri să fie mulțumiți de achiziția lor.

La cumpărături sau întreprinderile producătoareîn contabilitate, în sistemul contabil „apar” solduri negative. Acestea reflectă marfa/materialele anulate excesiv.

Care sunt motivele apariției lor?

Nicio sosire

Adesea, motivul cel mai frecvent poate fi lipsa recepției sau a intrării bunurilor finalizate solduri inițiale. De exemplu, ați achiziționat un produs, dar nu ați reușit încă să-l înregistrați în sistem, dar au reușit deja să-l vândă. Ce se întâmplă este că marfa a fost înregistrată, apoi mutată în magazin și vândută, dar cineva a anulat documentul de primire.

În această situație, cursul corect de acțiune ar fi verificarea prezenței documentului de chitanță în baza de date. Dacă este acolo și nu a fost postat, verificați umplerea și postați-o. Dacă documentul de chitanță nu se află deloc în baza de date, trebuie să îl introduceți retroactiv. În același timp, este necesar să înțelegem că adăugarea retroactivă a documentelor într-un mod închis perioada fiscala poate duce la modificări ale sumelor taxelor, în special TVA.

Reevaluare

Un alt motiv comun pentru fenomenul pe care îl luăm în considerare este clasificarea greșită sau excesul unui tip de produs (material) și, în același timp, lipsa altuia. De exemplu, în program este marcat în stoc doar un portofel negru în valoare de 10 bucăți, dar într-un magazin vânzătorul vinde un portofel roșu și își înregistrează vânzarea în baza de date în valoare de 5 bucăți. Ca urmare, soldul portofelelor negre din baza de date nu scade, dar soldul nostru apare în portofelele roșii.

ÎN în acest caz, Corectarea soldurilor se rezolva in felul urmator: se inregistreaza inregistrarea unui produs si radierea altuia. Pentru a face acest lucru, creați un document „Capitalizarea mărfurilor” și 5 articole sunt capitalizate în el. portofele roșii. În continuare, este creat un document „Anularea mărfurilor” și 5 articole sunt anulate în el. portofele negre.

Când în 1C:Contabilitatea 3.0 există un sold negativ pentru un produs (materiale), atunci când se înregistrează documentul „Vânzări de mărfuri” este afișat mesaj informativ despre ce acest document Nu este posibil să se efectueze, deoarece numărul de unități afișate în partea tabelară a documentului depășește soldul.

Fig. 1 Mesaj în document când nu există sold în depozit

Semnele de avertizare bilanţ– soldurile negative sunt evidențiate cu roșu!



Fig.2 Urmărire prin OSV

Cum să activați sau să dezactivați controlul soldurilor negative în 1C BP 3.0

Puteți configura controlul în secțiunea „Administrare”, apoi faceți clic pe linkul „Postează documente”.



Fig.3 Setarea

Pentru a dezactiva controlul, trebuie să activați indicatorul de pe parametrul „Permiteți anularea inventarului dacă nu există solduri conform datelor contabile”.



Fig. 4 Permisiune de anulare a unităților cu indicatori de sold negativ

Se întâmplă că, pentru a vinde urgent un produs care trebuie expediat urgent, trebuie să dezactivați temporar controlul. Documentul „Implementări” este postat în sistem și apoi controlul este activat din nou. Apoi trebuie să vă amintiți să analizați soldurile pentru a corecta eroarea contabilă care a cauzat produsul negativ.

Pentru a controla soldurile în funcție de depozit, trebuie să configurați analizele pentru acestea în „Setări de contabilitate” prin „Administrare”.



Fig.5 Parametri

Faceți clic pe „Configurați planul de conturi”.



Fig.6 Setarea parametrului

Faceți clic pe „După articol, loturi și depozite (după cantitate și cantitate)”.



Fig.7 Parametri contabili de inventar

La instalarea analizelor, făcând clic pe „După depozite (locații de depozitare)”, selectăm cum să păstrăm evidențele.



Fig.8 Activarea analizei depozitului

Dacă se selectează setarea „după cantitate și sumă”, în consecință, contabilitatea va fi în contabilitate cantitativă și totală pentru depozite separat, iar dacă „după cantitate”, atunci numai cantitativă în contextul fiecărui depozit, iar sumele anulate sunt determinată prin împărțirea prețului de inventar la întreaga cantitate din toate depozitele.

Rapoarte de control

Raportul „Controlul soldurilor negative” este utilizat pentru a analiza soldurile negative detectate ale bunurilor organizațiilor. Îl puteți deschide prin „Depozit - Controlul soldurilor negative”.



Fig. 9 Rapoarte pentru controlul soldurilor



Fig.10 Formular raport de control

În setările raportului, puteți specifica pe ce date să construiți raportul, de exemplu, grupați datele după organizație, depozit, document anulat, articol etc.



Fig.11 Setări raport de control

În selecție, puteți specifica ce date pentru a genera un raport, de exemplu, pentru un anumit depozit sau pentru un articol problematic.



Fig. 12 Selectări în raportul de control



Fig. 13 Generarea unui raport de control

Soldurile negative sunt un fel de indicator al erorilor contabile. Este important să monitorizați în mod constant soldurile stocurilor și să le corectați în timp util. Soldurile incorecte existente creează probleme pentru activitatea operațională a utilizatorilor și pot provoca, de asemenea, calcularea incorectă a costurilor, reevaluarea etc. indicatori importanți contabilitate.

Acest articol este destinat implementatorilor 1C - și mai ales celor care se pregătesc pentru Certificarea 1C: Specialist Platformă.

Astăzi ne vom uita 2 metode de control al soldurilor - nu numai soldurile din depozit, ci și, de exemplu, decontările reciproce („Care este datoria curentă a clientului și este posibil să-i expedieze bunuri?”)

Ambele metode sunt utilizate în configurațiile standard și în sarcinile de certificare. Și din moment ce sunt doi dintre ei - trebuie să înțelegeți clar când se aplică tehnica „nouă” și când doar cea „veche”..

Acestea sunt cunoștințe de bază pentru programatorii 1C, vă recomandăm să nu lăsați goluri în astfel de domenii. Ar trebui să te ia să studiezi 15 minute :)

Enunțarea problemei

Să luăm o configurație simplă cu documentele „Recepția mărfurilor” și „Vânzările de mărfuri”:

Pentru a contabiliza soldurile, se utilizează registrul de acumulare „Solduri libere”:

La înregistrarea documentului „Recepția mărfurilor” se efectuează următoarele mișcări:

Procedura de procesare (Eșec, Mod)


Pentru fiecare TechStringProducts din ciclul de produse
Mișcare = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
Movement.Period = Data;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
EndCycle;

EndProcedure

Prelucrarea postării documentului „Recepția mărfurilor” a fost efectuată folosind proiectantul de mișcare și nu prezintă interes, deoarece atunci când ajunge la depozit, nu este necesar controlul soldurilor.

Uneori, controlul soldului este implementat și pentru documentul „Recepția mărfurilor” - astfel încât atunci când documentul este anulat sau reînfișat, nu se formează un sold negativ.

De exemplu, la depozit au ajuns 10 televizoare LG noi, 6 dintre ele au fost vândute. Dacă documentul de primire conține 10 bucăți. se fixeaza cu 5 buc. – se formează un sold negativ „minus 1 bucată”.

În standardul UT 11, un astfel de control este activat utilizând opțiunea funcțională „Controlați bunurile organizațiilor la anularea încasărilor”.

La postarea documentului „Vânzări de mărfuri” este necesar să se organizeze controlul reziduurilor. Dacă nu a mai rămas suficient produs, documentul nu este postat și este emis un mesaj de diagnosticare. Aceasta este problema care se rezolvă.

Lucrăm în mod intenționat la o problemă simplă în care costul de anulare nu este calculat. Acest lucru ne va permite să ne concentrăm în mod special asupra nuanțelor controlului reziduurilor.

Nota– algoritmii prezentați mai jos sunt proiectați pentru antrenament și ar trebui să fie cât mai clari posibil.
Ele pot fi optimizate, dar atunci „coeficientul de înțelegere” va fi mai mic, așa că nu ne oprim asupra acestui lucru în acest articol.

Desigur, le puteți optimiza singur sau puteți urma cursul nostru despre Accelerarea și Optimizarea 1C :)

După cum ați înțeles deja, rezolvarea problemei se poate face în două moduri. Să începem cu o tehnică care a fost folosită încă din zilele lui 1C:Enterprise 8.0.

Metoda veche de control al reziduurilor

Principiul vechii tehnici de control al reziduurilor este următorul: Verificăm dacă au rămas bunuri în cantitatea necesară. Dacă există, îl anulăm, dacă nu, raportăm o eroare..

Algoritmul din vechea metodă constă din mai multe blocuri:

  1. Solicitarea preia soldurile produselor și datele documentelor
  2. Ciclul monitorizează suficiența mărfurilor
  3. Dacă nu sunt suficiente bunuri, atunci documentul nu este postat
  4. Dacă sunt suficiente bunuri, se efectuează mișcări de consum

Iată cum arată codul programului:

// 1. Ştergerea mişcărilor de registru vechi
Movements.FreeRemainders.Write = Adevărat;
Movements.Record();

// 2. Primirea datelor documentelor și înregistrarea soldurilor la cerere
Solicitare = Solicitare nouă;
Cerere.Text =
"ALEGE

|PLACE Produse
|DIN
|UNDE
| Products.Link = &Link
|GRUPA DE
| Produse.Nomenclatură
|INDEX PRIN
| Nomenclatură
|;

|SELECT
,
| REPRESENTATIONLINK(Products.Nomenclature) AS NomenclatureRepresentation,
| Produse.Cantitate AS Cantitate,
| ISNULL(Remaining.NumberRemaining, 0) AS Rest
|DIN
| Produse AS Produse
| LEFT JOIN RegisterAccumulations.FreeRemains.Remains(
| &Moment de timp,
| Nomenclatura B
| (ALEGE
| Produse.Nomenclatura AS Nomenclatura
| DIN
| Software Products.Nomenclature = Remaining.Nomenclature";
Request.SetParameter("TimePoint", TimePoint());

// 3. Parcurgerea rezultatelor interogării

// 4. Verificarea suficienței mărfurilor
Deficit = SampleProducts.Quantity - SampleProducts.Remaining;
Dacă Deficit>0 Atunci
Refuza = Adevărat;
Message.Text = „Produsul „+SelectionProducts.NomenclaturePresentation+” nu este suficient în cantitate „+Shortage+” buc.”;
Message.Message();
endIf;

// 5. Mergeți la începutul buclei dacă au existat erori
Dacă Eșec Atunci
Continua;
endIf;

// 6. Efectuarea deplasărilor în registre
Movement.Period = Data;

EndCycle;

// 7. Setarea steagului pentru înregistrarea mișcărilor la sfârșitul tranzacției
Movements.FreeRemainders.Write = Adevărat;

EndProcedure

Să comentăm punctele cheie ale algoritmului.

1. Ştergerea mişcărilor de registru vechi

Mai jos în algoritm va exista o solicitare către restul registrului.

Dacă documentul curent a fost postat anterior, atunci există probabilitatea de a primi mișcări de documente vechi într-o cerere– aceasta este o problemă serioasă.

Când este posibilă o astfel de situație? Când este data documentului merge înainte.

Să arătăm cu un exemplu la ce va duce acest lucru:

  1. Lămpi de masă rămase 10 buc.
  2. Documentul din data de 16.02.17 este in procesare, stergem 6 lampi
  3. Data din document este schimbată în 17/02/17 (data poate fi deplasată înainte cu cel puțin 1 secundă), să repostăm documentul.

Dacă nu eliminați mișcările, sistemul va raporta un deficit de 2 piese. De ce? Da, pentru că vechile mișcări ale documentului au șters 6 din 10 lămpi existente. În continuare, sistemul încearcă să șteargă încă 6 bucăți, dar au mai rămas doar 4.

Problema este rezolvată în 3 linii de cod:

  • Setul de înregistrări este în curs de ștergere (s-ar putea să fi fost citit în formular sau în handlere anterioare)
  • Setul de înregistrări are setul de steag „Scrie”.
  • Toate seturile care au setat steag „Înregistrare” sunt înregistrate.

Strict vorbind, putem controla curățarea mișcărilor atunci când postăm documente:

Se recomandă opțiunea de ștergere a mișcărilor la anularea execuției - controlăm noi înșine când este necesar să ștergem efectiv mișcările.

2. Primirea datelor documentelor și înregistrarea soldurilor la cerere

Cererea constă din două pachete:

  • În primul, se obțin date grupate din partea tabelară - este creat un tabel temporar
  • În a doua cerere, resturile din registru sunt anexate la datele documentului.

La ce ar trebui să acordați atenție în această solicitare:

  1. La crearea unui tabel temporar, câmpul pe care va fi efectuată îmbinarea este indexat - acest lucru se face pentru performanță optimă
  2. Momentul primirii soldurilor – corespunde poziției documentului pe axa timpului
  3. Este posibil să nu existe resturi în registru - prin urmare, se efectuează o îmbinare la stânga și funcția „ECTNULL” este utilizată pentru resursa „Cantitate” - valoarea NULL este redusă la zero.

3. Ocolirea rezultatelor interogării

Solicitarea dezvoltată conține date și solduri grupate ale documentelor pe posturi.

Într-o buclă parcurgem rezultatul acestei solicitări.

4. Verificați caracterul suficient al bunurilor

Determinăm lipsa de mărfuri.

Dacă deficitul este mai mare decât zero, înseamnă că există un deficit de bunuri:

  • Emitem un mesaj de diagnosticare
  • Setați parametrul „Refuz” pentru procesarea postării la „Adevărat”

Dacă „Refuz” este egal cu „Adevărat”, atunci rezultatul tranzacției de înregistrare a documentului nu va fi înregistrat. Vorbitor într-un limbaj simplu– aceasta este o comandă către sistem de a nu procesa acest document.

5. Mergeți la începutul ciclului dacă au existat erori

Dacă au existat erori la acest sau pașii anteriori ai ciclului (Eșec = Adevărat), atunci nu are rost să formați mișcări. Totuși, acestea nu vor fi înregistrate în baza de date.

6. Efectuarea mișcărilor în registre

Dacă verificarea soldurilor a avut succes, creăm o mișcare de cheltuieli.

7. Setarea steagului de înregistrare a mișcării la sfârșitul tranzacției

Dacă acest steag nu este setat, mișcările NU vor fi înregistrate.

La sfârșitul tranzacției de înregistrare a documentelor, sunt scrise doar acele seturi de înregistrări care au setat indicatorul „Scrie”.

Pentru a fi corect, observăm că setarea proprietății „Înregistrare” a unui set de înregistrări are sens cu o condiție - în proprietatea documentului „Înregistrare mișcări în timpul execuției” trebuie specificată valoarea „Înregistrare selectată”:

Cu toate acestea, valoarea „Înregistrare selectată” este standardul de facto:

  • Este utilizat în soluții standard
  • Setat implicit la crearea documentelor noi.

O altă valoare a proprietății – „Scrie modificat” – este depășită și practic nu apare niciodată în configurațiile moderne.

Noua metoda de control al reziduurilor

Noua metodă folosește principiul: ștergem bunurile necesare, apoi verificăm dacă s-au format solduri negative pentru bunurile documentului. Dacă da, atunci trebuie să derulați documentul înapoi.

După cum puteți vedea, există o diferență fundamentală în momentul controlului soldurilor:

  • Vechea metodă este să verificați mai întâi soldul, apoi să îl anulați
  • Tehnica nouă - mai întâi anulăm, apoi verificăm soldul.

Ca rezultat, codul programului va arăta astfel:

Procedura de procesare (Eșec, Mod)

// 1. Primirea datelor documentului la cerere
Solicitare = Solicitare nouă;
Query.TemporaryTableManager = NewTemporaryTableManager;
Cerere.Text =
"ALEGE
| Products.Nomenclature AS Nomenclatura,
| SUM(Articole.Cantitate) AS Cantitate
|PLACE Produse
|DIN
| Document Vânzări de Bunuri și Servicii
|UNDE
| Products.Link = &Link
|GRUPA DE
| Produse.Nomenclatură
|INDEX PRIN
| Nomenclatură
|;
|////////////////////////////////////////////////////////////////////////////////
|SELECT
| Products.Nomenclature AS Nomenclatura,
| Produse.Cantitate AS Cantitate
|DIN
| Products AS Products”;
Request.SetParameter("Link", Link);
RequestResult = Request.Execute();

// 2. Formarea mișcărilor - înregistrează consumul
Movements.FreeRemains.Clear();
SelectionProducts = Query Result.Select();
În timp ce SelectProducts.Next() Loop
Mișcare = Movements.Free Remainings.AddExpense();
Movement.Period = Data;
Movement.Nomenclature = SelectionProducts.Nomenclature;
Movement.Quantity = SampleProducts.Quantity;
EndCycle;

// 3. Înregistrarea mișcărilor în baza de date
Movements.FreeRemainders.Write = Adevărat;
Movements.Record();

// 4. Interogare care primește resturi negative din registru
Cerere.Text =
"ALEGE
| Rămășițele Nomenclatura AS Nomenclatură,
| REPRESENTATIONLINK(Remains.Nomenclature) AS NomenclatureRepresentation,
| -Remaining.QuantityRemaining AS Deficit
|DIN
| RegisterAcumulations.FreeRemains.Remains(
| &Moment de timp,
| Nomenclatura B
| (ALEGE
| Produse.Nomenclatura AS Nomenclatura
| DIN
| Produse AS Produse)) AS Resturi
|UNDE
| Remaining.QuantityRemaining< 0";

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

// 5. Afișarea mesajelor despre lipsa de mărfuri
Dacă nu QueryResult.Empty() Atunci
Refuza = Adevărat;
ErrorSelect = QueryResult.Select();
While SelectErrors.Next() Loop
Mesaj = New MessageToUser;
Message.Text = „Produsul „+SampleErrors.NomenclaturePresentation+” nu este suficient în cantitate „+SampleErrors.Deficiency+” buc.”;
Message.Message();
EndCycle;
endIf;

EndProcedure

Să ne uităm la punctele cheie ale algoritmului.

1. Primirea datelor documentului la cerere

Această interogare este necesară pentru a grupa datele în partea tabelară a documentului.

Rețineți că prima interogare din lot creează un tabel temporar - acesta va fi folosit în următoarea interogare. Acest lucru este posibil datorită managerului temporar de tabel care este creat pentru această interogare.

2. Formarea miscarilor - inregistreaza consumul

În ciclu, datele din document sunt scrise în registru - adică se efectuează o anulare necondiționată (fără verificare) a mărfurilor.

3. Înregistrarea mișcărilor în baza de date

Pentru ca soldurile din registru să se modifice, mișcările trebuie înregistrate.

4. Interogare care primește resturi negative din registru

Acum, cu o simplă solicitare, selectăm solduri negative pentru bunurile documentare.

Aici este utilizat tabelul temporar creat în primul pas - o condiție este impusă articolului (pentru aceasta nu creăm obiect nou tastați „Solicitare”, dar utilizați-o pe cea creată mai devreme).

Acordați atenție modului în care este transmis momentul - este utilizat tipul de date „Boundary”. Soldurile rămase trebuie să fie primite la un moment dat imediat DUPĂ documentul curent.

A fost posibil să obțineți solduri fără margine, de exemplu, adăugând 1 secundă la data documentului?

Nu! La urma urmei, într-o secundă poate fi număr mare documente. Prin urmare, singura opțiune corectă este utilizarea tipului de chenar „Inclusiv”.

5. Afișarea mesajelor despre lipsa de mărfuri

Dacă rezultatul interogării nu este gol, atunci există resturi negative - în acest caz, documentul nu este procesat și sunt afișate mesaje despre toate erorile.

Beneficiile controlului reziduurilor folosind noua metodă

Deci, ambii algoritmi rezolvă aceeași problemă.

Diferența dintre algoritmi este vizibilă, dar avantajele nu sunt evidente.

Deci, să le evidențiem:

  1. Nu este nevoie să ștergeți mișcările documentelor vechi. În esență, aceasta este operația de scriere a unui set gol de mișcări în baza de date și de ștergere a mișcărilor existente - acestea sunt operațiuni care necesită destul de mult resurse.
  2. O interogare care preia date despre soldurile negative accesează doar un tabel - nu este nevoie să faceți o alăturare stângă cu datele documentului și să utilizați funcția „ISNULL()”.

În plus, în cursul normal al proceselor de afaceri, utilizatorul indică o cantitate care nu depășește soldul din depozit.

În acest caz, a doua cerere nu va returna nicio dată, iar prelucrarea documentelor va fi cât mai rapidă posibil.

Sunt aceste milisecunde chiar atât de importante?

Pe bazele de date cu o cantitate mică de date și utilizatori, diferența nu va fi vizibilă. Dar în sistemele ocupate cu zeci de utilizatori, costul fiecărei milisecunde este mare.

În plus, la examenul 1C:Platform Specialist trebuie să îl utilizați mod nou controlul reziduurilor, dacă o sarcină specifică permite acest lucru.

Ok, deci ar trebui să folosești întotdeauna o tehnică nouă, nu?

Nu, nu este adevărat!

Noua tehnică poate fi utilizată numai dacă toate datele necesare procesării documentului se află în documentul propriu-zis.

Adică, pentru a obține date, nu este nevoie să accesați registrele care controlează soldurile.

Deci, de exemplu, dacă suma a fost luată în considerare și în registrul „Solduri libere”, atunci ar trebui folosită vechea metodă de control.

Apropo, în standardul „1C: Managementul comerțului 11” controlul soldului este implementat folosind o nouă metodă, iar în „1C: Contabilitate 8” - conform metodei vechi.

Dar asta nu este tot!

Algoritmii prezentați mai sus pot fi utilizați numai în scopuri educative. Ideea este că ei nu țin cont încuietori controlate, care trebuie utilizat dacă există mai mult de un utilizator pe sistem.

Sunt discutate blocurile pentru ambele metode de control al reziduurilor. Tot în acest articol, rezolvăm o problemă mai complexă - pe lângă controlul soldurilor, calculăm costul articolelor anulate. Vă recomandăm să-l studiați cu atenție.

Și pentru început, să spunem doar asta instalarea unui lacăt în noua metodă este foarte simplă– și acesta este un alt avantaj al noii metode de control al reziduurilor.

Rezultate

Să rezumam pe scurt.

Am analizat două tehnici de control al reziduurilor, fiecare dintre acestea fiind utilizată în configurații tipice moderne.

Diferența cheie între tehnici la momentul controlului soldurilor:

  • Tehnica veche - control înainte de înregistrarea mișcărilor în registre
  • Tehnica nouă - control după înregistrarea mișcărilor în registre

În general, noua tehnică este mai eficientă, dar nu este întotdeauna aplicabilă.

Criteriul de aplicabilitate– dacă nu este nevoie să accesați datele dintr-un registru controlat pentru a genera mișcări, se poate folosi o nouă tehnică.

Dacă vorbim despre controlul soldurilor stocurilor, atunci utilizarea noua tehnica posibil atunci când datele privind costurile și soldurile depozitului sunt stocate în registre diferite.

Și în sfârșit, exemple din configurații tipice:

  • ÎN UT 11 există 2 registre principale pentru contabilizarea articolelor: Solduri libere (cantitate) și Costul mărfurilor (date de cost) - se utilizează o nouă metodologie
  • ÎN BP 3.0 datele privind costurile și soldurile sunt stocate într-un singur registru contabil - se folosește vechea metodă de control al soldurilor.