Koti / Internet / 1s 8 luominen dynaamisesta luettelosta. Dynaamiset luetteloasetukset

1s 8 luominen dynaamisesta luettelosta. Dynaamiset luetteloasetukset

Lopulta jokaisen "seitsemän pelaajan" unelma on toteutunut. Kuinka usein ohjelman 7.7 käyttäjät pyysivät tekemään normaalin kohteiden valinnan. Jotta näet saldot, hinnat ja suodattimet. Minun piti keksiä erilaisia ​​temppuja ulkoisten komponenttien kirjoittamiseen asti. 1C 8.2:ssa ilmestyi dynaamisia luetteloita. Ehdotan pohtimaan, mikä se on ja mitä he voivat antaa meille 1C 8.3:ssa.

Otetaanpa pohjaksi joitain testaa konfiguraatiota 1C: "Yrityskirjanpito 3.0". Emme tee valintaa nyt, lisää vain toinen valintalomake "Nimikkeistö"-viitekirjaan ja tee siitä väliaikaisesti tärkein:

Luodessaan järjestelmä lisää lomakkeeseen oletuksena taulukkokentän, jonka tyyppi on "Dynaaminen lista".

Mennään sen kiinteistöihin ja katsotaan mitä siellä on.

Ensinnäkin olemme kiinnostuneita "Mielivaltainen pyyntö" -valintaruudusta. Hän paljastaa meille kaikki edut dynaaminen luettelo. Meillä on mahdollisuus kirjoittaa oma kyselymme ja parametrein. Valitse valintaruutu ja napsauta "Avaa"-linkkiä:

Näyttöön tulee ikkuna, jossa on valmis koodi . Toistaiseksi kaikki "nimikkeistö"-hakemiston kentät on yksinkertaisesti lueteltu siellä.

Hanki 267 1C -videotunteja ilmaiseksi:

Kuten näet, siellä on soittopainike "" ja valintaruutu, jonka avulla voit muuttaa luettelon sisältöä dynaamisesti. Eli kun toinen käyttäjä muuttaa jotain hakemistossa, se muuttuu myös luettelossamme. Lisäksi siellä on Asetukset-välilehti, mutta käsittelemme sitä myöhemmin.

Mukautettu kysely dynaamisessa luettelossa

Ensin luodaan tarvitsemamme kysely saldoista ja hinnoista. Enemmän tai vähemmän näin:

Asetukset-välilehti

Ja nyt herkullisin! Siirry "Asetukset"-välilehteen. Ja näemme heti, että ensimmäisessä välilehdessä voimme tehdä valintoja mille tahansa pyynnön kentälle:

Kyselyparametrien asettaminen ohjelmallisesti dynaamiseen luetteloon 1C 8.3

Älä unohda, että pyynnössämme on kaksi parametria: "Jakso" ja "Hintatyyppi". Meidän on välitettävä ne pyyntöön, muuten tapahtuu virhe.

Kirjoitetaan nämä parametrit lomakeparametreihin ja lisätään seuraavat rivit lomakemoduuliin:

&OnServerProcedure OnCreateOnServer(virhe, StandardProcessing) -luettelo. Vaihtoehdot. SetParameterValue("Jakso", Parametrit. Päivämäärä) ; Lista. Vaihtoehdot. SetParameterValue("Hintatyyppi" , Parameters.PriceType) ; EndProcedure

Primitiivisten tietotyyppien lisäksi, jotka löytyvät millä tahansa ohjelmointikielellä, 1C:ssä on ainutlaatuisia tyyppejä. Jokaisella niistä on omat ominaisuutensa, menetelmänsä, toimintonsa, tarkoituksensa ja käytön vivahteet järjestelmässä. Yksi näistä tyypeistä on dynaaminen luettelo, joka yksinkertaistaa huomattavasti monia sovellettavia tehtäviä. Siksi kehittäjien tulee tietää ja pystyä käsittelemään tämä monipuolinen työkalu.

Dynaamisten luetteloiden ominaisuudet 1C:ssä

Tämän tyypin tarkoitus on näyttää tietoja kaikista tietokantataulukoista niiden tyypistä riippumatta. Mekanismi luotiin SKD:n perusteella ja sillä on samanlaiset ominaisuudet. Mutta tämä ei tarkoita, että sinun on ehdottomasti kirjoitettava kysely 1C-kielellä, vaikka tämä mahdollisuus on olemassa ja sinun on käytettävä sitä. Voit yksinkertaisesti määrittää taulukon, tiedot, joista olet kiinnostunut, ja 1C luo itsenäisesti yksinkertaisen kyselyn.

