Računalniki Windows internet

1s skd izhod dokumentov v obdobju. Na skladišču izdelamo poročilo z določeno frekvenco

Dober dan, dragi bralci spletnega mesta! V zadnjem članku smo izvedeli, čemu služijo te vloge. In danes, v drugem od te serije člankov, si bomo ogledali nastavitev vloge z lastnostjo "Period"., in razmislite tudi o primerih izpolnjevanja teh vlog. Preostanek se izračuna za polje z vlogo "Obdobje". Enako kot za polje z vlogo »Dimenzija«, o kateri bomo govorili drugič. Torej, začnimo!

Ustvarimo novo poročilo:

  1. V konfiguratorju izberite točko menija "Datoteka" - "Novo" - "Zunanje poročilo".
  2. Kliknite na gumb "Odpri shemo sestave podatkov". V pogovornem oknu, ki se odpre, kliknite gumb "Dokončaj".
  3. Zdaj pa ustvarimo , ki se nanaša na navidezno tabelo "Registri akumulacije".
  4. Stisnimo desni klik Kliknite na vozlišče "Nabori podatkov" in izberite vrstico "Dodaj nabor podatkov - Poizvedba".
  5. Zdaj kliknite na gumb "Ustvarjalnik poizvedb". Izberemo akumulacijski register »Blago v skladiščih, ostanki in prometi« (konfiguracija USP).
  6. Odpremo pogovorno okno »Možnosti navidezne tabele« in označimo, da bo uporabljena frekvenca »Samodejno«, torej bo mogoče določiti več obdobij.

Zdaj nastavimo izhodna polja. Naj bodo naslednja polja: "Register", "ObdobjeMonth", "Nomenklatura", "Kakovost" in informacije o bilancih. Dodajanje polja se izvede z dvoklikom z levim gumbom miške na želeno polje ali z uporabo gumba ">". Ko dodate polja, kliknite gumb V redu.

Upoštevajte, da je za nekatera polja vloga z lastnostjo »Period« samodejno konfigurirana.

Razmislimo, kaj so nastavitve vlog za lastnost "Obdobje".. Najprej je navedena zaporedna številka obdobja. Številčenje mora biti neprekinjeno, začenši od ene, od nižjih obdobij do starejših, torej najprej bo šlo na primer številka vrstice, nato "registrator", nato drugi dan, teden, mesec, četrtletje, leto.

Zato je treba polja, ki se pojavljajo v naši zahtevi, oštevilčiti. Upoštevajte, da imamo dve polji za obdobje - "Register" in "ObdobjeMonth". Mlajše polje je "Register", dodeljena mu je ena, višje polje pa "ObdobjeMonth", dodeljena sta mu dve. Naslednji članek si bomo podrobneje ogledali.

Nastavimo naše poročilo:

  1. Pojdimo na zavihek »Viri« in določimo vire našega poročila.
  2. Kliknite gumb ">>", da izberete vsa polja za vire.
  3. Zdaj pa pojdimo na zavihek "Nastavitve" in ustvarimo nastavitev v obliki seznama.
  4. Kliknite na gumb "Konstruktor nastavitev sestave podatkov" (gumb v obliki čarobne palice).
  5. Vrsta poročila: "Seznam". Pritisnemo gumb "Naprej".
  6. Nastavite izhodna polja s klikom na gumb ">>". Razporedimo jih takole: "ObdobjeMesec", "Nomenklatura", "Kakovost", "Register".
  7. Kliknite gumb "Naprej" in konfigurirajte združevanje. Združevanje bo konfigurirano v naslednjem vrstnem redu: "ObdobjeMonth", "Nomenklatura", "Kakovost". Skupina "Register" bo prikazana kot podrobni zapisi.
  8. Pritisnemo gumb "V redu".

Odprimo poročilo. Če izvedemo to poročilo, bomo pri prejemanju stanja videli nekatere funkcije. Če natančno pogledate rezultat poročila, lahko takoj opazite več napak. Zlasti iz nekega razloga na samem začetku obdobja dejavnosti podjetja obstaja začetno stanje.

