Acasă / Siguranţă / Înlocuirea automată a datelor dintr-un document 1C. IX. Înlocuirea automată a prețurilor în document la selectarea articolelor. Completarea detaliilor statisticilor

Înlocuirea automată a datelor dintr-un document 1C. IX. Înlocuirea automată a prețurilor în document la selectarea articolelor. Completarea detaliilor statisticilor

/
Contabilitate pentru Ucraina /
Lucrul cu documente, cărți de referință și rapoarte

Cum să setați organizația principală pentru înlocuire în documente

Această secțiune descrie cum să configurați o organizație principală pentru înlocuirea automată în documente noi.

Instalare din director

În directorul organizațiilor (meniul „Întreprindere” - „Organizații”) este evidențiată organizația principală cu aldine. Aceasta înseamnă că atunci când se creează documente noi, acestea vor fi introduse automat.

Pentru ca o altă organizație să fie cea principală, trebuie să selectați această organizație din listă și să faceți clic pe butonul Setați principalulîn panoul de comandă.

Conectare Cod Preoix Nume l w 00000001 la Dobro 000000001 DB Do5ro5ut 00000006 DU Do st eka și instalare 00000005 NF National S0000001 nsho Organizația noastră" width="757" height="216" border="0">

NOTA
Organizația principală este salvată în setările utilizatorului. Pentru fiecare utilizator, organizația principală este indicată individual.

Selectarea documentelor în funcție de organizația principală

În setările utilizatorului (meniul „Serviciu” - „Setări utilizator”) puteți seta modul de selecție automată a documentelor pentru organizația principală. Aceasta înseamnă că toate jurnalele și listele de documente vor afișa doar documentele de la organizația principală.

Selectarea documentelor din jurnale este controlată de steag Contabilitate pentru toate organizațiile. Când este instalat, jurnalele afișează documente pentru toate organizațiile. Când marcajul este șters, în jurnale sunt afișate doar documentele pentru organizația principală.

Dacă este necesar, organizația principală poate fi schimbată direct în setările utilizatorului din grupul „Valori de bază pentru înlocuirea în documente și directoare”.

Sarcina 1. Crearea unei liste derulante

1. Deschideți fișierul Ex03_1.xlsx.

2. Pe o foaie Preţ Există un tabel de mărfuri cu prețuri.

3. Dați nume intervalelor cu numele produsului ( Produs) și tabelul de preț ( Masă) (Figura 1). Numele intervalelor sunt specificate pentru utilizarea lor ulterioară în formule și pentru a face lucrul cu intervale mai ușor. Numele intervalului poate fi specificat prin câmpul pentru numele celulei sau în meniul contextual selectați o echipă Atribuiți un nume(desigur, într-un caz sau altul, trebuie selectat anterior un interval de celule, așa cum se arată în Figura 1).

Figura 1

4. Pe foaia de vânzări din coloană Numele produsului creați o listă derulantă și completați-o cu date.

Pentru a crea o listă derulantă, trebuie să selectați celulele (puteți avea mai multe simultan) în care doriți să obțineți o listă derulantă și să selectați din filă Date buton Verificarea datelor (Figura 2).

Figura 2

Pe prima filă Opțiuni din lista derulantă Tip de date selectați o opțiune Listă si intra in linie Sursă= și numele intervalului cu datele necesare (de ex. =Produs) (Figura 3). Clic Bine.

Rezultatul creării unei liste derulante este prezentat în Figura 4.

Dacă setul de valori din sursă se poate modifica, este mai bine să inserați sau să eliminați date în mijlocul listei.

Figura 3

Figura 4

Vă prezentăm funcțiile MATCH și INDEX

Funcțiile MATCH și INDEX sunt utilizate în principal pentru a înlocui automat datele într-un tabel dintr-un interval dat.

Sintaxa funcției

MATCH(valoare_căutare, matrice, tip_potrivire)

Matrice este un bloc format dintr-o coloană sau un rând.

Tip_potrivire este numărul -1, 0 sau 1.

Dacă tip_potrivire este egal cu 1, apoi funcția CĂUTARE găsește cea mai mare valoare care este mai mică decât valoare_căutare sau egal cu acesta. Vizualizat matrice trebuie comandat în ordine crescătoare.