Nähdäksesi kuinka dynaaminen luettelo muodostuu ja mitä tietoja se näyttää, sinun on avattava hallitut lomakkeet, missä se sijaitsee, konfiguraattorissa: tietoluettelossa kontekstivalikko avaa sen ominaisuudet ja kiinnitä huomiota kohtaan "Mielivaltainen pyyntö". Jos valintaruutua ei ole, "Main table" -parametri kuvastaa tietokantataulukkoa, josta tiedot on otettu. Muussa tapauksessa dynaaminen luettelo heijastaa mukautettuja kyselytietoja, jotka näet avaamalla luettelon asetukset.

Mielivaltaista kyselykaavaa käytetään paljon yleisemmin, koska se tarjoaa erinomaisen mahdollisuuden yhdistää ja näyttää monenlaisia ​​tietoja. Useimmiten tätä mekanismia käytetään kuvastamaan varastosaldoa, tuotehintoja, tuloja, kuluja tai ostoja. Sinun on käytettävä sitä huolellisesti, koska suorituskyky voi heiketä monimutkaiset kyselyt.

Toinen hyödyllinen dynaamisen luettelon ominaisuus avautuu napsauttamalla "Listan asetukset" -tekstiä. Tämän valikon avulla voidaan tehdä tiedoista helpommin saatavilla ja ymmärrettävämpiä loppukäyttäjille, jopa käytettäessä vakiokenttiä. Olipa kyseessä mielivaltainen pyyntö vai ei, näet "Asetukset"-välilehden, jossa voit määrittää:

  • Dynaamisen luettelon valinta;
  • ryhmittymät;
  • lajittelu;
  • Sisustus.

Parametrien käyttö tekee dynaamisista listoista riittävän monipuolisia ja joustavia. Voit myös sitoa ne rekvisiittauksiin hallitulla lomakkeella, jolloin tiedot muuttuvat käyttäjän valitsemien vaihtoehtojen mukaan. Näiden mekanismien käyttö voidaan ymmärtää ja arvostaa katsomalla esimerkkejä todellisista ongelmista.

Harkitse esimerkkinä ongelmaa, joka liittyy nimikkeistön jäänteiden heijastamiseen hallitulla lomakkeella. Käytännössä tällaiset tilaukset ovat melko yleisiä eri kokoonpanoissa, ja dynaaminen lista on ihanteellinen työkalu. Tätä tehtävää varten meidän on käytettävä mielivaltaista kyselyä, dynaamisia luetteloparametreja ja sen asetuksia.

Selvyyden vuoksi luomme erillisen ulkoinen käsittely ja aseta siihen dynaaminen luettelo. Suunnitelmiemme toteuttamiseksi tulee olemaan vähän nimikkeistöä sisältäviä taulukoita, joten meidän on sallittava mielivaltainen pyyntö. Siinä kuvataan hakuteoksen vasen yhteys nimikkeistön ja jäämärekisterin kanssa ja asetetaan hakuteos päätaulukoksi. Tällaisen järjestelmän avulla käyttäjät voivat lisätä tai muuttaa nimikkeistöä työskennellessään dynaamisen luettelon kanssa.



Valitse nimikkeistö Nimi Nimi nimenä, tavara- ja myyntikustannuk- set Sklad varastona, tavara- ja myyntikustannuk- sena Vaatteet asennussarjana hakemistosta Nimikkeistö rekisterin vasemman liitännän nimikkeistönä Jatkuvuus. Tuotokset (& & maaseutu

Koska CurrentDate-parametria käytettiin pyynnössämme, meidän on asetettava sen arvo ennen käsittelyn käyttöä. Määritä tätä varten lomakemoduulissa "On CreationOnServer" -menettelyssä vakiokomennolla sille toiminto "CurrentSessionDate" vakiokomennolla. Meidän on myös näytettävä dynaaminen luettelo ohjauslomakkeella ja muutettava kenttien järjestystä selvyyden vuoksi. Vedä rekvisiitta "Nomenclature Remains" lomakeelementteihin (ylävasemmalla) ja käytä sinisiä nuolia muuttaaksesi lomakkeen taulukon kenttien järjestystä.

&Palvelimella -menettely luomisen yhteydessä palvelimella (vika, vakiokäsittely) nimikkeistö Remains.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Jo tässä vaiheessa voimme avata ulkoisen käsittelymme 1C:ssä ja nähdä, että dynaaminen luettelo toimii. Voimme tarkastella saldoja, luoda nimikkeistöä ja ryhmiä ja etsiä. Usein asiakkaat pyytävät lisäämään mahdollisuuden valita päivämäärä, jolta he näkevät saldon. Lomakkeessa, jossa on dynaaminen luettelo, tämä saadaan lisäkentällä ja sitä käyttävillä parametreilla.

Lisäämme "Päivämäärä"-tyypin attribuutin "Jäljellä oleva päivämäärä" ja siirrämme sen lomakeelementteihin. Kenttätapahtumiin luomme tapahtuman "OnChange" ja kirjoitamme koodin dynaamisessa kyselyssä käytetyn "CurrentDate"-parametrin asettamiseen. Jotta käyttäjä lomakkeen avaamisen yhteydessä ymmärtäisi heti, minä päivänä hän näkee saldot, teemme pieniä muutoksia OnCreateOnServer-menettelyyn.



&OnServerProcedureOnCreateOnServer(virhe, StandardProcessing)RemainsDate = CurrentSessionDate(); Nimike Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Toimenpiteen loppu &Asiakkaassa Procedure RemainsDateOnChange(Element) Item Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); EndProcedure

