Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Hekuri
  • Komunikimi nga pronari 1c. Si të lidhni në mënyrë programore sipas pronarit në një formë

Komunikimi nga pronari 1c. Si të lidhni në mënyrë programore sipas pronarit në një formë

Si të komunikoni programatikisht nga pronari në një formë. Si të shtoni programatikisht një element të ri të drejtorisë nëse ka një pronar (1C: Për programuesin)

Pyetje Si mund ta lidh zotëruesin në një formular?
Përgjigju
Supozoni se diku, për shembull, në formën e një liste regjistrash, dëshironi të lejoni përdoruesin të specifikojë në mënyrë interaktive njësinë e ruajtjes së një artikulli. Nomenklatura është një referencë. "Njësia e ruajtjes" - një drejtori në varësi të nomenklaturës. Referenca "Nomenklatura" zakonisht përmban shumë elementë. Nëse jemi në formën e një liste regjistrash, thjesht shtojmë dy kolona - "Nomenklatura" dhe "Njësia e ruajtjes", atëherë kur përpiqemi të zgjedhim në mënyrë interaktive një "njësi ruajtëse", do të ndodhë një varje. Ne kemi shkruar tashmë për këtë në artikullin "Si të vendosni zgjedhjen e një elementi vartës të drejtorisë" Dhe këtu do ta shqyrtojmë problemin nga një kënd pak më ndryshe.
Për të shmangur ngrirjen, zakonisht caktoni "Lidhje sipas pronarit". Shihni foton. Në të majtë në figurë - forma e listës së regjistrave, në të djathtë në figurë - vetitë e fushës hyrëse "ex" (e njëjta që është shënuar në të majtë në formën e listës së regjistrave me shkronja të kuqe "ish"). Për të përcaktuar pa mëdyshje pronarin (jo në mënyrë programore), për fushën e hyrjes "ex", plotësohet fusha e shënuar në figurë me numrin "1" - "Marrëdhënia sipas pronarit", e cila tregon marrëdhënien me fushën "Nomenklatura".

Pyetje Si mund të krijoj programatikisht një lidhje nga pronari në një formë?
Përgjigju
Megjithatë, ndodh që pronari duhet të vendoset në mënyrë programore, në varësi të disa kushteve.

Për shembull, fusha "EX" e listës së regjistrave duhet të shoqërohet me fushën e pronarit "Njësia e transportit" (e cila është gjithashtu një element i librit të referencës "Nomenklatura"), nëse njësia e transportit është e mbushur dhe nëse ajo nuk është mbushur, atëherë pronari duhet të lexojë vlerën në fushën "Nomenklatura" - shih indeksin # 3 në figurë.

Si të zbatohet kjo?

Fakti është se në këtë rast, nuk keni nevojë të plotësoni fushën 1 "Marrëdhënia nga pronari"... Por duhet të specifikoni në fushën 2 "Fillimi i përzgjedhjes" procedurën në të cilën lidhja nga pronari do të përcaktohet programatikisht duke përdorur direktivën "Zgjedhja nga pronari".
Shembull i procedurës:

ProcedureInformationRegisterListStorageUnitStartSelection (Artikulli, Përpunimi standard) // përcaktoni pronarin e EX-it aktual Pronari = Elementet e Formës. Lista e Regjistrimit të Informacionit. Të dhënat aktuale. Nomenklatura; IfValueFilled (FormElements .DataRegisterList. CurrentData. TransportUnit) Pastaj IfFormElements. Lista e Regjistrimit të Informacionit. Të dhënat aktuale. Njësia e Transportit. NomenclatureType = Enumerations. llojet e nomenklaturës. Load Pastaj Owner = Elementet e Formës. Lista e Regjistrimit të Informacionit. Të dhënat aktuale. Njësia e Transportit EndIf; FundNëse; // vendosni zgjedhjen sipas pronarit Elementi. SelectByOwner = Pronari; Fundi i procedurës

Pyetje Si të shtoni programatikisht një artikull të ri të katalogut nëse ai ka një pronar.
Përgjigju
Le të themi se duhet të krijoni në mënyrë programore një artikull të ri të librit të referencës "Njësitë e ruajtjes", i cili ka referencën "Nomenklatura" në pronarët e tij.
Kjo bëhet si kjo:

