1c පාලන පෝරමය තේරීම. යම් තේරීමක් සමඟ ලැයිස්තු පෝරමයක් විවෘත කරන්නේ කෙසේද? වින්‍යාසකරු තුළ තේරීම සැකසීම

කේතය 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=සංසන්දනයType.Contains;
නාමාවලියList.Selection.Status.Value="පිළිගත්";
DirectoryList.Selection.Status.Set();

1C 8.2 සඳහා:
පෙර සැකසූ තේරීමක් සමඟ ලැයිස්තු පෝරමයක් විවෘත කිරීමට ක්‍රම කිහිපයක් තිබේ. අපි ඒවා පිළිවෙලට බලමු:

1. පළමු ක්‍රමය නම්, පෝරමය විවෘත කිරීමේදී, ඔබට තේරීම් පෝරමය පරාමිතිය සකසා මෙම පරාමිතිය සමඟ ලැයිස්තු පෝරමය විවෘත කළ හැකිය. තේරීම් පරාමිතිය ව්යුහය නියෝජනය කරයි. මූලද්‍රව්‍යවල නම් තේරීම සිදු කරන ක්ෂේත්‍රවල නම් වලට අනුරූප වන අතර අගයන් තේරීමේ අගයන් අඩංගු වේ. මෙය ගතික ලැයිස්තුව කළමනාකරණය කළ පෝරම දිගු විකල්පයකි. එනම්, එය ප්‍රධාන ගුණාංගය වන ගතික ලැයිස්තු ආකාරයේ ගුණාංගයක් වන ආකෘති සඳහා පවතී, උදාහරණයක් ලෙස, ලැයිස්තු ආකෘති සහ තේරීම් ආකෘති.

පෝරමය විවෘත කරන විට, නිශ්චිත ක්ෂේත්රය මත පදනම්ව තේරීම සිදු කරනු ලැබේ.
කේතය 1C v 8.2 UP // උදාහරණයක් ලෙස, පහත උදාහරණයේ දී, ඉන්වොයිසි ලැයිස්තුවක් 333 ට සමාන සංඛ්‍යා ක්ෂේත්‍රයෙන් තේරීම සමඟ විවෘත වේ.
තේරීමේ අගය = නව ව්‍යුහය ("අංක", "333");
තේරීම් පරාමිතීන් = නව ව්‍යුහය ("තේරීම", තේරීම් අගය);

OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය", තේරීම් විකල්ප);

// උදාහරණයක් ලෙස, පහත උදාහරණය ඉන්වොයිසි ලැයිස්තුවක් විවෘත කරයි
// "OJSC අං සහ කුර" ට සමාන කොන්ත්‍රාත්කරු ක්ෂේත්‍රය විසින් තෝරා ගැනීමත් සමඟ.
තේරීමේ අගය = නව ව්‍යුහය ("ප්‍රතිපක්ෂ", "OJSC අං සහ කුර");
තේරීම් පරාමිතීන් = නව ව්‍යුහය ("තේරීම", තේරීම් අගය);
OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය", තේරීම් විකල්ප);

2. ඔබට පරාමිති නොමැතිව ලැයිස්තු පෝරමයක් විවෘත කළ හැක:
කේතය 1C v 8.2 UE OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය");

ඉන්පසු, CreatedOnServer හි ඉන්වොයිසි ලැයිස්තුව සඳහා පෝරමයේ සිදුවීම් හසුරුවන්නා තුළ, පෝරමයේ ප්‍රධාන ගුණාංගය වන ගතික ලැයිස්තුවේ තේරීමක් සාදන කේතය ලියන්න:
කේතය 1C v 8.2 UP &OnServer

තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(Type("DataCompositionSelection Element"));
SelectionElement.LeftValue = NewDataCompositionField("අංක");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Accessible;
SelectionElement.RightValue = "000000001";
ක්රියා පටිපාටියේ අවසානය

&සේවාදායකයේ
OnServer නිර්මාණය කිරීමේදී ක්‍රියා පටිපාටිය (අසාර්ථක වීම, සම්මත සැකසුම්)
තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
ක්රියා පටිපාටියේ අවසානය

වාසි මෙම ක්රමයඑය සංසන්දනාත්මක දසුනයිතෝරාගැනීම සඳහා, ඔබට පළමු අවස්ථාවේ දී මෙන් සමාන පමණක් නොව, වැඩි, අඩු, ආදියද සැකසිය හැක.

නමුත් මෙම ක්රමය ද ඉතා වැදගත් අඩුපාඩුවක් ඇත: මෙම තේරීම සමඟ, පෝරමය සෑම විටම විවෘත වනු ඇත. ඇයව කොතැනක සිට ඇමතුවාද. එබැවින්, මෙම පෝරමය ප්රධාන එකක් ලෙස නම් නොකළ යුතුය. කෙසේ වෙතත්, එය ප්‍රධාන එක නම්, තේරීම ස්ථාපනය කිරීමට පෙර, මෙම පෝරමය විවෘත වන්නේ කොතැනින්ද යන්න පිළිබඳ යම් ආකාරයක විශ්ලේෂණයක් සැපයීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, ආකෘති පරාමිතීන් විශ්ලේෂණය කිරීම.

3. අවසාන වශයෙන්, ගතික ලැයිස්තුවක් සඳහා දත්ත තෝරා ගන්නා අභිරුචි විමසුමක තේරීමේ කොන්දේසිය තැබිය හැක. උදාහරණයක් ලෙස, අපි අයිතම ලැයිස්තුවේ උද්දීපනය කර ඇති අයිතමය අඩංගු ඉන්වොයිසි ලැයිස්තුවක් විවෘත කළ යුතුය.

මෙය සිදු කිරීම සඳහා, අයිතම ලැයිස්තුවක් ආකාරයෙන්, විධානයක් සහ අදාළ බොත්තම රිසිට් ඉන්වොයිසි සාදන්න.

