1c, aseta ryhmän nimi valintaparametreissa. Aseta valintaparametrit ja valintaparametrien yhteydet metatietoobjekteille. DescriptionofTypesInventory = Uusi Tyyppien kuvaus (Matriisi)

Jotta avaa valintalomake valinnalla 1s 8.2(tavalliset lomakkeet), meidän on suoritettava joitain toimintoja. Me hankimme sen ensin. Sen jälkeen asetamme valinnan ja avaamme sen ohjelmallisesti, tässä on koodiesimerkki:

Valinta lomakkeella 1C 8.2 -syöttökentässä useilla arvoilla

Yllä olevassa esimerkissä katsoimme miten valinta tehdään valintalomakkeella tietyn arvon mukaan. Tarkastellaan nyt tilannetta, jossa sinun on korvattava useita arvoja, tämä voi olla esimerkiksi taulukko tai purettu kyselytuloksesta. Tämä on valinta 1c-syöttökentässä useilla merkityksillä.

Ensin saamme valintalomakkeen, välitämme "Elementin" (omistaja) parametreihin, asetamme valintatilan lipun. Sitten luomme arvoluettelon ja taulukon, huomaamme, että valinnana asetettaessa vertailutyyppiä luettelossa objekti voi olla läsnä vain tyypin kanssa ListValues. Lisäämme elementtejä taulukkoon ja lataamme tämän taulukon arvoluetteloon, jonka määritämme myöhemmin valinnassa. Älä myöskään unohda ottaa käyttöön lippua tämän valinnan käyttöä varten ja asettaa vertailutyyppiä.

Valinnan asettaminen lomakkeen syöttökenttään kohdassa 1C 8.3, Valinnan aloitustapahtuma

Mietitään nyt valinta syöttökentässä päällä hallittavassa muodossa kohdassa 1C 8.3. Etsitään lomakkeesta meitä kiinnostava elementti, johon asetamme valinnan, meidän tapauksessamme tämä on "Organisaatio"-kenttä. Löydämme "Start of Selection" -tapahtuman, napsautamme suurennuslasia ja löydämme itsemme menettelystä. Näemme Selection Data -parametrin; tämä parametri on ValueList-tyyppinen. Rajataksemme valinnan tarvittaviin elementteihin, meidän on täytettävä arvoluettelo. Voimme valita elementtejä vain palvelimella, joten luomme menettelyn &OnServer-käännösohjeen avulla. Täytä tässä menettelyssä valintatiedot.

/
Kehittäjät /
Koodaussopimukset

Valintavaihtoehtojen ja valintavaihtoehtojen assosiaatioiden asettaminen metatietoobjekteille

1. Liiketoimintalogiikan rajoitusten, kuten valintarajoitusten, on yleensä oltava samat kaikissa muodoissa, joissa tiettyä objektia muokataan. Siksi on suositeltavaa asettaa valintaparametrit ja valintaparametrien väliset yhteydet metatietoobjektien ominaisuuksiin - hakemistojen, dokumenttien jne. yksityiskohtiin.

2. Saattaa kuitenkin olla tapauksia, joissa valintarajoitukset voivat riippua tietystä toimintaskenaariosta. Tällaisissa tapauksissa valintaparametrit voidaan määrittää paikallisesti tietyssä muodossa.

Esimerkiksi kokoonpano sisältää

  • hakemistosta Työntekijät, joka sisältää yksityiskohtia Organisaatio Ja Työntekijän tyyppi(luettelo arvoineen Perus/Osa-aikainen);
  • asiakirja Vastaanottojärjestys, joka sisältää rekvisiitta Organisaatio Ja Työntekijä; kun taas rekvisiitta Työntekijä asiakirja Vastaanottojärjestys valintaparametrin yhteys on määritetty Valinta. Organisaatio rekvisiitta kanssa Organisaatio.

