Unul dintre elementele fundamentale ale oricărei configurații 1C sunt directoarele. Acestea stochează informații care sunt utilizate în majoritatea celorlalte obiecte ale aplicației 1C. De aceea, la dezvoltarea sau actualizarea oricărui sistem de pe platforma 1C, mai întâi sunt adăugate și completate noi directoare. Fiecare dezvoltator 1C ar trebui să cunoască proprietățile, funcțiile și capacitățile de bază ale acestor obiecte de configurare.
Structura și funcțiile directoarelor din 1C 8.3
Funcția principală a directoarelor este de a stoca și furniza informații de referință. Contabilitatea în sistemele 1C se realizează în contextul directoarelor: Nomenclator, Clienți și altele.
Dezvoltatorii disting un tip separat de directoare - clasificatoare. Acestea includ informații aprobate, de exemplu, de stat:
- Unități;
- monede;
- Țări ale lumii;
- Profesii.
Conform structurii lor, directoarele din programul 1C sunt liste cu anumite date. Pentru a vă familiariza cu directoarele existente în configurația 1C, trebuie să le introduceți în modul configurator. Găsiți ramura „Referințe” în arborele configuratorului și extindeți-o.
Fiecare dintre directoare are propriile proprietăți stabilite de dezvoltatori. Luați în considerare principalele proprietăți pe exemplul cărții de referință „Monede”.
Fila „De bază” conține informații despre numele directorului și descrierea acestuia. Următoarea secțiune „Subsisteme” este responsabilă pentru includerea directorului într-un anumit subsistem.
Fila „Opțiuni funcționale” definește funcționalitatea folosind căutarea. Fila „Ierarhie” vă permite să creați elemente de director imbricate. Tipurile ierarhice de directoare pot fi extrem de utile.
În fila „Proprietari” este configurat mecanismul de subordonare. Dacă directorul este subordonat altuia, atunci completarea elementelor de recuzită „Proprietar” este obligatorie.
În fila „Date”, se stabilește ce informații puteți adăuga în directorul 1C. În partea de sus, codul și numele sunt configurate - unul dintre detaliile standard, în centru - o listă de detalii adăugate. În partea de jos veți vedea părți tabelare ale directorului.
Setările de numerotare ale obiectului de configurare din 1C vă permit să creați o numerotare unică pentru elementele directorului.
În fila Formulare, dezvoltatorii creează interfețe care vor fi vizibile pentru utilizatori. Cele mai comune forme sunt Element și List: așa văd utilizatorii o listă de date de director și elementele acesteia în programul 1C.
Setarea corectă a parametrilor în fila „Câmp de intrare” va crea cele mai convenabile condiții de lucru pentru utilizatori. Opțiunile Selectare rapidă/Introducere după șir/Căutare text complet vă vor ajuta să găsiți articolul pe care îl căutați. „Selectarea istoricului pe măsură ce tastați” va salva pozițiile utilizate anterior.
Secțiunea „Comenzi” arată o listă de butoane existente care apelează acest director. În „Layouts” puteți găsi totul tipărire a formularelor obiect de configurare specific. „Intrarea bazată pe” va fi afectată de dezvoltator în cazurile în care alte obiecte de configurare sunt planificate să fie create pe baza elementului director.
Subsecțiunea „Permisiuni” reflectă informații despre rolurile care includ accesul la director, inclusiv completarea directoarelor, editare și citire. „Schimb de date” vă va spune la ce planuri de schimb participă directorul. Ultima filă include posibilitatea de a merge la module pentru a scrie proceduri și funcții. Există, de asemenea, o listă de valori de dicționar predefinite care pot fi accesate direct în cod.
Nu toate proprietățile sunt necesare. Unele file rămân neatinse pe toată durata de viață a software-ului pe platforma 1C.
Pentru a ușura crearea directoarelor în 1C, să creăm un nou obiect de configurare de acest tip.
Crearea și transferul unui director în 1C 8.3
Folosind un exemplu de configurație non-standard, vom crea și vom începe să folosim directorul „Subdiviziuni”, care va stoca date despre structura întreprinderii. În configurator, în arborele de configurare, găsiți „Referințe” și faceți clic pe butonul „Adăugați”. Completați câmpurile:
- Nume/Sinonim. Primul atribut este responsabil pentru numele obiectului din configurație, al doilea - pentru numele în modul întreprindere;
- Reprezentarea obiectului este folosită la deschiderea unui element al directorului;
- Vizualizarea listă este utilizată la vizualizarea unei liste de date de referință;
- Explicație - ajutor pentru utilizatori.
În continuare, trebuie să adăugăm ghid nou la unul dintre subsisteme dacă dorim ca utilizatorii să-l poată vedea în interfață. Deschideți fila „Subsisteme” și bifați caseta de lângă subsistemul „General” deja existent.
Noul nostru director va fi ierarhic, deoarece diviziile pot fi incluse una în alta. Grupurile de departamente nu sunt planificate la întreprinderea noastră, astfel încât este selectat tipul „Ierarhia elementelor”. În același timp, nu vom limita cuibărirea subdiviziunilor.
Pe lângă setul standard, avem nevoie de câteva detalii suplimentare și o parte tabelară pentru lista de angajați. Pentru a face acest lucru, trebuie să le adăugați în fila „Date” în secțiunile relevante.
Pentru comoditate, trebuie să adăugați detaliile noastre în formularul de listă. Pentru a face acest lucru, în fila „Formulare”, creați un nou formular de listă și setați-l ca principal. În caseta de dialog, bifați casetele pentru toate detaliile de care avem nevoie. De asemenea, vom seta forma elementului pentru a aranja detaliile în ordinea care se potrivește utilizatorilor noștri.
Aceasta completează crearea directorului demonstrativ „Subdiviziuni”. Actualizăm configurația și pornim din nou sistemul în modul întreprindere. În subsistemul „General”, a apărut tasta funcțională „Lista departamentelor”. Făcând clic pe el, se deschide formularul de listă de directoare pe care l-am specificat, cu posibilitatea de a adăuga elemente la acesta.
Multe companii lucrează cu mai multe baze de date 1C, astfel încât dezvoltatorul se poate confrunta cu transferul directorului creat într-o altă bază de date. Pentru a face acest lucru, împreună cu majoritatea configurațiilor, este furnizată o procesare externă - „Încărcarea și încărcarea datelor XML”. Dar înainte de a transfera directoarele 1C 8.3, este necesar să pregătiți configurația receptorului. Un obiect de configurare similar cu câmpuri identice și părți tabulare ar trebui creat în el.
La deschiderea acestei procesări, trebuie să specificăm ce obiecte dorim să le transferăm și să selectăm un fișier. Apoi, descărcarea de director lansată creează un fișier XML în care scrie toate datele.
Pentru a descărca ghiduri către altul baza de informatii, trebuie să intrați în el și să deschideți aceeași procesare externă. În a doua filă, începeți descărcarea. Acesta este un mecanism manual, așa că dacă intenționați să introduceți în mod regulat elemente noi ale directorului într-o singură bază de date, atunci este mai bine să organizați un schimb între bazele de date.
În concluzie, aș dori să reamintesc că crearea directoarelor în 1C 8.3 după punerea în funcțiune a sistemului va cauza probleme din cauza necesității de acces exclusiv la baza de date. Cel mai sigur este să actualizați configurația pe server.
Scopul directoarelor
Directorul stochează o listă de valori posibile ale unui anumit obiect sau atribut. Directoarele sunt folosite în cazurile în care este necesar să se excludă ambiguitateaod informație. De exemplu, pentru ca cumpărătorul, vânzătorul, depozitarul și directorul să înțeleagă ce fel de produs în cauză, toată lumea ar trebui să-l numească la fel. Și în acest caz, avem nevoie de un ghid. De obicei pe întreprindere comercială arata ca o lista de preturi.
Sistemul 1C:Enterprise 8 vă permite să mențineți un număr aproape nelimitat de directoare necesare. Fiecare director este o listă de obiecte omogene: posturi, angajați, clienți, bunuri etc. Fiecare astfel de obiect este numit un element al directorului.
Din punctul de vedere al utilizatorului, trebuie avut în vedere că Configuratorul nu creează în sine dicționarul, ca o listă de valori, ci dezvoltă un șablon de referință, șablonul acestuia. În timpul procesului de configurare, este descrisă structura informațiilor care vor fi stocate în director, se dezvoltă un ecran și, dacă este necesar, o reprezentare tipărită a directorului și sunt specificate diferite caracteristici ale comportamentului acestuia.
Detalii director (câmpuri)
La fel de detaliile cerute fiecare ghid are Codulși Nume. Codul elementului de director poate fi fie numeric, fie text. Sistemul 1C:Enterprise 8 oferă oportunități ample de lucru cu codurile elementelor de director: atribuirea automată a codurilor, controlul automat al unicității codului și altele.
Pe lângă Cod și Nume, directoarele sistemului 1C:Enterprise pot stoca orice informații suplimentare despre elementul directorului. Pentru a stoca astfel de informații în cartea de referință, pot fi create detalii suplimentare (câmpuri). Folosind mecanismul detaliilor directorului, este ușor să organizați, de exemplu, un fișier al angajaților. De exemplu, directorul de angajați va avea aproape sigur detaliile Poziției, Salariului, Data admiterii și altele. Firma 1C a anticipat programatorii și a introdus două detalii obligatorii (predefinite) în toate cărțile de referință: Cod și Nume. Într-adevăr, aproape orice obiect viata reala conţine aceste atribute. De exemplu, pentru angajați, codul este numărul de personal, iar numele este Numele, Prenumele și Patronimul (numele complet). În plus, utilizarea codurilor (atunci când se folosește numerotarea automată) face ușor de înțeles ce element a fost introdus mai devreme și care mai târziu în baza de date.
Tipuri de date
Pentru fiecare atribut de referință, trebuie să specificați tipul de date, de exemplu, „număr”, „șir”, „data”, boolean (adevărat sau fals). Acestea sunt tipuri de bază, dar pot fi specificate și tipuri de date complexe. De exemplu, atributul Poziție are tipul de date Poziție. În acest caz, valorile acestui atribut vor fi selectate din directorul Jobs. Așa este implementată cea mai simplă conexiune între directoare, când valorile detaliilor unui director sunt selectate din elementele altui director.
Directoare ierarhice
Lista elementelor de director din sistemul 1C: Enterprise 8 poate fi pe mai multe niveluri. În acest caz, toate liniile directorului vor fi împărțite în 2 tipuri: elemente „simple” ale directorului și grupuri ale directorului. Grupurile vă permit să mergeți la nivelurile de bază ale unui director cu mai multe niveluri. Utilizarea directoarelor pe mai multe niveluri vă permite să organizați introducerea informațiilor în director cu nivelul dorit de detaliu. Elementele și grupurile de elemente dintr-un dicționar pe mai multe niveluri pot fi transferate de la un grup la altul.
Directoare subordonate
Între directoare se poate stabili o relație de subordonare. În termenii bazei de date relaționale, între tabele se stabilește o relație unu-la-mulți. În acest caz, fiecare element al directorului subordonat va fi asociat cu unul dintre elementele directorului proprietar. Uneori poți spune că elementele unui director aparțin elementelor altuia. De exemplu, sistemul poate avea un director al Acordului. Apoi poate fi subordonat directorului Clienți. Aceasta înseamnă că clientul deține contractele și un client poate avea mai multe contracte.
Părți tabulare
Începând cu versiunea 1C 8.0, platforma implementează capacitatea de a seta una sau mai multe părți tabulare pentru un element de director. Această caracteristică este recomandată a fi folosită pentru a reflecta informații legate de acest element, dar neavând entitate obiect proprie (pentru care se recomandă crearea directoarelor subordonate). De exemplu, pentru cartea de referință Angajații, se pot crea secțiuni tabelare Educație și Compoziția familiei. Lucrul cu părți tabelare este similar cu lucrul cu directoare subordonate, cu excepția faptului că părțile tabulare nu pot fi utilizate ca valori de atribut ale altor obiecte.
Unde este folosit codul programului pentru a lucra cu directoare?
Deoarece trebuie să accesăm baza de date pentru a executa codul de program, aceste bucăți de cod de program trebuie să fie plasate în proceduri și funcții (sau module) efectuate pe partea serverului. Consultați secțiunea pentru mai multe informații.
1. Link către ghid
Pentru a lucra cu un director din orice modul, trebuie mai întâi să creați o legătură către acest director.
SprEmployees = Directoare. Angajati; // sau varianta 2
SprPositions = Directoare [„Poziții”];
2. Crearea și scrierea unui nou element de director
NovEl = Referințe . Angajatii . createItem();
Roman. Nume = „Petrov Petrovich”;
Roman. Salariu = 25000;
Roman. Scrie(); // acesta este momentul în care este scrisă baza de date
3. Crearea și înregistrarea unui nou grup de directoare (pentru un director ierarhic)
nou = Directoare.Angajaţii. Pentru a crea un grup ();
Nou . Scrie();
// sau varianta 2
Nou = Referințe[„Angajații”]. Pentru a crea un grup ();
Nou . Nume = „De lucru”;
Nou . Scrie();
4. Căutați un element de director
// dacă elementul este găsit, atunci este returnat, în caz contrar valoarea este Nedefinită
FoundComp = RefComp . FindByCode (123); //căutare după cod
FoundComp = RefComp . FindByName(„Ivanov Ivan Ivanovici”); //dupa nume
FoundComp = RefComp . FindBy Props(„Salariu”, 5000); //după atribut
Dacă FoundComp = Nedefinit Atunci
//elementul nu a fost găsit
EndIf;
5. Ștergerea unui element de director
Spectr = Directoare . Angajati;
RefStr. Șterge (); //ștergerea imediată a elementului director curent
RefStr. Setați steag de eliminare(Adevărat); // marca pentru ștergere
RefStr. Setați steag de eliminare(Minciună); //Anulați marcarea pentru ștergere
//poate verifica dacă elementul este marcat pentru ștergere
// proprietatea Delete Mark este de tip boolean (adevărat sau fals)
Flag = RefStr . Îndepărtarea steagului; //notă: aceasta este o proprietate
Dacă Flag = Adevărat, atunci
//element marcat pentru ștergere
EndIf;
6. Repetarea elementelor directorului
Selectie = Directoare . Angajații.Selectați();
// începe să iterați elementele dicționarului într-o buclă
//acțiuni cu următorul element...
EndCycle;
7. Părinte. Repetați elementele dintr-un grup.
Un grup în ceea ce privește 1C este un „părinte”.
Spectr = Directoare . Angajati;
Lucru în grup= RefStr . FindByName("Lucru");
Eșantion = SprStr. alege ( Lucru în grup);
În timp ce selecția. Next() = 1 buclă
Raport („Angajat” + Exemplu . Nume);
EndCycle;
8. Proprietar. Repetarea elementelor unui dicționar care aparțin unui element al altui dicționar.
Un director este subordonat altui director, de exemplu, directorul Beneficii fiscale este subordonat directorului Angajati.
Selectie = Directoare . Beneficii fiscale. Selectați (, Angajat); //aici angajat - un link către elementul director al angajaților
În timp ce selecția. Next() = 1 buclă
//acțiuni cu următorul element
Raport („beneficiu” + Exemplu . Nume);
EndCycle;
9. Tranzacție
Când creați multe articole de referință, pentru a accelera munca, puteți include bucla într-o tranzacție. În acest caz, crearea reală a tuturor elementelor va avea loc numai prin comanda FixTransaction(). Atunci când se utilizează tranzacții, acțiunea fie va fi efectuată în întregime (toate elementele directorului sunt create), fie nu va fi efectuată deloc (în cazul oricărei eșecuri, nu va fi creat niciun element nou, totul va rămâne la fel ca înainte tranzacția a fost începută). Tranzacțiile sunt utilizate pe scară largă în bancar. La urma urmei, nimeni nu își dorește ca atunci când trimite bani, aceștia să fie debitați în siguranță din contul tău, dar din cauza unui fel de eșec nu au ajuns la destinatar.
Spectr = Directoare . Angajati;
StartTransaction();
Pentru Nom = 1 până la 100 Ciclu
Nou = RefStr. createItem();
Nou . Nume = "Nou" + String(Nom);
Nou . Scrie();
EndCycle;
CommitTransaction();
Nomenclatorul din 1C 8.3 înseamnă materiale, semifabricate, echipamente, servicii, ambalaje returnabile, salopete etc. Toate aceste date sunt stocate în directorul „Nomenclatură”. Puteți intra în el din secțiunea „Cărți de referință”, subsecțiunea „Bunuri și servicii”, elementul „Nomenclatură”
Veți vedea o listă de poziții de director care are o structură ierarhică pe mai multe niveluri.
În acest articol, vom lua în considerare pas cu pas toate instrucțiunile pentru completarea inițială a nomenclaturii din 1C 8.3 folosind exemplul
Pentru confortul utilizării acestui ghid, 1C Accounting utilizează grupuri (dosare). Ele combină nomenclatura care are caracteristici comune. În fiecare grup, la rândul său, este posibil să se creeze subgrupuri (similar cu sistemul de fișiere de pe un computer). Numărul de niveluri de ierarhie este stabilit de programator, dar inițial nu există restricții.
Să creăm grup nou. În forma de listă a cărții de referință „Nomenclatură”, faceți clic pe butonul „Creați grup”.
Specificați numele grupului de creat. Puteți completa și formularul acestuia, dar nu este necesar.
După cum puteți vedea în figura de mai jos, grupul pe care l-am creat se încadrează în „Materiale”. Dacă trebuie mutat în alt grup sau în rădăcină, deschideți meniul contextual și selectați „Mutați în grup”. Se va deschide o fereastră în care va trebui să specificați o nouă locație.
Crearea unui nou articol de stoc
Să trecem la adăugarea nomenclaturii în sine. Pentru a face acest lucru, sub forma unei liste de directoare, faceți clic pe butonul „Creați”. O fișă cu noul nomenclator se va deschide în fața ta.
Completați câmpul „Nume”. Valoarea din câmpul „Nume complet” va fi completată automat. Vă rugăm să rețineți că numele complet este afișat în rapoarte, formulare tipărite de documente, etichete de preț etc. Câmpul „Nume” este utilizat pentru căutare convenabilă nomenclatura din program.
Completați restul detaliilor dacă este necesar:
- Câmpurile „Tip articol” și „Inclus în grup” sunt completate automat din datele grupului în care este creat noul articol. Le puteți schimba dacă este necesar.
- Valoarea din câmpul „Unitate” este unitatea de stocare pentru restul acestui articol.
- Cota de impozitare specificată în „% TVA” necesară, dacă este necesar, poate fi modificată deja în timpul formării documentelor.
- „Prețul de vânzare” este specificat implicit în documentele de vânzare. Această setare poate fi modificată făcând clic pe hyperlinkul „?” lângă acest câmp.
- În secțiunea „Producție”, puteți specifica articolul de cost al acestui articol de stoc și specificația acestuia (pentru produse terminate), cu alte cuvinte, compoziție.
- În funcție de caracteristicile nomenclaturii, se completează secțiunile rămase, cum ar fi „ Produse alcoolice„ și „Bunuri importate”.
După ce ați completat cardul articolului creat, trebuie să îl notați.
Care este tipul de element în 1C 8.3 și cum să le configurați
Pentru a configura tipuri de nomenclatură, faceți clic pe hyperlinkul corespunzător în forma de listă a cărții de referință „Nomenclatură”.
Tipurile de articole sunt necesare pentru a separa pozițiile articolelor. Fiecare tip poate avea propriul său. Este foarte important să se evite prezența duplicatelor în această carte de referință, ceea ce poate duce la funcționarea incorectă a conturilor contabile de articole.
Când instalați o configurație tipică de la un furnizor, acest director va fi deja completat cu principalele tipuri de articole din stoc. Dacă tipul de articol este un serviciu, nu uitați să setați indicatorul corespunzător atunci când îl creați.
Conturi contabile de articole din 1C 8.3
Pentru formare înregistrări contabile Conturile trebuie configurate. Acest lucru se poate face din formularul de listă al cărții de referință „Nomenclatură” făcând clic pe hyperlinkul „Nomenclator conturi contabile”.
În configurația standard a 1C Accounting 3.0, acest registru este deja completat. Dar, dacă este necesar, poate fi reglat manual.
Conturile pot fi configurate:
- pentru o anumită poziție în nomenclatură;
- pe grupe de nomenclatură;
- după tipul de nomenclatură;
- prin depozit;
- după tipul de depozit;
- după organizație;
- în întreaga nomenclatură, specificând o referință goală ca valoare.
Dacă s-au configurat diferite conturi contabile pentru un anumit articol și pentru acesta, atunci contul va fi luat din articol. În astfel de cazuri, conturile agregate au o prioritate mai mică.
Stabilirea prețurilor articolelor
Un articol poate avea mai multe prețuri. Ele diferă în tipuri, de exemplu, prețul cu ridicata, prețul cu amănuntul etc.
Accesați fișa articolului din cartea de referință „Nomenclatură” și urmați hyperlinkul „Prețuri”.
În fața ta se va deschide o listă, în care este posibil pentru un anumit tip la o anumită dată. Este suficient să indicați prețul în coloana corespunzătoare, apoi să faceți clic pe butonul „Înregistrare prețuri”. Documentul de stabilire a prețului articolului va fi creat automat și veți vedea un link către acesta în această listă.
Vezi și videoclipul despre nomenclatură:
-Ți-a plăcut povestea mea pe care ți-am dat-o să o citești ieri?
-Da, dar cumva totul este neclar și sunt mulți actori.
Doctorul intra:
- Deci, idioți, cine mi-a furat agenda de telefon?
Scopul directoarelor
Cartea de referință este o listă de valori posibile ale unuia sau altui atribut. Directoarele sunt utilizate în cazurile în care este necesar să se excludă introducerea de informații ambigue.De exemplu, pentru ca cumpărătorul, vânzătorul, depozitarul, directorul să înțeleagă ce marfa vine vorbire, toată lumea ar trebui să-l numească la fel. Și în acest caz, aveți nevoie de un ghid. De obicei, într-o întreprindere comercială are forma unei liste de prețuri, iar dacă un astfel de director este stocat pe un computer, atunci întreaga gamă posibilă de bunuri cu care lucrează societatea comercială este introdusă în el.
Sistemul 1C:Enterprise vă permite să mențineți un număr aproape nelimitat de directoare necesare. Fiecare director este o listă de obiecte omogene: angajați, organizații, bunuri etc. Fiecare astfel de obiect este numit element director.
Din punctul de vedere al utilizatorului, trebuie avut în vedere că Configuratorul nu creează în sine dicționarul, ca o listă de valori, ci dezvoltă un șablon de referință, șablonul acestuia. În procesul de configurare, este descrisă structura informațiilor care vor fi stocate în director, se dezvoltă un ecran și, dacă este necesar, o reprezentare tipărită a directorului și sunt specificate diferite caracteristici ale „comportamentului” acestuia.
Dicţionar attributes
Ca detalii obligatorii, fiecare director are Codulși Nume. Codul elementului de director poate fi fie numeric, fie text. Sistemul 1C:Enterprise oferă oportunități ample de lucru cu codurile elementelor de director: atribuirea automată a codurilor, controlul automat al unicității codului și altele.
Pe lângă cod și nume, directoarele sistemului 1C:Enterprise pot stoca orice informații suplimentare despre elementul directorului. Pentru a stoca astfel de informații în director, se poate crea o listă. Detalii. Folosind mecanismul detaliilor directorului, este ușor să organizați, de exemplu, un fișier al angajaților.De exemplu, un ghid Angajatii va avea aproape sigur atributele Denumirea funcției, Salariu si altii.Firma 1C a anticipat programatori și a prezentat toate directoarele două atribute deja setate: Codulși Nume. Într-adevăr, aproape orice obiect din viața reală conține aceste atribute. De exemplu, pentru angajați, codul este numărul de personal, iar numele este numele de familie, prenumele, patronimicul (numele complet).
Tipuri de date
Pentru fiecare atribut de dicționar, trebuie să specificați tipul său de date, de exemplu, „ număr", "linia", "data" (în versiunea 8.0 există și un tip boolean - Adevărat sau Fals). Acestea sunt tipuri de bază, dar pot fi specificate și tipuri de date complexe. De exemplu, un atribut Denumirea funcției are tip de date Poziții. În acest caz, valorile acestui atribut vor fi selectate din director Poziții. Așa este implementată cea mai simplă conexiune între directoare, când valorile atributelor unui director sunt selectate dintr-un alt director.
Directoare ierarhice
Lista elementelor de director din sistemul 1C: Enterprise poate fi pe mai multe niveluri. În acest caz, toate liniile directorului vor fi împărțite în 2 tipuri: elemente „simple” ale directorului și grupuri director. Grupurile vă permit să mergeți la nivelurile de bază ale unui director cu mai multe niveluri. Utilizarea directoarelor pe mai multe niveluri vă permite să organizați introducerea informațiilor în director cu nivelul dorit de detaliu. Elementele și grupurile de elemente dintr-un dicționar pe mai multe niveluri pot fi transferate de la un grup la altul.
Directoare subordonate
Se poate stabili o relație între directoare subordonare. În termenii bazei de date relaționale, între tabele se stabilește o relație unu-la-mulți. În acest caz, fiecare element al directorului subordonat va fi asociat cu unul dintre elementele directorului proprietar.Uneori se poate spune că elementele unui director aparține elemente ale celuilalt. De exemplu, sistemul poate avea un director de beneficii fiscale. Atunci se poate face subordonatii director Angajati. Înseamnă că „Angajatul deține beneficii fiscale”.
Director Angajatii |
Director Beneficii fiscale
|
|
( proprietar Petrov Petr Petrovici)
|
|
( proprietar Svetlov Mihail Petrovici)
|
Părți tabelare (numai versiunea 8.0)
În versiunea 8.0, a devenit posibil ca un element de căutare să aibă mai multe părți tabelare. Această caracteristică este recomandată a fi folosită pentru a reflecta informații legate de acest element, dar neavând propria sa entitate obiect (pentru care se recomandă crearea unui director subordonat). De exemplu, pentru ref. Secțiunea tabelă Mărfuri Se pot introduce unități de măsură, pentru cartea de referință se pot introduce secțiunile tabelul Angajații Educație și Compoziția familiei. Lucrul cu secțiuni tabulare este similar cu lucrul cu directoare subordonate, cu excepția faptului că secțiunile tabulare nu pot fi tipuri, ceea ce înseamnă că nu va mai fi posibil să se creeze un atribut de tipul Educație.
Compararea directoarelor cu alte obiecte
Un obiect |
Asemănări |
Diferențele |
constante | stochează o valoare, stocată în baza de date | Directorul stochează nu o singură valoare, ci o listă întreagă de obiecte omogene. |
Documentele | stocate în baza de date, are detalii, documentele pot fi subordonate între ele | Directorul stochează informații de reglementare și de referință, iar documentele reflectă evenimente lumea reala. De obicei, valorile detaliilor documentului sunt selectate din directoare. Documentul este de obicei postat, documentul trebuie să aibă dată și oră, documentul poate conține o secțiune tabelară, care nu se găsește în directoare (în versiunea 8.0, directoarele și documentele pot avea mai multe secțiuni tabelare). Directoarele pot fi pe mai multe niveluri, directorul poate conține detalii periodice, care nu se află în documente (în versiunea 8.0 nu există detalii periodice, dar există registre periodice de informații). |
Enumerări | stocat în baza de date, stochează o listă de valori | Setul de valori din referință este introdus de utilizator în modul Enterprise, iar pentru enumerari lista de valori este specificată de dezvoltator în modul Configurator. Enumerările sunt utilizate în mod obișnuit în declarațiile if. |
Tabel de valori | are rânduri și coloane (nu sunt stocate în baza de date) | Tabelul de valori este conceput pentru a stoca date intermediare în memoria computerului care apar în timpul funcționării programului. Tabelul de valori poate stoca obiecte eterogene, iar în director toate elementele de același tip. Tabelele cu valori nu pot fi pe mai multe niveluri sau subordonate unul altuia. |
Lista de valori | stochează o listă de valori (nu sunt stocate în baza de date) | Lista de valori poate stoca obiecte eterogene, iar în director toate elementele de același tip |
Bazele programării
Crearea și scrierea unui element nou
Găsirea unui element de director
DeskComp. FindByCode(123); //dacă elementul este găsit, acesta devine curent și poate fi citit astfel: Dacă Spr.FindBy Name("Ivanov Ivan Ivanovich")=1 Atunci |
|
FoundComp = RefComp. FindByCode(123); FoundComp = DepComp.FindBy Name(„Ivanov Ivan Ivanovich”); |
Ștergerea unei intrări din director
DeskComp. Șterge(1); //stergere imediata DeskComp. Șterge(0);
// marca pentru ștergere |
|
DeskComp. Setează Ștergerea semnalizatorului (adevărat);
//
marca pentru ștergere |
Iterarea peste elemente de director
|
|
|
Mamă
Repetați elementele dintr-un grup. Un grup în ceea ce privește 1C este un „părinte”.
|
|
|
Proprietar
Enumerarea elementelor directorului aparținând elementului altui director.
Un singur ghid subordonat o altă carte de referință, de ex. Beneficii fiscale supuse ref. Angajatii.
Cerințe periodice
Citirea și scrierea detaliilor periodice.
Setarea datei pentru eșantionarea detaliilor periodice pentru întregul director.
//asa stabilim categoria angajatului //puteți seta data prelevării periodice //apoi mai jos nu mai este posibil să utilizați Set și Get |
|
Nu există elemente de recuzită periodice în versiunea 8.0. În schimb, este necesar să se utilizeze registre de informații desfășurate la timp. |
Forme de ecran ale directoarelor
Formular de listă manual
Pentru confortul utilizatorilor care lucrează cu directorul în etapa de configurare, puteți crea mai multe tipuri formulare de ecran pentru a afișa ghidul. În funcție de contextul apelului de director, puteți specifica utilizarea unui anumit dialog pentru a lucra cu acesta.
Este mai bine să vezi o dată decât să auzi de o sută de ori, așa că mai jos este un exemplu de formă de listă a directorului Angajații:
|
|
Modulul formular listă conține proceduri și funcții care funcționează în contextul formularului dat (în contextul obiectului Catalog).
Proceduri predefinite sunt apelate de sistemul 1C la apariția anumitor evenimente. Procedurile predefinite sunt apelate de sistemul 1C atunci când apar anumite evenimente, deci sunt handlere de evenimente. În versiunea 8.0, numele procedurii poate fi orice, nu neapărat același cu numele evenimentului. În plus, în versiunea 8.0 lista de evenimente pentru toate obiectele a fost extinsă semnificativ.
Eveniment |
Descriere |
La Deschidere | Apelat când este deschis un formular de listă de căutare. Puteți seta valori inițiale pentru variabile, puteți verifica drepturile utilizatorului de a deschide acest director etc. |
La Închidere | Apelat când formularul listei de căutare este închis. |
La înregistrare | Apelat atunci când este scris un element de căutare, dacă elementele sunt introduse direct în formularul de listă, și nu în formularul de element. Acesta este folosit pentru directoare cu o structură simplă, cum ar fi directorul Jobs. În această procedură, puteți verifica datele pe care le introduceți pentru erori. Exemplu, referință la job |
La selectarea părintelui (Parinte nou) | Apelat când este selectat un părinte (grup). În această procedură, puteți verifica drepturile utilizatorului de a vedea membrii acestui grup. |
Când selectați un proprietar (proprietar nou) | Apelat când este selectat proprietarul directorului gazdă. Are sens dacă acest director este subordonat altuia. |
WhenSettingSelection(Atribut,Valoare) | O procedură predefinită pentru setarea interactivă a selecției în orice mod (selecție, selecție rapidă, selecție după valoare, istoric selecție) și când selecția este dezactivată. |
OnRowSelect() | Modul de procesare a selecției liniilor (dublu clic sau tasta Enter) este activat sub forma unei liste de referințe, jurnal de documente, facturi, jurnal de tranzacții, jurnal de înregistrare folosind metoda Form.Row Selection Processing (1). Apoi, când este selectat un rând, această procedură predefinită va fi apelată. |
Triere
În formularul de lista de căutare, elementele pot fi sortate într-o ordine diferită: după cod, după nume sau după orice atribut care are caseta de selectare Sortare selectată în Configurator.Puteți seta tipul de sortare în mod programatic utilizând metoda Sort(Method, ChangePermission Flag).
|
|
Procedura OnOpen() |
Selecţie
În formularul de lista de căutare, articolele pot fi filtrate, de ex. utilizatorului i se vor afișa doar elementele dorite. Puteți seta selecția în mod programatic folosind metoda SetFilter(Attribute, Value). Pentru a face acest lucru, atributul trebuie să aibă caseta de selectare „Selectare după atribut” din Configurator .
Filtru static (numai versiunea 7.7)
În 1C 7.7, este imposibil să setați selecția printr-un atribut periodic sau după mai multe atribute în același timp (filtru complex). În acest caz, metoda UseItemList poate fi calea de ieșire. Această metodă trebuie să i se transmită o listă de elemente care urmează să fie afișate. Această listă trebuie mai întâi generată.
Procedura ShowWorking Dulgheri()
EndProcedure |
|
Forma elementului și forma grupului
Dacă directorul are o structură complexă, atunci este mai convenabil să editați elementele sale într-o fereastră separată, decât într-o listă. Mai jos este forma elementului de director Angajați.
Formularul elementului de căutare are și proceduri predefinite (evenimente):
Evoluții |
Descriere |
OnOpen() | Denumit atunci când este deschisă forma elementului de dicționar. Puteți seta valori inițiale pentru variabile, puteți verifica drepturile utilizatorului de a deschide acest element al directorului etc. |
OnClose() | Apelat atunci când forma elementului de dicționar este închisă. |
Oficial() | Denumit atunci când este scris un element de dicționar. În această procedură, puteți verifica datele pe care le introduceți pentru erori. Exemplu, angajați de referință Procedura la scriere |
InputNew() | Apelat atunci când un nou element de dicționar este introdus interactiv. În această procedură, puteți verifica drepturile utilizatorului de a crea noi elemente ale directorului, precum și de a seta valorile inițiale ale detaliilor. |
Trebuie remarcat faptul că în versiunea 8.0 lista de evenimente pentru toate obiectele a fost extinsă semnificativ.
Crearea și scrierea unui element
Crearea programatică a unui element de director
Mai jos, în directorul Angajații este adăugat în mod programatic angajat nou la grupul de lucru. În cartea de referință sunt completate câmpurile Nume, Data acceptării și câteva detalii periodice.
si il poti face mai frumos: SprOtr = CreateObject("Directory.Employees"); |
|
Nou = Directories.Employees.CreateItem(); //în versiunea 8.0 nu există elemente de recuzită periodice |
Crearea de grupuri în mod programatic
SprOtr = CreateObject("Directory.Employees"); DeskComp. Un grup nou(); DepContr.NewGroup(); |
|
Nou = Directoare.Angajați .Pentru a crea un grup(); Nou = Directoare[„Angajații”] .Pentru a crea un grup(); |
Atenţie!
Tranzacții
Când creați multe articole de referință, pentru a accelera munca, puteți include bucla într-o tranzacție. În acest caz, crearea reală a tuturor elementelor va avea loc numai prin comanda FixTransaction(). Directorul este blocat pe durata tranzacției.
SprOtr = CreateObject("Directory.Employees"); Pentru Nom = 1 până la 100 Ciclu CommitTransaction(); |
|
Pentru Nom = 1 până la 100 Ciclu CommitTransaction();
|
Iterarea peste elemente
Enumerare simplă
SprOtr = CreateObject("Directory.Employees");
Mod = 0; //selectați fără a lua în considerare ierarhia, 1 - luând în considerare (în mod implicit)
DeskComp. Selectați articole(Mod);
În timp ce Spr. GetItem()=1 buclă
.....<действия с очередным элементом/группой>
EndCycle;
Filtrare (selectare)
SprOtr = CreateObject("Directory.Employees");
Modul Ierarhie = 1; //1- selectați ținând cont de ierarhie, 0 - fără a lua în considerare
Modul grup = 0; //0 - nu includeți grupuri în selecție, 1 - includeți
AttributeName = „Anul”; //în Configurator, atributul trebuie să aibă setată caseta de selectare
Valoare = 1980;
DeskComp. Selectați articole după elemente de recuzită(Nume atribut, Valoare, Modul Ierarhie, Modul Grup);
În timp ce Spr.GetItem()=1 buclă
.....<действия с очередным элементом>
EndCycle;
Filtrarea într-o buclă
SprOtr = CreateObject("Directory.Employees");
Spr.UseParent(groupWorking);
RefContr.UseDate(WorkDate());
DeskComp. Selectați articole();
În timp ce Spr. GetItem()=1 buclă
Dacă DeskEmp.Position<>jjCarpenter Atunci
....Continua; // sări peste acest angajat, mergeți la începutul ciclului
EndIf;<действия с очередным элементом>
EndCycle;
Ordinea de sortare
Înainte de selecție, puteți seta ordinea de sortare în următoarele moduri:
CodeOrder()
NumeComanda()
Ordinea atributelor(NameReq) //Atributul trebuie să aibă caseta de selectare Sortare din Configurator bifată
Ordine inversă()
De exemplu, mai jos este o selecție de angajați sortați după numere în ordine descrescătoare:
SprOtr = CreateObject("Directory.Employees");
RefStr.CodeOrder();
RefReverseOrder();
Ref.SelectItems();
Solicitare director
Enumerarea elementelor directorului poate fi organizată prin Solicitare. Adesea, acest lucru este mai convenabil dacă se aplică o condiție complexă de selecție sau o grupare de elemente. Pentru mai multe detalii, vezi Cereri
Găsirea unui element
Găsirea unui element
SprOtr = CreateObject("Directory.Employees");
Dacă Ref. FindElement(SelectReset)=1 Apoi
....//elementul devine curent
....StrOtr.Parent = grpWorking;
....Str.Write();
EndIf;
Cauta dupa cod
Dacă Ref. FindByCode(1) = 1 Atunci
....ElementOrGroup = Reftr.CurrentElement();
EndIf;
Cauta dupa nume
Dacă Ref. FindByName("De lucru")=1 Apoi
....grpWorking = RefStr.CurrentItem();
EndIf;
Mod = 1; // 1 - căutare în interiorul subordonării stabilite (părinte) (implicit); 0 - caută în întregul director
Indicatorul de căutare = 0; //1 - găsiți o potrivire exactă; 0 - găsiți numele după primele caractere (implicit)
Spr.UseParent(groupWorking);
Dacă Spr.FindByName("V",Mode,SearchFlag)=1, atunci
....FirstWorkingIv = RefCurrentItem();
EndIf;
Căutați după atribut
NameReq = „Anul”; //atributul trebuie să aibă caseta de selectare Sortare setată în Configurator
FlagGlobSearch = 1; // 1- cauta in intregul director, 0 - cauta in cadrul subordonatiei
Dacă Ref. FindBy Props(NameReq,1980,GlobSearchFlag)=1 Apoi
.....FoundItem = Reftr.CurrentItem();
EndIf;
Găsirea unui element într-o buclă
SprOtr = CreateObject("Directory.Employees");
Spr.UseParent(groupWorking);
RefContr.UseDate(WorkDate());
DeskComp. Selectați articole();
În timp ce Spr. GetItem()=1 buclă
Dacă Job Ref. Job = djCarpenter Atunci
....Abort; //găsește un tâmplar care lucrează! ieși din buclă
EndIf;
EndCycle;
<действия с найденным элементом>
Solicitare director
Căutarea unui element de director poate fi organizată printr-o Solicitare. Acest lucru este adesea mai convenabil dacă se aplică o condiție complexă de selecție. Pentru mai multe detalii, vezi Cereri
Îndepărtarea elementelor
Ștergerea directă
SprOtr = CreateObject("Directory.Employees");
AskEmployeeFindItem(ChooseEmployee);
RefStr.Delete(); //stergere imediata
Atenţie! Dacă ștergeți un element direct, atunci asigurați-vă că nu există referințe la el în alte obiecte. De exemplu, un angajat care urmează să fie șters poate fi folosit într-un document de vacanță. Eliminarea acestuia va rupe integritatea referențială a bazei de date. În acest caz, se recomandă utilizarea marcat pentru ștergere.
Puteți obține în mod programatic o listă de obiecte care conțin un link către obiectul care este șters folosind metoda FindReferences(object).
Marcați pentru ștergere
Pentru a controla integritatea referențială a bazei de date, elementele șterse sunt doar marcate pentru ștergere. Apoi o comandă specială de meniu Operații => „Ștergeți obiectele marcate” în modul exclusiv sistemul 1C va controla integritatea referenţială şi va şterge fizic elemente din baza de date dacă nu sunt referite în alte obiecte.
SprOtr = CreateObject("Directory.Employees");
AskEmployeeFindItem(ChooseEmployee);
Desp.Delete (0); // marca pentru ștergere
//poate verifica dacă elementul este marcat pentru ștergere
//funcția returnează 1 - dacă este bifată, 0 - dacă nu
Steagul = Ref. Îndepărtarea steagului();
//poate fi demarcat pentru ștergere
AskEmployeeFindItem(ChooseEmployee);
DeskComp. Anulați marcarea ștergerii();
Tranzacții
Când ștergeți multe elemente din director, pentru a accelera munca, puteți include ciclul într-o tranzacție. În acest caz, ștergerea reală (marcarea pentru ștergere) a tuturor elementelor va avea loc numai prin comanda CommitTransaction(). Cartea de referință este blocată pe durata tranzacției.
SprOtr = CreateObject("Directory.Employees");
StartTransaction();
Ref.SelectItems();
În timp ce Spr.GetItem()=1 buclă
......Strtr.Delete(0); // marca pentru ștergere
EndCycle;
CommitTransaction();
Directoare ierarhice
Lista elementelor de director din sistemul 1C:Enterprise poate fi pe mai multe niveluri. În acest caz, toate liniile directorului vor fi împărțite în 2 tipuri: elemente „simple” ale directorului și grupuri ale directorului. Grupurile vă permit să mergeți la nivelurile de bază ale unui director cu mai multe niveluri. Numărul posibil de niveluri de imbricare a directoarelor este setat în Configurator.
Utilizarea directoarelor pe mai multe niveluri vă permite să organizați introducerea informațiilor în director cu nivelul dorit de detaliu. Elementele și grupurile de elemente dintr-un dicționar pe mai multe niveluri pot fi transferate de la un grup la altul.
Atenţie! Ierarhic manualul este, de asemenea pe mai multe niveluri manual sau manual grupuri.
Grupul de directoare din 1C este adesea numit „ mamă".
Crearea grupurilor în mod programatic
SprOtr = CreateObject("Directory.Employees");
DeskComp. Un grup nou();
SprStr.Description = „În lucru”;
DeskComp. a arde();
DepContr.NewGroup();
SprEmployeeName = „Remis”;
Spr.Write();
Atenţie! În Configurator, puteți seta un atribut să fie valabil numai pentru element, numai pentru grup sau pentru ambele. De exemplu, câmpul IncomingDate nu are nicio semnificație pentru grupul Lucrători. Prin urmare, nu ar trebui să vă referiți la atributele elementului dacă lucrați cu un grup și invers.
Setarea grupului curent
DeskComp. UseParent(grupuri de lucru); // acum suntem în grupul de lucru
Ref.SelectItems(); //selecție deschisă a elementelor Grupului de lucru
SprOtr = CreateObject("Directory.Employees");
DeskComp. UseParent(grupuri de lucru);
RefStr.New(); //crearea unui nou element în grupul de lucru
Dacă directorul este pe mai multe niveluri, atunci va fi util să utilizați următoarele metode și atribute care vă permit să obțineți informații despre elementul curent al directorului:
Metodă / Atribut |
Descriere |
Nivel() | Această metodă returnează nivelul elementului curent. De exemplu, pentru un angajat care se află în grupul de lucru, vom obține numărul 2. Exemplu, afișarea unui director ierarhic sub forma unui arbore: SprOtr = CreateObject("Directory.Employees");
EndCycle; |
Acest grup() | Această metodă returnează 1 dacă elementul curent al dicționarului este un grup sau 0 dacă nu este un grup. Exemplu, rezultatul angajaților (grupurile nu sunt afișate): SprOtr = CreateObject("Directory.Employees");
EndCycle; |
Deținut deGroup(...) | Metoda verifică dacă elementul curent al dicționarului aparține grupului specificat (indiferent de nivelul de bază la care se află). Returnează: 1 - dacă elementul aparține grupului specificat, 0 - dacă nu. Exemplu, producția de mărfuri aparținând grupului de alcool, indiferent dacă acestea sunt incluse în subgrupele Șampanie, Bere, Vodcă, Vin etc.:
EndCycle; |
atributul Părinte | Acest atribut conține părintele elementului curent de dicționar, adică. grupul care conține elementul curent. Disponibil pentru citit și scris. De exemplu, transferul tuturor produselor din grupul Alcool în grupul Vânzare: SpecProducts = CreateObject("Catalog.Products");
EndCycle; Sau îl puteți face mai frumos și mutați întregul grup Alcool în grupul de vânzare, apoi toate subgrupurile și elementele vor fi, de asemenea, transferate în grupul de vânzare. SpecProducts = CreateObject("Catalog.Products"); |
FullCode() | Returnează un șir care conține codul complet al elementului de dicționar selectat cu toate nivelurile superioare separate prin simbolul „/”. De exemplu, „2/7/123” |
Numele complet() | Returnează un șir care conține numele complet al elementului de dicționar selectat cu toate nivelurile superioare separate prin caracterul „/”. De exemplu, „Alcool/Șampanie/Sovietic” |
Posibilitatea de a selecta un grup în atributul de dialog
Este adesea convenabil ca detaliile de pe formular, care sunt de tip Director, să dezactiveze posibilitatea de a selecta un grup. Atunci numai un element poate fi selectat în acest câmp și nu poate fi selectat un grup. În general, este mai ușor să încerci o dată decât să explici de mai multe ori.
Form.SelectEmployee. Selectați grupul(0); //dezactivează selecția grupului
Directoare subordonate
director- proprietar, este, de asemenea, un ghid- maestru.
Directorul proprietarului și directorul subordonat sunt, de asemenea, numite legate de carti de referinta.
În ceea ce privește bazele de date relaționale, directorul proprietar este tabelul părinte, directorul subordonat este tabelul copil.
Atribuirea directoarelor subordonate
Orice director poate fi folosit atât de unul singur, cât și subordonat oricărui alt director. De exemplu, un director de contracte poate fi folosit separat sau poate fi legat la un director de organizații.
Pentru a subordona un director oricăruia dintre directoarele care există deja în sistem, în câmpul „Subordonat”, selectați numele acestui director. Un astfel de director din sistemul 1C: Enterprise se numește proprietar.
Spre deosebire de un dicționar cu mai multe niveluri, în care toate elementele au aceeași structură, utilizarea mecanismului directoarelor subordonate vă permite să legați elemente din structuri diferite. În acest caz, fiecare element al directorului subordonat va fi asociat cu unul dintre elementele directorului proprietar.
În exterior, lucrați cu un director subordonat în sistemul 1C: Enterprise va arăta astfel.
Dacă modul de afișare este setat ca o listă ierarhică pentru o căutare subordonată, atunci înainte de a utiliza căutarea, trebuie mai întâi selectat un element al căutării proprietarului. Când este afișat pe ecran, catalogul subordonat va conține numele elementului proprietar în antetul său, iar lista de elemente din catalogul subordonat va conține doar elemente legate de elementul proprietar. Când elementul proprietar este schimbat, informațiile din fereastra subdirectorului vor fi actualizate în consecință.
Dacă deschideți un director subordonat fără a selecta un element proprietar, atunci niciun element nu va fi afișat în fereastra directorului subordonat, iar mesajul „Element proprietar nesetat” va fi afișat în titlul ferestrei.
Când lucrați cu sistemul 1C:Enterprise, afișarea sub forma unei liste ierarhice poate fi dezactivată pentru un director subordonat. În acest caz, fereastra directorului subordonat va afișa toate elementele acestui director, adică elementele reparate de diferiți proprietari vor fi afișate amestecate. Totuși, orice element al directorului subordonat „își cunoaște” proprietarul: dacă modul „Editare în dialog” este activat pentru director (vezi mai jos p. „Crearea formularelor de director”), numele proprietarului elementului va fi afișat în antetul ferestrei de editare a elementelor de director.
Setarea proprietarului actual
SprContracts.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //deschideți selecția pentru contractele contrapărții selectate
<...>
Informații despre elementul curent
Dacă directorul este subordonat, atunci va fi util să utilizați următoarele metode și atribute care vă permit să obțineți informații despre elementul curent al directorului:
Atribut |
Descriere |
Proprietarul atributului | Acest atribut conține proprietarul elementului curent al directorului subordonat, adică. elementul director gazdă căruia îi aparține acest element. Atributul poate fi citit și scris. De exemplu, transferul tuturor contractelor de la o contraparte la alta (directorul Contracte este subordonat directorului Contrapărți): SprContracts = CreateObject("Directory.Contracts");
EndCycle; |
Cerințe periodice
Activarea opțiunii „Periodic” vă permite să specificați stocarea istoricului modificărilor în valoarea sa pentru atributul de căutare. Un astfel de atribut în sistemul 1C:Enterprise se numește periodic și are următoarea proprietate: spre deosebire de atributele „regulate” (neperiodice), sistemul 1C:Enterprise stochează valorile unui astfel de atribut în funcție de data la care au fost modificate. . La accesarea valorii unui astfel de atribut pentru o anumită dată, se afișează valoarea acestuia pentru această dată sau, dacă nu există, pentru cea mai apropiată dată anterioară la care a fost setată valoarea atributului.
O astfel de proprietate a atributului de director permite, de exemplu, organizarea cu ușurință a stocării istoricului modificărilor cursului în directorul valutar.
Atributele periodice pot fi accesate folosind limbajul încorporat al sistemului 1C:Enterprise - obțineți și înregistrați valoarea atributului pentru data specificată. Cu toate acestea, trebuie avut în vedere că atunci când se obține valoarea unui atribut pentru o anumită dată, valoarea acestuia este preluată pentru data specificată sau (dacă nu există nicio valoare pentru data specificată) pentru cea mai apropiată dată anterioară, iar valoarea lui atributul periodic se înregistrează întotdeauna la data specificată.În modul de utilizare a configurației pentru un atribut periodic, puteți apela fereastra „Istoric”. Această fereastră este un tabel format din două coloane: data modificării valorii atributului de referință și valoarea pentru această dată. Fereastra „Istoric” vă permite să editați direct istoricul modificărilor valorii atributelor: introduceți linii noi, editați sau ștergeți pe cele existente.
Metode periodice necesare
// așa aflăm ce categorie avea angajatul la o anumită dată
Categorie = Spectr.Category.Get(SomeDate);
//Așa setăm categoria pentru angajat la o anumită dată
Ref.Category.Set(SomeDate, NewCategory);
Atenţie! Puteți utiliza aceste metode dacă nu ați folosit anterior metoda UseDate.
Stabilirea datei de prelevare a detaliilor periodice
//puteți seta data pentru eșantionarea detaliilor periodice pentru întregul director
DeskComp. UseDate(SomeDate);
//apoi mai jos deja este interzis utilizați metodele Set și Get
//accesul la recuzita periodică devine același cu recuzita obișnuită
Categorie = RefStr.Category;
Spr.Salariu = 6000;
Obiect „Periodic”
Pentru a lucra cu istoricul unui atribut periodic, este foarte convenabil să folosiți obiectul „Periodic”.
De exemplu, afișați istoricul carierei unui angajat pentru anul curent:
CareerHistory = CreateObject(„Periodic”);
CareerHistory.UseObject(„Posiție”,SelectEmployee);
CareerHistory.SelectValues(StartYear(WorkDate(),EndYear(WorkDate()));
WhileHistoryCareer.GetValue()=1 buclă
....Raport(String(CareerHistory.DateValue) + " " + String(CareerHistory.Value));
EndCycle;
De asemenea, puteți edita și șterge valori folosind obiectul Periodic. Consultați Syntax Helper pentru o listă completă de metode.
Deținerea de documente
Când postați un document, este adesea necesar să setați o nouă valoare pentru un atribut periodic la o anumită dată. Aceasta se numește mișcare de documente. În acest caz, ar trebui să utilizați metoda SetDirectoryAttributes:
Setați directorul de recuzită(Angajat, „Posiție”, Poziție nouă, MoveDate);
EndProcedure
Dacă documentul are parte tabularăși doriți ca mișcările documentului să fie legate de numărul de linie al documentului, atunci ar trebui să utilizați metoda AnchorLine.
Manevrarea proceduriiPerforming()
SelectRows();
În timp ce GetString()=1 buclăAnchorString(Numărul liniei);
SetDirectoryAttribute(Angajat, „Poziție”, Poziție nouă, MoveDate);EndCycle;
EndProcedure
Selectare din director
Funcția de selecție vă permite să selectați mai multe valori dintr-un dicționar sau alt obiect fără a-l închide.De exemplu, există un document Factură în care utilizatorul poate specifica mai multe articole.
Organizarea selectiei
Sintaxă: OpenSelection(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)
OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);
...Linie nouă();
...Articol = Articol;
EndProcedure
Puteți folosi contextul formularului și accesați direct grupul dorit, de exemplu:
OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);
Cont.UseParent(gpAlcohol);
ProcessingProcedureSelection(Element,ContForm)
...Linie nouă();
...Articol = Articol;
EndProcedure
Setarea și obținerea de valori dintr-o selecție
ContFormsSelection. SetValueInSelection(<ИмяРеквизита>,<Значение>)
<ИмяРеквизита>- un șir cu numele atributului formularului de selecție a valorii;
<Значение>- valoarea atributului.
ContFormsSelection. GetValueFromSelect(<Выражение>)
<Выражение>- expresie șir, a cărei valoare este calculată în contextul formularului de selecție și returnată ca rezultat.
Alte metode utile
Metodă |
Descriere |
Vedere() | Setați sau citiți numele curent al vizualizării directorului. Returnează numele curent al tipului de director, așa cum este setat în Configurator, de exemplu „Angajați”. Setarea tipului de director este posibilă pentru detaliile tipului „Director”, adică. carte de referință de tip nedeterminat. |
ViewView() | Obțineți o vizualizare personalizată a vizualizării catalogului, așa cum este specificată în configurator. Returnează o valoare șir care conține o reprezentare personalizată a vizualizării de căutare (sinonim). |
SetAttribute(AttributeName, Value) | Setați valoarea atributului după numele său. <ИмяРеквизита>- o expresie șir care conține numele atributului, așa cum este specificat în configurator.<Значение>- o expresie care conține valoarea atributului care trebuie setat. |
GetAttribute(AttributeName) | Obțineți valoarea atributului după numele său. Returnează valoarea atributului. |
Selectat() | Returnează 1 - dacă elementul dicționar este selectat, 0 - dacă nu este selectat. Adesea folosit pentru a verifica erorile, astfel încât să fie specificate toate datele necesare. |
Alege(...) | Apelarea unui dialog pentru selectarea unui element de referință. Returnează: 1 - dacă elementul este selectat; 0 - dacă nu este selectat. Elementul selectat devine cel curent. |
Citirea structurii directoarelor
Ciclul directorului
Number ofCatalogsInConfiguration = Metadata.Catalog();
Pentru Nom=1 la NumReferencesInConfiguration Loop
cfgSpr = Metadate.Directory(Nom);
Identificator = cfgSpr.Identifier();
FullIdentifier = cfgRef.FullIdentifier();
Sinonim = cfgSpr.Synonym();
Bună ziua, dragii noștri colegi și parteneri. În ultima lună, am primit câteva întrebări de la utilizatorii programului 1C Accounting 8.3 cu o solicitare de a ajuta la configurarea listei de articole din program așa cum era în 8.2. Adică în program vechi puteau vedea articolul sau codul poziției din nomenclatură în lista de nomenclatură. A fost foarte convenabil. Dar în 8.3 nimic nu este vizibil și de neînțeles. De fapt, totul este foarte ușor de configurat. Prin urmare, am decis să scriem o mică instrucțiune pentru configurarea directoarelor în programul 1C Accounting 8.3, dar acest algoritm este aplicabil în orice configurație 1C.
Deci, în secțiunea „Referințe”, deschideți directorul „Nomenclatură”.
În lista care se deschide, vedem numele articolului, în care nu există informații despre articolul produs. Pentru a modifica prezentarea directorului, vom folosi setările formei acestuia. După ce am deschis lista de comenzi făcând clic pe butonul „Mai multe”, în partea de jos vom găsi „Modificare formular”.
În formularul care se deschide, ni se prezintă toate detaliile directorului care pot fi afișate pe ecran.
Setând caseta de selectare corespunzătoare, de exemplu „Cod” și „Articol”, vom obține o listă de articole, care afișează atât codul, cât și articolul.
Cu toate acestea, în această formă, unor utilizatori, de asemenea, nu le place directorul. Vor să vadă numărul și articolul înainte de numele produsului. Acest lucru este, de asemenea, foarte ușor de rezolvat. Din nou, deschideți formularul de setări ale listei și utilizați săgețile albastre de pe bara de instrumente pentru a muta elementele de recuzită în sus sau în jos, în funcție de modul în care dorim să vedem lista. De asemenea, puteți „trage” detaliile cu butonul stâng al mouse-ului.
Acum lista de nomenclatură este așa cum ați vrut să fie.
Experimentați cu setările listei. Nu-ți fie frică. Tot ceea ce am scris poate fi folosit în orice configurație pe formulare gestionate și în orice director, de exemplu, afișarea punctului de control în directorul „Contractanti” sau numărul contractului în directorul „Acorduri”. Nu vă fie teamă că veți „spărge” ceva din program.
Ca ultimă soluție, veți fi întotdeauna salvat de opțiunea „Setați setările implicite”, care se află în setările formularului din secțiunea „Mai multe”.
Și mai departe. Uneori clienții sună cu această întrebare: „Am dat clic pe ceva și acum numele mele nu sunt în ordine alfabetică. Pune totul înapoi așa cum a fost.” Această problemă este, de asemenea, ușor de rezolvat. În fiecare carte de referință, în bara de titlu a secțiunii tabelare, există întotdeauna o „săgeată magică” care indică coloana prin care este stabilită sortarea și direcția acestei sortări.
Puteți schimba direcția de sortare pur și simplu făcând clic pe această săgeată și apoi lista va fi sortată, de exemplu, de la Z la A. Dacă dorim ca sortarea mărfurilor să fie după cod, atunci pentru aceasta trebuie să facem clic pe nume din coloana corespunzătoare „Cod” și „săgeată magică” se vor muta în altă coloană.
OK, totul sa terminat acum. Sper că sfaturile mele vă vor ajuta să lucrați cu programele 1C. Lucrați în 1C cu plăcere. Alăturați-vă grupurilor noastre de contact și colegilor de clasă și veți fi întotdeauna primul care află despre noile noastre articole și modificări ale programelor.