Dacă tip_potrivire egală 0, Funcția MATCH găsește prima valoare care este exact egală cu argumentul valoare_căutare. Vizualizat matrice poate fi dezordonat.

Dacă tip_potrivire este egal cu -1, apoi funcția CĂUTARE găsește cea mai mică valoare, care este mai mare decât search_value, sau egal cu acesta. View_array trebuie ordonat în ordine descrescătoare.

Dacă tip_potrivire este omis, se presupune că este egal cu 1 .

Funcţie CĂUTARE returnează poziția valorii căutate în matrice, nu valoarea în sine.

Funcţie INDEX are două forme. Vom lua în considerare doar unul.

INDEX(tabel; număr_rând; număr_coloană)

Această funcție selectează dintr-un bloc dreptunghiular (tabel) un element specificat de numere de rând și de coloană, iar aceste numere sunt numărate din elementul din stânga sus al blocului.

Să vedem cum funcționează aceste funcții folosind exemple specifice.

Sarcina 2. Introducere în funcția MATCH

Folosind funcția MATCH(), determinați poziția produsului cu numele „Iaurt” în gamă Produs. Pentru a face acest lucru:

1. în e-carte Ex03_1.xlsx du-te la foaie Preţși plasați cursorul foii în orice celulă liberă;

2. introduceți formula =MATCH(„Iaurt”;Produs;0) în această celulă, adică Indicăm folosind această funcție că trebuie să găsim elementul „Iaurt” (valoarea textului în funcții este întotdeauna indicată între ghilimele) în interval Produs, tip potrivire 0 – potrivire exactă;

3. Apăsaţi Enter. Ca rezultat, ar trebui să obțineți numărul 7 (Figura 5).

Figura 5

Într-adevăr, dacă te uiți la gamă Produs, atunci poziția iaurtului corespunde acestei cifre. Merită să ne amintim că poziția valorii în matrice, i.e. într-un interval dat, numărat de la începutul intervalului. Se pare că, dacă adăugăm un nou rând la începutul tabelului de date, valoarea „Iaurt” se va deplasa la rândul numărul 8, dar intervalul Produsîncepe cu valoarea „Lapte”, deci de la începutul intervalului poziția iaurtului va corespunde în orice caz cu numărul 7 (Figura 6).

Figura 6

Vă rugăm să rețineți că valoarea pentru funcția MATCH() poate fi specificată fie valoarea în sine, fie numele celulei în care se află această valoare. De exemplu, intrarea =MATCH(A7;Product;0) va oferi același rezultat ca atunci când utilizați intrarea =MATCH(„Iaurt”;Product;0).

Sarcina 3. Introducere în funcția INDEX

Să ne amintim că funcția INDEX() selectează dintr-un bloc dreptunghiular (tabel) un element specificat de numerele de rând și de coloană, iar aceste numere sunt numărate din elementul din stânga sus al blocului.

Utilizați funcția INDEX() pentru a găsi într-un interval Produs element situat în poziţia a cincea. Pentru a face acest lucru:

1. într-o carte electronică Ex03_1.xlsx pe o foaie Preţ plasați cursorul foii în orice celulă liberă;

2. Introduceți următoarea funcție în această celulă =INDEX(Produs;5). Apăsați Enter. Rezultatul este prezentat în Figura 7.

Figura 7

Rețineți că am specificat doar valorile intervalului și numărul rândului pentru funcția INDEX. Nu am indicat numărul coloanei. Acest parametru este opțional dacă căutăm o valoare într-un tabel (interval) format dintr-o coloană. Dacă trebuie să găsim o valoare într-un tabel (interval) format din mai multe coloane, atunci în formulă, pentru o căutare mai precisă a valorii, este necesar să se indice numărul coloanei.

În noua celulă, introduceți formula =INDEX(Tabel;8;2). Ca rezultat, veți găsi costul șuncii (Figura 8).

Figura 8

Înlocuirea automată a datelor

Când lucrați cu o listă derulantă, puteți automatiza introducerea datelor în tabel. De exemplu, există o listă de prețuri care conține numele bunurilor și prețurile acestora. Puteți organiza selectarea numelui produsului din listă și înlocuirea automată a prețului produsului în tabelul final.

Înlocuirea automată a datelor dintr-un tabel de căutare se bazează pe utilizarea combinată a funcțiilor INDEX și SEARCH.