On tarpeen toteuttaa mahdollisuus valita vain avainhenkilöt toiminnallisen vaihtoehdon arvosta riippuen SelectOnlyFromEmployeesBasics. Tätä varten se on välttämätöntä

  • asiakirjan muodossa Vastaanottojärjestys ottaa käyttöön muita lomakemääritteitä Työntekijöiden tyypit,
  • sitten lomakekenttään Työntekijä valintaparametrilinkki voidaan muodostaa Valinta. Työntekijän tyyppi lomakkeen tiedoilla Työntekijöiden tyypit,
  • tässä tapauksessa lomakkeen tiedot Työntekijöiden tyypit täytetty toiminnallisen vaihtoehdon analyysin perusteella.

(Aseta samalla rekvisiitta Työntekijä asiakirja Vastaanottojärjestys linkki parametrin valintaan Valinta. Työntekijän tyyppi ei ole mahdollisuutta, koska rekvisiitta Työntekijän tyyppi asiakirjassa Vastaanottojärjestys ei ole olemassa.)

Aseta sitten yhteys parametrille Valinta. Organisaatio prop ominaisuuksissa Työntekijä asiakirja Vastaanottojärjestys ja parametrin liitännät Valinta. Työntekijän tyyppi asiakirjalomakkeen kentässä Vastaanottojärjestys johtaa siihen, että tilassa 1C: Yritykset Molemmat valintaparametrilinkit toimivat. Siten valittaessa työntekijää rekrytointitilauslomakkeessa työntekijäluettelon valinta määräytyy sekä asiakirjaan täytetyn organisaation että työntekijätyypin mukaan, joka määräytyy toiminnallisen vaihtoehdon perusteella.

Hyvää iltapäivää.

Tänään puhumme siitä, kuinka ohjelmallisesti avataan valintalomakkeita uudessa hallittavassa käyttöliittymässä.

Aikaisemmin " säännöllinen sovellus"Kirjoitimme näin:

form = Directory.nomenclature.GetSelectionForm();

resultSelection = form.openModalNO();

Näiden operaattorien välillä voisimme muuttaa lomakkeen ominaisuuksia, esimerkiksi asettaa valinnan. Voisimme määrittää tietyn lomakkeen nimellä. Voisi vaihtaa ulkomuoto, päästään lomakeelementin ominaisuuksiin niiden nimellä pisteen kautta (form.Button1.Visibility = False;)

Nyt meillä on hallittu käyttöliittymä ja täällä kaikki on toisin. Ongelmana on koodin jakaminen palvelimen ja asiakkaan osiin. Voimme käyttää objekteja ja niiden metatietoja vain palvelimella, ja meidän on avattava lomakkeet asiakkaalla.

Joten aloitetaan.

1. Yksinkertaisin tapaus on, kun meidän ei tarvitse hallita valintaa (asettaa valinnat, siirtää parametrit avautuvaan valintalomakkeeseen).

Koska lomakkeet voidaan avata vain asiakkaalla, tämä on asiakaspuolen koodinpätkä. Käytämme toimintoa EnterValue(<Значение>, <Подсказка>, <Тип>) . Itse asiassa kaikki on selvää hänen kuvauksestaan. Se palauttaa lipun siitä, onko käyttäjä valinnut; ensimmäisessä parametrissa välitämme säilön, johon valintaarvo palautetaan, toisessa tekstissä, joka näkyy valintaikkunan otsikossa, kolmannessa taulukossa tyypit.

Tässä on esimerkki käytöstä:

Muuttuva SelectTMC;

ArrayTypes = Uusi taulukko;

Tyyppien kuvaus TMC = Uusi Tyyppien kuvaus(Matriisi);

Jos EnterValue (Valitse varasto, "Valitse tuote", Varastotyyppien kuvaus)

//Käsittelyssä valittua arvoa

loppu Jos;

Lisään, että jos annamme säilömuuttujallemme arvon ennen sen valitsemista, se on oletusarvo. Tässä tapauksessa sinun ei tarvitse muodostaa tyyppejä, vaan tyyppi otetaan säilön arvosta.

2. Joskus ennen arvon valitsemista meidän on asetettava joitain valintoja ja valintaparametreja. Meidän on esimerkiksi valittava vastapuolisopimus. Ensimmäinen menetelmä avaa kaikki asiakirjat meille, mutta meidän on valittava omistajan mukaan.

