Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Kako programski napraviti opciono punjenje 1s. Zamjena uzorka

Kako programski napraviti opciono punjenje 1s. Zamjena uzorka

Nastavljamo s temom uobičajenih grešaka koje korisnici programa 1C Računovodstvo čine. U ovom i ovom članku već sam vam govorio o uobičajenim greškama. Sada ćemo govoriti o greškama koje nastaju zbog nepažnje korisnika.

Vrlo često, mnogi korisnici 1C jednostavno preskaču polja u dokumentima ne obraćajući pažnju na njih. Kao rezultat toga, dokument se uopće ne knjiži ili je objavljen, ali pogrešno. Prvo, da vidimo da li je uopšte moguće preskočiti (ne popuniti) polja u dokumentima.

Kada mogu ostaviti prazne detalje dokumenata 1C računovodstvo

Na prvi pogled može se činiti da ako dokument ima neku vrstu rekvizita (polje, kvačicu i tako dalje), onda ga morate popuniti. Uostalom, nalazi se na obrascu s razlogom, zar ne? Međutim, u stvari, postoje slučajevi kada je zaista moguće ostaviti neka polja prazna u dokumentu, a to neće uticati na rezultat. Pogledaj sliku.

web stranica_

Treći razlog. Elementarna nepažnja. Kada radite u 1C računovodstvu, pa i u bilo kojem računovodstvenom programu, trebali biste biti malo oprezniji nego inače. I nemojte preskočiti detalje dokumenata.

Sažimanje

Rad u 1C računovodstvu, ne preskačite polja! Ovo se ne odnosi samo na prazna polja, već i na popunjena nekim zadanim vrijednostima koje nisu uvijek tačne. Također vas podsjećam da dokument može imati mnogo kartica. Preporučuje se da popunite sve dokumente 1C

Vjerovatno nikakvi algoritmi ne mogu zaštititi bazu podataka od grešaka koje nastaju kada korisnici unose podatke. Glavni problemi povezani s ljudskom nepažnjom mogu se identificirati na sljedećoj listi:

  • Pogrešan izbor objekta;
  • Pogrešna količina ili tipkarska greška u nazivu;
  • Dvostruki elementi imenika, njihova nejedinstvenost ili ponovno ocenjivanje;
  • Zanemarivanje popunjavanja polja koja su kritična za ispravan proračun i nesmetan rad programa.

Rješenje posljednjeg problema je, za osmu verziju 1C programa, provjera popunjenosti detalja obrasca.

Provjera popunjenosti za regularni obrazac

Kada korisnik otvori obrazac, ako je režim pokretanja „Normalna aplikacija“, elementi koje je potrebno popuniti su istaknuti crvenom tačkastom linijom (Sl. 1).

Kao što se vidi iz gornjeg primjera, obavezna polja dokumenta "Prodaja robe i usluga" su "Broj" i "Izvođač". U ovom slučaju, polje "Broj" nije dostupno za uređivanje. To znači da kada se dokument upiše u infobazu, on će se automatski popuniti u skladu sa pravilima numeracije postavljenim za datu organizaciju.

Snimanje elemenata direktorija ili knjiženje dokumenata koji sadrže nepopunjena obavezna polja će uzrokovati izuzetak (slika 2).

Rice. 2

Detaljnije informacije o tome koje polje nije popunjeno možete vidjeti u prozoru servisne poruke.

Sama oznaka, koja obavještava o obaveznom popunjavanju polja, postavljena je u svojstvima elementa obrasca. Za ovo:

  1. Otvorite obrazac u konfiguratoru;
  2. Desni klik na element obrasca i pozivamo prozor "Svojstva";
  3. Potrebno je označiti kućice AutoMarkUnfilled i AutoSelectUnfilled u podmeniju "Usage" (slika 3);

Direktna provjera se po pravilu registruje u modulu objekta.

Za imenike i neprenosiva dokumenta preporučljivo je pozvati proceduru provjere popunjavanja prilikom snimanja elementa. Nepotpuno popunjeni dokumenti, ukoliko se izvrše, mogu se evidentirati u bazi podataka, a bolje je pozvati proceduru provjere prije formiranja kretanja, odnosno tokom sprovođenja. Provjeru u obradama i izvještajima koji sadrže obavezna polja svrsishodno je izvršiti direktno u obradi klika na dugme.

Možete provjeriti da li se vrijednost proslijeđena u polje razlikuje od praznog (podrazumevana vrijednost) pomoću funkcije ValueFilled("Value"). Imajte na umu da ako je polje kompozitnog tipa podataka, izvršavanje ove funkcije izaziva izuzetak.

Validacija u upravljanim obrascima

Karakteristike platforme u verziji klijent-server ostavljaju trag na provjeri popunjavanja.

Prvo morate razumjeti koja procedura koja slijedi prilikom ulaska objekta u ovaj način rada.

Dakle, nakon pritiska na dugme "Snimi", "OK", "Pošalji":

  1. Poziva se procedura "Prije pisanja" na klijentu;
  2. Podaci se prenose na server i dešavaju se događaji registrovani u modulu obrasca na serveru (ovde možete pokrenuti proceduru ProcessingFillCheckOnServer);
  3. Podaci obrasca se prenose u objektni modul na serveru (postaje moguće pokrenuti standardnu ​​proceduru FillCheckProcessing);
  4. Podaci iz modula se vraćaju modulu obrasca na serveru i javlja se procedura BeforeWriteOnServer;
  5. Podaci se vraćaju objektnom modulu, a javlja se još jedna procedura BeforeWrite;
  6. Objekt se direktno upisuje u bazu podataka.

U bilo kojem trenutku ove šeme možete umetnuti funkciju CheckFill(). Nakon prolaska kroz detalje, u čijim svojstvima atribut “Provjera popunjavanja” ima vrijednost “Daj grešku” (slika 4), ova funkcija će, ako barem jedan od njih nije popunjen, vratiti “False”.

Razlike između rukovatelja HandleFillCheck() i ProcessFillCheckOnServer()

S obzirom na činjenicu da sučelje upravljane aplikacije može sadržavati i atribute objekta i direktno atribute forme, ove dvije procedure su odvojene. U isto vrijeme, oni su slični u smislu parametara koji se mogu proslijediti rukovaocima:

  1. Odbijanje (ovdje se, nakon provjere, prenosi njegov rezultat);
  2. CheckedAttributes (tip podataka je niz, ako nije popunjen, tada će se provjeriti svi detalji za koje su svojstva postavljena na "Provjeri popunjavanje", u suprotnom će se programski odabrani detalji obraditi).

Procedura ProcessingFillingCheckOnServer() vam omogućava da provjerite atribute koji nisu direktno povezani sa objektom koji se uređuje. Svaki programer sam odlučuje šta i u kojoj mjeri želi provjeriti.

Procedura ProcessingFillingCheck() provjerava osnovne detalje.

Vrlo često, dok radite u programu 1C, može biti potrebno brzo unijeti nekoliko dokumenata ili dodati nove objekte u direktorije (vrsta artikla, organizacija, skladište, blagajna itd.). U isto vrijeme, nemaju svi razumijevanje kako je moguće automatizirati unos osnovnih vrijednosti, tako da se prilikom kreiranja tražene vrijednosti odmah zamjenjuju u polja. Reći ću vam kako to učiniti u ovom članku.
U programu 1C postoje mehanizmi koji vam omogućavaju da brzo unesete vrijednosti detalja u dokumente i direktorije. Po svom djelovanju mogu se podijeliti na sljedeće vrste:

  • Zamjena jedne vrijednosti
  • Zamjena vrijednosti odabirom
  • Popunjavanje detalja prema statistici
  • Zamjena prethodno unesenih podataka
  • Zamjena uzorka
  • Unos novog dokumenta kopiranjem

Zamjena jedine vrijednosti na koju korisnik ima prava.

Recimo da vaša organizacija ima tri skladišta, ona su unesena u bazu podataka. Istovremeno, menadžeru je dozvoljeno da prodaje robu samo od jednog od njih. Prilikom kreiranja novog dokumenta, ovo skladište će se automatski zamijeniti. Ovo funkcionira na osnovu dozvola koje je postavio korisnik. Odnosno, onemogućavanjem prava na objekte s kojima korisnik ne radi, možete automatizirati unos podataka.

Zamjena vrijednosti prema izboru navedenom u obrascu liste.