In ta napaka je povezana s posebnostjo prejema stanja s strani registrarja. Da bi bila ta stanja pravilno prikazana, morate v izhodna polja zahteve dodati še eno polje - polje "PeriodSecond". Če želite dodati polje "PeriodSecond", odprite poročilo v konfiguratorju, kliknite gumb "Odpri shemo sestave podatkov". Zdaj kliknite gumb "Ustvarjalnik poizvedb" in dodajte "PeriodSecond". V tem primeru bo polje "Register" ostalo prvo polje obdobja, "PeriodSecond" bo drugo in "ObdobjeMonth" bo tretje.

Čemu je sekunda? Sistem za sestavo podatkov izračuna ostanke z izračunom in za nedvoumno določitev položaja zapisovalnika na časovni osi ni dovolj sklicevanje na sam zapisovalnik, potrebna je tudi sekunda, torej datum tega zapisovalnika. , nato pa bo sistem sestave lahko izračunal pravilen preostanek. Če določimo pravilen vrstni red polj in ponovno ustvarimo poročilo, dobimo:

Zdaj ni več ravnotežja za začetek delovanja v nomenklaturi sokla. Nadalje, za naslednje obdobje sovpada s končnim stanjem, torej vidimo res pravilen rezultat. Primer poročila lahko prenesete s spodnje povezave. Vam je bil članek všeč? Kaj je mogoče spremeniti, kaj dodati? Lahko ga delite v komentarjih!

Na koncu članka vam želim svetovati brez Anatolija Sotnikova. To je tečaj izkušenega programerja. Na ločeni podlagi vam bo pokazal, kako sestaviti poročila v ACS. Samo pozorno poslušati in si zapomniti! Prejeli boste odgovore na vprašanja, kot so:
  • Kako ustvariti preprosto poročilo o seznamu?
  • Čemu so namenjeni stolpci Polje, Pot in Naslov na zavihku Polja?
  • Kakšne so omejitve za polja postavitve?
  • Kako pravilno postaviti vloge?
  • Kakšne so vloge za polja postavitve?
  • Kje lahko najdem zavihek postavitve podatkov v poizvedbi?
  • Kako konfigurirati parametre v SKD?
  • Še bolj zanimivo...
Morda ne bi smeli sami brskati po internetu v iskanju potrebnih informacij? Poleg tega je vse pripravljeno za uporabo. Samo začnite! Vse podrobnosti o tem, kaj je v brezplačnih video vadnicah

Tukaj je ena od lekcij o zavihku sestave podatkov v poizvedbi:



Pri ustvarjanju poročil na ACS je pogosto potrebno prikazati izbor obdobja na obrazcu poročila, poleg tega pa vam ni treba ročno izpolnjevati datumov, temveč izbrati s seznama standardnih obdobij, kot so: "Leto", "Mesec", "Teden" itd. Za parametre tipa Datum lahko podate samo "Začetek tega leta, mesec itd.", "Konec" pa ni na voljo.

Dejstvo je, da je od podatkovnih tipov na voljo samo tip »Standardni začetni datum«, želim pa tudi tip »Standardni končni datum«.

Obstaja način, kako to zaobiti.

  1. Ustvarimo nov parameter, poimenujmo ga "Period"
  2. Ta parameter nastavite na vrsto "Standardno obdobje"
  3. V polju "Izraz" parametrov "StartPeriod" in "EndPeriod", ki se uporabljata v poizvedbi, nastavite izraza " &Period.StartDate" in " &Period.EndDate" oz.

Vendar obstaja majhna subtilnost. Če v poizvedbi uporabimo navidezne tabele, potem bo najverjetneje poročilo prenehalo delovati in se bo ustvarilo sporočilo o napaki, kot je "Ogled napake pri obdelavi, neujemanje vrste, številka parametra ...".

Da bi se temu izognili, morate odstraniti vse parametre navideznih tabel.

In jih dodajte v tabele na zavihku Sestava podatkov.

Da bodo parametri prikazani v nastavitvah hitrega poročila, omogočite ustrezno zastavico za parametre poročila.