Lomakkeiden avaamiseen on kaksi tapaa: OpenForm Ja OpenFormModal. Ensimmäisessä menetelmässä avaamme lomakkeen ja koodinpätkä, josta avasimme lomakkeen, jatkaa suorittamista ilman valinnan tulosta. Valinnan tulos, riippuen kutsumenetelmästä, sijoitetaan joko syöttökenttään tai vastaanotetaan ennalta määritetyssä menettelyssä "Valinnan käsittely".

Meidän tapauksessamme meidän on saatava valittu arvo tiettyyn muuttujaan ja jatkettava käsittelyä ottaen huomioon valitun arvon siirtämättä ohjausta muihin proseduureihin. Siksi se sopii meille OpenFormModal.

Teen heti varauksen, että tämä on huono tapa verkkokäyttöliittymälle, koska... Modaaliset ikkunat avautuvat uudessa selainikkunassa, joka on yleensä estetty. Mutta jos selität käyttäjälle etukäteen, mikä on mitä, niin uskon, että hän selviää tästä ongelmasta))

Joten katsotaanpa menettelyn kuvausta, siinä on 4 parametria. Ensimmäisessä osoitamme rivin, jolla on täydellinen polku lomakkeeseen "Hakemisto. Urakoitsijoiden sopimukset. Valintalomake". Toisessa osoitamme valintaparametrit, niistä lisää alla. Kolmannessa - omistaja - tämä on lomake tai valintakenttä, joka vastaanottaa valinnan tuloksen, emme täytä sitä. Neljättä parametria ei myöskään käytetä meidän tapauksessamme.

Joten yksinkertaista valintaa varten seuraava rivi sopii:

&OnClient

Toimenpidekomento1 (komento)

res = OpenFormModal("Hakemisto. Urakoitsijoiden sopimukset. Valintalomake");

Menettelyn loppu

Mutta tämä on täydellinen analogi menetelmälle nro 1, ja näemme lomakkeen kaikkien sopimusten valitsemiseksi ilman omistajan valintaa. Nuo. Tämä voidaan tehdä vain, jos haluamme määrittää valintalomakkeen nimen.

Valinnan asettamisessa toinen parametri auttaa meitä.

Toinen parametri on tyyppiä "Rakenne". Rakenneelementeiksi voit määrittää valintalomakkeen "parametrit"-välilehdelle lisätyt lomakeparametrit. Niiden käsittely tulee kuvata menettelyssä Kun CreatedOnServer valintalomakemoduulissa. Tämä ei ole hyväksi meille, koska... Minun täytyy muuttaa kokoonpanoa. Voit myös välittää valintarakenteen parametrirakenteessa olevalla valintanäppäimellä. Tällöin kaikkia valintarakenteen kenttiä käytetään elementtiluettelon valinnassa, eivätkä ne ole käyttäjän katseltavissa tai muutettavissa.

Esimerkissäni piirsin käsittelyyn valintakentän, joka viittaa käsittelylomake-attribuuttiin "vastapuoli" tietotyypillä " DirectoryLink. Vastapuolet". ja kirjoitti seuraavan koodinpätkän:

&OnClient

Toimenpidekomento1 (komento)

Valinnat = Uusi rakenne("Omistaja", Vastapuoli);

SelectionParameters = Uusi rakenne("Valinta", Valinta);

res = OpenFormModal("Hakemisto. Urakoitsijoiden sopimukset. Valintalomake", Valintaparametrit);

Menettelyn loppu

Tämä riittää yleensä ratkaisemaan useimmat ongelmat, eikä vaadi konfigurointitoimia. Kuitenkin "When CreatedOnServer" -menettelyn valintalomakkeessa valintasi saattaa kadota. Siksi, ennen kuin käytät tätä menetelmää, tarkista tämä menettely avattavassa valintalomakkeessa. Vino kehittäjät voivat helposti asettaa valintansa "oletuksena" unohtamatta tarkistaa avausparametreissa, että valinta on välitetty.

Siinä kaikki tälle päivälle, kiitos huomiosta.




Yläosa