Dynaamisen listan parametrien asettaminen 1c.

31.10.2021

Tulosta (Ctrl+P)

Dynaaminen lista

1. Yleistä tietoa

Dynaaminen luettelo on erityinen tietotyyppi, jonka avulla voit näyttää mielivaltaisia ​​tietoja tietokantataulukoista lomakkeella. Tätä varten sinun on määritettävä taulukko, jonka tiedot haluat näyttää, tai kuvattava tuloksena oleva valinta kyselykielellä.
Mekanismi perustuu tiedonkokoonpanojärjestelmään ja tarjoaa ominaisuudet vastaanotetun tiedon lajitteluun, valintaan, etsimiseen, ryhmittelyyn ja ehdolliseen muotoiluun. Tässä tapauksessa tietolähde on pyyntö, jonka joko järjestelmä generoi automaattisesti (määritettyjen tietojen perusteella) tai jonka kehittäjä kirjoittaa manuaalisesti.

Riisi. 1. Vaihtoehdot dynaamisen luettelon luomiseen

Kun luot tyyppisiä lomakemääritteitä Dynaaminen lista kehittäjä voi valita kaksi tapaa muodostaa tietokyselyn:
● Määrittämällä päätaulukon - tässä tapauksessa sinun tarvitsee vain määrittää taulukko (Main table-ominaisuus), josta haluat vastaanottaa tietoja, ja järjestelmä luo automaattisesti tiedoista kyselyn (katso oikea osa kuvassa 1). 1).
● Pyynnön luominen manuaalisesti - tätä varten sinun on asetettava Custom request -ominaisuus (katso kuvan 1 vasen puoli). Tämän jälkeen on mahdollista luoda manuaalinen pyyntö tietojen saamiseksi tietokannasta.
Kysely voi hakea tietoja useista taulukoista, joten voit määrittää ensisijaisen taulukon. Näin dynaaminen luettelo voi määrittää, mikä data on ensisijaista ja mikä toissijaista, ja voi valita ja näyttää tiedot oikein sekä antaa vakiokomentoja. Jos päätaulukkoa ei kuitenkaan voida määrittää kyselyssä, sitä ei voida määrittää, mutta sitten
dynaaminen luettelo ei tarjoa päätaulukkoon liittyviä komentoja. Lisäksi tässä tapauksessa (päätaulukkoa määrittämättä) dynaamisen luettelon avulla saamisen tehokkuus heikkenee merkittävästi.
Suorituskyvyn parantamiseksi on suositeltavaa, että kaikki liitokset, joita käytetään mukautetussa kyselyssä vain lisätietojen saamiseksi, tehdään valinnaisiksi käyttämällä tiedonkokoonpanojärjestelmän kyselyn kielilaajennusta.
Dynaamiselle listalle, joka on tärkein lomakeattribuutti, on mahdollista asettaa valintaarvot lomakeparametrilla Valinta. Tätä varten on välttämätöntä, että parametrissa sijaitsevan rakenteen ominaisuuden nimi Valinta,
osui yhteen dynaamisen luettelon valintakentän nimen kanssa. Tässä tapauksessa rakenne-ominaisuuden arvo asetetaan valintaelementin oikeaksi arvoksi. Jos taulukko, kiinteä taulukko tai arvolista välitetään dynaamisen listalomakkeen Selection-parametrin elementin arvoksi, valintaan lisätään ehto, jossa on In List -vaihtoehto, oikeaan arvoon. joista asetetaan arvoluettelo (johon matriisi ja kiinteä matriisi muunnetaan).
Mielivaltainen kysely dynaamisessa luettelossa voi olla kysely, jossa parametria käytetään kentän arvon luomiseen, esimerkiksi:

VALITA
VALINTA
KUN Toimitus.Kerroin = 1 NIIN &Esitys
MUUTOIN Toimitus. Kerroin
END AS Suhde
FROM

Lisäksi, jos parametrin arvon tyyppi eroaa objektiattribuutin tyypistä (esim. Rekvisiitta 1 on tyyppiä Määrä, ja parametrin arvo on type Linja), jotta kenttä näytetään oikein, sinun on suoraviivaistettava parametrin arvo haluttuun tyyppiin:

VALITA
VALINTA
KUN Toimitus.Kerroin = 1 THEN EXPRESS(&Representation AS String(100)) MUU Toimitus. Kerroin
END AS Suhde
FROM
Asiakirja. Tuotteiden toimitus MITEN toimittaa

Jos kenttä, jolla valinta asetetaan, on poistettu käytöstä toiminnallisilla valinnoilla, tällaisen kentän valintaa ei asenneta, vaikka valintaarvo välitettäisiin lomakeparametreina tai valintaparametrilinkkeinä.
Dynaaminen tietojen luku -ominaisuuden avulla osoitat dynaamiselle luettelolle tarpeen lukea tietoja pienissä osissa
(lisätietoja tavoista saada tietoja dynaamisen luettelon ja tietojen välimuistin avulla, katso alla). Tästä määritteestä riippumatta seuraavat ehdot ovat voimassa:

● Jos katselutilaksi on asetettu hierarkkinen lista, vain nykyisen ryhmän tiedot ja kaikkien yläelementtien tiedot (ilman lapsia) luetaan.
● Jos puunäkymätila on asetettu, vain avoimien puusolmujen tiedot luetaan.
● Dynaamisen luettelon tietojen kertalatausta ei tueta, jos hierarkkinen selaus on asetettu (Näyttö-ominaisuuden arvo on Tree) ja alkuperäiseksi puunäyttöksi on asetettu Laajenna kaikki tasot. Tietojen saamiseksi palvelimelle tehdään niin monta pyyntöä kuin näytettävässä luettelossa on solmuja.
Dynaaminen luettelo käyttää uudelleen yhdessä tiedonhaussa aiemmin luotuja väliaikaisia ​​taulukoita, jos seuraavat ehdot täyttyvät:
● Listaeräkyselyssä ei ole kyselyjä pääeräkyselyn jälkeen.
● Väliaikaisten taulukoiden ja niissä olevien kenttien kokoonpano on muuttumaton eräpyynnön edelliseen suoritukseen verrattuna.

Dynaaminen luettelo käyttää työssään seuraavien metatietoobjektien yksityiskohtien ominaisuuksien arvoja:
● muoto,
● muokkausmuoto,
● vihje,
● merkki negatiivisten arvojen korostamiseksi,
● maski,
● monirivinen tilamerkki,
● edistyneen muokkauksen merkki,
● salasanatila.
Tiedonmuodostusjärjestelmän valinnan ja parametrien näyttämisessä ja muokkauksessa käytetään vastaavan kentän muokkausmuotoa.

2. Rajoitukset ja ominaisuudet

Kun asetat valintaa dynaamiseen luetteloon, muista, että valinta ei vaikuta ryhmiin, jos dynaamisen luettelon näyttötila on Hierarkkinen luettelo tai Puu. "Ryhmillä" tarkoitamme ominaistyyppien hakemiston tai suunnitelman elementtiä, jonka ThisGroup-ominaisuuden arvo on True.
Dynaamisen luettelon automaattisesti soveltamat pätevyydet vakiotietoihin Omistaja, Vanhempi, Päivämäärä, Kausi ja Tämä ryhmä sovelletaan
standardi tarkoittaa tietojen koostejärjestelmät. Dynaamisen luettelon automaattisesti avainkenttiin soveltamaa valintaa voidaan soveltaa sekä tietojen kokoonpanojärjestelmän vakiokeinoilla että lisäämällä ehtoja suoraan pyyntötekstiin. SISÄÄN päätaulukon kenttiin. Asettelutyökaluilla tehtyjen valintojen soveltamisen seurauksena niitä voidaan soveltaa sekä sisäkkäisissä kyselyissä että virtuaalitaulukoiden parametreissa.