Sarcina 4. Combinarea funcțiilor MATCH și INDEX

În carte electronică Ex03_1.xlsx pe o foaie Vânzăriîn coloană Preţ, folosind funcțiile MS Excel, asigură înlocuirea automată a costului mărfurilor din foaie Preţ, în funcție de valoarea selectată din lista derulantă de pe foaie Vânzări.

1. Plasați cursorul foii de lucru în celula C2 și introduceți următoarea formulă în el:

2. Apăsaţi Enter. Ca urmare, veți primi în celula C2 costul produsului al cărui nume este indicat în coloana alăturată (Figura 9). Când selectați un alt nume de produs din lista derulantă, valoarea prețului se va modifica în consecință.

Figura 9

3. Folosind marcatorul de completare automată, duplicați această formulă până la sfârșitul tabelului (Figura 10).

Figura 10

Să descifrăm această formulă. Această formulă începe cu funcția MATCH, care ne permite să găsim poziția valorii din celula B2 pe foaia de lucru Vânzăriîn gamă Produsîn afara paginii Preţ, și tipul de precizie 0. De exemplu, dacă utilizați lista de produse, care este prezentată în Figura 10, atunci funcția CĂUTARE caută poziția pâinii, al cărei nume este indicat în celula B2 din coloană Numele produsuluiîn gamă Produs pe o foaie Preţ. Această poziție va fi egală cu 3. Prin urmare, în memoria computerului formula pe care am introdus-o este

=INDEX(Tabel, MATCH(B2, Produs, 0), 2)

va lua forma

=INDEX(Tabel,3,2)

Parametrul „3” este rezultatul funcției SEARCH.

În continuare, intră în joc funcția INDEX, care va căuta în interval Masă pe o foaie Preţ valoarea situată la intersecția celui de-al treilea rând și a doua coloană. (Vă reamintim că intervalul Masă este format din două coloane). Această valoare va fi costul mărfurilor, în în acest caz, pâine = 27.

Sarcina 5. Proiectarea tabelului final

Pe o foaie Vânzăriîn coloană Cantitate introduceți valori arbitrare. Calculați valorile într-o coloană Total.

Sarcina 6. Sarcina independentă

Deschideți fișierul Cadre.xls . Este necesar să automatizezi modificările salariilor pe o foaie Personal .

De exemplu, este necesar să transferați unii dintre manageri și să transferați manageri superiori sau consultanți la încărcătoare. Trebuie să efectuați această operațiune pentru patru angajați. Odată cu postul ar trebui să se schimbe și salariul.

Creați o foaie nouă și denumiți-o Stat .

Copiați pe foaie Stat coloane Denumirea funcțieiŞi Salariu.

Eliminați angajații duplicați. Pentru a face acest lucru:

1. Selectați coloanele poziție și salariu.

2. Pe fila Date faceți clic pe butonul Eliminați duplicatele .

3. Scoateți bifa din coloană Salariu.

4. Faceți clic pe butonul Bine.

Pentru a putea schimba pozițiile, pe foaie PersonalÎn coloana de poziție, creați o listă derulantă. În acest caz, va trebui să modificați și salariul oficial pentru a face acest lucru, vom automatiza acest proces, astfel încât atunci când vă schimbați postul, Excel însuși să modifice salariul. Pentru a face acest lucru, folosim funcțiile: CĂUTARE și INDEX.

Orientări

1. Selectați pe foaie Stat gama de pozitii. Dați un nume intervalului selectat denumirea funcției.

2. Selectați pe foaie Stat interval de salariu. Dați un nume intervalului selectat salariu.

3. Pe o foaie Angajațiiîn coloană Salariu introduceți formula pe care ar căuta-o pe foaia de lucru Statîn gamă denumirea funcției poziție corespunzătoare poziției angajatului și apoi din interval salariu foaie Stat a introdus un salariu corespunzător postului găsit.

4. După introducerea formulei, asigurați-vă că salariul rezultat corespunde efectiv cu salariul funcției de angajat din fișă Stat.

5. Modificarea salariului lui Ch. contabil pe foaie Stat. Verificați dacă salariul corespunzător s-a modificat pe foaie Angajații.