Tämän seurauksena dynaaminen luettelo -lomake voi näyttää saldot mille tahansa päivämäärälle.

Olemme käsitelleet vain pienen osan tämän työkalupakin ominaisuuksista, mutta tämä riittää jo ymmärtämään tämän tyyppisen dynaamisen luettelon mukavuuden. Samanlaista mekanismia käytetään moniin tehtäviin, mutta useimmiten se löytyy tyypillisistä kokoonpanoista hallinnoidut lomakkeet:

  1. valinta;
  2. Luettelot.

Saadakseen dynaamisen luettelon ja sen pyynnön tyypillisissä hallinnoiduissa lomakkeissa kehittäjän on avattava vaadittu lomake konfiguraattorissa. Etsi attribuutit-osiosta attribuutti, jonka tietotyyppi on "DynamicList" (useimmiten se valitaan lihavoituna). Sen ominaisuudet sisältävät pyynnön tekstin, valinnat ja muut asetukset.

Koti Huomautuksia Looking Glassista

21.04.2014 Haetaan dynaamisia luettelotietoja

Toteutettu versiossa 8.3.6.1977.

Olemme ottaneet käyttöön mahdollisuuden saada helposti ja kätevästi dynaamisen listan avulla näytettävät tiedot.

Saatat tarvita dynaamisia luettelotietoja, jotta voit tulostaa sen epästandardissa "tietyssä" muodossa. Tai suorittaakseen tiettyjä toimintoja heidän kanssaan. Lähetä esimerkiksi kirje kaikille listasta joidenkin kriteerien mukaan valitsemillesi vastapuolille.

Lisäksi on useita tehtäviä, joissa käyttäjä haluaa elementtiluettelon lisäksi nähdä myös tähän luetteloon liittyvät yhteenvetotiedot. Esimerkiksi, kun hän on valinnut tietyn tuoteryhmän ja tietyn toimittajan tuotteet, hän haluaa heti nähdä tällaisten tavaroiden kokonaismäärän tietokannassa.

Dynaaminen luettelo itsessään ei voi tarjota sinulle näitä tietoja. Dynaamisen luettelon tarkoitus on tarjota nopea näkymä suurista tietomääristä. Siksi se lukee tiedot paloina, jotka tarvitaan näyttämään yhdellä tai kahdella näytöllä. Ja "ei tiedä mitään", esimerkiksi siitä, kuinka paljon dataa hänen on luettava.

Yleisesti ottaen, saadaksesi käyttäjän tarvitsemat lisätiedot, sinun on tehtävä kysely tietokannasta. Täsmälleen sama kuin dynaamisessa luettelossa käytetty.

Voisit tehdä sen aiemmin. Mutta se ei aina ollut helppoa. Alkuperäisen kyselyn tekstin lisäksi, jonka mukaan dynaaminen lista toimii, piti nimittäin tietää kaikki valinnat, lajittelut ja muut parametrit, jotka käyttäjä interaktiivisesti asetti tiedot näyttävään taulukkoon.

Nyt tämä tehtävä on helppo ratkaista. Dynaamisessa luettelotaulukossa on kaksi uutta menetelmää:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Siten saat itse tietojen kokoonpanokaavion ja mikä tärkeintä, kaikki sen asetukset, joiden ansiosta käyttäjä näkee luettelon täsmälleen sellaisena kuin se on. Sinun tarvitsee vain laatia asettelu ohjelmallisesti ja tulostaa se arvokokoelmaan (ohjelmallista käsittelyä varten) tai laskentataulukkoasiakirjaan (näyttöä varten):

Tämän seurauksena saat rakenteen (tai raportin), joka sisältää sarakkeita ja rivejä, jotka näytetään dynaamisessa luettelotaulukossa.

Tärkeää on, että dynaamisesta listataulukosta saatava asettelu ja asetukset ottavat huomioon muun muassa sarakkeiden näkyvyyden ja käytetyn haun. Koska asetukset hankitaan erikseen, voit muuttaa kenttien koostumusta omiin tarpeisiisi ja saada esimerkiksi kaikki listan sarakkeet, ei vain niitä, jotka käyttäjälle näkyvät.