Dynaamisia luetteloita kehitettäessä on suositeltavaa testata kaikki dynaamiset luettelot mukautetuilla kyselyillä. Varmista varmistusprosessin aikana, että jos luettelokysely sisältää sisäkkäisiä kyselyitä tai virtuaalisia taulukoita, ja niissä on kenttiä, joiden aliakset vastaavat vakiotietojen Owner, Parent, Date, Period, ThisGroup tai avainkenttien aliaksia. valinnan, nämä kentät ovat kelvollisia ja vastaavat tavallisia tietoja, joiden kanssa lempinimi vastaa. Jos näin ei ole, sinun tulee muuttaa pyyntöä niin, että ne vastaavat tai
lempinimi oli erilainen.
Jos päätät luoda pyynnön manuaalisesti, pyynnölle asetetaan joitain rajoituksia:
● FIRST-käskyn käyttöä dynaamisessa luettelokyselyssä ei tueta. Jos sinun on käytettävä valintaa, joka on rajoitettu dynaamisen luettelon tietueiden lukumäärällä, sinun tulee muokata dynaamisen luettelon luomispyyntöä siten, että pyynnön todellinen sisältö sijoitetaan alikyselyyn ja rajoittaa tietueiden määrää. vastaanotettu tässä alikyselyssä. Voit myös käyttää väliaikaista taulukkoa alikyselyn sijaan.
● Valinta, lajittelu ja ryhmittely eivät ole tuettuja:

  • Yksityiskohtien mukaan taulukkoosat.
  • Näytä kentät.
  • DataVersion-kenttä.
  • PredefinedDataName-kenttä.
  • Tilikarttataulukon tyyppikenttä.
  • Keräysrekisteritaulukon liiketyyppi.
  • Kentän tyyppiArvot ominaistyypin suunnitelmataulukon.
  • Tyyppikenttä Tyyppi;
  • Kenttä, jonka tyyppi on String (pituus rajoittamaton).
  • Kenttä, jonka tyyppi on BinaryData.

● Lajittelua ja ryhmittelyä Subconto-kenttien mukaan ei tueta<НомерСубконто>ja ViewSubconto<НомерСубконто>Taulukot MovementsSubconto kirjanpitorekisterin.
● Ryhmittely kenttien mukaan, jotka sisältävät kyselykielen lausekkeita aggregaattifunktiot.
● Kun päätaulukko on valittu, dynaamisella luettelokyselyllä on seuraavat rajoitukset:

  • Liittymiä ei tueta.
  • ORDER BY -osiota ei tueta. Sinun tulisi käyttää kyselyä ilman päätaulukkoa tai määrittää tarvittava järjestys dynaamisen luettelon asetuksista.

● Jos dynaaminen luettelo näytetään hierarkkisena luettelona tai puuna, merkintää ei näytetä dynaamisena luettelona, ​​ellei vähintään yksi kyseisen merkinnän ylätaso ole näkyvissä. Toisin sanoen hierarkkisen luettelon elementin näyttämiseksi dynaamisessa luettelossa on näytettävä myös kaikki kyseisen elementin yläpäät luettelon yläosaan asti. Tässä tapauksessa luettelon yläosassa tarkoitamme jompaakumpaa
dynaamisen luettelon näyttämän hierarkkisen objektin juurielementti tai dynaamisen luettelon lomaketaulukkolaajennuksen ParentTopLevel-ominaisuudeksi asetettu elementti.

Seuraavien taulukoiden käyttämistä dynaamisen luettelon päätaulukkona ei tueta:

● Taulukko, jossa ei ole avainta, joka yksilöi jokaisen taulukkotietueen (viite objektitaulukoille ja tietueavain rekisteritaulukoille). Seuraavat taulukot voidaan kuitenkin asettaa dynaamisen luettelon päätaulukoksi (vaikka niillä ei ole avainta):

● Kirjanpitorekisterin alikontotaulukko;
● kaikki kirjanpitorekisterin virtuaalitaulukot, paitsi MovementsSubconto-taulukko;
● vakioarvojen taulukot (mukaan lukien Vakiot-taulukko);
● ulkoisten tietolähteiden taulukot ilman avainkenttiä;
● ulkoisten tietolähteiden kuutiotaulukot;
● kertymärekisteritaulukot:

  • vallankumous taulukko;
  • tasapaino taulukko;
  • taulukko liikevaihdosta ja saldoista.

● laskentarekisteritaulukot:

  • taulukko todellisesta voimassaoloajasta;
  • aikataulutiedot;
  • perustiedot.

● Esineiden taulukkoosien taulukot;
● Muutosrekisteröintitaulukot (käytetään tiedonvaihtomekanismeissa);
● Sekvenssitaulukot;
● Muunnostaulukot (käytetään säännöllisissä selvitysmekanismeissa).
● Taulukko, jota käytetään kyselyssä vain ulkoliitoksessa.

