programare 1C - documente 2h

Noul document în sistem 1C pot fi introduse în diferite moduri:
Interactiv - această metodă poate fi implementată în diferite moduri.

1. Prima variantă. Utilizatorul selectează un element de meniu din submeniul Documente și faceți clic pe numele documentului dorit. Ce se întâmplă în continuare. Documentul este atribuit un număr, setați data, începe să proceseze operatori module proceduri predopredelennnoy formă de document VvodNovogo (), iar apoi se deschide sub forma de ecran cu procedura întredeschis () apelul. Noul document este creat în memorie, dar pentru ca aceasta să fie înregistrate în baza de date, trebuie să faceți clic pe Salvare.

2. O variantă a acestei opțiuni este de a crea un document de forma deschisă a documentelor de jurnal. A doua opțiune presupune crearea unui nou document copiind același. Când copiați un document care este atribuit un număr nou, și toate detaliile sunt completate cu datele din documentul de copiat. Acesta este motivul pentru care, în cazul în care procedura VvodNovogo () vă completați unele detalii la crearea unui nou document, este necesar, la începutul acestei proceduri pentru a configura verificarea faptelor, pentru a nu aduce în jos valoarea detalii.

3. În al treilea exemplu de realizare, un document nou este creat pe baza alt tip de document existent. În această situație, în loc de VvodNovogo () Procedura de rutină VvodNaOsnovanii () se numește. Este necesar să se descrie unele detalii cu privire la noul document va fi umplut din documentul-bază. Desigur, detaliile completate în noul document ar trebui să aibă același tip ca și detaliile corespunzătoare ale surselor. EXEMPLU umplere factura flux bazat pe factura:

RaschetnyySchet = DokOsn.RaschetnyySchet;
MestoHraneniya glZnacheniePoUmolchaniyu = ( "OsnovnoySklad");
= Contrapartea DokOsn.Kontragent;
Contract = DokOsn.Dogovor;
VariantRaschetaNalogov = DokOsn.VariantRaschetaNalogov;

DokOsn.VybratStroki ();
In timp ce DokOsn.PoluchitStroku () = 1 ciclu

Newline ();
Marfa = DokOsn.Tovar;
Cantitate = DokOsn.Kolichestvo;
Preț = DokOsn.Tsena;
Suma = DokOsn.Summa;
TVA = DokOsn.NDS;
Total = DokOsn.Vsego;

Atunci când apelați o procedură instalează valorile anumitor câmpuri și checkboxes valorile de facturare a facturii. În primul rând am umplut capace rechizite, și conturile de linii de ciclu organizat apoi citit operatorii de piese de masă VybratStroki () și PoluchitStroku (). În același ciclu pentru fiecare linie de bază se introduce și se completează într-o nouă linie factură (comanda Newline ()).
Accesul la contul bancar prin intermediul DokOsn variabilă, care este un parametru al procedurii. După cum știm (a se vedea. Descrierea procedurilor forma documentelor de module predefinite), acesta este transmis în contextul documentului-bază.

4. Metoda de software - pentru el în limba 1C sunt echipe speciale. Este posibil ca în înregistrarea SchetFaktura fluxului de documente sub formă scrisorii de transport:

SF = SozdatObekt ( "Dokument.SchetFaktura");
SF.Novy ();
SF.VariantOtpravki = 1;
SF.NomerDok = NomerDok; // O factură va fi același număr și data
SF.DataDok = DataDok; // proiect de lege. Dar, din moment ce nu se poate face, există Numerotare automat
SF.Kontragent = contrapărți;
SF.Gruzopoluchatel = contrapărți;

VybratStroki ();
In timp ce PoluchitStroku () = 1 ciclu

SF.NovayaStroka ();
Recuzita // „Produse“ dock, care are un tip SchetFaktura nedefinit
SF.NaznachitTip ( "Marfa", "Spravochnik.Nomenklatura");
SF.Tovar = consumabile;
Dacă PustoeZnachenie (Tovar.StranaProiskhozhdeniya) = 0 Apoi

// și acesta este un apel la detaliile de referință „nomenclatură“
SF.StranaProiskhozhdeniya = Tovar.StranaProiskhozhdeniya;

SF.Kolichestvo = număr;
SF.Tsena = Pret;
SF.Summa = Suma;
SF.NDS = TVA;
SF.Vsego = Suma + TVA;

// acest proiect de lege devine baza facturilor prin elemente de recuzită speciale
SF.DokumentOsnovanie TekuschiyDokument = ();

KonetsTsikla;
SF.Zapisat ();
SF.Provesti (0, "software");