මෙම විධානය සඳහා ක්‍රියාත්මක කිරීමේ හසුරුව පහත පරිදි පුරවමු:
කේතය 1C v 8.2 UP &OnClient
ක්‍රියා පටිපාටිය රිසිට්පත් ඉන්වොයිසි (විධානය)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Items.List.CurrentRow;
ListForm.Open();

ක්රියා පටිපාටියේ අවසානය

මෙම හසුරුවන්නෙහි, අපට ඉන්වොයිසි ලැයිස්තුව සඳහා පෝරමය ලැබෙන අතර අයිතම ලැයිස්තුවේ වත්මන් අයිතමයට සබැඳිය FilterByProduct පෝරමය පරාමිතිය වෙත ලබා දී මෙම පරාමිතිය සමඟ පෝරමය විවෘත කරන්න.

ඉන්පසුව අපි ලේඛන ලැයිස්තුව සඳහා පෝරමයක් සාදනු ඇත: රිසිට් ඉන්වොයිසිය සහ පෝරමයේ ගුණාංගය FilterBy Product එකක් සාදන්න, එය විවෘත කිරීමේදී අපි පෝරමයේ පරාමිතියක් ලෙස භාවිතා කරමු. දැන් අපි List form එකේ main attribute එකේ properties palette එක open කරමු. අත්තනෝමතික ඉල්ලීම් ධජය සකසන්නසහ ලැයිස්තු සැකසීම් රේඛාවේ ක්ලික් කරන්න විවෘත.

ඉල්ලීම් ක්ෂේත්‍රය තුළ, පහත ඉල්ලීම් පෙළ ඇතුළත් කරන්න:
කේතය 1C v 8.2 UP SELECT
ලේඛන ලදුපත් ඉන්වොයිසිය. අංකය,
ලේඛන ලදුපත් ඉන්වොයිසිය.දිනය
සිට
Document.ReceiptInvoice AS DocumentReceiptInvoice
කොහෙද
ලේඛන කුවිතාන්සි ඉන්වොයිසිය.Products.Product = &නිෂ්පාදනය

ඉල්ලීමෙහි, අපි අයිතම පරාමිතිය භාවිතා කරමු, එය FilterBy අයිතම ලැයිස්තුවේ පෝරමය පරාමිතියෙහි අඩංගු අයිතම ලැයිස්තුවේ වත්මන් රේඛාවට සබැඳියක් ලැබෙනු ඇත. මෙය සිදු කිරීම සඳහා, OnOpen ලැයිස්තු පෝරමයේ සිදුවීම් හසුරුවන්නෙහි, නිෂ්පාදන ඉල්ලීම් පරාමිතියෙහි අගය සැකසීමට අපි කේතය ලියන්නෙමු:
කේතය 1C v 8.2 UP
&OnClient
විවෘත කිරීමේ ක්රියා පටිපාටිය (අසාර්ථක)

List.Parameters.SetParameterValue("නිෂ්පාදනය", FilterByProduct);

ක්රියා පටිපාටියේ අවසානය

මෙතන ලැයිස්තුව.විකල්පයනු ලැයිස්තු ගුණාංගය සඳහා ගතික ලැයිස්තු ඉල්ලීම් පරාමිති ලැයිස්තුවකි. නිෂ්පාදන පරාමිතියෙහි අගය FilterByProduct ආකෘති පරාමිතියෙහි අගයට සමානව සකසා ඇත.

එහි ප්‍රතිඵලයක් වශයෙන්, අයිතම ලැයිස්තුවක් ආකාරයෙන් රිසිට්පත් ඉන්වොයිසි බොත්තම ක්ලික් කිරීමෙන්, උද්දීපනය කර ඇති අයිතම අඩංගු ඉන්වොයිසි පමණක් ලැයිස්තුවක් අපට ලැබෙනු ඇත. මේ මොහොතේනාමකරණ ලැයිස්තුවේ.

වෙබ් අඩවියෙන් ලබාගත් තොරතුරු

1C 8.3 හි කළමනාකරණය කළ පෝරම මත තේරීම

කළමනාකරණය කළ පෝරම 1C 8.3 හි තේරීම ස්ථාපනය කිරීමේ විකල්පයන් ලිපිය සාකච්ඡා කරනු ඇත. ගතික ලැයිස්තුවක් සඳහා තේරීම ස්ථිතිකව හෝ ගතිකව, තුළ සැකසිය හැක පරිශීලක අතුරුමුහුණතහෝ වින්යාස කරන්නා. අපි පහත සියලු තේරීම් විකල්ප සලකා බලමු.

  • වින්‍යාසකරු තුළ තේරීම සැකසීම

පරිශීලක මාදිලියේ තේරීම සැකසීම

අගයන් වගුවකට හෝ ගසකට ප්‍රතිවිරුද්ධව ගතික ලැයිස්තුවක්, ඕනෑම ලැයිස්තු අඩංගු පෝරම ක්‍රියාත්මක කිරීම සඳහා වඩාත් සුදුසු විසඳුමකි, මන්ද ගතික ලැයිස්තුව තෝරා ගැනීම, ක්ෂේත්‍ර කණ්ඩායම් කිරීම සහ වර්ග කිරීම සමඟ වැඩ කිරීම සඳහා පුළුල් පරාසයක මෙවලම් සපයයි. පරිශීලක මාදිලියේ හෝ වින්‍යාසකරු තුළ වැඩ කරන විට මෙම තේරීම සැකසිය හැකිය, මූලධර්මය සමාන වේ.

ව්යවසාය මාදිලියේ තේරීම සැකසීමට, ඔබ "අභිරුචිකරණ ලැයිස්තුව" විධානය ඇමතීමට අවශ්ය වේ.

කවුළුවක් විවෘත වනු ඇත.


"තේරීම" ටැබය වත්මන් ලැයිස්තුවේ ඇති ක්ෂේත්ර ලැයිස්තුවක් ඉදිරිපත් කරයි. අපි පෙරහන කරන ලැයිස්තු ක්ෂේත්‍ර තෝරන්න. මෙය දෙවරක් ක්ලික් කිරීමෙන් හෝ ඇදගෙන යාමෙන් සිදු කළ හැක.