Toisin sanoen dynaaminen luettelo määritetyn päätaulukon kanssa toimii oikein, jos kyselyn suorittamisen seurauksena
Tietolähteeksi määritettynä päätaulukosta saatujen rivien määrä ei kasva (kun otetaan huomioon pakotettu valinta). Jos kyselyn suorittamisen seurauksena päätaulukosta kyselyn saamien rivien määrä kasvaa, tämä johtaa luettelon näyttämän taulukon tietueiden avaimen ainutlaatuisuuden rikkomiseen. Tässä tapauksessa sinun on poistettava dynaamisen pääluettelotaulukon käyttö käytöstä.
Kun työskentelet dynaamisen luettelon kanssa, sinun on otettava huomioon pääsyoikeudet luettelon näyttämiin tietoihin:
● Tietoa dynaamisista luettelosarakkeista, jotka on merkitty aina Käytä -ominaisuudella, mutta joihin nykyisellä käyttäjällä ei ole katseluoikeutta, ei siirretä asiakaspuolelle. Pääsy tällaisten sarakkeiden tietoihin (käyttäen CurrentData-ominaisuutta ja RowData()-menetelmää)
ei ole mahdollista asiakkaan puolella.
● Jos nykyisellä käyttäjällä ei ole Näytä-oikeutta dynaamisen luettelon avainkentässä, tietojen hakeminen kyseisestä dynaamisesta luettelosta johtaa käyttöoikeusrikkomusvirheeseen.
Dynaamisessa luettelossa, joka näyttää luettelointiluettelon, luetteloa ei voi muokata interaktiivisesti.
Dynaamisen luettelon sarakkeiden koostumus ja asetukset liitetään kyselykenttiin käyttämällä valintakenttien aliaksia. Jos aliasta ei ole erikseen määritetty valintakentän kyselyssä ja kenttä on järjestelmällinen, aliaksena käytetään sisäänrakennetun kielen englanninkielisen version kentän nimeä.
Määritetty suhde tarkoittaa, että kun muutetaan (tai nimenomaisesti määritetään alias kentälle, jossa käytettiin automaattista aliasta)
dynaamisen luettelon tiedot luovan kyselykentän alias, dynaamisen luettelon attribuuttiasetukset menetetään, lomakeelementit "menettävät" näytetyt tiedot, dynaamisen luettelon asetukset muuttuvat virheellisiksi jne.
Jos dynaamisen listan tietolähde on taulukko (säännöllinen tai virtuaalinen), jonka avulla voit asettaa valinnan jaksoittain, niin jos käyttäjä asettaa näyttöjakson sellaiseen dynaamiseen luetteloon (komento Aseta päivämääräväli...),
määritetyt ajanjakson rajat asetetaan valintaarvoiksi tai virtuaalitaulukon parametreiksi. Jos kielilaajennuksella
kyselyitä tiedonmuodostusjärjestelmää varten, virtuaalitaulukon parametrien nimet oli määritelty erikseen - parametrit määritetyillä
nimet. Taulukot, joille on mahdollista hallita tietojen näyttö- tai käsittelyaikaa:
● rekisteritaulukot (pää- tai virtuaali), joille on mahdollista valita ajanjakson mukaan (laskentarekisterille - rekisteröintijakson mukaan);
● dokumenttien, liiketoimintaprosessien ja tehtävien päätaulukot;
● asiakirjapäiväkirjojen päätaulukot;
● pääsekvenssitaulukot, sekvenssirajataulukot.
Dynaamisen luettelon kyselyparametri voi olla jono tai arvoluettelo. Jos parametri on kuitenkin arvoluettelo, vain luettelon ensimmäistä arvoa käytetään valintaarvona. Jos dynaaminen lista käyttää kyselyä parametrien kanssa, parametriarvojen alkuasetus on suoritettava OnCreateOnServer-käsittelijässä.
Kun näytät dynaamisia luettelotietoja, pidä seuraavat asiat mielessä:
● Kun muutat ohjelmallisesti dynaamisen luettelon ominaisuuksia, automaattista uudelleentäyttämistä ei tapahdu komentopaneelit liittyvät
tällä dynaamisella listalla.
● Jos useita kenttiä on ryhmitelty ryhmään solun ryhmittelytilassa ja ryhmitetyissä kentissä on kenttä, joka näkyy valintaruuduna, tämä valintaruutu näkyy aina ensimmäisenä tuloksena olevassa solussa (vasemmalla teksti).
Kun dynaamisessa luettelossa määritetään tietotyyppi kentille, joiden lausekkeet sisältävät parametreja, kenttiä tai literaaleja, tuloksena oleva tyyppi määritetään kenttien ja literaalien tyyppien mukaan. Jos parametrin arvon tyyppi ei sisälly tuloksena olevaan tietotyyppiin, sen arvo katkaistaan.
Esimerkiksi seuraavassa esimerkissä kentän tyyppi on Number.

VALINTA
KUN SE ON VAHEE
SITTEN 5
MUUTEN
&Parametri
LOPPU

Jos asetat Parametri-parametrin toisen tyypin arvon, kentän dynaaminen luettelo saa arvon 0 (Numero-tyypin oletusarvo).
Jos tällaisessa tilanteessa sinun on valittava erityyppinen parametri, on suositeltavaa käyttää kyselykielirakennetta ILMAISTA. Esimerkiksi,
jos yllä olevassa esimerkissä sinun on välitettävä parametriin enintään 100 merkkiä pitkä merkkijono, sinun tulee korvata parametrin yksinkertainen ilmaisu lausekkeella, jossa on eksplisiittinen tyyppi:

VALINTA
KUN SE ON VAHEE
SITTEN 5
MUUTEN
EXPRESS(&Parametri AS String(100))
LOPPU

Jos dynaamisen luettelopyynnön mielivaltainen teksti käyttää parametreja valintakenttien lausekkeissa, sinun tulee osoittaa parametrien tyyppi eksplisiittisesti käyttämällä konstruktia ILMAISTA. Esimerkiksi sen sijaan &Nimikkeistö AS Nimikkeistö käyttää
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS Nimikkeistö. Muutoin haku hakupalkin kautta voi toimia
virheellinen tai tuottaa virheitä.

3. Menetelmät tietojen noutamiseen ja tallentamiseen välimuistiin dynaamisen luettelon avulla

Kun dynaaminen luettelo haetaan näytettäväksi, se käyttää yhtä kolmesta menetelmästä:
1. Lukeminen tietokannasta suoritetaan paloina, joiden tietoelementtien lukumäärä on hieman suurempi kuin luettelon samanaikaisesti näyttämien rivien lukumäärä (mutta vähintään 20). Tietoja ei tallenneta välimuistiin palvelimella.
2. Tietokannasta lukeminen tapahtuu 1000 tietokohteen sivuilla. Tietoja tallennetaan välimuistiin palvelimella. Hierarkkiset tiedot tallennetaan välimuistiin: enintään 2 sivua elementtejä tallennetaan välimuistiin kummallekin päätasolle. Dynaamista luetteloa kohden välimuistiin tallennetaan enintään 20 sivua kohteita. Välimuistiin tallentaminen otetaan käyttöön dynaamisella luettelolla seuraaville taulukoille:
● Valintakriteerit;
● Kaikki kirjanpitorekisterin taulukot paitsi päätaulukko ja MovementsSubconto-taulukko;
● Kaikki kertymärekisteritaulukot, paitsi päätaulukko;
● Kaikki tietorekisterin taulukot, paitsi päätaulukko;
● Kaikki laskentarekisterin taulukot, paitsi päätaulukko;
● Virtuaalinen taulukko tehtävistä esittäjän mukaan;
● Ulkoisten lähteiden taulukot ilman avaimia;
● Kuutiot ulkoisista lähteistä.

3. Tietokannasta lukeminen suoritetaan 1000 elementin sivuilla. Ensimmäinen osa on yhtä suuri kuin 1 sivu. Jokainen seuraava osa kasvaa yhdellä sivulla (kun edellisen näytteen loppu on saavutettu). Mitä lähemmäksi "näkökulma" siirtyy näytettävän datan loppua, sitä suurempi näyte luetaan tietokannasta, ja lopulta siitä tulee yhtä suuri kuin kaikki näytettävät tiedot. Tietoja tallennetaan välimuistiin palvelimella. Välimuistin ja dynaamisen luettelon merkintöjen enimmäismäärä on 1 000 000.
Riippuen siitä, mitä dynaamisen luettelon päätaulukko valitsee ja minkä arvon Dynaaminen lukuominaisuus saa, käytetään yhtä tai toista tietojen lukutapaa:

● Yksi seuraavista taulukoista on määritetty Main table -ominaisuuden arvoksi: vaihtosuunnitelma, hakemisto, dokumenttiluettelo, dokumenttipäiväkirja, ominaisuustyyppisuunnitelma, tilikartta, laskentatyyppien suunnitelma, liiketoimintaprosessi, tehtävä, taulukko liiketoimintaprosessin pisteet:



● Päätaulukko-ominaisuuden arvoksi on määritetty jokin seuraavista taulukoista: tietorekisterin päätaulukko, kertymärekisteri, kirjanpitorekisteri, laskentarekisteri, kirjanpitorekisterin MovementsSubconto virtuaalitaulukko:

● Dynaaminen lukuominaisuus:
● Asennettu: menetelmää 1 käytetään (menetelmien kuvaus yllä).
● Reset: Käytetään menetelmää 2 (menetelmien kuvaus on edellä).