Să rezolvăm următoarea problemă. Este necesar ca la crearea sau modificarea unui document de Prestare de servicii și la adăugarea oricărei game de servicii în partea tabelară, să se introducă imediat prețul curent obținut din registrul de informații și corespunzător datei documentului.

Pentru a face acest lucru aveți nevoie de:

    scrieți o funcție RetailPrice care va returna prețul curent;

    apelați funcția atunci când un element nou este adăugat la document.

Deoarece o astfel de funcție poate fi necesară în viitor, o vom scrie într-un loc „accesibil public” - într-un modul comun.

1. Creați o funcție Prețul de vânzare cu amănuntulîn ramura General – Module generale cu denumirea Lucrul cu directoare. Setați steag Apel pe server(astfel încât procedurile de export și funcțiile acestui modul să poată fi apelate de la client) (Fig. 71a).

Orez. 71a. Proprietăți comune ale modulului

2. Puneți următorul text în modul.

Funcția RetailPrice(CurrentDate,ServiceNomenclatureElement)Export

//Creează un obiect auxiliar Selection

Selecție = Structură nouă(„Nomenclatură de servicii”, Element de nomenclatură de servicii);

//Obțineți valorile actuale ale resurselor de registry

ResourceValues=InformationRegisters.Prices.GetLast(CurrentDate, Selection);

ReturnResourceValue.Price;

EndFunction

Să explicăm funcția.

Pentru a obține prețul cu amănuntul, trebuie să treceți doi parametri funcției:

    CurrentDate– un parametru de tip Date, definește punctul de pe axa timpului în care ne interesează valoarea prețului de vânzare cu amănuntul.

Această structură conține Selecţie conform măsurătorilor registrului. Cu ajutorul acestuia, se determină dimensiunea necesară a registrului Nomenclatorului Serviciilor, care este egală cu referința la elementul de director transmis funcției.

Numele cheii de structură ("H Nomenclatorul Serviciilor") trebuie să se potrivească cu numele dimensiunii registrului specificat în configurator și cu valoarea elementului de structură ( Elementul Nomenclatorului Serviciilor) specifică valoarea selectată pentru această dimensiune.

Al doilea rând conține un apel către managerul registrului de informații Prețuri ( Registre de informații) și execuția metodei RunLast(), care returnează valoarea resursei celei mai recente intrări din registru corespunzătoare datei transmise funcției ( CurrentDate) și înregistrați valorile de măsurare Selecţie.

Metodă Obțineți cele mai recente returnează o structură care conține valorile resurselor, care este stocată într-o variabilă ResourceValues.

În rândul următor obținem prețul de vânzare cu amănuntul necesar indicând numele resursei de registru necesare, separate printr-un punct ( ValoareResurse.Preț) și returnați-l când funcția este executată.

Că. această funcție poate fi apelată la un moment dat.

Trebuie deschis Formular document Executarea Serviciilor(a fost creat mai devreme). ÎN Modul formular necesar adăugați Procedură la modificare.

Pentru a face acest lucru, faceți dublu clic pe elementul de formular Listă de articole și servicii (Fig. 71b).

Orez. 71b. Elemente ale documentului de performanță a serviciului

În fereastra de proprietăți din eveniment WhenChange creați un handler de evenimente cu următorul text:

&OnClient

Procedură Lista de nomenclaturi Serviciul la schimbare (Element)

//Obțineți următorul rând al secțiunii tabelului

TabularPart Row = Elements.List of Nomenclature.CurrentData;

//Setați prețul

TabularPart Row.Price = Lucrul cu Directories.RetailPrice(Object.Date, TabularPartLine.Service);

Sfârșitul procedurii

Să explicăm funcția.

Prima linie este deja cunoscută: mai întâi obținem linia curentă a părții tabelare a documentului, deoarece vom avea nevoie de el mai târziu și îl vom salva într-o variabilă RowTabularPart.

Apoi numim functia Prețul de vânzare cu amănuntul() dintr-un modul comun Lucrul cu directoare.

Primul parametru al funcției este trecerea datei documentului pentru care trebuie să obțineți prețul. Primim data documentului din principalele detalii ale formularului - Obiect.Data.

Funcția returnează ultima valoare a prețului, iar această valoare este atribuită câmpului Preț din rândul curent al părții tabulare a documentului ( RowTabularPart.Price).