අපි සංසන්දනාත්මක වර්ගය සහ අගය සකසා, "සංස්කරණය අවසන් කරන්න" ක්ලික් කරන්න, තේරීම සකසා ඇත.


ඔබ ව්‍යවසාය ප්‍රකාරයේදී තේරීම සකසන විට, ලැයිස්තු පෝරමයේ ඊනියා ඉක්මන් තේරීම් ක්ෂේත්‍ර ස්වයංක්‍රීයව නිර්මාණය වේ.


1C වේදිකාව ස්වයංක්‍රීයව ඉක්මන් තේරීම් ක්ෂේත්‍ර නිර්මාණය කිරීම සඳහා, වින්‍යාසකරු තුළ පෝරමයක් සංවර්ධනය කිරීමේදී, ඔබ පරිශීලක සැකසුම් සමූහයක් සඳහන් කළ යුතුය.


මෙම තේරීම වත්මන් පරිශීලකයා සඳහා පමණක් සුරැකෙනු ඇත, එය ගතික ලැයිස්තුවේ නම්‍යශීලී අභිරුචිකරණයට ඉඩ සලසයි. කෙසේ වෙතත්, කාර්යය වන්නේ පද්ධතියේ සියලුම පරිශීලකයින් සඳහා නිශ්චිත ලැයිස්තුවක් සඳහා ස්ථාවර තේරීමක් සිදු කිරීම නම්, අපට එය විසඳා ගත හැක්කේ වින්යාසකය හරහා පමණි.

වින්‍යාසකරු තුළ තේරීම සැකසීම

වින්යාසය තුළ වැඩ කිරීම, අපට ගතික ලැයිස්තු තෝරාගැනීමේ වර්ග දෙකක් සැකසිය හැක - ස්ථාවර සහ ගතික. ස්ථාවර තේරීම එක් වරක් වින්‍යාසගත කළ හැක, පද්ධතියේ ඕනෑම දත්තයක් මත පදනම්ව ගතික හෝ ක්‍රමලේඛන සැකසිය හැක.

වින්‍යාසකය තුළ ස්ථාවර තේරීමක් සැකසීමේ මූලධර්මය ඉහත විස්තර කර ඇති පරිශීලක මාදිලියේ එය සැකසීමෙන් වෙනස් නොවේ. තේරීම සැකසීමට, අපි ගතික ලැයිස්තු සැකසුම් විවෘත කළ යුතුය.


කවුළුවක් විවෘත වනු ඇත.


තේරීම පරිශීලක මාදිලියේ ආකාරයටම සකසා ඇත.

“පරිශීලක සැකසුම් තුළ ඇතුළත් කරන්න” විකල්පය මඟින් “ලැයිස්තුව අභිරුචිකරණය කරන්න” මෙනු අයිතමය හරහා වින්‍යාසකාරකයේ තේරීම් කට්ටලය පරිශීලක මාදිලියේ තිබේද යන්න තීරණය කරයි.


ගතික (මෘදුකාංග) තේරීම

බොහෝ විට තේරීම ක්‍රමලේඛනගතව සැකසීමට අවශ්‍ය වේ, උදාහරණයක් ලෙස, තේරීම් පෝරමයක් විවෘත කිරීමේදී, අපට තේරීම සමඟ පාලිත පෝරමයක් විවෘත කිරීමට අවශ්‍ය වූ විට. පෝරමයට පරාමිතියක් ලබා දී මෙම පරාමිතිය මත පදනම්ව තේරීම සකසා ඇත. මෙයට පොදු උදාහරණයක් වන්නේ හිමිකරු විසින් නාමාවලි අයිතම තෝරාගැනීමයි.

ක්රම

සංවර්ධනය වෙමින් පවතින වින්‍යාසය BSP “මූලික ක්‍රියාකාරීත්වය” උප පද්ධතිය අඩංගු නම්, ගතික ලැයිස්තුවේ මෘදුකාංග තේරීම සම්මත ක්‍රමය භාවිතයෙන් ස්ථාපනය කළ හැකිය:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

මෙම ක්රමයේ අත්සන:

ගතික ලැයිස්තුව වර්ගය: DynamicList - ඔබට තේරීම සැකසීමට අවශ්‍ය ලැයිස්තුව.

ක්ෂේත්ර නාමය වර්ගය: String - ඔබට තේරීම සැකසීමට අවශ්‍ය ක්ෂේත්‍රය.

RightValue වර්ගය: අත්තනෝමතික - තේරීම් අගය (විකල්ප. පෙරනිමි අගය: නිර්වචනය නොකළ. සටහන: ඔබ Undefined සමත් වුවහොත්, අගය වෙනස් නොවේ).

සංසන්දනය බලන්න වර්ගය: DataComposition සංසන්දන වර්ගය - තේරීමේ තත්ත්වය.

කාර්ය සාධනය වර්ගය: තන්තුව - දත්ත සංයුති මූලද්‍රව්‍යයක් නියෝජනය කිරීම (විකල්පමය. පෙරනිමි අගය: නිර්වචනය කර නැත. නිශ්චිතව දක්වා ඇත්නම්, නිශ්චිත නියෝජනය සහිත භාවිත ධජය පමණක් මුද්‍රණය කෙරේ (කිසිදු අගයක් මුද්‍රණය කර නැත). අගය නැවත මුද්‍රණය වන පරිදි හිස් කිරීමට හිස් තන්තුවක් යැවිය යුතුය.)

භාවිතය වර්ගය: Boolean - මෙම තේරීම භාවිතා කිරීමට කොඩිය (විකල්ප. පෙරනිමිය: නිර්වචනය නොකළ).