// krijoni një artikull të ri të katalogut "Storage Units": EX = Drejtoritë. Njësitë e ruajtjes. CreateElement (); // shkruani pronarin për të - një kërkim për artikullin, ku "Nomenklatura" është një element i librit të referencës "Nomenklatura" të përcaktuar më herët SH.SH. Pronari = Nomenklatura. Lidhje; // përcaktoni emrin dhe detajet e tjera: SH.SH. Emri = "Emri ynë"; SH.SH. Koeficienti = 1; // ... - këtu është e ngjashme, plotësoni të gjitha detajet e nevojshme // në fakt, ne shkruajmë njësinë e krijuar të ruajtjes në bazën e të dhënave: SH.SH. Shkruaj ();

Informacioni i marrë nga faqja

Supozoni se në formën e një liste regjistrash, është e nevojshme t'i sigurohet përdoruesit aftësinë për të specifikuar në mënyrë interaktive njësinë e ruajtjes së artikullit. Nomenklatura është një referencë. "Njësia e ruajtjes" - një drejtori në varësi të nomenklaturës. Referenca e nomenklaturës zakonisht përmban shumë artikuj. Nëse jemi në formën e një liste regjistrash, thjesht shtojmë dy kolona - "Nomenklatura" dhe "Njësia e ruajtjes", atëherë kur përpiqemi të zgjedhim në mënyrë interaktive një "njësi ruajtëse", do të ndodhë një varje.

Le ta shqyrtojmë problemin nga një këndvështrim pak më ndryshe.

Për të shmangur ngrirjen, zakonisht caktoni "Lidhje sipas pronarit". Shihni foton. Në të majtë në figurë - forma e listës së regjistrave, në të djathtë në figurë - vetitë e fushës hyrëse "IST" (i njëjti që është shënuar në të majtë në formën e listës së regjistrave me shkronja të kuqe "IST"). Për të përcaktuar në mënyrë të qartë pronarin (jo në mënyrë programore), për fushën e hyrjes "IST", plotësoni fushën e shënuar në figurë me numrin "1" - "Lidhja sipas pronarit", ku tregohet lidhja me fushën "Nomenklaturë". .

Si të krijoni në mënyrë programore një lidhje nga pronari në një formular?

Ndonjëherë ndodh që pronari duhet të instalohet në mënyrë programore, në varësi të disa kushteve.

Për shembull, fusha "TIK" e listës së regjistrave duhet të shoqërohet me fushën e pronarit "Njësia e transportit" (e cila është gjithashtu një element i librit të referencës "Nomenklatura"), nëse njësia e transportit është e mbushur dhe nëse është nuk është plotësuar, atëherë pronari duhet të lexojë vlerën në fushën "Nomenklatura" - shih indeksin nr. 3 në figurë.
Si zbatohet kjo.
Në këtë rast, nuk keni nevojë të plotësoni fushën 1 "Marrëdhënia sipas pronarit". Por në të njëjtën kohë është e nevojshme që në fushën 2 "Fillimi i përzgjedhjes" të tregohet procedura në të cilën marrëdhënia nga pronari do të përcaktohet programatikisht duke përdorur direktivën "SelectByOwner".
Shembull i procedurës:

ProcedureInformationRegisterListStorageUnitStartSelection (Artikulli, Përpunimi standard)

Owner = FormElements.InformationRegisterList.CurrentData.Nomenklatura;
Nëse është mbushur me vlerë (FormElements.InformationRegisterList.CurrentData.Transport Unit) Pastaj
IfFormElements.DataRegisterList.CurrentData.Transport Unit.NomenclatureType = Enumerations.usNomenclatureTypes.Cargo Pastaj
Owner = FormElements.DefaultRegisterList.CurrentData.Transport Unit
FundNëse;
FundNëse;

Artikull.ChoiceByOwner = Pronar;

Fundi i procedurës

Si të shtoni programatikisht një artikull të ri të katalogut nëse ai ka një pronar

Ne duhet të krijojmë në mënyrë programore një element të ri të librit të referencës "Njësitë e ruajtjes", i cili është në pronësi të librit të referencës "Nomenklatura".

Kjo bëhet si kjo:
// krijoni një artikull të ri të katalogut "Storage Units":
IST = Directories.StorageUnits.CreateElement ();
// shkruani pronarin për të - një kërkim për artikullin, ku "Nomenklatura" është një element i librit të referencës "Nomenklatura" të përcaktuar më herët
SOUR.Owner = Nomenklatura.Ref;
// përcaktoni emrin dhe detajet e tjera:
SOUR.Emri = "njësi ABS";
IST Faktori = 1;
// ... plotësoni pjesën tjetër të detajeve
// në fakt, ne shkruajmë njësinë e krijuar të ruajtjes në bazën e të dhënave:
BURIMI.Shkruani ();

Artikujt kryesorë të lidhur