איך פותחים טופס רשימה עם בחירה מסוימת? כיצד להגדיר בחירה בטופס רשימת הספריות? טופס פתוח עם בחירה 8.2

14.12.2023

כדי פתח את טופס הבחירה עם בחירה ב-1s 8.2(טפסים רגילים), אנחנו צריכים לבצע כמה פעולות. אנחנו נקבל את זה קודם. לאחר מכן, נגדיר את הבחירה ונפתח אותה באופן תוכנתי, הנה דוגמה לקוד:

בחירה בטופס בשדה הקלט 1C 8.2 עם מספר ערכים

בדוגמה למעלה הסתכלנו כיצד להגדיר בחירה בטופס הבחירהלפי ערך ספציפי. כעת נסתכל על מצב שבו אתה צריך להחליף מספר ערכים, זה יכול להיות, למשל, מערך או פריקה מתוצאת שאילתה. זוהי בחירה בשדה הקלט 1cעם ריבוי משמעויות.

ראשית, אנו מקבלים את טופס הבחירה, מעבירים את "אלמנט" (בעלים) בפרמטרים, מגדירים את דגל מצב הבחירה. לאחר מכן אנו יוצרים רשימת ערכים ומערך, נציין כי כבחירה בעת הגדרת סוג ההשוואה ברשימה, אובייקט יכול להיות נוכח רק עם הסוג רשימה ערכי. אנו מוסיפים אלמנטים למערך, ולאחר מכן נטענים את המערך הזה לרשימת הערכים, אותה הגדרנו לאחר מכן בבחירה. כמו כן, אל תשכח להפעיל את הדגל לשימוש בבחירה זו ולהגדיר את סוג ההשוואה.

הגדרת בחירה בשדה הקלט בטופס ב-1C 8.3, אירוע התחלה של בחירה

עכשיו בואו נשקול בחירה בשדה הקלט בטופס מנוהל ב-1C 8.3. בואו נמצא על הטופס את האלמנט בו אנו מעוניינים, בו נגדיר את הבחירה, במקרה שלנו זהו שדה "ארגון". אנחנו מוצאים את אירוע "התחלת הבחירה", לוחצים על הזכוכית המגדלת ומוצאים את עצמנו בנוהל. אנו רואים את הפרמטר Selection Data פרמטר זה הוא מסוג ValueList. על מנת להגביל את הבחירה לאלמנטים הדרושים, עלינו למלא את רשימת הערכים. אנחנו יכולים לבחור אלמנטים רק בשרת, אז אנחנו יוצרים הליך עם הוראת ההידור &OnServer. בהליך זה, מלא את נתוני הבחירה.

קוד זה מאפשר לך לפתוח רשימה של מסמכים עם בחירה מוגדרת, אתה יכול גם לפתוח רשימה של רכיבי ספרייה עם הבחירה הרצויה

Code 1C v 8.2 UP Form = OpenForm("Document. Invoice.Form.ListForm"); //פתח את הטופס
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //הוסף בחירה
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //איך נשווה
SelectOwner.Use = True; // הגדר את תיבת הסימון לשימוש ב-NewDataCompositionField("Nomenclature")
SelectionOwner.LeftValue = NewDataCompositionField("חשבון"); //באילו פרטים נשתמש כדי לבצע את הבחירה?
SelectionOwner.RightValue = Object.Account; // ועצם המשמעות של הבחירה

כדי פתח טופס רשימה עם בחירה מוגדרת מראשהשתמש בשיטות הבאות:

דרך ראשונההוא שכאשר אתה פותח טופס, אתה יכול להגדיר את פרמטר טופס הבחירה ולפתוח את טופס הרשימה עם הפרמטר הזה.

פרמטר הבחירה מייצג את המבנה. שמות האלמנטים תואמים לשמות השדות שבאמצעותם הבחירה נעשית, והערכים מכילים את ערכי הבחירה. זוהי אפשרות הרחבת טופס מנוהלת ברשימה דינמית. כלומר, הוא קיים לטפסים שהתכונה העיקרית שלהם היא תכונה מסוג DynamicList, למשל, טפסי רשימה וטפסי בחירה.

לדוגמה, בדוגמה הבאה נפתחת רשימה של חשבוניות עם בחירה בשדה מספר, שווה ל-333.