Rețineți că primul document este creat ca un obiect, și apoi introdus într-un document nou. etapele ulterioare sunt similare cu acțiunile la intrarea bazei. Nu uita, dacă creați sau să editați documente și software, acesta trebuie să fie înregistrate. Și te rog, nu încercați să utilizați o metodă de conduită () în corpul unei proceduri predeterminate ObrabotkaProvedeniya () modul al documentului!

Perform operatorul (), în exemplul de mai sus efectuează deținerea instrumentului. În exercitarea va fi numit ObrabotkaProvedeniya () procedura de predefinite. A doua cerință este transmis la prelucrarea valorii ( „Software“), o procedură în care ObrabotkaProvedeniya () afla despre performanța software-ului. Acest lucru poate fi un șir simplu sau un număr, sarcina sa - indică numai faptul de a software-ului.

Dacă lucrați cu un document existent, metoda de conduită () documentul pereprovedet. Și cu ajutorul metodei, () puteți vedea dacă orice document deținut:

Dacă Dok.Proveden ()> 0 Apoi

Raport ( "Document №" + Dok.NomerDok + "transportate");
............... // Unele acțiuni care au de a face cu un document care deține

La stabilirea operațiunilor și tranzacțiilor în timpul operațiunilor de documente partiție de citire și capitole de cablare contabile.

La crearea unei multitudini de documente sau pentru a accelera ciclul poate încheia o tranzacție. În acest caz, documentele reale de scriere va fi numai pe echipa ZafiksirovatTranzaktsiyu (). La momentul tranzacției este blocat pentru alți utilizatori de poștă și documente care dețin.

SpisanieMaterialov SozdatObekt = ( "Dokument.TrebovanieNakladanaya");
BeginTransaction ();
Pentru N = 1 La ciclul 100

SpisanieMaterialov.Novy ();
.....................
// Umple detalii
SpisanieMaterialov.Zapisat ();
SpisanieMaterialov.Provesti ();

Permiteți-mi să vă reamintesc că procedura predefinită ObrabotkaProvedeniya () se deschide o tranzacție pe cont propriu pentru a efectua, dar există o caracteristică mică a unui document creat funcția SozdatObekt (). Faptul este că despre software-ul care deține documentele create fără automată de pre-înregistrare, și să se asigure că, la orice defecte și erori sunt stocate coerența documentelor de date și mișcările sale (tranzacții) ar trebui să fie combinate de înregistrare și care deține un document într-o singură tranzacție.

Setarea recuzită periodice director în timpul documentului

Un exemplu simplu de o astfel de acțiune este de a instala un nou angajați angajat salariale în timpul de referință, de exemplu, orare regulate.

UstanovitRekvizitSpravochnika (angajat, "Salariu" NovyyOklad, DataDok);

În cazul în care programul interactiv sau pentru a crea un nou document, acesta este atribuit în mod automat un nou număr unic. Se poate obține sau pentru a seta orice alt atribut folosind NomerDok:

Docking SozdatObekt = ( "Dokument.Schet");
Dok.Novy ();
Raport ( „Documentul a fost atribuit în mod automat un număr“ + Dok.NomerDok);
Dok.NomerDok = "000013";
Raport ( "Un nou număr" + "000013");

Dacă utilizați o bază de date distribuită sau dorința de a documentului reprezintă utilizatorul care le-a creat, este util să se utilizeze prefixe - una sau două caractere care sunt substituite înainte de numărul real de document, dar „include“ în cameră. Amintiți-vă că șirul ar trebui să fie un prefix ( „gama medie“ sau „01“ sau „1“) și proprietățile documentului trebuie să fie instalat numărul de tip inline.

Docking SozdatObekt = ( "Dokument.Schet");
PrefDok = Leo (UserName () 2);
Dok.PrefiksNomera (PrefDok + "-");
Dok.Novy ();

Această metodă se schimbă prefixul implicit, sau returnează prefixul curent, dacă utilizați metoda fără un parametru. Dar o altă posibilitate:

Docking SozdatObekt = ( "Dokument.Schet");
PrefDok = Leo (UserName () 2);
Dok.Novy ();
Dok.UstanovitNovyyNomer (PrefDok + "-"); // această numerotare funcționează foarte bine

Spre deosebire de metoda anterioară, această seturi (mai degrabă resetărilor introduse în mod implicit în executarea metodei noi ()) un nou număr cu prefixul specificat.

Numărătorul reprezintă obiectul de metadate care descrie regulile de numerotare a documentelor: tipul și lungimea numărului documentului, frecvența, necesitatea controalelor unice. Scopul principal al recenzorului - permite numerotarea continuă a diferitelor tipuri, pentru care astfel de documente sunt atribuite în același numărătorul.