සංදර්ශක මාදිලිය වර්ගය: ItemDisplayModeDataCompositionSettings - මෙම තේරීම පරිශීලකයාට දර්ශනය වන ආකාරය. විය හැකි අගයන්:

  • Element Display ModeData Layout Settings.ඉක්මන් ප්‍රවේශය - කණ්ඩායම තුළ ඉක්මන් සැකසුම්ලැයිස්තුවට ඉහළින්.
  • Element Display ModeData පිරිසැලසුම් සැකසීම් සාමාන්‍ය - ලැයිස්තු සැකසීම් තුළ (තවත් උප මෙනුව තුළ).
  • ElementDisplayModeDataCompositionSettings.Accessible - මෙම තේරීම වෙනස් කිරීමෙන් පරිශීලකයා වළක්වන්න.

IdentifierUserSettings වර්ගය: තන්තුව - මෙම තේරීම සඳහා අනන්‍ය හඳුනාගැනීම (පරිශීලක සැකසුම් සමඟ සන්නිවේදනය කිරීමට භාවිතා කරයි).

තේරීම් අගයක් ඉවත් කිරීම සඳහා, ඔබ සම්මත ක්‍රමය භාවිතා කළ යුතුය:

පොදු කාර්ය සේවාදායක සේවාදායකය. RemoveGroupElementsSelectionDynamicList()

මෙම ක්රමයේ අත්සන:

ගතික ලැයිස්තුව වර්ගය: DynamicList - ඔබට තේරීම සැකසීමට අවශ්‍ය පෝරම ගුණාංගය.

ක්ෂේත්ර නාමය වර්ගය: තන්තු - පිරිසැලසුම් ක්ෂේත්‍රයේ නම (කණ්ඩායම් සඳහා භාවිතා නොවේ).

කාර්ය සාධනය වර්ගය: තන්තුව - පිරිසැලසුම් ක්ෂේත්‍රයක් නියෝජනය කිරීම.

පද්ධතිය තුළ BSP නොමැති නම්, DataComposition Field වස්තුව භාවිතයෙන් තේරීම ස්වාධීනව සැකසිය හැක.

තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(Type("DataCompositionSelection Element")); තේරීම් මූලද්‍රව්‍යය. LeftValue = NewDataCompositionField("නම"); තේරීම් මූලද්‍රව්‍යය. සංසන්දන වර්ගය = දත්ත සංයුති සංසන්දන වර්ගය. සමාන; තේරීම් Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // විකල්ප තේරීම් අංගය RightValue = "Ivanov";

මෙම තේරීම "සම්පූර්ණ නම" = "ඉවානොව්" අගය ඇති පේළි තෝරා ගනු ඇත.

තාර්කික "AND", "OR", "NOT" භාවිතා කිරීමට දත්ත වර්ගය DataCompositionSelectionElementGroup අදහස් කෙරේ