● Päätaulukko-ominaisuus sisältää valintakriteeritaulukon tai tehtävätaulukon suorittajan mukaan (Tasks By Performer):
● Taulukon rivin tunnistava avain: Linkki.

● Main table -ominaisuus määrittää tietorekisterin SliceFirst tai SliceLast virtuaalisen taulukon:
● Taulukon rivin tunnistava avain: RecordKey.
● Dynaaminen lukuominaisuus ei ole käytettävissä.
● Käytetään menetelmää 2 (menetelmien kuvaus on edellä).

● Main table -ominaisuus on asetettu johonkin virtuaalirekisteritaulukoista, paitsi yllä luetelluista:

● Dynaaminen lukuominaisuus ei ole käytettävissä.

● Päätaulukko-ominaisuutta ei ole määritetty, käytetään mielivaltaista kyselyä:
● Taulukon rivin tunnistava avain: Numero.
● Dynaaminen lukuominaisuus ei ole käytettävissä.
● Käytetään menetelmää 3 (menetelmien kuvaus on edellä).

Näyttöä varten tiedot siirretään asiakkaalle osissa, joiden koko on samanlainen kuin 1. tietojen lukutavan (kuvattu tämän osan alussa) annoksen koko.
Kun luot lomakkeen, joka sisältää dynaamisen luettelon, 45 tietokohdetta kullekin näkyvälle dynaamiselle luettelolle välitetään aluksi asiakkaalle (jos luettelossa on yli 45 kohdetta). Jos dynaamisessa luettelossa on yli 45 riviä, lomake avattaessa tehdään lisäpalvelinkutsu puuttuvien tietokohteiden noutamiseksi.

4. Dynaamisen luettelon asetukset

Ominaisuusluettelon asetukset - Avaa hyperlinkkiä napsauttamalla avautuu lomake dynaamisen luettelon näytön asettamiseen. Listan määrittäminen tapahtuu samalla tavalla kuin vastaavat toiminnot tiedonkokoonpanojärjestelmässä.


Riisi. 2. Dynaamisen luettelon ehdollinen muotoilu

Kun määrität konfiguraatiossa dynaamisen luettelon, sovelluksen kehittäjällä on mahdollisuus tehdä seuraavaa:
● aseta kentät, joiden mukaan haluat lajitella;
● kuvaile listan tietojen valintaa;
● määrittää ehdolliset ulkoasuasetukset;
● aseta kentät, joiden mukaan haluat ryhmitellä tiedot.
On järkevää asettaa lajittelu kehittäjälle, jos et ole tyytyväinen järjestelmän asentamaan oletuslajitteluun.

NEUVOT. On syytä muistaa, että lajittelukenttien huono valinta (sekä tietojen valinta ja ryhmittely) vaikuttaa negatiivisesti dynaamisen näytteenoton tehokkuuteen.
Sovelluskehittäjän näkökulmasta dynaamiset luetteloasetukset koostuvat useista osista, jotka ovat yhteydessä toisiinsa. Pääominaisuus, jonka kautta voit hallita dynaamisen luettelon asetuksia, on LinkerSettings. Tämä objekti sisältää kolme asetusjoukkoa, jotka määrittävät järjestelmän suoritettaessa lopulliset dynaamiseen luetteloon sovellettavat asetukset:
● Asetukset – Configurator-tilassa luodut asetukset. Dynaamisen luettelon ominaisuus Order tarjoaa nopea pääsy dynaamisen luettelon asetusten rakennustyökalun Settings.Order-ominaisuuteen, joten seuraavat rakenteet ovat vastaavia:
List.Order ja List.SettingsLinker.Settings.Order;
● UserSettings – nämä ovat asetuksia, joita käyttäjä muuttaa 1C:Enterprise-tilassa;
● Kiinteät asetukset – nämä asetukset määritetään sisäänrakennetulla kielellä. Tämä ominaisuus sisältää myös valintaarvoja, jotka siirretään lomakkeeseen sen parametrien avulla. Dynaamisen luettelon ominaisuudet Valinta, Asetukset, Ehdollinen ulkoasu tarjoavat nopean pääsyn dynaamisen luettelon asetusten rakennustyökalun kiinteisiin asetuksiin. Toisin sanoen nämä puhelut ovat vastaavia:
List.Settings Composer.FixedSettings.Selection ja List.Selection.
Kun luot dynaamisen luettelon lopullisia asetuksia, eri asetusvaihtoehdot yhdistetään seuraavasti:
● Jos jonkin tyyppiset asetukset on merkitty kokonaan mukautetuiksi, tuloksena olevat asetukset sisältävät mukautetut asetukset
(List.ComposerSettings.UserSettings). Lisäksi, jos jokin asetuselementti on merkitty ei-käytettävissä olevaksi, nämä asetukset sijoitetaan tuloksena oleviin asetuksiin List.Settings Composer -ominaisuudesta. Asetukset.
● Jos minkä tahansa tyyppisiä asetuksia ei ole merkitty mukautetuksi kokonaan, vaan elementti kerrallaan, toimi seuraavasti:
● Mukautetuiksi merkityt kohteet sisällytetään List.SettingsComposer.CustomSettings-ominaisuuden tuloksena oleviin asetuksiin.
● Ei käytettävissä oleviksi merkityt kohteet sisällytetään List.SettingsComposer.Settings-ominaisuuden tuloksena oleviin asetuksiin.
● Kiinteät asetukset (List.SettingsComposer.FixedSettings) lisätään tuloksena oleviin asetuksiin "sellaisenaan". Samalla ei voida hyväksyä, että kiinteät ja käyttäjäasetukset sisältävät samannimiä asetuksia, esimerkiksi valinta, jolla on sama vasen arvo ehdossa.

Jos dynaamisen luettelon asetukset sisältävät asetuksia, jotka on poistettu käytöstä toiminnallisten asetusten avulla, nämä asetukset poistetaan käytettävissä olevien asetusten luettelosta, kun dynaamisen luettelon tiedot haetaan.
Dynaamisen luettelon asetusikkunassa ohjataan, mitkä asetukset ovat käyttäjän käytettävissä ja mitkä eivät.


Riisi. 3. Ohjaa sisällyttämistä käyttäjäasetuksiin

Ikkunan alareunassa oleva valintaruutu (katso kuva 3) vastaa koko asetustyypin asettamisesta asetuksiin (normaali tai nopea). Tämä ominaisuus on käytettävissä valintaa, järjestystä, ryhmittelyä ja ehdollistamista varten. Jos asetukset on määritetty Quick Select -muokkaustilassa, niin dynaamisen listan näyttävän lomakkeen taulukon User Settings Group -ominaisuudessa on määritettävä tyhjä lomakkeen ryhmä, jossa käyttäjän pika-asetuksiin liittyvät elementit. dynaaminen luettelo löytyy. Jos ryhmää ei ole määritetty, pikakäyttäjäasetuksia ei näytetä lomakkeella. On myös mahdollista eksplisiittisesti kutsua luomaan mukautettuja asetuksia käyttämällä sisäänrakennettua kieltä käyttämällä dynaamisen luettelolaajennuksen CreateCustomSettingsFormItems()-menetelmää.
On myös mahdollista valita, sijoitetaanko tiettyjä asetuksia käyttäjäasetuksiin. Tämä ominaisuus on käytettävissä valinta- ja ehdollisten suunnitteluelementtien osalta (katso kuva 3).