Laskentataulukkoasiakirjaan tulostettaessa on toinen mukava hetki. Yleensä raportin ulkoasu vastaa ulkomuoto dynaamiset luettelotaulukot, kun skeema ja asetukset vastaanotetaan. Sisältää taulukon ehdollisen suunnittelun. Tarvitset lisätoimenpiteitä vain, jos haluat siirtää myös lomakkeen ehdollisen suunnittelun raporttiin.

Määrityksiä viimeistellessään jokainen 1C-ohjelmoija kohtaa dynaamiset luettelot.
Dynaaminen lista on käyttöliittymäobjekti, jota käytetään näyttämään erilaisia ​​luetteloita tietokantaobjekteista tai ei-objektidata - rekisterimerkintöjä.
Esimerkiksi dynaamista luetteloa käytetään kohteiden luettelon näyttämiseen:

Havainnollistaaksesi dynaamisen luettelon mahdollisuudet, luodaan ulkoinen käsittely, lisätään päälomake. Lisätään lomakkeeseen uusi attribuutti, jonka tyyppi on "Dynaaminen luettelo". Mennään sen kiinteistöihin ja katsotaan mitä siellä on.
Olemme kiinnostuneita "Custom request" -ominaisuudesta. Sen käyttöönotto näyttää meille kaikki dynaamisen luettelon mahdollisuudet. Pystymme kirjoittamaan kyselyn käyttämällä lähes kaikkia 1C: Enterprise -järjestelmän kyselykielen ominaisuuksia. Valitse valintaruutu ja napsauta "Avaa"-linkkiä:

Oletusarvoisesti luettelomme näyttää luettelon tuotteista, joissa on kaikkien varastojen kokonaissaldo. Ota tällainen luettelo käyttöön lisäämällä seuraava kysely:


Päätaulukoksi valitsemme "Hakemisto. Nimikkeistö", tämä antaa meille mahdollisuuden työskennellä dynaamisen luettelon kanssa, kuten nimikkeistöluettelon kanssa - lisää, muuta, merkitse hakemiston poistettavia elementtejä. Samoin päätaulukon kattaminen tekee edullinen mahdollisuus dynaaminen tiedonluku - tämä tarkoittaa, että näyte tehdään osissa tarpeen mukaan.
Seuraavaksi meidän on luotava lomakeelementtejä luetteloomme:

Jos yritämme suorittaa käsittelymme tässä muodossa, saamme virheilmoituksen:


Sen poistamiseksi sinun on asetettava "Jakso"-parametrin arvo. Voit tehdä tämän käyttämällä dynaamisen luettelon "Parameters" -kokoelman "SetParameterValue" -menetelmää. Menetelmä vaatii kaksi parametria:
. "Parametri" - Tyyppi: Merkkijono; DataCompositionParameter. Sen parametrin tai tiedon kokoonpanoparametrin nimi, jonka arvo on asetettava;
. "Arvo" - Tyyppi: mielivaltainen. Asetettava arvo.
Voidaan kutsua lomakkeen "OnCreateOnServer" -käsittelijässä:

Onko sinulla kysyttävää, tarvitsetko konsultin apua?


Annetaan käyttäjälle mahdollisuus muuttaa saldojen vastaanottoaikaa. Tehdään tämä lisäämällä attribuutti ja siihen liittyvä "Päivämäärä"-lomakeelementti:


Kutsu "Date"-lomakeelementin OnChange-käsittelijässä "SetParameterValue"-metodi ja välitä arvoksi liittyvän attribuutin arvo. Vastaavasti muutamme lomakkeen "On CreationAtServer" -menettelyä. Koska menetelmä on käytettävissä asiakkaalla, palvelinta ei tarvitse soittaa:


Nyt kun päivämäärä muuttuu, saldot päivitetään automaattisesti:




Oletetaan, että käyttäjät haluavat nähdä joko nykyiset saldot tai ennakoidut kuitit. Harkitsemme yhtä toteutusvaihtoehdoista. Lisätään Boolen muotoattribuutti ja siihen liittyvä valintanappi:


Muutettaessa kytkimen arvoa, muutamme pyynnön tekstiä. Käytämme tähän lomakeelementin "DisplayQuantityToReceipt" tapahtumakäsittelijää "OnChange". Meidän on muutettava dynaamisen luettelon "QueryText"-ominaisuutta attribuutin arvon mukaan. Koska tämä ominaisuus ei ole käytettävissä asiakkaalla, vaaditaan kutsu palvelimelle:


Tehtyjen muutosten tulos: