Cum se elimină duplicatele dintr-o selecție de două câmpuri

Cum se elimină duplicatele dintr-o selecție de două câmpuri. Căutam un răspuns în rețea, nu găsisem nimic, trebuia să o fac singur, poate că cineva ar veni la îndemână.

Căutam un răspuns în rețea, nu găsisem nimic, trebuia să o fac singur, poate că cineva ar veni la îndemână.

Contextul sarcinii: a scris procesarea pentru UT 11.1, care a completat un registru periodic independent de date auxiliare privind datele din documentele recepționate. Evaluarea registrului - Nomenclatură, resursă - preț. Specificitatea afacerii este aceea că furnizorii din același document de venit plasează același nomenclator la prețuri diferite. A fost necesară selectarea unei înregistrări cu un preț maxim din pachetul de înregistrare pentru câmpurile "Date" și "Nomenclature". În caz contrar, registrul a refuzat să accepte datele. În același timp, era necesar să excludem serviciile.

Scopul lucrării este de a obține rapid cifrele necesare pentru sarcinile de contabilitate de gestiune de la "running" și baza de date.

Codul procedurii rulează pe server.

Procedura privind ServerFeedbackRegisterPricePrice (OurData)
// Eliminați registrul.
Recordset = Registrele de informații. TsenyZakupaAnado. Creați un set de înregistrări ();
NaborZapisey. Notă ();

// Completați registrul cu datele

În timp ce Rezultat. Înainte () Buclă
Dacă (Result.Nomenclature = NomenclatureFor Verification) Și (Result.Date = DateDoCheck) Apoi
continua;
altfel
Nomenclatorul pentru verificare = rezultat. nomenclatură;
DateForReview = Rezultat. Data;

NewRescription = Recrutare. Adăugați ();

Perioada = Rezultat. Data;
Înregistrare nouă. Nomenclatură = Rezultat. nomenclatură;
Înregistrare nouă. Pret = Rezultat. preț;
Sfârșit Dacă;

Sfârșitul ciclului;
NaborZapisey. Notați (Adevărul);

Codul în sine este destul de simplu. În interogare, fac ordonarea eșantionului - după dată, apoi după nomenclatură și după preț. Preț - descrescător. Folosind în continuare variabilele auxiliare în corpul bucla, produc deșeuri duplicate. Totul funcționează, citim codul.

9. Petr Ivakin (Petr54-ro) 51 18.11.13 21:49 În prezent în fișier

(1) sanek_gk, ați scris o cerere minunată, dar aveam nevoie de date puțin diferite. Cât de adevărat este scris aici ShantinTD -

în acest cod există o tehnică care poate fi utilă. Nu de multe ori, dar poate.
(Doar în cazul în care, voi explica că aceasta este o comparație cu nomenclatura curentă la fiecare pas, iar acțiunea este numai în cazul unei diferențe față de cea dorită.)

Încă o dată și în detaliu, prin intermediul procesării, datele completează registrul auxiliar de date - independent, cu o perioadă de o secundă. În continuare, pot scoate orice date de care am nevoie, de acolo, utilizând Cut of the Last () și Crescent (). Asta sunt registrele pentru preluarea datelor de acolo.


(5) ShantinTD, da, ai dreptate pentru a înțelege despre gama de curent la fiecare pas, și cu ideea că ciclurile de performanță rănit, și că tot ce ai nevoie pentru a obține o singură solicitare nu a putut conveni mai mult. Chiar ați început să scrieți interogarea însăși, aș dori să văd o astfel de solicitare care să rezolve această problemă. Nu m-am gândit la asta într-un timp rezonabil.

Sunt pe ea cum arăt în cazul în care un programator a fost o sarcină pe care el a acoperi nu a putut rezolva (la sfârșitul săptămânii, la sfârșitul zilei, un om a început un pic bont) și programator a urcat la Google și a găsit codul altcuiva, l-am dat seama, gândurile mele a venit, a scris codul său, a rezolvat problema. Tocmai am scris un articol pentru astfel de situații.

În ceea ce privește registrul nativ al prețului nomenclaturii. Acest registru are o periodicitate regulată într-o zi. Am schimbat timp pentru a într-un al doilea la 11,0 UT, totul a fost acum bine, UT 11.1, există posibilitatea ca schimbarea de frecvență poate rupe logica programului. Este atât de ușor să nu fiți testat. După cum am scris deja, în conosamentul furnizorilor există aceleași bunuri la prețuri diferite. Această specificitate a afacerii nu se încadrează în logica UT 11. Se întâmplă.