Jos tarvitset erityisasetuksia ladattaviksi dynaamista luetteloa avattaessa, voit tehdä tämän kahdella tavalla:
● Dynaamisen listan lomakkeen UserSettings-parametrin käyttäminen. Tämän parametrin sisältämät tiedot sijoitetaan käyttäjän dynaamisen luettelon asetuksiin.
● Dynaamisen luettelon lomakkeen parametriUserSettingsKey käyttäminen. Jos määrität tämän parametrin lomaketta avattaessa, asetusmuistissa määritetyllä avaimella sijaitsevat käyttäjäasetukset ladataan dynaamiseen luetteloon, joka on lomakkeen päämäärite.

5. Hae dynaamisesta luettelosta

Lomakkeessa oleva dynaaminen luettelo tarjoaa mahdollisuuden etsiä näytetyistä tiedoista interaktiivisesti. Haku voidaan suorittaa seuraavilla työkaluilla: hakupalkki, hakuikkuna, nykyisen arvon haku, hakuhistorian avulla ja pisteen asettaminen (asiakirjoja näyttäville dynaamisille listoille). Hakutulos on rajoitettu joukko tietueita
dynaaminen luettelo (tietyn käyttäjän käytettävissä olevista), jotka vastaavat hakuehtoja.
Dynaamisen luettelon hakuominaisuuksien ohjaamiseen on kolme taulukkoominaisuutta: kontrolloitu muoto, näyttää dynaamisen luettelon:
● Hakumerkkijonon sijainti – määrittää hakumerkkijonon sijainnin. Voi ottaa seuraavat arvot: Auto, Command Bar, None, Top, Bottom.


Riisi. 4. Hae merkkijonoa dynaamisesta luettelosta

Jos tämän ominaisuuden arvoksi on asetettu Komentopaneeli, hakumerkkijono näytetään lomakkeen komentopaneelissa (jos dynaaminen luettelo on lomakkeen päämäärite) tai dynaamiseen luetteloon liittyvässä komentopaneelissa. Komentopalkkiin sijoitettu hakupalkki painetaan aina komentopalkin oikeaan reunaan (hakupalkin oikealla puolella olevien painikkeiden kanssa).
Jos ominaisuuden arvoksi on asetettu Ei, hakumerkkijono ei ole lomakkeessa, ja kun alat kirjoittaa hakumerkkijonoa, valintaikkuna avautuu.
Jos ominaisuuden arvoksi on asetettu Top, hakupalkki sijaitsee luettelon komentopalkin ja dynaamista luetteloa näyttävän taulukon välissä. Jos ominaisuuden arvoksi on asetettu Bottom, hakumerkkijono sijoitetaan välittömästi dynaamisen luettelon näyttävän taulukon jälkeen.


● Jos Yhteensopivuustila-ominaisuuden arvo on Älä käytä tai vanhempi kuin versio 8.3.4 – arvo on Komentopaneeli.
Siirry hakuriville seuraavasti:
● Painamalla näppäinyhdistelmää Ctrl+F;
● Hiiri;
● Kun alat kirjoittaa dynaamiseen luetteloon (ottaen huomioon dynaamisen luettelon SearchOnTyping-ominaisuuden arvon).
● View State Position – kuvaa, missä näkymän tila näytetään: mitä kenttiä haettiin ja mitkä arvot
etsinyt joka alalta. Voi ottaa seuraavat arvot: Auto, None, Top, Bottom


Riisi. 5. Hakutila dynaamisessa luettelossa

Jos ominaisuuden arvo on Ei, näkymän tila ei ole lomakkeessa. Tämän seurauksena on mahdollista määrittää, onko haku suoritettu vai ei, vain Peruuta haku -painikkeen avulla.
Jos ominaisuuden arvoksi on asetettu Top, näkymän tila sijaitsee luettelon komentopalkin ja dynaamisen luettelon näyttävän taulukon välissä. Jos ominaisuuden arvoksi on asetettu Bottom, näkymän tila sijoitetaan välittömästi dynaamisen luettelon näyttävän taulukon jälkeen.
Jos lomake luotiin 1C:Enterprise-versiossa 8.3.4 ja sitä aikaisemmassa, ominaisuuden arvoksi on asetettu Ei. Jos lomake luotiin 1C:Enterprise-versiossa 8.3.5 ja sitä vanhemmissa, ominaisuuden arvoksi on asetettu Auto. Kiinteistön todellinen arvo määritetään tässä tapauksessa seuraavasti:
● Jos Yhteensopivuustila-ominaisuuden arvoksi on asetettu Versio 8.3.4 (ja vanhempi) – arvo No;
● Jos Yhteensopivuustila-ominaisuuden arvo on Älä käytä tai vanhempi kuin versio 8.3.4 – arvo Top;
● Search Control Position – Määrittää, missä haun ohjauspainike tulee näkyviin. Painike avaa valikon, joka sisältää seuraavat tiedot: komennot Etsi nykyisen arvon mukaan, Tarkennettu haku, Peruuta haku, Aseta ajanjakso (tosite- ja päiväkirjaluetteloille) ja hakukyselyhistoria (viimeiset 5 kyselyä). Ominaisuus voi saada seuraavat arvot: Auto, Ei mitään, Komentopaneeli.


Riisi. 6. Haun hallinta dynaamisessa luettelossa

Jos ominaisuuden arvoksi on asetettu Ei, haun ohjauspainike ei ole lomakkeessa (mutta komennot ovat käytettävissä Lisää-valikossa). Komentorivi-ominaisuuden arvo asettaa painikkeen komentoriville, joka liittyy dynaamisen luettelon näyttävään taulukkoon.
Jos lomake luotiin 1C:Enterprise-versiossa 8.3.4 ja sitä aikaisemmassa, ominaisuuden arvoksi on asetettu Ei. Jos lomake luotiin 1C:Enterprise-versiossa 8.3.5 ja sitä vanhemmissa, ominaisuuden arvoksi on asetettu Auto. Kiinteistön todellinen arvo määritetään tässä tapauksessa seuraavasti:
● Jos Yhteensopivuustila-ominaisuuden arvoksi on asetettu Versio 8.3.4 (ja vanhempi) – arvo No;
● Jos Yhteensopivuustila-ominaisuuden arvo on Älä käytä tai vanhempi kuin versio 8.3.4 – arvo on Komentopaneeli;
Jos lomakkeella on useita komentopaneeleja, joiden komentojen lähde on yksi hallitun lomakkeen taulukko (näyttää dynaamiset luettelotiedot), hakurivi ja haun ohjauspainike sijaitsevat vain yhdessä komentopaneelissa:
● Tai itse dynaamisen luettelon komentopalkissa (jos automaattinen täydennys on käytössä)
● Tai missä tahansa jäljellä olevista komentopaneeleista.