Periodicitatea. Această recuzită seturi de 2 caracteristici importante ale numărătorul: limitele unicitatea numerelor de control ale documentelor și camere perioada de repetabilitate. În cazul în care numerele de control ale caracteristicii unice incluse (cm. Mai jos), „frecvența“ stabilește limitele în care punerea în aplicare a acestui control. De exemplu, în cazul în care „în câteva zile“, numărul unic de document care urmează să fie controlat în ziua: Numerele document poate fi repetat în ziua următoare. În cazul în care sistemul automat de numerotare va atribui următorul număr de secvență la fiecare document nou. După încheierea perioadei stabilite în necesară „Frecvență“, numerotarea începe cu 1 documente.

Lungime. Setează lungimea maximă a numărului documentului. Nu leagăn, fără a fi nevoie de numărul de „lung“ reduce productivitatea.

Tip. „Tip“ vă permite să selectați tipul de valoare pentru numărul documentului - numeric sau text. Selectarea tip de cameră de text este utilă atunci când se utilizează un sistem complex de numerotare a documentelor și numărul documentului poate include, în plus față de numere și litere drept caractere delimitatorul.

Unicitatea de control. Dacă această opțiune este activată, atunci când introduceți un nou document numărul său este verificat pentru unicitatea în limitele stabilite în necesare „Frecvență“.

Creat (sau înregistrare) - un atribut obligatoriu al oricărui document. Prin aceasta, puteți obține sau stabili o dată la care documentul este scris:

Docking SozdatObekt = ( "Dokument.RaskhodnayaNakladnaya");
Dok.Novy ();
Dacă Dok.DataDok = '01 .01.02 „Atunci
. Raport ( „An Nou fericit!“);
ENDIF;

În plus față de data documentului este indicată de poziția timpului. Cu acesta, puteți face acest lucru:

Ore = 0;
Min = 0;
Secunde = 0;
Dok.PoluchitVremya (ore, minute, secunde); // Să citim timp
Dacă ore> 21 Apoi

Avertizare ( „Destul de lucru pe timp de noapte!
| Documentul va fi plasat la sfârșitul zilei „);
Dok.AvtoVremyaKonetsDnya (); // document scris timp de 10 secunde după ultima

InacheEsli ceasuri <8 Тогда

Avertizare ( „Nimeni nu va aprecia!
| Documentul va fi înregistrat la începutul zilei „);
Dok.AvtoVremyaNachaloDnya (); // document scris timp de 10 secunde înainte de primul

întrebare InacheEsli ( „Salvarea unui document cu ora curentă?“, 4) = 7 // Atunci răspunsul este „Nu“

VvestiChislo (ChasUst, „Specifică ora, documentul este scris cu care“, 2.0);
Dok.UstanovitVremya (ChasUst, minut, secundă); // este scris cu acest moment

Dok.AvtoVremyaTekuschee (); // document scris cu ora curentă

În sistemele mari, multi-user este de multe ori o situație în care noi documente sunt înregistrate aproape simultan, într-o secundă. Dar încă nu există nici o căptușeală, deoarece Documentele sunt împărțite în câteva secunde folosind elementul de document. Este o expresie speciala de 32 de caractere, care poate fi citit printr-o metodă specială:

PozDokumenta Dok.PoluchitPozitsiyu = (); // read-only.

Poziția este disponibilă numai în documentul înregistrat.

Această teribilă fiară - relevanța punctului

relevanța punctului (AT) - acesta este momentul „curent“ în cronologia documentelor pe care registrele operaționale conțin valoarea curentă a resurselor sale. Acest lucru înseamnă că, atunci când se referă la registrele, informațiile de care este eliberat la momentul respectiv, în cazul în care relevanța punctului stabilit. Dacă aveți nevoie de rezultatele la celălalt punct, ar trebui să înceapă de sincronizare. AT ajută sistemul pentru a determina disponibilitatea actuală a fondurilor corespunzătoare, de exemplu, valoarea reală a produselor din stoc. Toate documentele deținute de AT să fie considerate a fi avut loc operațiuni de afaceri, în cazul în care documentul este deținut după AT, nu va fi luată în considerare la determinarea soldurilor registrului. Această situație este rară, deoarece documentele contabile operaționale după efectuarea în mod automat stabilit AT la momentul desfășurării sale (modul TA în timpul documentelor personalizate de management al înregistrărilor fila Opțiuni de meniu Modul pentru ferestre Instrumente 1C: Enterprise).

software de management AT

articole similare