Ako je lista podešena na filtriranje prema nekom atributu (blaga, bankovni račun, skladište), onda će se ovaj atribut automatski popuniti u novom dokumentu. Na primjer, u obliku liste dokumenata kase, odabirete po kasi. Prilikom izdavanja novog platnog dokumenta, podaci o odabranoj blagajni će se automatski preuzeti sa liste. A pošto je organizacija navedena za kasu, podaci o organizaciji će se automatski popuniti. Možete koristiti filtere u bilo kojoj listi dokumenata.

Popunjavanje podataka prema statistici.

Program 1C vodi statistiku unosa osnovnih vrijednosti za svakog korisnika. Ako ste prilikom kreiranja novog dokumenta dva puta upisali istu organizaciju, odjel, skladište, poslovnu transakciju itd., program će analizirati posljednje unesene vrijednosti. Tako se algoritam popunjavanja prema statistici automatski „prilagođava“ svakom korisniku.
Ako korisnik prekine ovaj lanac u novom dokumentu, program će to razumjeti i nakon nekog vremena početi zamjenjivati ​​nove vrijednosti, ali u prvom takvom dokumentu vrijednosti neće biti zamijenjene.
Popunjavanje prethodno unesenih podataka prilikom odabira vrijednosti drugog atributa moguće je ako je, na primjer, odabran trgovački ugovor ili ugovor, gdje su popunjena sva glavna polja (skladište, raspored plaćanja, cijene itd.). Prilikom navođenja sporazuma ili sporazuma u dokumentu, detalji će se popunjavati prema sljedećim pravilima:

popuniće se svi podaci koji su definisani ugovorom ili ugovorom;

ako bilo koja vrijednost nije navedena u sporazumu ili ugovoru (na primjer, podjela), tada će se ova vrijednost popuniti prema statistici. Ako su prilikom unosa novog dokumenta vrijednosti popunjene u skladu sa statistikom, tada će se one ponovo popunjavati ako su definisane ugovorom ili ugovorom.

Zamjena vrijednosti po šablonu.

Imajte na umu da kada se kreira nova vrsta stavke, možete odrediti zadane vrijednosti koje će biti zamijenjene novim objektima. Prilikom registracije nove stavke ove vrste artikla, ove vrijednosti će se automatski zamijeniti. Drugi primjer je automatska zamjena podataka o odjelu u dokumentu, ako korisnik koji sastavlja dokument ima podatke o odjelu u korisničkoj kartici.

Unos novog dokumenta kopiranjem.

Ovdje je sve jednostavno. Ako je korisnik već unio sličan dokument, onda ga može kopirati, a zatim ispraviti izmijenjene podatke. Provjerite sve detalje, obraćajući posebnu pažnju na detalje kao što je datum.

Evo pet glavnih načina da olakšate unos iste vrste dokumenata i imenika. Obavezno ih koristite u svakodnevnom radu

Kako brzo unijeti vrijednost detalja u 1C?

Zasnovan na mehanizmu unosa je jedan od mehanizama primjene . Omogućava vam da korisniku pojednostavite rad sa aplikacijskim rješenjem i spasite ga od ponovnog unosa podataka koji su već pohranjeni u infobazi.

Razmotrimo jednostavan primjer. Pretpostavimo da postoji dokument u primijenjenom rješenju Dobar recept, koji fiksira činjenicu pojavljivanja u organizaciji nekih pozicija nomenklature:

Nakon što se nomenklatura primi od dobavljača, potrebno je izdati dokument Plaćanje robe i usluga, u kojem treba navesti dobavljača i iznos koji treba da prenese za isporučenu robu:

U takvoj situaciji, mehanizam unosa zasnovan na omogućava vam da generišete dokument Plaćanje robe i usluga automatski, koristeći informacije koje su pohranjene u dokumentu Dobar recept. Ovo se radi samo jednim klikom:

Nakon izvršenja ove naredbe, sistem će kreirati novi dokument Plaćanje robe i usluga i popuniti svoje podatke prema informacijama dostupnim u priznanici. Korisnik će morati odabrati samo određene račune za poravnanje ako dobavljač i naša organizacija imaju nekoliko njih.

Dakle, mehanizam unosa na osnovu omogućava kreiranje novih objekata primijenjenog rješenja (direktorije, dokumenti itd.) na osnovu informacija sadržanih u drugim postojećim objektima primijenjenog rješenja.

1. Polje za unos
2. Potvrdni okvir
3. Prekidač

Polje za unos