Katsotaanpa haun käytön ominaisuuksia dynaamisessa luettelossa:
● Jotta haun käyttö olisi helppoa (mukaan lukien suorituskyvyn kannalta), sinun on otettava käyttöön täystekstihaku kaikille konfigurointiobjekteille, joita voidaan käyttää dynaamisen luettelon päätaulukkona. Täystekstihaun tulee myös sisältää kaikki tiedot konfiguraatioobjekteista, jotka voidaan näyttää dynaamisessa luettelossa ja jotka saattavat edellyttää hakua.
Jos objekti jätetään kokonaan tekstihaun ulkopuolelle, kyseinen hakumekanismi toimii, mutta sellaisen haun suorituskyky on erittäin heikko. Ei ole suositeltavaa käyttää hakua objekteissa, joita ei ole indeksoitu kokotekstihaulla.
● Sovellusratkaisussa on oltava rutiinitehtävä, joka päivittää säännöllisesti kokotekstihakuindeksiä.

● Hakua ei suoriteta kaikista dynaamisen luettelon (ja konfigurointiobjektin) sarakkeista, vaan vain taulukossa näkyvistä sarakkeista.
● Haku dynaamisesta luettelosta mielivaltaisen esityksen viitetyyppien kenttien perusteella suoritetaan kentillä, joita käytetään
edustuksen muodostus (katso tästä). Näkymään sisältyvät kentät saadaan ottaen huomioon vastaavan objektin ViewFieldGettingProcessing()-käsittelijä.
● Dynaamisissa luetteloissa, joissa on määritetty päätaulukko, käytetään kokotekstihakua päätaulukosta. Kaikki päätaulukon indeksoimattomat linkit lisätään kokotekstihakutuloksiin. Päätaulukon kokotekstihaun tulosta käytetään valintana avainkenttien perusteella. Täystekstihaku suoritetaan myös muiden taulukoiden luettelossa näkyville kentille (jos kenttä ja konfiguraatioobjekti käyttävät täystekstihakua). Jos täystekstihaku ei ole käytössä, tiedot voivat olla
löytyi, mutta itse haku tulee olemaan hyvin hidasta.
Jos virhe tapahtuu yritettäessä suorittaa kokotekstihakua, haku suoritetaan ilman kokotekstihakua.
Tämä voi tapahtua esimerkiksi haettaessa yhtä kirjainta ja suuri numero rivit sisään tietokanta, alkaen tästä kirjeestä.
● Jos dynaamisen luettelon päätaulukon kentässä käytetään valintaa, jonka vertailutyyppi on Yhtä, niin kokotekstihakua suoritettaessa hakulauseke Valinnan arvo lisätään tästä taulukosta.
● Hakumerkkijono on jaettu sanoiksi. Tämä osio suoritetaan seuraavien sääntöjen mukaisesti:
● Rivi katkaistaan ​​käyttämällä välilyöntejä ja sarkainmerkkejä erottimina.
● Sitten jokainen tuloksena oleva fragmentti käsitellään:
● Jos fragmentti on päivämääräesitys (ajan kanssa tai ilman), joka perustuu nykyiseen istunnon alueeseen, sana on fragmentti.
● Muussa tapauksessa fragmentti jaetaan edelleen käyttämällä merkkejä ",.-/\" erottimina. Tässä tapauksessa jokainen tuloksena oleva merkkijonon fragmentti otetaan sanaksi.

● Jokaiselle sanalle muodostetaan oma ehtojoukkonsa, jotka yhdistetään "TAI:lla". Tämä ehtojoukko luodaan, jos täystekstihaku tietyllä sanalla taulukossa, josta tämä kenttä on saatu, palautti ainakin yhden objektin tai täystekstihakua ei käytetty tälle kenttään. Ehdot muodostetaan seuraavasti:
● Kentälle, jonka tyyppi on String, ehto on FieldName LIKE %Word%.
● Numerotyypin kentällä ehdon muoto on FieldName=Arvo, jossa Arvo on sana, joka on muunnettu Number-tyypiksi. Jos heittoa ei voida suorittaa, kenttähakua ei suoriteta.
● Sana etsitään alimerkkijonona nykyiselle istunnolle määritetyssä Boolen oletusmuodossa. Jos hakusana löytyy näkymistä, se etsii arvoa, joka vastaa sitä näkymää, josta sana löydettiin. Tässä tapauksessa haku ei käytä näkymiä, jotka on määritetty Format form element -ominaisuuden avulla.
● Päivämäärä-tyypin kentän ehto näyttää tältä KentänNimi>=Aloituspäivä(Word) ANDFieldName<=КонецДня(Слово). Если Слово подобно дате, в которой год
ilmaistaan ​​yhdellä tai kahdella numerolla, vuosi pienennetään nykyiseksi vuosisadaksi ja tämä arvo lisätään hakuehtoon.
● Viitekentille suoritetaan haku viitenäkymän muodostamiseen käytetyistä kentistä. Etsi jokaisesta näistä kentistä
suoritetaan yllä kuvattujen sääntöjen mukaisesti. Haku ei käytä kenttiä, joita käytetään mukautetun dataesityksen muodostamiseen.
Jokaisen sanan ehtojoukko on yhdistetty "AND".
● Arvoille, joissa on etunollia, voit etsiä joko merkkijonoa, jossa on etunollia, tai merkkijonoa, joka on määritetty ilman etunollia.
● Jos dynaaminen luettelo näyttää asiakirjaluettelon tai asiakirjahistorian, määrittämäsi luettelon katseluväli näkyy myös lomakkeen alueella, joka on varattu halutun dynaamisen luettelon näkymän tilan näyttämiseen.
● Haku nykyisen arvon mukaan -komento ei ole käytettävissä, jos valintakriteerinä on dynaamisen luettelon päätaulukko.
● Löydetyt merkkijonojen fragmentit on korostettu, kun ne näkyvät taulukossa.
● Yhdelle sarakkeelle tuetaan vain yhtä hakumerkkijonoa. Kun lisäät uuden hakukyselyn sarakkeeseen, josta jo haetaan, hakulauseke korvataan sen sijaan, että kaksi hakulauseketta laskettaisiin yhteen.
● Jos lomakkeella ei ole dynaamista luetteloa näyttävään taulukkoon liittyvää lomakeelementin lisäystä Hakumerkkijonon näyttö (lomakeelementin lisäys Lähde-ominaisuus), Ctrl+F-näppäinyhdistelmän painaminen avaa hakuikkunan.


Riisi. 7. Hakuvalintaikkuna

Jos lomake sisältää lomakeelementtilisäyksen Hakumerkkijononäytöstä, joka liittyy taulukkoon (lomakeelementin lisäys Lähde-ominaisuus), joka näyttää dynaamisen luettelon, hakuikkunan avaamiseksi tulee käyttää Tarkennettu haku -komentoa.
● Kun käytät hakuikkunaa, muista seuraavat seikat:
● Hakuvalintaikkunan avaaminen pikanäppäimellä saa nykyisen solun arvon näkyviin Mitä etsiä -rivillä ja Miten etsiä -kytkimen arvoksi on asetettu Tarkan vastaavuuden mukaan.

● Hakuikkunan avaaminen kirjoittamalla hakumerkkijonoa suoraan dynaamiseen luetteloon johtaa siihen, että Miten etsintä -kytkimen arvoksi asetetaan arvo Merkkijonon osalla ja kirjoitettu teksti päätyy Mikä-kenttään. hakukenttään.

6. Tietojen saaminen näkyviin dynaamisen luettelon avulla

