Rectificarea și afișarea documentelor
Următoarea problemă a apărut în configurația PUB 1Cv7.7. Zilnic se emit „automat” circa 200 de facturi de vânzare și tot atâtea facturi conform cererilor primite de la cumpărători. După ce produsele sunt livrate cumpărătorilor, operatorul corectează manual unele facturi din baza de date.
Am stabilit sarcina: la schimbarea documentelor de vânzare, este necesară modificarea automată a facturii subordonate. O soluție relativ simplă fără VC este modificarea puțină a modulului Formular de factură:
// Procedura predefinita Facturi
Param = Form . Parametru;
Dacă Param = „Reeditare” Atunci
Să adăugăm o nouă procedură la modulul Formular document de implementare:
// Procedura de implementare predefinită
Dacă DataDoc DataProhibitedEditing Atunci
Dacă ReturnStatus()= 0, atunci
docSF = CreateObject( "Document.Factură" );
docSF . SelectDocuments ( DateDoc , DateDoc );
În timp ce dokSF. GetDocument() = 1 buclă
Dacă docSF . DocumentBase = CurrentDocument() Apoi
SF = docSF. curentDocument();
OpenForm( docSF.CurrentDocument() , Parameter );
docSF = CreateObject( "Document . Factură" );
docSF . FindDocument (SF);
Dacă docSF . Selectat ()= 1 Apoi
docSF . Comentariu = "Schimbat: " + Utilizator ;
Dacă a trecut ()= 1 Atunci
Și în sfârșit, modulul de procesare a corecțiilor de grup și de înregistrare a facturilor
Dacă EmptyValue( Data1 ) = 1, atunci
Avertisment(„Data de începere a perioadei de raportare nu este specificată!”);
Dacă Data1 > Data2 Apoi Avertisment( „Perioada de raportare nevalidă!” +Separator de linii+ „Data de început este mai mare decât data de încheiere a perioadei.” );
Dacă PeriodCheck()=0, atunci
ElseIf Data1 Editare Data interzisă Atunci
Avertisment( „Nu puteți posta documente înainte de data interzicerii editării!” );
docSF = CreateObject( "Document.Factură" );
docSF .SelectDocuments( Data1 , Data2 );
În timp ce dokSF. GetDocument() = 1 buclă
Dacă docSF . O bază de documente. View ()= „ProductImplementation” Apoi
Dacă ( docSF . Postat ()= 1 ) și ( PostUnpostedOnly = 1 ) atunci
OpenForm( docSF.CurrentDocument() , Parameter );
Dacă docSF . O bază de documente. Trecut ()= 1 Apoi
Notify( "Documente finalizate. Ora: " + Salvare(Format((_GetPerformanceCounter() - StartTime )/ 1000 , "P12.1" )) + " sec." ); EndProcedure //Generează
Data1 = CurrentDate() - 1 ;
Data2 = CurrentDate() - 1 ;
Oferte speciale
Corectarea și afișarea documentelor, cum ar fi facturile introduse pe baza documentelor de vânzare, pot fi organizate în mai multe moduri. Este descrisă o abordare relativ simplă, care a fost implementată și funcționează de câțiva ani în contabilitatea reală 1Cv7.7. Fara componente externe.
(1) Schema dvs. de soluție este descrisă în procesare! Dacă factura și factura sunt identice, nimic din factură nu se va schimba!
Programatorul nu ține conturi, nu creează documente de vânzare, facturi și alte documente! Ușurează munca unui contabil. Totul se face de un contabil! El este responsabil de rezultat și primește un bonus! Cred că contabilii noștri schimbă facturile și facturile, dacă cumpărătorul nu a luat ceva din produs, l-a bifat. Documentele sunt retipărite și a doua zi un nou set este luat cumpărătoruluidocumente. Poate că acest lucru nu este în întregime corect în raport cu facturile, pentru că există facturi corective.
Nu propun o metodologie pentru munca de contabilitate, am descris cum poti corecta factura AUTOMAT si corecta factura!