Vă rugăm să rețineți că procedura Lista de nomenclaturiServiceWhenChanged()începe să lucreze în modulul formular pe partea client, deoarece Acesta este handlerul de evenimente interactiv al formularului. La crearea unui șablon pentru această procedură, platforma va plasa automat o directivă de compilare înainte de descrierea procedurii &OnClient.

Apoi numim functia Prețul de vânzare cu amănuntul(). Deoarece această funcție nu va fi găsită pe partea clientului, apoi execuția va fi transferată la modul comun Lucrul cu directoare, care rulează pe server. După finalizarea funcției, codul programului va continua să se execute pe client.

Să verificăm pașii de mai sus și să lansăm aplicația în 1C: modul Enterprise. Să lucrăm cu configurația dezvoltată.

INTRODUCEREA DATELOR ÎN DB

1. Introduceți cel puțin 8 documente Prestare de servicii în aplicație.

Întrebare: Înlocuirea codului în câmpul 1c


Buna ziua, va rog sa-mi spuneti in ce camp trebuie sa inserez o procedura care sa conteze numarul de zile dintre date, am gasit procedura in sine, dar raspunsul la aceasta intrebare este nu

Există câmpuri - data de check-in, data check-out și un câmp de cantitate, unde diferența dintre primele două valori ar trebui să scadă
La ce eveniment ar trebui să adăugați procedura?

Răspuns:În evenimentul „OnChange” din câmpul Data plecării:

Întrebare: Înlocuirea automată a datelor nu funcționează

Răspuns:

Multumesc tuturor pentru raspunsurile voastre:
1) 1C:Enterprise 8.3 (8.3.4.437), Contabilitate pentru Ucraina: versiunea 2.0.4.3.
2) Mai ales pentru nsk1C: „Aveți întotdeauna acest obicei de a căuta acolo unde nu trebuie, în întrebarea mea nu există niciun cuvânt despre cota de bază de TVA - acesta este, în primul rând, în al doilea rând, citiți cu atenție decretul de interzicere a produselor 1C în Ucraina și atunci scrie-ți deja gândurile..."

Vă mulțumesc pentru răspuns, dar aș dori să știu mai precis unde este setat acesta din cod.

Întrebare: Câmp de introducere și Enter la sfârșit


Formulare gestionate, lucru într-un client web.
Situație: a programat scanerul la F7 + cod de bare + enter. Am încercat multe opțiuni, dar codul nu poate fi citit prin „ShowValueInput”. Am renunțat la această opțiune.
2. A creat un formular cu un câmp de intrare. Folosind F7 se deschide formularul, apare codul in campul de introducere, introduceti, apoi apasati si pe el (se bifati in camp document text). Încerc să prind evenimentul End of Text Input, dar nu funcționează pentru că... funcționează când apăsați fizic enter pe tastatură. Evenimentul AutoFit nu este cea mai bună opțiune pentru mine, deoarece... Codul de bare poate fi introdus manual și apoi trebuie să vin cu un fel de cârjă pentru a ocoli mica întârziere dintre clicuri.
Spune-mi, te rog, există opțiuni mai ușoare?

Răspuns:() se deschide formularul, se transmite codul - evenimentele nu sunt procesate

Întrebare: raportul ACS și câmpul tabelului


Creez un raport folosind ACS. Cum pot afișa rezultatul într-un câmp de tabel? Nu într-un câmp dintr-un document de foaie de calcul, ci într-un câmp de tabel.

Răspuns: Un câmp dintr-un document foaie de calcul este un element de formular (în el sunt afișate datele) care aparține atributului (formular) Document foaie de calcul.
Scrieți o valoare într-un document de foaie de calcul, iar câmpul Document de foaie de calcul afișează această valoare pentru dvs.
Cum pot scrie valoarea acolo?

Întrebare: Concentrarea pe teren funcționează ciudat


Configurație autoscrisă pe 1C (8.3.8.2088), formulare gestionate, interfață taxi.

Atașez evenimentul OnChange la câmp cu următorul cod:

1C
1 2 3 4 StandardProcessing = Fals ;

SelectionData = NewValueList;

SelectionData. Adaugă(Număr.Obiect) ;

Am pus un cod la sfârșitul introducerii textului

Totul funcționează, dar cumva este strâmb.

Elementul se concentrează, dar cumva doar jumătate, așa cum se poate vedea în imagine:

Răspuns: A devenit după cod:

Adică, cadrul galben și designul câmpului au dispărut. Funcționează, dar nu este frumos, atrage privirea.


Ei bine, pe scurt, atunci când numărul se schimbă, apare un formular de litere, în care persoana completează motivul modificării, dacă persoana pur și simplu închide formularul, atunci valoarea veche este returnată, iar focalizarea rămâne în câmp. Există alte idei despre cum să faci asta cel mai bine?
Întrebare: câmp tabel formular

Bună ziua.

Există un formular standard de selecție a articolului (ut11), care nu afișează numele, ci doar numărul articolului!

Am încercat să returnez setările standard ale formularului - fără niciun rezultat, câmpul/coloana nu este afișată.
Configurator:

Câmpurile au din. Lista este setată la „Utilizați întotdeauna”.

Chiar și depanarea OnFormCreate() și OnOpen() arată asta

Elements.ListAdvancedSearchNomenclature.SubordinateElements
disponibil, totul este în modul vizibilitate și accesibilitate, nu există opțiuni funcționale!

Răspuns:

atunci oh! Tocmai am reușit să trag câmpul de nume într-un alt grup și nu a devenit vizibil,
iar pe primul buton Inca nu a fost restaurat, eram sigur ca te va ajuta.

Întrebare: Cum pot afișa codul mai degrabă decât numele atunci când selectez un element de director?


există o filă. parte, conține un câmp cu tipul directorylink. Cum pot afișa codul atributului mai degrabă decât numele atunci când selectez un element în acest câmp? (formulare gestionate)

Răspuns: Tklwegsd,))) Da, aceasta este exact întrebarea

Mesaj de la polax

Nu puteți adăuga câmpul Cod la tabel?

Întrebare: Câmp de selecție în raportul SKD


Salut baieti, am o intrebare. Vreau să afișez câmpul de selecție în raport, dar ceva mă oprește, am nevoie de sfatul tău...

Pentru câmp, contrapărțile au introdus următorul cod, face o selecție internă, dar cum pot afișa Vizualizarea de comparație pentru câmpul din stânga și îl pot lega la Utilizatori?

1C
1 2 3 4 5 6 7 8 9 10 11 Procedura UsersOnChange(Element) Export Parameter = ComposerSettings. Setări. Parametrii datelor. Găsiți ParameterValue(NewDataCompositionParameter("Utilizatori")); Parametru. Valoare = Utilizatori; Parametru. Utilizare = Adevărat; Selection Element = Settings Composer. Setări. Selecţie. Elemente. Adăugați(Tip(„Element de selecție al compoziției datelor”

Răspuns: ) ) ; Element de selecție. ComparisonView = DataCompositionComparisonView. Egal; Element de selecție. LeftValue = NewDataCompositionField(

„Responsabil pentruResponsiveRequest”
) ) ;);

Element de selecție. RightValue = Utilizatori;


Sfârșitul procedurii Dethmont, scot codul, exista doar sistemul de control acces si campul de selectie pe formular - un raport gol...

Adăugat după 1 oră și 50 de minute
, mi-am dat seama de ce era un raport gol la selectarea unui sistem de control acces, a existat o condiție în cererea de sistem de control acces pentru utilizatori - l-am șters și totul a funcționat. Multumesc pentru sfaturi)

Răspuns:În general, indiferent de modul în care am trecut coloanele prin compozitorul de date, nu am putut să le adaug (fără cod). Cel mai probabil, acest lucru este imposibil, deoarece nu atributul form ds este responsabil pentru coloane, ci elementul formular, care este logic. Linker-ul controlează datele - elementul de formular - afișarea (coloane incluse).
Adică, fără a crește în mod programatic elementele subordonate ale elementului de formular, nu le veți putea modifica.
Mulțumesc tuturor.

Întrebare: Introducerea pe baza câmpului de mesaj în PM nu este completată


Colegii ajută Nu este o intrare tipică bazată pe documentul din ZUP 2.5, mesaj - câmpul din PM nu este completat, deși este completat - tastați Data. Cod în procesare de completare.
Dacă introduceți detaliile prin formular, acesta efectuează...

Răspuns: OMG, a înjurat un alt câmp - doar că această coloană a fost ascunsă) când este completată în interfață, este copiată din câmpul pentru data de început