Kun käytät dynaamisia luetteloita, saatat joutua suorittamaan erilaisia ​​toimintoja dynaamisen luettelon tällä hetkellä näyttämille tiedoille ottaen huomioon tehdyt valinnat ja haut. Tällaisia ​​toimintoja ovat: näytettyjen tietojen käsittely, esimerkiksi valittujen asiakirjojen uudelleenlähetys tai joidenkin yksityiskohtien asettaminen valituille objekteille, luettelon luominen käytettävissä olevista objekteista (kuvioituneena jne.), esimerkiksi tulostusta tai laskentataulukkoasiakirjaan tallentamista varten.
Saadaksesi dynaamisen luettelon näyttämät tiedot, käytä GetExecutableDataCompositionSchema() ja
GetExecutableDataCompositionSettings().
Esimerkki tietojen vastaanottamisesta:

Schema = Elements.List.GetExecutableDataCompositionSchema();
Asetukset = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Scheme, Settings);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = Uusi OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Tietojen saaminen arvokokoelmaan (taulukkoon tai arvoluetteloon) tapahtuu samalla tavalla.
Dynaamisen listatietojen hankkimisessa tällä tavalla on useita ominaisuuksia, jotka on otettava huomioon sovellusratkaisuja kehitettäessä:
● Seuraavaa taulukkorakennetta ei tueta:
● Vaihtelevat viivan värit;
● Otsikkokuva;
● Kuva kellarista;
● Alatunnisteen taustaväri;
● Alatunnisteen tekstin väri;
● Alatunnisteen fontti;
● Vaaka-asento kellarissa;
● Salasanatila.
● Hallitun lomakkeen ehdollista ulkoasua ei tueta.
● Tilattaessa hierarkkinen taulukko nousevassa järjestyksessä Link-tyypin kentän mukaan, tyhjän linkin sisältävät tietueet sijoitetaan aina ensin.

Lopulta jokaisen seitsemänvuotiaan unelma on toteutunut. Kuinka usein ohjelman 7.7 käyttäjät pyysivät normaalia tuotevalikoimaa? Jotta näet saldot, hinnat ja suodattimet. Meidän piti keksiä erilaisia ​​temppuja, mukaan lukien ulkoisten komponenttien kirjoittaminen. 1C 8.2:ssa ilmestyi dynaamisia luetteloita. Ehdotan pohtimaan, mikä se on ja mitä he voivat antaa meille 1C 8.3:ssa.

Otetaan pohjaksi tietty 1C:n testikokoonpano: "Enterprise Accounting 3.0". Emme tee valintaa nyt, lisäämme vain toisen valintalomakkeen "Nimikkeistö"-hakemistoon ja teemme siitä väliaikaisesti päälomakkeen:

Luodessaan järjestelmä lisää oletusarvoisesti "Dynaaminen lista" -tyyppisen taulukkokentän lomakkeeseen.

Mennään sen ominaisuuksiin ja katsotaan mitä siellä on.

Ensinnäkin olemme kiinnostuneita "Mukautettu pyyntö" -valintaruudusta. Tämä paljastaa meille kaikki dynaamisen luettelon edut. Meillä on mahdollisuus kirjoittaa oma pyyntömme 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 videotuntia 1C:llä 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 pyyntö saldoineen ja hinnoin. Näin:

"Asetukset" -välilehti

Ja nyt paras osa! 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

Muista, että pyynnössämme on kaksi parametria: "Kausi" 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:

&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing) -luettelo. Vaihtoehdot. SetParameterValue("Jakso" , Parametrit. Päivämäärä) ; Lista. Vaihtoehdot. SetParameterValue("Hintatyyppi", Parameters.PriceType) ; Menettelyn loppu

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

Havainnollistaaksesi dynaamisen luettelon ominaisuudet, luodaan ulkoinen käsittely ja lisätään päälomake. Lisätään lomakkeeseen uusi attribuutti, jonka tyyppi on "Dynaaminen luettelo". Mennään sen ominaisuuksiin ja katsotaan mitä siellä on.
Olemme kiinnostuneita "Custom request" -ominaisuudesta. Sen ottaminen käyttöön näyttää meille kaikki dynaamisen luettelon ominaisuudet. Pystymme kirjoittamaan pyynnön 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 nimikkeistä, joissa on kaikkien varastojen kokonaissaldo. Ota tällainen luettelo käyttöön lisäämällä seuraava kysely:


Päätaulukoksi valitsemme "Directory.Nomenclature", jolloin voimme työskennellä dynaamisen luettelon kanssa, kuten nimikkeistöluettelon kanssa - lisää, muuta, merkitse hakemistoelementtejä poistettavaksi. Päätaulukon asentaminen mahdollistaa myös tietojen dynaamisen lukemisen - tämä tarkoittaa, että valinta 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 arvo "Jakso"-parametrille. 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 tietojen koostumusparametrin nimi, jonka arvon haluat asettaa;
. "Arvo" - Tyyppi: mielivaltainen. Asetettava arvo.
Voidaan kutsua lomakkeen "OnCreateOnServer" -käsittelijässä:

Onko sinulla kysyttävää tai tarvitsetko apua konsultilta?


Tarjoamme käyttäjälle mahdollisuuden muuttaa saldon vastaanottoaikaa. Voit tehdä tämän lisäämällä attribuutin ja siihen liittyvän Date-lomakeelementin:


"Date"-lomakeelementin "OnChange"-käsittelijässä kutsumme "SetParameterValue"-metodia välittäen arvona siihen liittyvän attribuutin arvon. Muutetaan samalla tavalla lomakkeen "Kun luominen palvelimelle" -menettelyä. Koska menetelmä on käytettävissä asiakkaalla, palvelimelle 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 suunnitellut kuitit. Harkitsemme yhtä toteutusvaihtoehdoista. Lisätään loogisen tyyppinen lomakeattribuutti ja siihen liittyvä kytkin:


Kun vaihdat kytkimen arvoa, muutamme pyynnön tekstiä. Tätä varten käytämme "Näytä määrä kuitissa" -lomakeelementille "On Change" -tapahtumakäsittelijää. Meidän on muutettava dynaamisen luettelon "QueryText" -ominaisuutta attribuutin arvon mukaan. Koska tämä ominaisuus ei ole käytettävissä asiakkaalla, palvelinproseduuri on kutsuttava:


Tehtyjen muutosten tulos:



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 helpottaa suuresti monia sovellettavia tehtäviä. Siksi kehittäjien on tiedettävä ja kyettävä käsittelemään tämä universaali 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 pohjalta ja sillä on samanlaiset ominaisuudet. Mutta tämä ei tarkoita, että sinun on välttämättä kirjoitettava pyyntö 1C-kielellä, vaikka tämä mahdollisuus on olemassa ja sitä tulisi käyttää. Voit yksinkertaisesti määrittää taulukon, jonka tiedot kiinnostavat sinua, 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 siellä, missä se sijaitsee konfiguraattorissa: avaa tietoluettelossa sen ominaisuudet kontekstivalikosta ja kiinnitä huomiota "Mukautettuun" Pyydä" kohde. Jos valintaruutua ei ole, "Main table" -parametri kuvastaa tietokantataulukkoa, josta tiedot on otettu. Muussa tapauksessa dynaaminen luettelo heijastaa mukautetun kyselyn tietoja, jotka näkyvät avaamalla luetteloasetukset.

Mukautettua kyselyjärjestelmää käytetään paljon yleisemmin, koska se tarjoaa erinomaisen mahdollisuuden yhdistää ja näyttää monenlaista tietoa. Useimmiten tätä mekanismia käytetään heijastamaan varastosaldot, nimikkeiden hinnat, kuitit, kulut tai ostot. Sinun on käytettävä sitä varovasti, koska suorituskyky saattaa heikentyä monimutkaisissa kyselyissä.

