Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • Komunikacija vlasnika 1s. Kako programski povezati po vlasniku u obrascu

Komunikacija vlasnika 1s. Kako programski povezati po vlasniku u obrascu

Kako programski uspostaviti vezu od strane vlasnika u obrascu. Kako programski dodati novi element direktorija ako ima vlasnika (1C: Za programera)

Pitanje Kako uspostaviti link od strane vlasnika u obrascu?
Odgovori
Pretpostavimo da negdje, na primjer, u obliku liste registara, želite dati korisniku priliku da interaktivno specificira jedinicu za skladištenje stavke. "Nomenklatura" je referentna knjiga. "Jedinica za skladištenje" - imenik podređen nomenklaturi. Priručnik "Nomenklatura" obično sadrži mnogo elemenata. Ako smo u obliku liste registara, jednostavno dodamo dvije kolone - “Nomenklatura” i “Jedinica za pohranu”, a onda kada pokušamo interaktivno odabrati “jedinicu za skladištenje”, doći će do zastoja. O tome smo već pisali u članku "Kako postaviti izbor podređenog elementa direktorija" I ovdje ćemo razmotriti zadatak iz malo drugačijeg ugla.
Da biste izbjegli zamrzavanje, obično dodijelite "Komunikacija od strane vlasnika". Vidi crtež. Lijevo na slici je obrazac liste registara, desno na slici su svojstva polja za unos “ex” (isto ono koje je lijevo u obrascu registarske liste označeno crvenim slovima “ex”) . U cilju jedinstvene identifikacije vlasnika (ne programski), za polje za unos "ex" popunjava se polje označeno na slici brojem "1" - "Odnos po vlasniku", gde je veza sa "Nomenklaturom" polje je naznačeno.

Pitanje Kako programski uspostaviti vezu po vlasniku u obrascu?
Odgovori
Međutim, dešava se da se vlasnik mora podesiti programski, ovisno o nekom uvjetu.

Pretpostavimo da polje “EX” registarske liste treba da bude povezano sa vlasničkim poljem “Transportna jedinica” (koje je takođe element imenika “Nomenklatura”), ako je transportna jedinica popunjena i ako nije popunjena , tada se vrijednost u polju “Nomenklatura” mora smatrati vlasnikom - vidi pokazivač broj 3 na slici.

Kako to implementirati?

Činjenica je da u ovom slučaju polje 1 "Komunikacija vlasnika" nije potrebno popunjavati. Ali morate u polju 2 "Početak selekcije" navesti proceduru u kojoj će odnos programski odrediti vlasnik koristeći direktivu "Izbor vlasnika".
Primjer procedure:

ProcedureRegisterInformationListStorageUnitSelectionStart(Element, StandardProcessing) // odredimo vlasnika trenutnog EX Vlasnik = Stavke obrasca. RegisterInformationList. CurrentData. Nomenklatura; Ako ValueFilled(FormElements.InformationRegisterList.CurrentData.TransportUnit) Onda IfFormElements. RegisterInformationList. CurrentData. TransportUnit. ItemType = Enums. usTypesNomenclature. Učitaj Zatim Vlasnik = FormItems. RegisterInformationList. CurrentData. TransportUnit EndIf ; EndIf ; // postavlja odabir od strane vlasnika Element. SelectBy Owner = Vlasnik; EndProcedure

Pitanje Kako programski dodati novu stavku direktorija ako ima vlasnika.
Odgovori
Pretpostavimo da želite programski kreirati novi element direktorija "Storage Units", koji ima direktorij "Nomenclature" u vlasnicima
Ovo se radi ovako:

// kreiramo novi element direktorija "Storage Units": EX = Priručnici. Jedinice skladištenja. CreateElement() ; // zapisujemo vlasnika - vezu na nomenklaturu, gdje je "Nomenklatura" element ranije definirane referentne knjige "Nomenklatura" EX. Vlasnik = Nomenklatura. Veza; // definiramo ime i ostale detalje: EX. Ime = "naše ime"; EX. Faktor = 1; // ... - slično ovdje, ispunite sve potrebne detalje // zapravo, upisuje kreiranu jedinicu za skladištenje u bazu podataka: EX. Pisati() ;

Informacije preuzete sa stranice

Recimo da u obliku liste registara, korisniku treba pružiti mogućnost da interaktivno specificira jedinicu za skladištenje stavke. "Nomenklatura" je referentna knjiga. "Jedinica za skladištenje" - imenik podređen nomenklaturi. Priručnik "Nomenklatura" obično sadrži mnogo elemenata. Ako smo u obliku liste registara, jednostavno dodamo dvije kolone - “Nomenklatura” i “Jedinica za pohranu”, a onda kada pokušamo interaktivno odabrati “jedinicu za skladištenje”, doći će do zastoja.

Pogledajmo problem iz malo drugačije perspektive.

Da biste izbjegli zamrzavanje, obično dodijelite "Komunikacija od strane vlasnika". Vidi crtež. Lijevo na slici je obrazac liste registara, desno na slici su svojstva polja za unos "IST" (isto ono koje je lijevo u obrascu registarske liste označeno crvenim slovima "IST") . Za jedinstvenu identifikaciju vlasnika (ne programski), za polje za unos "IST" popunjava se polje označeno na slici brojem "1" - "Odnos po vlasniku", gdje je naznačena veza sa poljem "Nomenklatura". .

Kako programski postaviti link od strane vlasnika na obrascu?

Ponekad se desi da se vlasnik mora podesiti programski, zavisno od nekog uslova.

Na primjer, polje “IST” popisa registara mora biti povezano s vlasničkim poljem “Transport unit” (koje je također element imenika “Nomenclature”), ako je transportna jedinica popunjena, a ako nije popunjena, tada se vrijednost u polju “Nomenklatura” mora smatrati vlasnikom - vidi pokazivač br. 3 na slici.
Kako se implementira.
U tom slučaju polje 1 "Komunikacija vlasnika" nije potrebno popunjavati. Ali istovremeno je potrebno u polju 2 "Početak selekcije" naznačiti proceduru u kojoj će se programski odrediti odnos po vlasniku pomoću direktive "SelectByOwner".
Primjer procedure:

ProcedureRegisterInformationListStorageUnitSelectionStart(Element, StandardProcessing)

Vlasnik = FormElements.InformationRegisterList.CurrentData.Nomenclature;
Ako je ValueFilled(FormElements.InformationRegisterList.CurrentData.TransportUnit) onda
IfFormElements.InformationRegisterList.CurrentData.TransportUnit.NomenclatureType = Enumerations.NomenclatureTypes.Cargo Tada
Vlasnik = FormElements.InformationRegisterList.CurrentData.TransportUnit
EndIf;
EndIf;

Element.SelectionBy Owner = Vlasnik;

EndProcedure

Kako programski dodati novu stavku direktorija ako ima vlasnika

Moramo programski kreirati novi element direktorija "Storage Units", čiji je vlasnik direktorij "Nomenclature"

Ovo se radi ovako:
// kreiramo novi element direktorija "Storage Units":
IST = Reference.StorageUnits.CreateItem();
// zapisujemo vlasnika - vezu na nomenklaturu, gdje je "Nomenklatura" element ranije definirane referentne knjige "Nomenklatura"
IST.Owner = Nomenklatura.Referenca;
// definiramo ime i ostale detalje:
SIR.Name = "ABS jedinica";
IST.Koeficijent = 1;
//... popunite ostale detalje
// zapravo, upisuje kreiranu skladišnu jedinicu u bazu podataka:
IST.Write();

Top Related Articles