Po pravilu, polje za unos je povezano sa atributom objekta i odražava njegove podatke. Ovo je možda jedan od najčešćih elemenata, ima nekoliko načina za odabir vrijednosti:

Odabir sa liste (SelectFromListMode)

Odabir iz drugog obrasca (dugme za odabir)

Kontrolna dugmad

Implementacija gornjih primjera ne zahtijeva značajan napor od strane programera, tako da. na primjer, za režim liste potrebno je popuniti listu elementa vrijednostima, za odabir iz drugog obrasca dovoljno je jednostavno povezati kontrolni element sa podacima iz rječnika. Ali za kontrolne tipke, morat ćete napisati više koda za rukovanje pritiskom na svako dugme, iako to neće biti sjajno:

Procedura pvNomenclature SelectionRegulation(Element, Direction, StandardProcessing)
//Odabir podataka za polje za unos
// u ovom slučaju referentna nomenklatura
Zahtjev = Novi zahtjev;
Request.Text=
„IZABIR
| Nomenklatura. Referenca kao stavka
OD
| Imenik Nomenklatura AS Nomenklatura
|ORDER BY
| Nomenklatura.Šifra";
TZNomenklatura = Request.Execute().Upload();

//tražimo trenutni element direktorija koji je naveden u polju za unos
CurrentElement = TKNomenclature.Find(Element.value);

Ako je CurrentItem = Undefined Onda
// ako element nije pronađen onda postavite broj indeksa
// izvan tablice vrijednosti, jer prvi element u
// tablica vrijednosti ima indeks 0
CurrentIndex = -1;
Inače
// ako je element pronađen, dobiti njegov indeks
TekIndex = T3Nomenclature.Index(TekElement);
EndIf;

// izračunaj novi indeks u zavisnosti od klika na dugme
// minus ispred varijable Smjer je u cilju
// klik na gornju strelicu prikazao je element iznad
// i stoga s nižim indeksom
NewIndex = CurrentIndex-Direction;

// dobijemo broj elemenata u direktoriju
// oduzmi jedan jer sve kolekcije u 8.1 počinju od 0
Broj stavki = nomenklatura TK Količina () -1;

Ako je NewIndex< 0 Или НовИндекс >Broj elemenata Tada
// ako je indeks izvan tablice vrijednosti prilikom promjene
// tj. njegov broj je tada veći od najvećeg indeksa ili manji od 0
// ne mijenjamo vrijednost i obavještavamo korisnika o tome
alert("Dostigli ste ograničenje direktorija");
Inače
// dodijelimo novu vrijednost, "Proizvod" je naziv stupca tablice vrijednosti
Element.value = TKNomenclature.Get(NewIndex).Proizvod;
EndIf;

EndProcedure

Polje za potvrdu

U većini programa, potvrdni okvir se koristi za prikaz dva stanja: označeno, nepotvrđeno. U 1s, checkbox ima tri stanja, u trećem stanju checkbox se prikazuje - postavljen i zasjenjen. Ova tri stanja su dostupna samo ako je podatak o zastavici broj, pri čemu stanja imaju sljedeća značenja:

Prekidač

Prekidač se koristi za odabir jedne vrijednosti od malog broja mogućih (po mogućnosti ne više od pet), dok se vrijednosti ne mogu kombinirati, na primjer: pogodno za odabir spola osobe. Drugi primjer: recimo da kompanija daje jedan od 3 popusta za proizvod, a popusti nisu kumulativni:

U ovom slučaju, pogodnost korištenja radio dugmadi može biti u činjenici da svaki od njih može imati neku vrijednost, koja je postavljena u svojstvu "Vrijednost za odabir". I tada "5% popusta" može pohraniti vrijednost 5 ili 0,05.

Postoje tri važne stvari koje treba imati na umu kada koristite radio dugmad:

      Prvo radio dugme mora imati svojstvo "FirstInGroup" (u ovom primeru to je radio dugme "5% popusta").

      Prekidači koji su po značenju povezani sa jednom grupom treba da idu uzastopno u postavljanju redosleda zaobilaženja, bez prekidanja od strane drugih elemenata forme. Redosled obilaska se postavlja iz menija "Obrazac -> Postavke naloga obilaska", za ovaj primer izgleda ovako:

  1. Tip odabrane vrijednosti se postavlja prekidačem koji ima svojstvo "FirstInGroup".

Top Related Articles