Sedaj je izbor obdobja na obrazcu poročila videti takole.

Nekatere značilnosti nastavitve obdobja v ACS.

Večina poročil, ki so izdelana s pomočjo sistema za sestavo podatkov (DCS), od uporabnika zahteva, da vnese obdobje, za katero bo poročilo ustvarjeno.

Praviloma je v ACS vnos obdobja organiziran prek parametrov z uporabo naslednje konstrukcije, glej Ta način vnosa točke velja za "klasičen", opisan je v članku o ITS in drugi literaturi, posvečeni razvoju v 1C , zato ga vzemimo za osnovo. Razmislite, kot primer, na preprosto poizvedbo, ki pridobi vse dokumente o prodaji blaga/storitev za dano obdobje (glejte sl.

Pri uporabi tega poročila uporabnik nastavi obdobje preko parametrov, glej. Zdi se, da je vse pravilno ... VENDAR je majhna težava:

Stvar je v tem, da velika večina uporabnikov obdobje "razume" drugače kot ga "razume" 1C, primeri:

Z vidika uporabnika rok ni nastavljen, torej NI OMEJEN, torej v poročilo je treba vključiti VSE dokumente brez datumske omejitve.

"Z vidika" sistema 1C je nastavljeno obdobje parametra in ... obe njegovi meji sta enaki 01.01.

Z vidika uporabnika je treba v poročilo vključiti vse dokumente od 28. 01. 2010 dalje.

"Z vidika" 1C obdobje 28.1.2010 - 01.01.0001 bo povzročilo izjemo.

Seveda lahko poskusite uporabniku razložiti, zakaj poročilo ne prikazuje dokumentov, ki jih pričakuje, in kako je obdobje predstavljeno z "stališča" 1C, vendar je to nehvaležna naloga in napačna. Dober program mora biti najprej priročno za uporabnika, saj program obstaja za uporabnika in ne obratno, zato bo treba 1C "naučiti", da razume obdobje, kot ga razume uporabnik, in sicer:

ena). StartPeriod in EndPeriod nista nastavljena -> vsi dokumenti.

2). Nastavljeno je samo StartPeriod -> vsi dokumenti, ki se začnejo z StartPeriod

3). Poleg tega bomo preverili, ali je Konec obdobja >= Začetek obdobja, in če to ni res, potem predvidevamo, da Konec obdobja ni nastavljen, t.j. 2).

Na podlagi zgornjega je izraz za parameter EndDate:

KDAJ &Period.EndDate=DATETIME(1,1,1)

POTEM DATETIME(3999,12,31)

KDAJ &Obdobje.Končni datum<&Период.ДатаНачала

POTEM DATETIME(3999,12,31) DATETIME(3999,12,31,23,59,59)

&Obdobje.Končni datum

Končni pogled našega načrta izbire obdobja je prikazan v

Opomba: ta mehanizem za nastavitev parametrov je namenjen starim platformam 1C 8.1 in 8.2 (in konfiguracijam, ki se izvajajo pod njihovim nadzorom), starejše različice platforme 1C imajo vgrajene mehanizme za nadzor neizpolnjenih parametrov in ni se treba zateči k opisanemu mehanizmu v tem članku so poleg tega na nekaterih različicah platforme 1C možne napake in nepravilno delo.

Torej, začnimo.

Zaradi enostavnosti razumevanja primera bomo gradili na enem preprostem registru povratnega kopičenja.

V mojem primeru je to akumulacijski register »Knjigovodstvo nedokončane proizvodnje«.

Na primer, njegove parametre bomo natančno določili (ne z mehkim nalaganjem parametrov na ACS):

Upoštevajte, da je frekvenca navidezne tabele "Record".

Toda, kot je navedeno zgoraj, potrebujemo obdobje v kontekstu periodičnosti, zato predlagam, da polje "Obdobje" izračunamo na naslednji način (ni zelo lepo, vendar nisem videl boljših možnosti):