Toinen hyödyllinen dynaamisen luettelon ominaisuus avautuu, kun napsautat "Listaasetukset" -tekstiä. Tämän valikon avulla voit tehdä tiedoista helpommin saatavilla ja ymmärrettävämpiä loppukäyttäjille, jopa käytettäessä vakiokenttiä. Riippumatta siitä, onko pyyntö mielivaltainen vai ei, näet "Asetukset"-välilehden, jossa voit määrittää:

  • Dynaaminen luettelon valinta;
  • Ryhmät;
  • Lajittelu;
  • Sisustus.

Parametrien käyttö tekee dynaamisista luetteloista universaaleja ja melko joustavia. Voit myös linkittää ne hallitun lomakkeen tietoihin, jolloin tiedot muuttuvat käyttäjän valitsemien parametrien mukaan. Näiden mekanismien käyttöä voidaan ymmärtää ja arvostaa tarkastelemalla esimerkkejä tosielämän ongelmista.

Harkitse esimerkkinä tehtävää heijastaa nimikkeistön jäännökset valvotussa muodossa. Käytännössä tällaisia ​​tilauksia esiintyy melko usein eri kokoonpanoissa, ja dynaaminen lista on ihanteellinen työkalu. Tätä tehtävää varten meidän on käytettävä mukautettua kyselyä, dynaamisia luetteloparametreja ja sen asetuksia.

Selvyyden vuoksi luodaan erillinen ulkoinen käsittely ja sijoitetaan siihen dynaaminen luettelo. Suunnitelmiemme toteuttamiseksi taulukko nimikkeistöllä ei riitä, joten meidän on sallittava mielivaltainen kysely. Siinä kuvataan hakemiston vasen yhteys eräluetteloon ja saldorekisteriin ja asetetaan hakemisto päätaulukoksi. Tämän mallin avulla käyttäjät voivat lisätä tai muuttaa kohteita dynaamisen luettelon kanssa.



SELECT NomenclatureList.Name AS Name, GoodsInWarehousesRemainings.Warehouse AS Warehouse, GoodsInWarehousesRemainings.QuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList LEFT CONNECTION, GoodsInWarehouses. sRemaining software NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenclature WHERE

Koska pyyntömme käytti "CurrentDate" -parametria, meidän on asetettava sen arvo ennen käsittelyä. Voit tehdä tämän määrittämällä "When CreatedOnServer" -menettelyn lomakemoduulissa vakiokomennolla "CurrentSessionDate" -funktion. Meidän on myös näytettävä dynaaminen luettelo ohjauslomakkeella ja muutettava kenttien järjestystä selvyyden vuoksi. Vedä "Jäljellä oleva nimikkeistö" -attribuutti lomakeelementteihin (vasen yläosa) ja muuta lomakkeen taulukon kenttien järjestystä sinisten nuolien avulla.

&Palvelinmenettelyssä luodessaan palvelimelle (virhe, vakiokäsittely) nimikkeistö säilyy. Parametrit. Aseta ParameterValue("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 kohteita ja ryhmiä ja etsiä. Usein asiakkaat pyytävät lisäämään mahdollisuuden valita päivämäärä, jolloin he näkevät saldot. Lomakkeessa, jossa on dynaaminen luettelo, tämä saavutetaan lisäkentällä ja parametrien asettamisella sen avulla.

Lisää Date-tyyppinen attribuutti DateRemaining ja siirrä se lomakeelementteihin. Kenttätapahtumiin luomme OnChange-tapahtuman ja kirjoitamme koodin dynaamisessa pyynnössä käytetyn CurrentDate-parametrin asettamiseen. Jotta käyttäjä lomakkeen avatessaan ymmärtäisi heti, minä päivänä hän näkee saldot, teemme pieniä muutoksia "When CreatedOnServer" -menettelyyn.



&OnServerProcedureWhenCreatingOnServer(virhe, StandardProcessing)RemainingDate = CurrentSessionDate(); Nimike Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Toimenpiteen päättyminen &Asiakasmenettelyssä Remaining DateWhenChanged(Element)Nomenclature Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Menettelyn loppu

Tämän seurauksena dynaaminen luettelo -lomake voi näyttää saldot milloin tahansa.

Olemme tarkastelleet vain pientä osaa 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 se löytyy useimmiten tyypillisistä kokoonpanoista hallituissa lomakkeissa:

  1. Valinta;
  2. Luettelot.

Saadakseen dynaamisen luettelon ja sen pyynnön standardoiduissa hallituissa lomakkeissa kehittäjän on avattava haluttu lomake konfiguraattorissa. Etsi tiedot-osiosta tiedot "DynamicList"-tietotyypillä (useimmiten se on lihavoitu). Sen ominaisuudet sisältävät pyyntötekstin, valinnat ja muut asetukset.

Kotimuistiinpanoja katselasin läpi

21.4.2014 Vastaanotetaan 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 "tiedossa" muodossa. Tai suorittaakseen tiettyjä toimintoja heidän kanssaan. Lähetä esimerkiksi kirje kaikille urakoitsijoille, jotka olet valinnut luettelosta tiettyjen kriteerien perusteella.

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 tuotteiden kokonaismäärän tietokannassa.

Dynaaminen luettelo ei yksinään voi tarjota sinulle näitä tietoja. Dynaamisen luettelon tarkoitus on tarjota nopea katselu suurille tietomäärille. Siksi se lukee tiedot paloina, jotka tarvitaan näyttämään yhdellä tai kahdella näytöllä. Ja "ei tiedä mitään" esimerkiksi laskettavan datan kokonaismäärästä.

Yleisesti ottaen sinun on suoritettava tietokantakysely saadaksesi lisätietoja, joita käyttäjä haluaa. Täsmälleen sama kuin dynaamisessa luettelossa käytetty.

Ennen pystyit tähän. Mutta se ei aina ollut helppoa. Alkuperäisen pyynnön tekstin lisäksi, jossa dynaaminen luettelo toimii, piti nimittäin tietää kaikki valinnat, lajittelut ja muut parametrit, jotka käyttäjä on asettanut interaktiivisesti tietoja näyttävään taulukkoon.

Nyt tämä ongelma voidaan ratkaista yksinkertaisesti. Dynaamisessa luettelotaulukossa on nyt kaksi uutta menetelmää:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Siten saat itse tietojen asettelukaavion ja mikä tärkeintä, kaikki sen asetukset, joiden ansiosta käyttäjä näkee luettelon täsmälleen sellaisena. Sinun tarvitsee vain laatia asettelu ohjelmallisesti ja näyttää se arvokokoelmassa (ohjelman käsittelyä varten) tai laskentataulukkoasiakirjassa (näyttöä varten):

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

Tärkeää on, että dynaamisesta listataulukosta saamasi 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.

Laskentataulukkodokumenttiin tulostettaessa on vielä yksi miellyttävä hetki. Yleisesti ottaen raportin ulkoasu vastaa dynaamisen luettelotaulukon ulkoasua skeeman ja asetusten vastaanottamishetkellä. Sisältää taulukon ehdollisen suunnittelun. Tarvitset lisätoimenpiteitä vain, jos haluat siirtää lomakkeen ehdollisen suunnittelun raporttiin.