Code 1C v 8.2 UE Selection Value = New Structure("Number", "333");
SelectionParameters = New Structure("Selection", SelectionValue);
OpenForm("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);

דרך שניה

ניתן לפתוח טופס רשימה ללא פרמטרים:

Code 1C v 8.2 UP OpenForm("מסמך. חשבונית קבלה. טופס רשימה");

ולאחר מכן, במטפל האירועים של הטופס עבור רשימת החשבוניות When CreatedOnServer, כתוב קוד שיוצר בחירה ברשימה הדינמית, שהיא התכונה העיקרית של הטופס:

קוד 1C v 8.2 UP &OnServer
נוהל כאשר נוצר בשרת (כשל, עיבוד רגיל)
Selection Element = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Number");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
סוף הנוהל

היתרונות של שיטה זו הם שניתן להגדיר את סוג ההשוואה לבחירה לא רק ל-Equal, כמו במקרה הראשון, אלא גם ל-More, Less וכו'.

אבל לשיטה הזו יש גם חיסרון מאוד משמעותי: עם הבחירה הזו, הטופס תמיד ייפתח. מאיפה שהיא נקראה. לכן, אין להגדיר טופס זה כראשי. ואם, בכל זאת, זה העיקרי, אז לפני התקנת הבחירה יש צורך לספק איזשהו ניתוח של מאיפה הטופס הזה נפתח. לדוגמה, ניתוח פרמטרים של טופס.

דרך שלישית

לבסוף, ניתן להציב את תנאי הבחירה בשאילתה מותאמת אישית שבוחרת נתונים עבור רשימה דינמית.

לדוגמה, עלינו לפתוח רשימה של חשבוניות המכילות את הפריט המודגש ברשימת הפריטים.

לשם כך, בצורה של רשימת פריטים, צור פקודה ואת הכפתור המתאים קבלה חשבוניות.

הבה נמלא את מטפל הביצוע עבור פקודה זו באופן הבא:

Code 1C v 8.2 UP &OnClient
נוהל קבלות חשבוניות (פקודה)
SelectionParameters = New Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);
סוף הנוהל

במטפל זה, אנו פותחים את הטופס עבור רשימת החשבוניות, ומעבירים קישור לפריט הנוכחי ברשימת הפריטים לפרמטר הטופס FilterByProduct.

לאחר מכן ניצור טופס לרשימת המסמכים: חשבונית קבלה וניצור פרמטר טופס FilterBy Product בו נשתמש לפתיחת טופס עם הבחירה הנדרשת.

עכשיו בואו נפתח את לוח המאפיינים של התכונה הראשית של טופס הרשימה. הגדר את דגל השאילתה המותאמת אישית ובשורה הגדרות רשימה לחץ על פתח.

בשדה בקשה, הזן את טקסט הבקשה הבא:

קוד 1C v 8.2 UP SELECT
מספר חשבונית קבלה,
מסמך קבלה חשבונית.תאריך
מ
Document.ReceiptInvoice AS DocumentReceiptInvoice
איפה
חשבונית קבלה של מסמך.מוצרים.מוצר = &מוצר

בבקשה, אנו משתמשים בפרמטר Item, אשר יקבל קישור לשורה הנוכחית ברשימת הפריטים, הכלול בפרמטר טופס רשימת חשבוניות FilterBy Item.

לשם כך, בטופס הרשימה מטפל באירועים כאשר CreatedOnServer, נכתוב קוד כדי להגדיר את הערך של פרמטר בקשת המוצר:

Code 1C v 8.2 UP &OnClient
הליך פתיחה (כשל)
List.Parameters.SetParameterValue("מוצר", Parameters.FilterByProduct);
סוף הנוהל

כאן List.Parameters היא רשימה של פרמטרים של בקשת רשימה דינמית עבור התכונה List. הערך של פרמטר המוצר מוגדר שווה לערך של פרמטר הטופס FilterByProduct.

כתוצאה מכך, בלחיצה על כפתור חשבוניות קבלה בטופס רשימת הפריטים, נקבל רשימה של רק אותן חשבוניות המכילות את הפריט שנבחר כעת ברשימת הפריטים.