Da, parametrul care este trecut la procedură nu este inutil.

uita la interogare de la (0) asa ca nu spune. În interogare trebuie să returnați fragmentul de text abandonat (parametrul actual din textul interogării).

Ați început chiar să scrieți interogarea însăși

Da, inainte de mine am scris deja sanek_gk in (1).

Aș dori să văd o solicitare care să rezolve această problemă

atunci nu înțeleg foarte bine ce interogare dată în (1) nu se încadrează în sarcina ta.

În ceea ce privește registrul nativ al prețului nomenclaturii

Ți li sa oferit să folosiți lista de prețuri a nomenclatorului furnizorilor și are o periodicitate într-o secundă.

cu ideea că ciclurile împiedică performanța și că totul trebuie primit cu o singură interogare, nu puteți să nu fiți de acord

din rezultatul interogării puteți obține o mostră sau puteți descărca. Descărcarea poate fi o masă sau un copac. Și setul de intrări în registru este, de asemenea, un tabel. Prinde-o? De ce să rescrieți manual, dacă puteți face o fotocopie?

În ceea ce privește registrul nativ al prețului nomenclaturii. Acest registru are o periodicitate regulată într-o zi.

Am la baza UT11.1.2.16 mana (nu cred că această problemă este critică), în frecvență registru TsenyNomenklatury în câteva secunde.

dacă programatorul se confruntă cu o sarcină pe care nu o putea rezolva cu un zbor

Sunt de acord, există situații în care o soluție competentă necesită prea mult timp, un studiu atent sau altceva, atunci faceți o decizie "de urgență", apoi o remake în mod normal. Și trebuie să separe „problema“, în domeniul tehnic (nu se poate scrie o interogare bună, și descărca are ca rezultat un set de înregistrări - scrie interogarea mai ușor și este împins în registrul de piesa) și conceptuală ( „ce și unde am de gând să scrie?“). În rezolvarea problemelor tehnice, desigur, Google va ajuta, dar cele conceptuale nu sunt întotdeauna cazul. Dar aici, nu este nevoie să se grăbească să reinventeze roata: există o bibliotecă de subsisteme standard, au configurații tipice, există recomandări, există un concept global. Deci, poate fi foarte bine o bicicletă aproape potrivită, care va trebui să fie înșurubată pe roți.

5. Timothy Shantin (ShantinTD) 85 18.11.13 09:34 Acum în fir

Cum se elimină duplicatele dintr-o selecție de două câmpuri.

Aici, se pare, sa bazat pe această întrebare. Apoi întrebarea este invers: de la ce eșantion? Selecție din rezultatul interogării? Apoi, trebuie doar să faceți o solicitare, astfel încât să nu mai existe niciun duplicat, adică "CERERE DE DELETE DUBBLES!". Dacă eșantionul este un director sau un document (sau altul), atunci aceasta este o poveste separată.

un om a scris un articol într-o seară de vineri. Cu toate acestea, faptul că un parametru suplimentar este transmis solicitării - este clar că piesa liniei din interogare este pur și simplu întreruptă.
Cu toate acestea, sunt de acord că codul dat pentru această sarcină este complet inacceptabil. Desigur, trebuie să utilizați o interogare corect scrisă. Și faceți fără o bucla, de exemplu, ceva de genul

Ar merită să înțelegem de ce registrul refuză să facă înregistrări cu aceeași nomenclatură


Da, merită să înțelegeți ce faceți. Și ce sa făcut înainte de tine (și pentru tine, de asemenea). Apoi, în loc să inventați o bicicletă, va fi posibil să mergeți imediat pe ea.

"codul poate fi citit", dar "nu înțelegem"

dar ce anume nu este clar?

Sper că nimeni nu poate folosi acest cod decât pentru un ajutor vizual, deoarece nu este necesar să o faceți

în acest cod există o tehnică care poate fi utilă. Nu de multe ori, dar poate.
(Doar în cazul în care, voi explica că aceasta este o comparație cu nomenclatura curentă la fiecare pas, iar acțiunea este numai în cazul unei diferențe față de cea dorită.)

deoarece înțeleg că este problema platformei

aceasta nu este o "problemă" a platformei, ci esența noțiunii de "măsurare" pentru registrul de informații (și nu doar informații).

Nu ar face rău să înțeleagă și să afișeze 1C

În ce sens este "popping"? În sensul de a lucra 1C? Sau în sensul de a învăța compania 1C, că registrul poate adăuga înregistrări ambigue? 0_0