තේරීම් කණ්ඩායම = List.Selection.Elements.Add(Type("DataComposition Selection Elements")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; තේරීම් මූලද්‍රව්‍යය = තේරීම් කණ්ඩායම. මූලද්‍රව්‍ය එකතු කරන්න (වර්ගය ("දත්ත සංයුතිය තේරීමේ මූලද්‍රව්‍යය")); තේරීම් මූලද්‍රව්‍යය. LeftValue = NewDataCompositionField("නම"); තේරීම් මූලද්‍රව්‍යය. සංසන්දන වර්ගය = දත්ත සංයුති සංසන්දන වර්ගය. සමාන; තෝරාගැනීමේ මූලද්රව්යය.RightValue = "Ivanov"; තේරීම් මූලද්‍රව්‍යය = තේරීම් කණ්ඩායම. මූලද්‍රව්‍ය එකතු කරන්න (වර්ගය ("දත්ත සංයුතිය තේරීමේ මූලද්‍රව්‍යය")); තේරීම් මූලද්‍රව්‍යය. LeftValue = NewDataCompositionField("නම"); තේරීම් මූලද්‍රව්‍යය. සංසන්දන වර්ගය = දත්ත සංයුති සංසන්දන වර්ගය. සමාන; SelectionElement.RightValue = "Petrov";

මෙම තේරීම "සම්පූර්ණ නම" = "Ivanov" හෝ "Petrov" අගය ඇති පේළි තෝරා ගනු ඇත.

ගතික ලැයිස්තුවක තේරීම ගතික ලැයිස්තු ඉල්ලීමේ පෙළ වෙනස් කිරීමෙන් ද සිදු කළ හැක. ගතික ලැයිස්තුව "අභිරුචි ඉල්ලීමක්" හරහා සාදන විට මෙම විකල්පය ක්‍රියා කරයි.


මෙය සිදු කිරීම සඳහා, විමසුම් පෙළට “සත්‍යය කොහිද” යන කොන්දේසිය එක් කරන්න...


ඔබට පෙනෙන පරිදි, මෙම ප්රවේශය ලිවීමේ කේතය අනුව වඩාත් සංයුක්ත වේ. කෙසේද වඩාත් දුෂ්කර කොන්දේසිඅපට වගු කොටසේ තේරීම ස්ථාපනය කිරීමට අවශ්‍ය වේ, දත්ත සංයුතිය තේරීමේ මූලද්‍රව්‍යය හරහා තේරීම භාවිතා කිරීමේ විකල්පය වඩාත් අපහසු වනු ඇත. කෙසේ වෙතත්, ඉල්ලීම් පෙළ වෙනස් කිරීම සමඟ උදාහරණය එහි අඩුපාඩු තිබේ - මෙම ක්රියාත්මක කිරීම කේත වෙනස්කම් වලට ප්රතිරෝධී නොවේ. උදාහරණයක් ලෙස, ඔබ එවැනි ක්‍රියාත්මක කිරීමක් සිදු කර අමතක වී ඇත, නමුත් අනාගතයේදී ඔබට WHERE (Order, GROUP) ට පසුව යම් ක්‍රියාකරුවෙකු එකතු කිරීමෙන් ඉල්ලීම් පෙළ වෙනස් කිරීමට අවශ්‍ය නම්, වැඩසටහන් කේතයේ අඩංගු බව ඔබ මතක තබා ගත යුතුය:

List.QueryText = List.QueryText + " සහ DirectoryUsers. සම්පූර්ණ නම V(""Ivanov"",""Petrov"")";

මෙය සැලකිල්ලට නොගන්නේ නම්, දෝෂයක් ඇති වනු ඇත, නමුත් මෙය වළක්වා ගැනීම සඳහා, ඔබට එය වෙනත් ක්රියාත්මක කිරීමකට වෙනස් කළ හැකිය. අපි ඉල්ලීම් පෙළට පහත කොන්දේසිය එකතු කරමු:

කොහේද (&තේරීම ස්ථාපනය කර නැත හෝ නාමාවලි පරිශීලකයන්. නම තුළ (& අවසර ලත් නම))

List.Parameters.SetParameterValue("SelectionSet", සම්පූර්ණ නම.Quantity() > 0); List.Parameters.SetParameterValue("අවසර ලත් සම්පූර්ණ නම", සම්පූර්ණ නම);

මෙහි සම්පූර්ණ නම අරාවකි.

ඔබට පෙනෙන පරිදි, කේතයේ පේළි 2 ක් එදිරිව 10. තෝරා ගැනීමට කුමන ක්රමය විශේෂිත යෙදුම් කාර්යය මත රඳා පවතී.

පිනිස 1s 8.2 හි තේරීම සමඟ තේරීම් පෝරමය විවෘත කරන්න(සාමාන්‍ය ආකෘති), අපට යම් ක්‍රියා සිදු කිරීමට අවශ්‍යයි. අපි එය මුලින්ම ලබා ගනිමු. ඊට පසු, අපි තේරීම සකසා එය ක්‍රමලේඛනගතව විවෘත කරන්නෙමු, මෙන්න කේත උදාහරණයක්:

අගයන් කිහිපයක් සහිත 1C 8.2 ආදාන ක්ෂේත්‍රයේ පෝරමය මත තේරීම

ඉහත උදාහරණයේ අපි බැලුවෙමු තේරීම් පෝරමයේ තේරීම සකසන්නේ කෙසේදනිශ්චිත අගය අනුව. දැන් ඔබට අගයන් කිහිපයක් ආදේශ කිරීමට අවශ්‍ය තත්වයක් දෙස බලමු, මෙය උදාහරණයක් ලෙස, අරාවක් හෝ විමසුම් ප්‍රතිඵලයකින් බාගැනීමක් විය හැක. මෙය 1c ආදාන ක්ෂේත්‍රයේ තේරීමකිබහු අරුත් සහිතයි.

පළමුව, අපි තේරීම් පෝරමය ලබා ගනිමු, පරාමිතිවල "මූලද්‍රව්‍ය" (අයිතිකරු) සමත් කරන්න, තේරීම් මාදිලියේ ධජය සකසන්න. ඉන්පසුව අපි අගයන් ලැයිස්තුවක් සහ අරාවක් සාදන්නෙමු, ලැයිස්තුවේ සැසඳීමේ වර්ගය සැකසීමේදී තේරීමක් ලෙස, වස්තුවක් තිබිය හැක්කේ වර්ගය සමඟ පමණක් බව අපි සටහන් කරමු. ලැයිස්තු අගයන්. අපි අරාවට මූලද්‍රව්‍ය එකතු කරන්නෙමු, පසුව මෙම අරාව අගය ලැයිස්තුවට පූරණය කරන්න, අපි පසුව තේරීමේදී සකස් කරමු. එසේම, මෙම තේරීම භාවිතා කිරීම සඳහා ධජය සක්‍රීය කිරීමට සහ සංසන්දන වර්ගය සැකසීමට අමතක නොකරන්න.

1C 8.3 හි පෝරමයේ ආදාන ක්ෂේත්‍රයේ තේරීම සැකසීම, තේරීමේ සිදුවීමේ ආරම්භය

දැන් අපි සලකා බලමු 1C 8.3 හි කළමනාකරණය කළ පෝරමයක ආදාන ක්ෂේත්‍රයේ තේරීම. අපි උනන්දුවක් දක්වන මූලද්‍රව්‍යය පෝරමයේ සොයා ගනිමු, අපි තේරීම සකසන්නෙමු, අපගේ නඩුවේදී මෙය “සංවිධානය” ක්ෂේත්‍රයයි. අපි "තේරීමේ ආරම්භය" සිද්ධිය සොයා, විශාලන වීදුරුව මත ක්ලික් කර ක්රියා පටිපාටිය තුළ අප සොයා ගන්න. අපි තේරීම් දත්ත පරාමිතිය දකිමු; මෙම පරාමිතිය ValueList වර්ගයේ වේ. අවශ්ය මූලද්රව්යවලට තෝරාගැනීම සීමා කිරීම සඳහා, අපි අගයන් ලැයිස්තුව පිරවිය යුතුය. අපට මූලද්‍රව්‍ය තෝරාගත හැක්කේ සේවාදායකයේ පමණි, එබැවින් අපි &OnServer සම්පාදන විධානය සමඟින් ක්‍රියා පටිපාටියක් සාදන්නෙමු. මෙම ක්රියාපටිපාටිය තුළ, තේරීම් දත්ත පුරවන්න.

කේතය 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=සංසන්දනයType.Contains;
නාමාවලියList.Selection.Status.Value="පිළිගත්";
DirectoryList.Selection.Status.Set();

1C 8.2 සඳහා:
පෙර සැකසූ තේරීමක් සමඟ ලැයිස්තු පෝරමයක් විවෘත කිරීමට ක්‍රම කිහිපයක් තිබේ. අපි ඒවා පිළිවෙලට බලමු:

1. පළමු ක්‍රමය නම්, පෝරමය විවෘත කිරීමේදී, ඔබට තේරීම් පෝරමය පරාමිතිය සකසා මෙම පරාමිතිය සමඟ ලැයිස්තු පෝරමය විවෘත කළ හැකිය. තේරීම් පරාමිතිය ව්යුහය නියෝජනය කරයි. මූලද්‍රව්‍යවල නම් තේරීම සිදු කරන ක්ෂේත්‍රවල නම් වලට අනුරූප වන අතර අගයන් තේරීමේ අගයන් අඩංගු වේ. මෙය ගතික ලැයිස්තුව කළමනාකරණය කළ පෝරම දිගු විකල්පයකි. එනම්, එය ප්‍රධාන ගුණාංගය වන ගතික ලැයිස්තු ආකාරයේ ගුණාංගයක් වන ආකෘති සඳහා පවතී, උදාහරණයක් ලෙස, ලැයිස්තු ආකෘති සහ තේරීම් ආකෘති.

පෝරමය විවෘත කරන විට, නිශ්චිත ක්ෂේත්රය මත පදනම්ව තේරීම සිදු කරනු ලැබේ.
කේතය 1C v 8.2 UP // උදාහරණයක් ලෙස, පහත උදාහරණයේ දී, ඉන්වොයිසි ලැයිස්තුවක් 333 ට සමාන සංඛ්‍යා ක්ෂේත්‍රයෙන් තේරීම සමඟ විවෘත වේ.
තේරීමේ අගය = නව ව්‍යුහය ("අංක", "333");
තේරීම් පරාමිතීන් = නව ව්‍යුහය ("තේරීම", තේරීම් අගය);

OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය", තේරීම් විකල්ප);

// උදාහරණයක් ලෙස, පහත උදාහරණය ඉන්වොයිසි ලැයිස්තුවක් විවෘත කරයි
// "OJSC අං සහ කුර" ට සමාන කොන්ත්‍රාත්කරු ක්ෂේත්‍රය විසින් තෝරා ගැනීමත් සමඟ.
තේරීමේ අගය = නව ව්‍යුහය ("ප්‍රතිපක්ෂ", "OJSC අං සහ කුර");
තේරීම් පරාමිතීන් = නව ව්‍යුහය ("තේරීම", තේරීම් අගය);
OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය", තේරීම් විකල්ප);

2. ඔබට පරාමිති නොමැතිව ලැයිස්තු පෝරමයක් විවෘත කළ හැක:
කේතය 1C v 8.2 UE OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය");

ඉන්පසු, CreatedOnServer හි ඉන්වොයිසි ලැයිස්තුව සඳහා පෝරමයේ සිදුවීම් හසුරුවන්නා තුළ, පෝරමයේ ප්‍රධාන ගුණාංගය වන ගතික ලැයිස්තුවේ තේරීමක් සාදන කේතය ලියන්න:
කේතය 1C v 8.2 UP &OnServer

තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(Type("DataCompositionSelection Element"));
SelectionElement.LeftValue = NewDataCompositionField("අංක");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Accessible;
SelectionElement.RightValue = "000000001";
ක්රියා පටිපාටියේ අවසානය

&සේවාදායකයේ
OnServer නිර්මාණය කිරීමේදී ක්‍රියා පටිපාටිය (අසාර්ථක වීම, සම්මත සැකසුම්)
තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
ක්රියා පටිපාටියේ අවසානය

මෙම ක්‍රමයේ ඇති වාසි වන්නේ සංසන්දනාත්මක දැක්මයිතෝරාගැනීම සඳහා, ඔබට පළමු අවස්ථාවේ දී මෙන් සමාන පමණක් නොව, වැඩි, අඩු, ආදියද සැකසිය හැක.

නමුත් මෙම ක්රමය ද ඉතා වැදගත් අඩුපාඩුවක් ඇත: මෙම තේරීම සමඟ, පෝරමය සෑම විටම විවෘත වනු ඇත. ඇයව කොතැනක සිට ඇමතුවාද. එබැවින්, මෙම පෝරමය ප්රධාන එකක් ලෙස නම් නොකළ යුතුය. කෙසේ වෙතත්, එය ප්‍රධාන එක නම්, තේරීම ස්ථාපනය කිරීමට පෙර, මෙම පෝරමය විවෘත වන්නේ කොතැනින්ද යන්න පිළිබඳ යම් ආකාරයක විශ්ලේෂණයක් සැපයීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, ආකෘති පරාමිතීන් විශ්ලේෂණය කිරීම.

3. අවසාන වශයෙන්, ගතික ලැයිස්තුවක් සඳහා දත්ත තෝරා ගන්නා අභිරුචි විමසුමක තේරීමේ කොන්දේසිය තැබිය හැක. උදාහරණයක් ලෙස, අපි අයිතම ලැයිස්තුවේ උද්දීපනය කර ඇති අයිතමය අඩංගු ඉන්වොයිසි ලැයිස්තුවක් විවෘත කළ යුතුය.

මෙය සිදු කිරීම සඳහා, අයිතම ලැයිස්තුවක් ආකාරයෙන්, විධානයක් සහ අදාළ බොත්තම රිසිට් ඉන්වොයිසි සාදන්න.

මෙම විධානය සඳහා ක්‍රියාත්මක කිරීමේ හසුරුව පහත පරිදි පුරවමු:
කේතය 1C v 8.2 UP &OnClient
ක්‍රියා පටිපාටිය රිසිට්පත් ඉන්වොයිසි (විධානය)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Items.List.CurrentRow;
ListForm.Open();

ක්රියා පටිපාටියේ අවසානය

මෙම හසුරුවන්නෙහි, අපට ඉන්වොයිසි ලැයිස්තුව සඳහා පෝරමය ලැබෙන අතර අයිතම ලැයිස්තුවේ වත්මන් අයිතමයට සබැඳිය FilterByProduct පෝරමය පරාමිතිය වෙත ලබා දී මෙම පරාමිතිය සමඟ පෝරමය විවෘත කරන්න.

ඉන්පසුව අපි ලේඛන ලැයිස්තුව සඳහා පෝරමයක් සාදනු ඇත: රිසිට් ඉන්වොයිසිය සහ පෝරමයේ ගුණාංගය FilterBy Product එකක් සාදන්න, එය විවෘත කිරීමේදී අපි පෝරමයේ පරාමිතියක් ලෙස භාවිතා කරමු. දැන් අපි List form එකේ main attribute එකේ properties palette එක open කරමු. අත්තනෝමතික ඉල්ලීම් ධජය සකසන්නසහ ලැයිස්තු සැකසීම් රේඛාවේ ක්ලික් කරන්න විවෘත.

ඉල්ලීම් ක්ෂේත්‍රය තුළ, පහත ඉල්ලීම් පෙළ ඇතුළත් කරන්න:
කේතය 1C v 8.2 UP SELECT
ලේඛන ලදුපත් ඉන්වොයිසිය. අංකය,
ලේඛන ලදුපත් ඉන්වොයිසිය.දිනය
සිට
Document.ReceiptInvoice AS DocumentReceiptInvoice
කොහෙද
ලේඛන කුවිතාන්සි ඉන්වොයිසිය.Products.Product = &නිෂ්පාදනය

ඉල්ලීමෙහි, අපි අයිතම පරාමිතිය භාවිතා කරමු, එය FilterBy අයිතම ලැයිස්තුවේ පෝරමය පරාමිතියෙහි අඩංගු අයිතම ලැයිස්තුවේ වත්මන් රේඛාවට සබැඳියක් ලැබෙනු ඇත. මෙය සිදු කිරීම සඳහා, OnOpen ලැයිස්තු පෝරමයේ සිදුවීම් හසුරුවන්නෙහි, නිෂ්පාදන ඉල්ලීම් පරාමිතියෙහි අගය සැකසීමට අපි කේතය ලියන්නෙමු:
කේතය 1C v 8.2 UP
&OnClient
විවෘත කිරීමේ ක්රියා පටිපාටිය (අසාර්ථක)

List.Parameters.SetParameterValue("නිෂ්පාදනය", FilterByProduct);

ක්රියා පටිපාටියේ අවසානය

මෙතන ලැයිස්තුව.විකල්පයනු ලැයිස්තු ගුණාංගය සඳහා ගතික ලැයිස්තු ඉල්ලීම් පරාමිති ලැයිස්තුවකි. නිෂ්පාදන පරාමිතියෙහි අගය FilterByProduct ආකෘති පරාමිතියෙහි අගයට සමානව සකසා ඇත.

එහි ප්‍රතිඵලයක් ලෙස, අයිතම ලැයිස්තුවේ පෝරමයේ රිසිට් ඉන්වොයිසි බොත්තම ක්ලික් කිරීමෙන්, අයිතම ලැයිස්තුවේ දැනට තෝරාගෙන ඇති අයිතමය අඩංගු ඉන්වොයිසි පමණක් ලැයිස්තුවක් අපට ලැබෙනු ඇත.

යම් තේරීමක් සමඟ ලැයිස්තු පෝරමයක් විවෘත කරන්නේ කෙසේද?

පෙර සැකසූ තේරීමක් සමඟ ලැයිස්තු පෝරමයක් විවෘත කිරීමට ක්‍රම කිහිපයක් තිබේ. අපි ඒවා පිළිවෙලට බලමු:

1. පළමු ක්රමය නම්, පෝරමය විවෘත කිරීමේදී, ඔබට තේරීම් පෝරමය පරාමිතිය සැකසිය හැකි අතර, මෙම පරාමිතිය සමඟ ලැයිස්තු පෝරමය විවෘත කරන්න. තේරීම් පරාමිතිය ව්යුහය නියෝජනය කරයි. මූලද්‍රව්‍යවල නම් තේරීම සිදු කරන ක්ෂේත්‍රවල නම් වලට අනුරූප වන අතර අගයන් තේරීමේ අගයන් අඩංගු වේ. මෙය ගතික ලැයිස්තුව කළමනාකරණය කළ පෝරම දිගු විකල්පයකි. එනම්, එය ප්‍රධාන ගුණාංගය වන ආකාරයේ ගුණාංගය වන ආකෘති සඳහා පවතී ගතික ලැයිස්තුව, ලැයිස්තු පෝරම සහ තේරීම් පෝරම වැනි.

පෝරමය විවෘත කරන විට, නිශ්චිත ක්ෂේත්රය මත පදනම්ව තේරීම සිදු කරනු ලැබේ. උදාහරණයක් ලෙස, පහත උදාහරණයේ දී, 333 ට සමාන, අංක ක්ෂේත්‍රය මගින් තෝරා ගැනීමෙන් ඉන්වොයිසි ලැයිස්තුවක් විවෘත වේ.

තේරීමේ අගය = නව ව්‍යුහය ("අංක", "333");

තේරීම් පරාමිතීන් = නව ව්‍යුහය ("තේරීම", තේරීම් අගය);

OpenForm("ලේඛනය. රිසිට්පත් ඉන්වොයිසිය. ලැයිස්තු පෝරමය", තේරීම් විකල්ප);

2. ඔබට පරාමිති නොමැතිව ලැයිස්තු පෝරමයක් විවෘත කළ හැක:

OpenForm("Document.Invoice.ListForm");

ඉන්පසුව, ඉන්වොයිස් ලැයිස්තු පෝරමයේ සිදුවීම් හසුරුවන්නා තුළ CreatedOnServer විටපෝරමයේ ප්‍රධාන ගුණාංගය වන ගතික ලැයිස්තුවක තේරීමක් නිර්මාණය කරන කේතය ලියන්න:

&සේවාදායකයේ

OnServer නිර්මාණය කිරීමේදී ක්‍රියා පටිපාටිය (අසාර්ථක වීම, සම්මත සැකසුම්)

තේරීම් මූලද්‍රව්‍යය = List.Selection.Elements.Add(Type("DataCompositionSelection Element"));

SelectionElement.LeftValue = NewDataCompositionField("අංක");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Accessible;

SelectionElement.RightValue = "000000001";

ක්රියා පටිපාටියේ අවසානය

මෙම ක්‍රමයේ ඇති වාසි නම් තෝරා ගැනීම සඳහා සංසන්දනාත්මක වර්ගය පළමු අවස්ථාවේ දී මෙන් සමානව පමණක් නොව වැඩි, අඩු යනාදිය ද සැකසිය හැකිය.

නමුත් මෙම ක්රමය ද ඉතා වැදගත් අඩුපාඩුවක් ඇත: මෙම තේරීම සමඟ, පෝරමය සෑම විටම විවෘත වනු ඇත. ඇයව කොතැනක සිට ඇමතුවාද. එබැවින්, මෙම පෝරමය ප්රධාන එකක් ලෙස නම් නොකළ යුතුය. කෙසේ වෙතත්, එය ප්‍රධාන එක නම්, තේරීම ස්ථාපනය කිරීමට පෙර, මෙම පෝරමය විවෘත වන්නේ කොතැනින්ද යන්න පිළිබඳ යම් ආකාරයක විශ්ලේෂණයක් සැපයීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, ආකෘති පරාමිතීන් විශ්ලේෂණය කිරීම.

3. අවසාන වශයෙන්, ගතික ලැයිස්තුවක් සඳහා දත්ත තෝරා ගන්නා අභිරුචි විමසුමක තේරීමේ කොන්දේසිය තැබිය හැක. උදාහරණයක් ලෙස, අපි අයිතම ලැයිස්තුවේ උද්දීපනය කර ඇති අයිතමය අඩංගු ඉන්වොයිසි ලැයිස්තුවක් විවෘත කළ යුතුය.

මෙය සිදු කිරීම සඳහා, අයිතම ලැයිස්තුවක් ආකාරයෙන්, විධානයක් සහ අනුරූප බොත්තමක් සාදන්න රිසිට්පත් ඉන්වොයිසි.

මෙම විධානය සඳහා ක්‍රියාත්මක කිරීමේ හසුරුව පහත පරිදි පුරවමු:

&OnClient

ක්‍රියා පටිපාටිය රිසිට්පත් ඉන්වොයිසි (විධානය)

ListForm = GetForm("Document.Invoice.ListForm");

ListForm.FilterByProduct = Items.List.CurrentRow;

ListForm.Open();

ක්රියා පටිපාටියේ අවසානය

මෙම හසුරුවන්නෙහි, අපට ඉන්වොයිසි ලැයිස්තුව සඳහා පෝරමය ලැබෙන අතර අයිතම ලැයිස්තුවේ වත්මන් අයිතමයට සබැඳිය FilterByProduct පෝරමය පරාමිතිය වෙත ලබා දී මෙම පරාමිතිය සමඟ පෝරමය විවෘත කරන්න.

ඉන්පසුව අපි ලේඛන ලැයිස්තු පෝරමයක් සාදන්නෙමු මිලදී ගැනීමේ ඉන්වොයිසියසහ FilterByProduct පෝරමය ගුණාංගය සාදන්න, එය විවෘත කිරීමේදී අපි පෝරම පරාමිතියක් ලෙස භාවිතා කරමු. දැන් අපි List form එකේ main attribute එකේ properties palette එක open කරමු. අපි කොඩිය සකස් කරමු අභිරුචි ඉල්ලීමසහ පේළියේ ලැයිස්තු සැකසීමවිවෘත ක්ලික් කරන්න.

ඉල්ලීම් ක්ෂේත්‍රය තුළ, පහත ඉල්ලීම් පෙළ ඇතුළත් කරන්න:

තෝරා

ලේඛන ලදුපත් ඉන්වොයිසිය. අංකය,

ලේඛන ලදුපත් ඉන්වොයිසිය.දිනය

සිට

Document.ReceiptInvoice AS DocumentReceiptInvoice

කොහෙද

ලේඛන කුවිතාන්සි ඉන්වොයිසිය.Products.Product = &නිෂ්පාදනය

ඉල්ලීමෙහි, අපි අයිතම පරාමිතිය භාවිතා කරමු, එය FilterBy අයිතම ලැයිස්තුවේ පෝරමය පරාමිතියෙහි අඩංගු අයිතම ලැයිස්තුවේ වත්මන් රේඛාවට සබැඳියක් ලැබෙනු ඇත. මෙය සිදු කිරීම සඳහා, OnOpen ලැයිස්තු පෝරමයේ සිදුවීම් හසුරුවන්නෙහි, නිෂ්පාදන ඉල්ලීම් පරාමිතියෙහි අගය සැකසීමට අපි කේතය ලියන්නෙමු:

&OnClient

විවෘත කිරීමේ ක්රියා පටිපාටිය (අසාර්ථක)

List.Parameters.SetParameterValue("නිෂ්පාදනය", FilterByProduct);

ක්රියා පටිපාටියේ අවසානය

මෙතන ලැයිස්තුව.විකල්පයනු ලැයිස්තු ගුණාංගය සඳහා ගතික ලැයිස්තු ඉල්ලීම් පරාමිති ලැයිස්තුවකි. නිෂ්පාදන පරාමිතියෙහි අගය FilterByProduct ආකෘති පරාමිතියෙහි අගයට සමානව සකසා ඇත.

ප්රතිඵලයක් වශයෙන්, බොත්තමක් ක්ලික් කිරීමෙන් රිසිට්පත් ඉන්වොයිසිඅයිතම ලැයිස්තුවක ස්වරූපයෙන්, අයිතම ලැයිස්තුවේ දැනට තෝරාගෙන ඇති අයිතමය අඩංගු ඉන්වොයිසි පමණක් ලැයිස්තුවක් අපට ලැබෙනු ඇත.

3 වැනි විකල්පය සඳහා ආදර්ශන උදාහරණයක් 1CITS/EXE/FAQ/OpenFormWithSelection.dt නාමාවලියෙහි පිහිටා ඇත. උදාහරණය වේදිකා අනුවාදය 8.2.9.356 මත සිදු කරන ලදී.




ඉහල