ישנן מספר דרכים לפתוח טופס רשימה עם בחירה מוגדרת מראש. בואו נסתכל עליהם:

  1. דרך ראשונההוא שכאשר פותחים טופס אפשר להגדיר פרמטר של טופס בְּחִירָה, ופתח את טופס הרשימה עם פרמטר זה. פָּרָמֶטֶר בְּחִירָהמייצג מבנה. שמות האלמנטים תואמים לשמות השדות שבאמצעותם הבחירה נעשית, והערכים מכילים את הערכים
    בְּחִירָה. זוהי אפשרות הרחבת טופס מנוהלת ברשימה דינמית. כלומר, הוא קיים עבור טפסים שהתכונה העיקרית שלהם היא תכונת הסוג רשימה דינמית, כגון טפסי רשימה וטפסי בחירה.

בעת פתיחת הטופס, הבחירה תתבצע על סמך השדה שצוין. לדוגמה, בדוגמה הבאה, נפתחת רשימה של חשבוניות עם בחירה לפי השדה נגדי שווה ל-"OJSC Horns and Hooves".

ערך בחירה = מבנה חדש ("צד נגד" , "JSC קרניים ופרסות");
אפשרויות בחירה= New Structure("Selection", SelectionValue);
OpenForm ("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);

2. ניתן לפתוח טופס רשימה ללא פרמטרים:

OpenForm ("מסמך. חשבונית קבלה. טופס רשימה");

ולאחר מכן, במטפל באירועים של טופס רשימת החשבוניות כאשר CreatedOnServer כתוב קוד שיוצר בחירה ברשימה דינמית, שהיא התכונה העיקרית של הטופס:

&בשרת
תהליך כאשר CreatedOnServer(סירוב, עיבוד רגיל)
רכיב בחירה = רשימה . בְּחִירָה. אלמנטים. הוסף (הקלד
("DataCompositionSelectionElement"));
רכיב בחירה .LeftValue = חדש שדה פריסת נתונים("DocumentAmount");
אלמנט בחירה. תצוגת השוואה = השוואת ViewData Layout. יותר ;
אלמנט בחירה. שימוש = נכון;
אלמנט בחירה. RightValue = 150000;
סוף הנוהל

היתרונות של שיטה זו הם השוואת צפייהניתן להגדיר את הבחירה לא רק שווים, כמו במקרה הראשון, ו יותר, פָּחוֹתוכולי.

אבל לשיטה הזו יש גם חיסרון מאוד משמעותי: עם הבחירה הזו, הטופס תמיד ייפתח. מאיפה שהיא נקראה. לכן, אין להגדיר טופס זה כראשי. ואם, בכל זאת, זה העיקרי, אז לפני התקנת הבחירה, יש צורך לספק איזשהו ניתוח של מאיפה הטופס הזה נפתח. לדוגמה, ניתוח פרמטרים של טופס.

3. ולבסוף, ניתן להציב את תנאי הבחירה בבקשה מותאמת אישית, שבוחר נתונים עבור רשימה דינמית. לדוגמה, עלינו לפתוח רשימה של חשבוניות המכילות את הפריט המודגש ברשימת הפריטים.

כדי לעשות זאת, בצורה של רשימת פריטים, צור פקודה וכפתור מתאים חשבוניות מתכלים

הבה נמלא את מטפל הביצוע עבור פקודה זו באופן הבא:

&OnClient
תהליך חשבוניות מתכלים(צוות)
ListForm = GetForm("Document.Invoice.ListForm");
ListForm. FilterByProduct = פריטים . רשימה . CurrentRow ;
ListForm. לִפְתוֹחַ();
סוף הנוהל

במטפל זה אנו מקבלים את הטופס של רשימת החשבוניות ומעבירים אותו לפרמטר הטופס סינון לפי מוצרקישור לפריט הנוכחי ברשימת הפריטים ופתח את הטופס עם פרמטר זה.
לאחר מכן ניצור טופס רשימת מסמכים חשבונית מכירהוצור את תכונות הטופס סינון לפי מוצר, שבו נשתמש כפרמטר טופס בעת פתיחתו. עכשיו בואו נפתח את לוח המאפיינים של תכונות הטופס העיקריות רשימה. בואו נציב את הדגל CustomRequestובתוך
קַו הגדרת רשימהבוא נלחץ לִפְתוֹחַ.

בשטח בַּקָשָׁהבואו נזין את טקסט הבקשה הבא:

בחר

מספר חשבונית קבלה,
מסמך קבלה חשבונית.תאריך
מ
Document.ReceiptInvoice AS DocumentReceiptInvoice
איפה
קבלת מסמך Invoice.Products.Product = &Product

בבקשה אנו משתמשים בפרמטר מוצר, אליו יישלח קישור לשורה הנוכחית ברשימת הפריטים הכלולה בתכונה של טופס רשימת החשבוניות סינון לפי מוצר. כדי לעשות זאת, בטופס הרשימה מטפל באירועים בעת פתיחהבואו נכתוב את הקוד כדי להגדיר את הערך של פרמטר בקשת המוצר:

&OnClient
הליך פתיחה (כשל)
רשימה . אפשרויות . SetParameterValue("מוצר", FilterByProduct);
סוף הנוהל

כאן רשימה.אפשרויות- זוהי רשימה של פרמטרים של בקשת רשימה דינמית עבור התכונה List. ערך פרמטר מוצרמוגדר שווה לערך של פרמטר הטופס סינון לפי מוצר. כתוצאה מכך, בלחיצת כפתור חשבוניותבצורת רשימת פריטים, נקבל רשימה של רק אותן חשבוניות המכילות את הפריט שנבחר כעת ברשימת הפריטים.

- זוהי רשימה של פרמטרים של בקשת רשימה דינמית עבור התכונה List.

Code 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="מקובל";
DirectoryList.Selection.Status.Set();

עבור 1C 8.2:
ישנן מספר דרכים לפתוח טופס רשימה עם בחירה מוגדרת מראש. בואו נסתכל עליהם לפי הסדר:

1. השיטה הראשונה היא שבפתיחת הטופס ניתן להגדיר את פרמטר טופס הבחירה ולפתוח את טופס הרשימה עם פרמטר זה. הפרמטר Selection מייצג את המבנה. שמות האלמנטים תואמים לשמות השדות שבאמצעותם הבחירה נעשית, והערכים מכילים את ערכי הבחירה. זוהי אפשרות הרחבת טופס מנוהלת ברשימה דינמית. כלומר, הוא קיים עבור טפסים שהתכונה העיקרית שלהם היא תכונה מסוג רשימה דינאמית, למשל, טפסי רשימה וטפסי בחירה.

בעת פתיחת הטופס, הבחירה תתבצע על סמך השדה שצוין.
קוד 1C v 8.2 UP // לדוגמה, בדוגמה הבאה, נפתחת רשימה של חשבוניות עם בחירה לפי השדה מספר שווה ל-333.
ערך בחירה = מבנה חדש("מספר", "333");
SelectionParameters = New Structure("Selection", SelectionValue);

OpenForm("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);

// לדוגמה, הדוגמה הבאה פותחת רשימה של חשבוניות
// עם בחירה בשדה הקבלן שווה ל-"OJSC Horns and Hooves".
ערך בחירה = מבנה חדש("צד נגד", "צופרים ופרסות OJSC");
SelectionParameters = New Structure("Selection", SelectionValue);
OpenForm("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);

2. ניתן לפתוח טופס רשימה ללא פרמטרים:
Code 1C v 8.2 UE OpenForm("מסמך. טופס חשבונית קבלה. רשימה");

ולאחר מכן, במטפל האירועים של הטופס עבור רשימת החשבוניות When CreatedOnServer, כתוב קוד שיוצר בחירה ברשימה הדינמית, שהיא התכונה העיקרית של הטופס:
קוד 1C v 8.2 UP &OnServer

Selection Element = List.Selection.Elements.Add(Type("Element Selection DataComposition"));
SelectionElement.LeftValue = NewDataCompositionField("Number");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
סוף הנוהל

&בשרת
נוהל כאשר נוצר בשרת (כשל, עיבוד רגיל)
אלמנט בחירה = List.Selection.Elements.Add(Type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
סוף הנוהל

היתרונות של שיטה זו הם תצוגת השוואהלבחירה, אתה יכול להגדיר לא רק שווה, כמו במקרה הראשון, אלא גם יותר, פחות וכו'.

אבל לשיטה הזו יש גם חיסרון מאוד משמעותי: עם הבחירה הזו, הטופס תמיד ייפתח. מאיפה שהיא נקראה. לכן, אין להגדיר טופס זה כראשי. ואם, בכל זאת, זה העיקרי, אז לפני התקנת הבחירה, יש צורך לספק איזשהו ניתוח של מאיפה הטופס הזה נפתח. לדוגמה, ניתוח פרמטרים של טופס.

3. לבסוף, ניתן להציב את תנאי הבחירה בשאילתה מותאמת אישית שבוחרת נתונים עבור רשימה דינמית. לדוגמה, עלינו לפתוח רשימה של חשבוניות המכילות את הפריט המודגש ברשימת הפריטים.

לשם כך, בצורה של רשימת פריטים, צור פקודה ואת הכפתור המתאים קבלה חשבוניות.

הבה נמלא את מטפל הביצוע עבור פקודה זו באופן הבא:
Code 1C v 8.2 UP &OnClient
נוהל קבלות חשבוניות (פקודה)

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

סוף הנוהל

במטפל זה, אנו מקבלים את הטופס לרשימת החשבוניות ומעבירים את הקישור לפריט הנוכחי ברשימת הפריטים לפרמטר הטופס FilterByProduct ופותחים את הטופס עם פרמטר זה.

לאחר מכן ניצור טופס לרשימת המסמכים: חשבונית קבלה וניצור תכונת טופס FilterBy Product, בה נשתמש כפרמטר של הטופס בעת פתיחתו. עכשיו בואו נפתח את לוח המאפיינים של התכונה הראשית של טופס הרשימה. הגדר את הדגל ArbitraryRequestובשורת הגדרות רשימה לחץ לִפְתוֹחַ.

בשדה בקשה, הזן את טקסט הבקשה הבא:
קוד 1C v 8.2 UP SELECT
מספר חשבונית קבלה,
מסמך קבלה חשבונית.תאריך
מ
Document.ReceiptInvoice AS DocumentReceiptInvoice
איפה
חשבונית קבלה של מסמך.מוצרים.מוצר = &מוצר

בבקשה, אנו משתמשים בפרמטר Item, אשר יקבל קישור לשורה הנוכחית ברשימת הפריטים, הכלול בפרמטר טופס רשימת חשבוניות FilterBy Item. לשם כך, במטפל בטופס הרשימה OnOpen, נכתוב קוד כדי להגדיר את הערך של פרמטר בקשת המוצר:
קוד 1C v 8.2 UP
&OnClient
הליך פתיחה (כשל)

List.Parameters.SetParameterValue("מוצר", FilterByProduct);

סוף הנוהל

כאן רשימה.אפשרויותהיא רשימה של פרמטרים של בקשת רשימה דינמית עבור התכונה List. הערך של פרמטר המוצר מוגדר שווה לערך של פרמטר הטופס FilterByProduct.

כתוצאה מכך, בלחיצה על כפתור חשבוניות קבלה בטופס רשימת הפריטים, נקבל רשימה של רק אותן חשבוניות המכילות את הפריט שנבחר כעת ברשימת הפריטים.

המידע נלקח מהאתר

איך פותחים טופס רשימה עם בחירה מסוימת?

ישנן מספר דרכים לפתוח טופס רשימה עם בחירה מוגדרת מראש. בואו נסתכל עליהם לפי הסדר:

1. השיטה הראשונה היא שבפתיחת הטופס ניתן להגדיר את פרמטר טופס הבחירה, ולפתוח את טופס הרשימה עם הפרמטר הזה. פרמטר הבחירה מייצג את המבנה. שמות האלמנטים תואמים לשמות השדות שבאמצעותם הבחירה נעשית, והערכים מכילים את ערכי הבחירה. זוהי אפשרות הרחבת טופס מנוהלת ברשימה דינמית. כלומר, הוא קיים עבור טפסים שהתכונה העיקרית שלהם היא תכונת הסוג רשימה דינמית, כגון טפסי רשימה וטפסי בחירה.

בעת פתיחת הטופס, הבחירה תתבצע על סמך השדה שצוין. לדוגמה, בדוגמה הבאה נפתחת רשימה של חשבוניות עם בחירה בשדה מספר, שווה ל-333.

ערך בחירה = מבנה חדש("מספר", "333");

SelectionParameters = New Structure("Selection", SelectionValue);

OpenForm("מסמך. חשבונית קבלה. טופס רשימה", אפשרויות בחירה);

2. ניתן לפתוח טופס רשימה ללא פרמטרים:

OpenForm("Document.Invoice.ListForm");

ולאחר מכן, במטפל באירועים של טופס רשימת החשבוניות כאשר CreatedOnServerכתוב קוד שיוצר בחירה ברשימה דינמית, שהיא התכונה העיקרית של הטופס:

&בשרת

נוהל כאשר נוצר בשרת (כשל, עיבוד רגיל)

Selection Element = List.Selection.Elements.Add(Type("DataComposition Selection Element"));

SelectionElement.LeftValue = NewDataCompositionField("Number");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

סוף הנוהל

היתרונות של שיטה זו הם שניתן להגדיר את סוג ההשוואה לבחירה לא רק שווה, כמו במקרה הראשון, אלא גם יותר, פחות וכו'.

אבל לשיטה הזו יש גם חיסרון מאוד משמעותי: עם הבחירה הזו, הטופס תמיד ייפתח. מאיפה שהיא נקראה. לכן, אין להגדיר טופס זה כראשי. ואם, בכל זאת, זה העיקרי, אז לפני התקנת הבחירה, יש צורך לספק איזשהו ניתוח של מאיפה הטופס הזה נפתח. לדוגמה, ניתוח פרמטרים של טופס.

3. לבסוף, ניתן להציב את תנאי הבחירה בשאילתה מותאמת אישית שבוחרת נתונים עבור רשימה דינמית. לדוגמה, עלינו לפתוח רשימה של חשבוניות המכילות את הפריט המודגש ברשימת הפריטים.

כדי לעשות זאת, בצורה של רשימת פריטים, צור פקודה וכפתור מתאים חשבוניות קבלה.

הבה נמלא את מטפל הביצוע עבור פקודה זו באופן הבא:

&OnClient

נוהל קבלות חשבוניות (פקודה)

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

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

סוף הנוהל

במטפל זה, אנו מקבלים את הטופס לרשימת החשבוניות ומעבירים את הקישור לפריט הנוכחי ברשימת הפריטים לפרמטר הטופס FilterByProduct ופותחים את הטופס עם פרמטר זה.

לאחר מכן ניצור טופס רשימת מסמכים חשבונית קנייהוליצור את תכונת הטופס FilterByProduct, בה נשתמש כפרמטר טופס בעת פתיחתו. כעת בואו נפתח את לוח המאפיינים של התכונה הראשית של טופס הרשימה. בואו נציב את הדגל CustomRequestובתור הגדרת רשימהלחץ על פתח.

בשדה בקשה, הזן את טקסט הבקשה הבא:

בחר

מספר חשבונית קבלה,

מסמך קבלה חשבונית.תאריך

מ

Document.ReceiptInvoice AS DocumentReceiptInvoice

איפה

קבלת מסמך Invoice.Products.Product = &Product

בבקשה אנו משתמשים בפרמטר Item, אשר יקבל קישור לשורה הנוכחית ברשימת הפריטים, הכלול בפרמטר טופס רשימת חשבוניות FilterBy Item. לשם כך, במטפל בטופס הרשימה OnOpen, נכתוב קוד כדי להגדיר את הערך של פרמטר בקשת המוצר:

&OnClient

הליך פתיחה (כשל)

List.Parameters.SetParameterValue("מוצר", FilterByProduct);

סוף הנוהל

כאן רשימה.אפשרויותהיא רשימה של פרמטרים של בקשת רשימה דינמית עבור התכונה List. הערך של פרמטר המוצר מוגדר שווה לערך של פרמטר הטופס FilterByProduct.

כתוצאה מכך, בלחיצת כפתור חשבוניות קבלהבצורת רשימת פריטים, נקבל רשימה של רק אותן חשבוניות המכילות את הפריט שנבחר כעת ברשימת הפריטים.

דוגמה להדגמה עבור האפשרות השלישית ממוקמת בספריית 1CITS/EXE/FAQ/OpenFormWithSelection.dt. הדוגמה בוצעה בגרסה 8.2.9.356 של פלטפורמה.