Kot je razvidno iz posnetka zaslona, ​​se zahtevi posreduje parameter, ki ga uporabnik navede na obrazcu: Vrednost naštevanja "Periodičnost" - to naštevanje je na voljo v skoraj vseh standardnih rešitvah.

Njegove razpoložljive vrste so navedene na zavihku "Parametri":

S to nastavitvijo oblikujemo svoje obdobje tako, da je vse lepo in prijetno za oko)

Tukaj so dejanski formati:

Mesec: DF="MMMM llll "y.""

Dan: DF = dd.MM.llll

Teden: df = ""Teden od" dd.MM.llll "

Četrtina: DF = "do "četrtine" yyyy "y."

Leto: DF = "yyyy "y."

Desetletje: DF = ""Desetletje od" dd.MM.llll "

Pol leta: DF = "" Pol leta od" dd.MM.llll"

To je vse. Kot rezultat imamo čudovito sliko:

Ta članek obravnava nekatere značilnosti nastavitve obdobja pri uporabi sistema za sestavo podatkov (ACS), težave, ki nastanejo zaradi razlike v konceptu obdobja med povprečnim uporabnikom in sistemom 1C, ter predlaga načine za njihovo reševanje. .
Večina poročil, ki so izdelana s pomočjo sistema za sestavo podatkov (DCS), od uporabnika zahteva, da vnese obdobje, za katero bo poročilo ustvarjeno. Praviloma je v ACS vnos obdobja organiziran prek parametrov z uporabo naslednje konstrukcije, glej sliko 3. sl.1 Ta način vnosa obdobja velja za "klasičen", opisan je v članku o ITS in drugi literaturi, posvečeni razvoju v 1C, zato jo bomo vzeli za osnovo. Razmislite, kot primer, na preprosto poizvedbo, ki pridobi vse dokumente o prodaji blaga/storitev za dano obdobje (glejte sl. sl.2 Pri uporabi tega poročila uporabnik nastavi obdobje prek parametrov glej. sl.3 Zdi se, da je vse pravilno ... VENDAR obstaja majhna težava:

Stvar je v tem, da velika večina uporabnikov obdobje "razume" drugače kot ga "razume" 1C, primeri:
ena). Razmislite sl.3
Z vidika uporabnika rok ni nastavljen, torej NI OMEJEN, torej v poročilo je treba vključiti VSE dokumente brez datumske omejitve.
"Z vidika" sistema 1C je nastavljeno obdobje parametra in ... obe njegovi meji sta enaki 01.01.
2). Razmislite sl.4
Z vidika uporabnika je treba v poročilo vključiti vse dokumente od 28. 01. 2010 dalje.
"Z vidika" 1C obdobje 28.1.2010 - 01.01.0001 bo povzročilo izjemo.

Seveda lahko poskusite uporabniku razložiti, zakaj poročilo ne prikazuje dokumentov, ki jih pričakuje, in kako je obdobje predstavljeno z "stališča" 1C, vendar je to nehvaležna naloga in napačna. Dober program bi moral biti najprej priročen za uporabnika, saj program obstaja za uporabnika in ne obratno, zato boste morali 1C "naučiti", da razume obdobje, kot ga razume uporabnik, in sicer:
ena). StartPeriod in EndPeriod nista nastavljena -> vsi dokumenti.
2). Nastavljeno je samo StartPeriod –> vsi dokumenti, ki se začnejo z StartPeriod
3). Poleg tega bomo preverili, ali je Konec obdobja >= Začetek obdobja, in če to ni res, potem predvidevamo, da Konec obdobja ni nastavljen, t.j. 2).
Glede na zgoraj navedeno bo izraz za parameter EndDate videti takole:

IZBERI KO &Period.EndDate=DATETIME(1,1,1) THEN DATETIME(3999,12,31,23,59,59) ELSE IZBERI WHEN &Period.EndDate<&Период.ДатаНачала ТОГДА ДАТАВРЕМЯ(3999,12,31,23,59,59) ИНАЧЕ &Период.ДатаОкончания КОНЕЦ КОНЕЦ

Končni pogled našega načrta izbire obdobja je prikazan v sl.5