نحوه تنظیم پارامترهای یک لیست پویا 1c. راه هایی برای دریافت و ذخیره داده ها با یک لیست پویا

چاپ (Ctrl + P)

لیست پویا

1. اطلاعات عمومی

لیست پویا یک نوع داده خاص است که به شما امکان می دهد اطلاعات دلخواه را از جداول پایگاه داده روی یک فرم نمایش دهید. برای انجام این کار، باید جدولی را که می‌خواهید داده‌ها را از آن نمایش دهید، مشخص کنید یا انتخاب به‌دست‌آمده را در زبان پرس و جو توصیف کنید.
این مکانیسم مبتنی بر سیستم ترکیب داده ها است و فرصت هایی را برای مرتب سازی، فیلتر کردن، جستجو، گروه بندی و قالب بندی مشروط داده های دریافتی فراهم می کند. در این حالت منبع داده یک درخواست است که یا توسط سیستم به صورت خودکار (بر اساس داده های مشخص شده) ایجاد می شود یا توسط توسعه دهنده به صورت دستی نوشته می شود.

برنج. 1. گزینه هایی برای ایجاد یک لیست پویا

هنگام ایجاد یک فرم، مواردی مانند لیست پویاتوسعه‌دهنده می‌تواند دو راه را برای ایجاد یک پرس و جو برای داده‌ها انتخاب کند:
● با مشخص کردن جدول اصلی - در این حالت، کافی است جدولی را که می خواهید از آن داده دریافت کنید (مخصوص جدول اصلی) را نشان دهید و سیستم به طور خودکار یک پرس و جو برای داده ها تشکیل می دهد (به قسمت سمت راست مراجعه کنید. عکس. 1).
● تشکیل دستی یک درخواست - برای این کار، باید ویژگی درخواست دلخواه را تنظیم کنید (به قسمت سمت چپ شکل 1 مراجعه کنید). پس از آن، تولید دستی درخواست برای دریافت داده از پایگاه اطلاعاتی در دسترس خواهد بود.
می توانید از یک پرس و جو برای انتخاب داده ها از چندین جدول استفاده کنید، بنابراین می توانید جدول اصلی را مشخص کنید. این امر ضروری است تا لیست پویا بتواند تعیین کند کدام داده اصلی و کدام ثانویه است و بتواند اطلاعات را به درستی انتخاب و نمایش دهد و همچنین دستورات استاندارد را ارائه دهد. با این حال، اگر تعیین جدول اصلی در پرس و جو غیرممکن باشد، می توان آن را حذف کرد، اما پس از آن
یک لیست پویا دستورات مرتبط با جدول اصلی را ارائه نمی دهد. به علاوه در این حالت (بدون تعیین جدول اصلی) بازده بازیابی داده ها توسط لیست پویا به میزان قابل توجهی کاهش می یابد.
به منظور بهبود عملکرد، توصیه می شود که تمام اتصالات مورد استفاده در یک جستجوی دلخواه فقط برای به دست آوردن داده های اضافی با استفاده از پسوند زبان پرس و جو سیستم ترکیب داده اختیاری باشد.
برای یک لیست پویا، که ویژگی اصلی فرم است، می توان مقادیر فیلتر را با استفاده از پارامتر فرم تنظیم کرد. انتخاب... برای این کار لازم است که نام ویژگی ساختاری که در پارامتر است انتخاب,
با نام فیلد انتخاب لیست پویا مصادف شد. در این حالت، مقدار ویژگی ساختار به عنوان مقدار مناسب عنصر فیلتر تنظیم می شود. اگر یک آرایه، یک آرایه ثابت یا یک لیست از مقادیر به عنوان مقدار عنصری از پارامتر انتخاب فرم لیست پویا ارسال شود، در سمت راست شرطی با گزینه In List به انتخاب اضافه می شود. مقداری که لیست مقادیر آن قرار می گیرد (که آرایه و آرایه ثابت به آن تبدیل می شوند).
پرس و جوی که در آن یک پارامتر برای تشکیل مقدار یک فیلد استفاده می شود، می تواند به عنوان یک پرس و جو دلخواه در یک لیست پویا استفاده شود، به عنوان مثال:

انتخاب کنید
انتخاب
زمان تحویل نرخ = 1 سپس و ارسال
ELSE تحویل. ضریب
پایان به عنوان نسبت
از جانب

علاوه بر این، اگر نوع مقدار پارامتر با نوع ویژگی شی متفاوت باشد (به عنوان مثال، لوازم 1از نوع است عدد، و مقدار پارامتر نوع است خط، سپس برای نمایش صحیح فیلد، باید مقدار پارامتر را صریحاً به نوع مورد نیاز ارسال کنید:

انتخاب کنید
انتخاب
هنگام حمل و نقل، نرخ = 1 و سپس EXPRESS (و ارائه به عنوان خط (100)) حمل و نقل دیگر. ضریب
پایان به عنوان نسبت
از جانب
Document.DeliveryProducts AS حمل و نقل

اگر فیلدی که توسط آن انتخاب تنظیم می‌شود، با استفاده از گزینه‌های عملکردی غیرفعال شود، انتخاب توسط این فیلد تنظیم نمی‌شود، حتی اگر مقدار انتخاب به عنوان پارامترهای فرم یا پیوندهای پارامترهای انتخاب ارسال شود.
با استفاده از ویژگی Dynamic data read، یک لیست پویا در مورد نیاز به خواندن داده ها در بخش های کوچک نشان داده می شود
(برای جزئیات بیشتر در مورد روش های دریافت داده با لیست پویا و ذخیره داده ها، به زیر مراجعه کنید). صرف نظر از این ویژگی، شرایط زیر اعمال می شود:

● اگر نمای روی یک لیست سلسله مراتبی تنظیم شود، فقط داده های گروه فعلی و داده های همه اعضای اصلی (بدون اعضای زیرمجموعه) خوانده می شود.
● اگر حالت نمای درختی تنظیم شده باشد، فقط داده های گره های درخت باز خوانده می شود.
● اگر نمای سلسله مراتبی تنظیم شده باشد (ویژگی Display روی Tree) و نمای درختی اولیه روی Expand all level تنظیم شده باشد، از بارگیری یکباره داده های لیست پویا پشتیبانی نمی شود. برای به دست آوردن داده ها، به تعداد گره ها در لیست نمایش داده شده، درخواست به سرور داده می شود.
در یک بازیابی داده، یک لیست پویا از جداول موقتی که قبلا ایجاد شده است، در صورتی که شرایط زیر برآورده شود، مجددا استفاده می کند:
● درخواست دسته ای لیست درخواست های بعد از درخواست بسته اصلی را ندارد.
● ترکیب جداول و فیلدهای موقت در آنها نسبت به اجرای قبلی پرس و جو دسته ای تغییری نکرده است.

در کار خود، یک لیست پویا از مقادیر ویژگی های زیر از ویژگی های اشیاء ابرداده استفاده می کند:
● قالب،
● فرمت ویرایش،
● اشاره،
● نشانه ای از برجسته کردن مقادیر منفی،
● ماسک،
● علامت حالت چند خطی،
● نشانه ویرایش گسترده،
● حالت رمز عبور.
هنگام نمایش و ویرایش انتخاب و پارامترهای سیستم ترکیب داده ها، از فرمت ویرایش فیلد مربوطه استفاده می شود.

2. محدودیت ها و ویژگی ها

هنگام تنظیم فیلتر در یک لیست پویا، به یاد داشته باشید که اگر لیست سلسله مراتبی یا حالت نمایش درختی برای لیست پویا انتخاب شده باشد، فیلتر کردن بر گروه ها تأثیر نمی گذارد. منظور از "گروه ها" عنصری از یک کاتالوگ یا طرحی از انواع مشخصه است که ویژگی EtoGroup برای آنها True تنظیم شده است.
انتخاب هایی که به طور خودکار توسط لیست پویا برای ویژگی های استاندارد Owner، Parent، Date، Period و ThisGroup اعمال می شود.
با وسایل استانداردسیستم های ترکیب داده ها انتخاب‌هایی که به‌طور خودکار توسط فهرست پویا برای فیلدهای کلیدی اعمال می‌شوند، می‌توانند هم با ابزار استاندارد سیستم ترکیب داده‌ها و هم با افزودن مستقیم یک شرط به متن درخواست اعمال شوند. Vبه فیلدهای جدول اصلی در نتیجه استفاده از فیلترها با استفاده از ترکیب، می توان آنها را هم در پرس و جوهای تودرتو و هم در پارامترهای جداول مجازی اعمال کرد.

هنگام طراحی لیست های پویا، توصیه می شود تمام لیست های پویا را با پرس و جوهای دلخواه آزمایش کنید. در طول فرآیند تأیید، باید مطمئن شوید که اگر کوئری فهرست شامل جستارهای تو در تو یا جداول مجازی باشد و فیلدهایی با نام مستعار مطابق با نام مستعار استاندارد Owner، Parent، Date، Period، ThisGroup یا فیلدهای کلیدی برای انتخاب در دسترس باشد، سپس این فیلدها معتبر هستند و مطابق با الزامات استانداردی هستند که با آنها نام مستعار یکسانی دارند. اگر اینطور نیست، باید درخواست را طوری تغییر دهید که مطابقت داشته باشند، یا
نام مستعار متفاوت بود
اگر بخواهید درخواستی را به صورت دستی ایجاد کنید، محدودیت هایی روی درخواست اعمال می شود:
● استفاده از عبارت FIRST در جستجوی لیست پویا پشتیبانی نمی شود. اگر نیاز به استفاده از یک انتخاب محدود به تعداد رکوردها در یک لیست پویا دارید، باید پرس و جو را برای ایجاد یک لیست پویا دوباره طراحی کنید به گونه ای که محتوای واقعی پرس و جو در یک جستجوی فرعی قرار گیرد و تعداد بازیابی شده را محدود کنید. رکوردها در این پرسش فرعی همچنین می توانید از جدول موقت به جای درخواست فرعی استفاده کنید.
● فیلتر کردن، مرتب‌سازی و گروه‌بندی پشتیبانی نمی‌شود:

  • با توجه به جزئیات بخش های جدولی.
  • مشاهده فیلدها
  • قسمت نسخه داده
  • فیلد PredefinedDataName.
  • فیلد نوع نمودار حساب.
  • قسمت Move type از جدول ثبت تجمع.
  • نوع فیلد مقادیر نمودار انواع مشخصه.
  • فیلد نوع نوع;
  • فیلد نوع رشته (طول نامحدود).
  • فیلد از نوع BinaryData.

● مرتب سازی و گروه بندی بر اساس فیلدهای Subconto پشتیبانی نمی شود<НомерСубконто>و ViewSubconto<НомерСубконто>جداول MovementsSubkonto ثبت حسابداری.
● گروه بندی بر اساس فیلدها، که عبارت های زبان پرس و جو حاوی توابع انبوه هستند، پشتیبانی نمی شود.
● هنگامی که جدول اصلی انتخاب می شود، پرس و جو لیست پویا دارای محدودیت های زیر است:

  • پیوستن ها پشتیبانی نمی شوند.
  • استفاده از بخش ORDER BY پشتیبانی نمی شود. شما باید از یک پرس و جو بدون جدول اصلی استفاده کنید یا ترتیب مورد نیاز را از طریق تنظیمات یک لیست پویا مشخص کنید.

● اگر یک لیست پویا به عنوان یک فهرست یا درخت سلسله مراتبی نمایش داده شود، اگر حداقل یکی از والد این رکورد نمایش داده نشود، رکورد در لیست پویا نمایش داده نخواهد شد. به عبارت دیگر، برای نمایش یک آیتم در یک لیست سلسله مراتبی، یک لیست پویا باید تمام والدین این آیتم را تا بالای لیست نیز نمایش دهد. در این مورد، بالای لیست به معنای هر دو است
عنصر ریشه یک شی سلسله مراتبی که توسط یک لیست پویا نمایش داده می شود، یا عنصری که به عنوان ویژگی TopLevel یک پسوند جدول فرم برای یک لیست پویا تنظیم شده است.

استفاده از جداول زیر به عنوان جدول اصلی لیست پویا پشتیبانی نمی شود:

● جدولی که کلیدی ندارد که هر رکورد جدول را به طور یکتا شناسایی کند (مرجع جداول شی و کلید رکورد برای جداول ثبت). با این حال، جداول زیر را می توان به عنوان جدول اصلی لیست پویا (با وجود نداشتن کلید) تنظیم کرد:

● جدول زیرمجموعه ثبت حسابداری.
● تمام جداول مجازی ثبت حسابداری، به جز جدول MovementsSubkonto.
● جداول مقادیر ثابت (از جمله جدول ثابت)؛
● جداول منابع داده خارجی بدون فیلدهای کلیدی.
● جداول مکعب منابع داده خارجی.
● جداول ثبت تجمع:

  • جدول انقلاب;
  • جدول باقی مانده؛
  • جدول گردش مالی و موجودی

● جداول ثبت محاسبات:

  • جدول اعتبار واقعی؛
  • داده های نموداری؛
  • داده های اساسی

● جداول مقاطع جدولی اشیاء.
● جداول ثبت تغییرات (مورد استفاده در مکانیسم های تبادل داده).
● جداول دنباله.
● جداول تخصیص (مورد استفاده در مکانیسم های تسویه دوره ای).
● جدولی که در پرس و جو فقط در اتصال بیرونی استفاده می شود.

به عبارت دیگر، یک لیست پویا با جدول اصلی مشخص شده به درستی کار می کند اگر در نتیجه اجرای پرس و جو،
به عنوان منبع داده مشخص شده است، تعداد ردیف های دریافتی از جدول اصلی افزایش نمی یابد (با در نظر گرفتن انتخاب تحمیلی). اگر در نتیجه اجرای پرس و جو، تعداد ردیف های دریافتی پرس و جو از جدول اصلی افزایش یابد، این امر منجر به نقض منحصر به فرد بودن کلید رکوردهای جدول نمایش داده شده در لیست می شود. در این صورت باید استفاده از جدول اصلی پویا لیست را غیرفعال کنید.
هنگام کار با یک لیست پویا، لازم است حقوق دسترسی به جزئیات نمایش داده شده توسط لیست را در نظر بگیرید:
● داده های ستون های یک لیست پویا که با ویژگی Always use مشخص شده اند، اما کاربر فعلی حق View را ندارد، به سمت سرویس گیرنده منتقل نمی شود. دسترسی به داده های چنین ستون هایی (با استفاده از ویژگی CurrentData و روش RowData ())
در سمت مشتری امکان پذیر نیست.
● اگر کاربر فعلی نمای سمت راست یک فیلد کلیدی در یک لیست پویا را نداشته باشد، بازیابی داده ها برای آن لیست پویا منجر به خطای نقض دسترسی می شود.
برای یک لیست پویا که یک لیست شمارش را نمایش می دهد، هیچ راهی برای سفارشی کردن لیست به صورت تعاملی وجود ندارد.
ترکیب ستون ها و تنظیمات لیست پویا با نام مستعار فیلدهای انتخابی با فیلدهای پرس و جو مرتبط است. اگر نام مستعار به صراحت برای یک فیلد انتخابی در پرس و جو مشخص نشده باشد و فیلد یک فیلد سیستمی باشد، نام فیلد برای نسخه انگلیسی زبان داخلی به عنوان نام مستعار استفاده می شود.
رابطه مشخص شده به این معنی است که هنگام تغییر (یا مشخص کردن نام مستعار برای فیلدی که از نام مستعار خودکار استفاده می کند)
نام مستعار فیلد پرس و جو که داده های لیست پویا را تولید می کند، تنظیمات ویژگی لیست پویا از بین می رود، عناصر فرم جزئیات نمایش داده شده را "از دست می دهند"، تنظیمات لیست پویا نادرست می شود و غیره.
اگر منبع داده لیست پویا یک جدول (عادی یا مجازی) است که به شما امکان می دهد فیلتر را بر اساس نقطه تنظیم کنید، اگر کاربر دوره نمایش را در چنین لیست پویا تنظیم کند (دستور Set date interval ...)
مرزهای دوره مشخص شده به عنوان مقادیر فیلتر یا پارامترهای جدول مجازی تنظیم می شود. اگر از طریق پسوند زبان
پرس و جو برای سیستم ترکیب داده ها، نام پارامترهای جدول مجازی به صراحت مشخص شد - پارامترهای با داده شده
نام ها جداول که امکان کنترل دوره نمایش یا پردازش داده ها وجود دارد:
● جداول ثبت (اصلی یا مجازی)، که امکان انتخاب بر اساس دوره (برای ثبت تسویه حساب - بر اساس دوره ثبت نام) وجود دارد.
● جداول اصلی اسناد، فرآیندهای تجاری و وظایف.
● جداول اصلی مجلات اسناد.
● جداول دنباله اصلی، جداول مرز توالی.
یک آرایه یا لیستی از مقادیر را می توان به عنوان پارامتر پرس و جو برای یک لیست پویا استفاده کرد. با این حال، اگر پارامتر فهرستی از مقادیر باشد، تنها مقدار اول لیست به عنوان مقدار انتخابی استفاده می شود. اگر یک لیست پویا از یک پرس و جو با پارامترها استفاده می کند، تنظیمات اولیه مقادیر پارامتر باید در کنترل کننده OnCreateAtServer انجام شود.
هنگام نمایش داده های لیست پویا به نکات زیر توجه کنید:
● چه زمانی تغییر برنامه ایویژگی های لیست پویا به طور خودکار نوارهای فرمان مرتبط با آن را دوباره پر نمی کنند
با این لیست پویا
● اگر چندین فیلد در یک گروه با حالت گروه‌بندی گروه‌بندی شوند، سلول‌ها و فیلدهای گروه‌بندی‌شده دارای یک فیلد هستند که به‌عنوان یک چک باکس نمایش داده می‌شود، سپس این کادر انتخاب همیشه ابتدا در سلول حاصل (در سمت چپ متن) ظاهر می‌شود.
در یک لیست پویا، هنگام تعریف یک نوع داده برای فیلدهایی که شامل پارامترها، فیلدها یا حروف اللفظی در عبارات هستند، نوع حاصل توسط فیلد و انواع تحت اللفظی تعیین می شود. اگر نوع مقدار پارامتر در نوع داده به دست آمده نباشد، مقدار آن کوتاه می شود.
به عنوان مثال، در مثال زیر، فیلد از نوع Number خواهد بود.

انتخاب
وقتی یک دروغ
سپس 5
در غیر این صورت
&پارامتر
پایان

اگر مقداری از نوع دیگری را به پارامتر Parameter اختصاص دهید، لیست پویا برای این فیلد مقدار 0 (مقدار پیش فرض برای نوع Number) را دریافت می کند.
اگر در موقعیت مشابهی نیاز به انتخاب پارامتری از نوع متفاوت دارید، توصیه می شود از ساختار زبان پرس و جو استفاده کنید. بیان... برای مثال،
اگر در مثال بالا لازم است رشته ای بیش از 100 کاراکتر به پارامتر ارسال شود، علامت ساده پارامتر باید با عبارتی با تبدیل نوع صریح جایگزین شود:

انتخاب
وقتی یک دروغ
سپس 5
در غیر این صورت
EXPRESS (رشته و پارامتر AS (100))
پایان

اگر پارامترها در متن دلخواه یک جستجوی لیست پویا در عبارات فیلدهای انتخابی استفاده می شود، باید به صراحت نوع پارامترها را با استفاده از ساختار مشخص کنید. بیان... به عنوان مثال، به جای & Nomenclature AS نامگذاریاستفاده کنید
EXPRESS (& Nomenclature AS Reference.Nomenclature) AS Nomenclature... در غیر این صورت، جستجو از طریق نوار جستجو ممکن است کارساز باشد
نادرست است یا خطا می دهد.

3. راه هایی برای دریافت و ذخیره داده ها با یک لیست پویا

هنگام بازیابی داده ها برای نمایش، لیست پویا از یکی از سه روش استفاده می کند:
1. خواندن از پایگاه داده در بخش هایی انجام می شود که تعداد اقلام داده اندکی بیشتر از تعداد خطوط نمایش داده شده به طور همزمان در لیست است (اما نه کمتر از 20). داده ها روی سرور ذخیره نمی شوند.
2. خواندن از پایگاه داده در صفحات 1000 مورد داده انجام می شود. داده ها روی سرور ذخیره می شوند. داده های سلسله مراتبی در حافظه پنهان ذخیره می شوند: برای هر والد، بیش از 2 صفحه مورد ذخیره نمی شود. در هر لیست پویا بیش از 20 صفحه مورد ذخیره نمی شود. ذخیره سازی با یک لیست پویا برای جداول زیر فعال می شود:
● معیار انتخاب;
● تمام جداول ثبت حسابداری به جز جدول اصلی و جدول TransactionSubkonto.
● همه جداول ثبت تجمع، به جز جدول اصلی.
● کلیه جداول ثبت اطلاعات به جز جدول اصلی.
● تمام جداول ثبت محاسبات به جز جدول اصلی.
● وظایف جدول مجازی توسط پیمانکار.
● جداول منابع خارجی بدون کلید.
● مکعب از منابع خارجی.

3. خواندن از پایگاه داده در صفحات 1000 عنصری انجام می شود. قسمت اول برابر با 1 صفحه است. هر بخش بعدی 1 صفحه افزایش می یابد (هنگامی که به انتهای نمونه قبلی می رسد). هرچه "نگاه دیدگاه" به انتهای داده های نمایش داده شده نزدیکتر شود، نمونه بزرگتر از پایگاه داده خوانده می شود، در این حد با تمام داده های نمایش داده شده برابر می شود. داده ها روی سرور ذخیره می شوند. حداکثر تعداد ورودی ها در کش و لیست پویا 1,000,000 است.
بسته به آنچه که توسط جدول اصلی لیست پویا انتخاب شده است و ویژگی Dynamic reading چه مقداری را می گیرد، از یک یا روش دیگری برای خواندن داده استفاده می شود:

● یکی از جداول زیر به عنوان مقدار ویژگی جدول اصلی مشخص شده است: طرح مبادله، کتاب مرجع، فهرست اسناد، مجله اسناد، نمودار انواع مشخصه، نمودار حساب ها، نمودار انواع محاسبات، فرآیند تجاری، وظیفه، جدول. نکات فرآیند کسب و کار:



● یکی از جداول زیر به عنوان مقدار ویژگی جدول اصلی مشخص شده است: جدول اصلی ثبت اطلاعات، ثبت تجمع، ثبت حسابداری، ثبت محاسبه، جدول مجازی ثبت حسابداری MovementsSSubkonto:

● Property Dynamic خواندن:
● نصب شده: روش 1 در حال استفاده است (روش ها در بالا توضیح داده شده است).
● Cleared: از روش 2 استفاده می شود (روش ها در بالا توضیح داده شده اند).

● ویژگی Main table شامل یک جدول معیار انتخاب یا جدولی از وظایف بر اساس انجام دهنده (Tasks by Performer) است:
● کلید شناسایی ردیف جدول: Ref.

● به عنوان ویژگی Main table، جدول مجازی ثبت اطلاعات SliceFirst یا SliceLast مشخص می شود:
● کلید شناسایی ردیف جدول: RecordKey.
● ویژگی Dynamic read قابل اجرا نیست.
● روش 2 استفاده می شود (روش ها در بالا توضیح داده شده است).

● یکی از جداول ثبت مجازی به عنوان ویژگی جدول اصلی مشخص شده است، به جز موارد ذکر شده در بالا:

● ویژگی Dynamic read قابل اجرا نیست.

● ویژگی Main table مشخص نشده است، یک پرس و جو دلخواه استفاده می شود:
● کلید شناسایی ردیف جدول: شماره.
● ویژگی Dynamic read قابل اجرا نیست.
● روش 3 استفاده می شود (روش ها در بالا توضیح داده شده است).

برای نمایش، داده ها به صورت تکه هایی به مشتری منتقل می شود که اندازه آنها مشابه اندازه تکه در روش اول خواندن داده ها است (توضیح داده شده در ابتدای این بخش).
هنگامی که فرمی را ایجاد می کنید که حاوی یک لیست پویا است، در ابتدا 45 مورد داده از هر لیست پویا قابل مشاهده برای مشتری ارسال می شود (اگر لیست شامل بیش از 45 مورد باشد). اگر لیست پویا بیش از 45 ردیف را نشان می دهد، پس از باز شدن فرم، یک تماس سرور اضافی برای بازیابی موارد داده از دست رفته برقرار می شود.

4. تنظیمات لیست پویا

ویژگی List customization - با کلیک بر روی Open hyperlink فرم سفارشی سازی نمایش یک لیست پویا را باز می کند. تنظیم یک لیست همانند عملیات مشابه در سیستم ترکیب داده انجام می شود.


برنج. 2. ظاهر مشروط یک لیست پویا

هنگام تنظیم یک لیست پویا در پیکربندی، توسعه دهنده راه حل کاربردی این فرصت را دارد که موارد زیر را انجام دهد:
● فیلدها را برای سفارش تنظیم کنید.
● انتخاب داده ها را در لیست شرح دهید.
● تنظیمات ظاهر مشروط را مشخص کنید.
● فیلدهایی را که می خواهید داده ها را بر اساس آنها گروه بندی کنید، مشخص کنید.
اگر از مرتب‌سازی پیش‌فرض تنظیم‌شده توسط سیستم راضی نیستید، تعیین مرتب‌سازی به توسعه‌دهنده منطقی است.

مشاوره.باید به خاطر داشت که انتخاب ضعیف فیلدهای مرتب سازی (و همچنین انتخاب و گروه بندی داده ها) بر کارایی انتخاب پویا تأثیر منفی می گذارد.
از دیدگاه یک توسعه دهنده برنامه، تنظیمات لیست پویا شامل چندین بخش است که به هم مرتبط هستند. ویژگی اصلی که از طریق آن می توانید تنظیمات لیست پویا را کنترل کنید پیکربندی... این شی شامل سه مجموعه تنظیمات است که هنگام اجرای سیستم، تنظیمات نهایی اعمال شده در لیست پویا را تعیین می کند:
● تنظیمات - تنظیمات ایجاد شده در حالت Configurator. ویژگی Order dynamic list دسترسی سریع به ویژگی Settings پیوند دهنده تنظیمات لیست پویا را فراهم می کند، بنابراین ساختارهای زیر معادل هستند:
List.Order و List.OptionComposer.Settings.Order;
● UserSettings تنظیماتی هستند که کاربر در حالت 1C: Enterprise تغییر می دهد.
● FixedSettings - این تنظیمات از زبان داخلی تنظیم می شوند. این ویژگی همچنین حاوی مقادیر انتخابی است که با استفاده از پارامترهای آن به فرم ارسال می شود. ویژگی های انتخاب لیست پویا، پارامترها، قالب بندی شرطی دسترسی سریع به تنظیمات ثابت پیوند دهنده تنظیمات لیست پویا را فراهم می کند. به عبارت دیگر، این ضربه ها معادل هستند:
List.Settings Composer.FixedSettings.Filter و List.Feed.
هنگام تشکیل تنظیمات نهایی لیست پویا، گزینه های مختلفتنظیمات به صورت زیر ترکیب می شوند:
● اگر هر نوع تنظیماتی کاملاً به عنوان سفارشی علامت‌گذاری شده باشد، تنظیمات حاصل شامل تنظیمات سفارشی می‌شود
(List.ComposerSettings.UserSettings). در این حالت، اگر هر یک از آیتم‌های تنظیمات به‌عنوان غیرقابل دسترس علامت‌گذاری شود، این تنظیمات در تنظیمات حاصل از ویژگی List.Settings Composer قرار می‌گیرند. تنظیمات.
● اگر هر نوع تنظیماتی نه به طور کامل، بلکه عنصر به عنصر به عنوان کاربر علامت گذاری شده است، سپس:
● مواردی که به عنوان سفارشی علامت‌گذاری شده‌اند در تنظیمات حاصل از ویژگی List.OptionsComposer.UserSettings گنجانده می‌شوند.
● مواردی که به‌عنوان غیرقابل دسترس علامت‌گذاری شده‌اند در تنظیمات حاصل از ویژگی List.OptionsComposer.Settings گنجانده می‌شوند.
● تنظیمات ثابت (List.ConfigurationComposer.FixedSettings) به تنظیمات حاصل «همانطور که هست» اضافه می شوند. در این حالت، زمانی که تنظیماتی به همین نام در تنظیمات ثابت و سفارشی وجود داشته باشد، وضعیت غیرقابل قبول است، به عنوان مثال، انتخاب با همان مقدار سمت چپ در شرط.

اگر تنظیمات لیست پویا شامل تنظیماتی باشد که با استفاده از گزینه های کاربردی غیرفعال شده اند، با دریافت داده های لیست پویا، این تنظیمات از لیست تنظیمات موجود حذف می شوند.
کنترل کنید که کدام تنظیمات در دسترس کاربر باشد و کدام تنظیمات در پنجره تنظیمات لیست پویا انجام نشوند.


برنج. 3. کنترل گنجاندن در تنظیمات سفارشی

چک باکس در پایین پنجره (نگاه کنید به شکل 3) مسئول قرار دادن کل نوع تنظیمات در تنظیمات (عادی یا سریع) است. این ویژگی برای انتخاب، سفارش، گروه بندی و طراحی مشروط در دسترس است. اگر تنظیمات با حالت ویرایش مشخص شده باشد انتخاب سریع، سپس در ویژگی گروه تنظیمات سفارشی جدول فرم که یک لیست پویا را نمایش می دهد، باید یک گروه فرم خالی را مشخص کنید که عناصر مرتبط با تنظیمات سفارشی سریع لیست پویا در آن قرار گیرند. اگر گروه مشخص نشده باشد، تنظیمات سریع کاربر روی فرم نمایش داده نمی شود. همچنین می توان با استفاده از روش CreateCustomSettingsFormElements () در پسوند لیست پویا، ایجاد تنظیمات سفارشی را با استفاده از زبان داخلی فراخوانی کرد.
همچنین امکان انتخاب قابلیت قرار دادن موارد تنظیمات خاص در تنظیمات کاربر وجود دارد. این ویژگی برای انتخاب و عناصر شرطی موجود است (شکل 3 را ببینید).

اگر هنگام باز کردن یک لیست پویا لازم است تنظیمات خاصی بارگذاری شود، این کار را می توان به دو روش انجام داد:
● با استفاده از پارامتر فرم لیست پویا CustomSettings. داده های موجود در این پارامتر در تنظیمات سفارشی لیست پویا قرار می گیرند.
● با استفاده از پارامتر فرم لیست پویا CustomSettingsKey. اگر هنگام باز کردن فرم این پارامتر را مشخص کنید، تنظیمات سفارشی واقع در فروشگاه تنظیمات با کلید مشخص شده در لیست پویا که ویژگی اصلی فرم است بارگذاری می شود.

5. در یک لیست پویا جستجو کنید

یک لیست پویا که روی فرم قرار دارد، امکان انجام جستجوی تعاملی در داده های نمایش داده شده را فراهم می کند. جستجو را می توان با استفاده از ابزارهای زیر انجام داد: رشته جستجو، گفتگوی جستجو، جستجوی مقدار فعلی، استفاده از تاریخچه جستجو و تنظیم دوره (برای لیست های پویا که اسناد را نشان می دهد). نتیجه جستجو مجموعه محدودی از رکوردها است
لیست پویا (از موجود این کاربر) که با معیارهای جستجو مطابقت دارند.
سه ویژگی برای جدول فرم مدیریت شده وجود دارد که لیست پویا را برای کنترل قابلیت های جستجوی یک لیست پویا نمایش می دهد:
● موقعیت رشته جستجو - موقعیت رشته جستجو را مشخص می کند. می تواند مقادیر زیر را بگیرد: خودکار، پنل فرمان، هیچ، بالا، پایین.


برنج. 4. رشته را در یک لیست پویا جستجو کنید

اگر مقدار این ویژگی روی نوار فرمان تنظیم شود، رشته جستجو در نوار فرمان فرم (اگر لیست پویا ویژگی اصلی فرم باشد) یا در نوار فرمان مرتبط با لیست پویا نمایش داده می شود. . نوار جستجوی واقع در نوار فرمان همیشه در لبه سمت راست نوار فرمان قرار دارد (همراه با دکمه های واقع در سمت راست نوار جستجو).
اگر ویژگی روی No تنظیم شود، رشته جستجو در فرم وجود ندارد و در ابتدای مجموعه رشته جستجوگفتگویی باز خواهد شد
اگر ویژگی روی Top تنظیم شود، رشته جستجو بین پنجره فرمان لیست و جدولی که لیست پویا را نمایش می دهد قرار می گیرد. اگر ویژگی روی Bottom تنظیم شود، رشته جستجو بلافاصله بعد از جدول نمایش لیست پویا قرار می گیرد.


● اگر ویژگی Compatibility Mode روی Do not use یا قدیمی تر از نسخه 8.3.4 تنظیم شده باشد، مقدار Command Panel است.
به صورت زیر به نوار جستجو بروید:
● با فشار دادن کلیدهای میانبر Ctrl + F.
● ماوس؛
● هنگامی که شروع به تایپ در یک لیست پویا می کنید (با در نظر گرفتن مقدار ویژگی Dynamic List SearchPrinting).
● موقعیت حالت نمایش - توضیح می دهد که وضعیت نمایش در کجا نمایش داده می شود: کدام فیلدها جستجو شده اند و کدام مقادیر
در هر زمینه ای جستجو می شد. می تواند مقادیر زیر را بگیرد: خودکار، هیچ، بالا، پایین


برنج. 5. وضعیت جستجو در لیست پویا

اگر ویژگی روی No تنظیم شود، حالت view در فرم وجود ندارد. در نتیجه، تعیین اینکه آیا جستجو انجام شده است یا نه تنها با در دسترس بودن دکمه لغو جستجو امکان پذیر خواهد بود.
اگر ویژگی روی Top تنظیم شود، وضعیت view بین پنجره فرمان لیست و جدولی که لیست پویا را نشان می دهد قرار می گیرد. اگر ویژگی روی Bottom تنظیم شود، وضعیت view بلافاصله بعد از جدول نمایش لیست پویا قرار می گیرد.
اگر فرم در 1C: Enterprise نسخه 8.3.4 و قبل از آن ایجاد شده باشد، ویژگی روی No تنظیم می شود. اگر فرم در "1C: Enterprise" نسخه 8.3.5 و بالاتر ایجاد شده باشد، ویژگی روی Auto تنظیم می شود. ارزش واقعی ملک در این مورد به شرح زیر تعیین می شود:
● اگر ویژگی Compatibility Mode روی نسخه 8.3.4 (یا پایین تر) تنظیم شده باشد - مقدار None است.
● اگر ویژگی Compatibility mode روی Do not use یا قدیمی تر از مقدار باشد نسخه 8.3.4 - مقدار Top;
● موقعیت کنترل جستجو - تعیین می کند که دکمه کنترل جستجو در کجا نمایش داده شود. این دکمه منویی را باز می کند که حاوی اطلاعات زیر است: دستورات یافتن بر اساس مقدار فعلی، جستجوی پیشرفته، لغو جستجو، تنظیم دوره (برای لیست اسناد و مجلات) و تاریخچه درخواست های جستجو (5 درخواست آخر). این ویژگی می تواند مقادیری داشته باشد: خودکار، هیچ، نوار فرمان.


برنج. 6. کنترل جستجو در یک لیست پویا

اگر ویژگی روی No تنظیم شود، دکمه کنترل جستجو در فرم وجود ندارد (اما دستورات با استفاده از منوی More در دسترس خواهند بود). مقدار ویژگی Command pane دکمه ای را در پنجره فرمان مرتبط با جدول نمایش لیست پویا قرار می دهد.
اگر فرم در 1C: Enterprise نسخه 8.3.4 و قبل از آن ایجاد شده باشد، ویژگی روی No تنظیم می شود. اگر فرم در "1C: Enterprise" نسخه 8.3.5 و بالاتر ایجاد شده باشد، ویژگی روی Auto تنظیم می شود. ارزش واقعی ملک در این مورد به شرح زیر تعیین می شود:
● اگر ویژگی Compatibility Mode روی نسخه 8.3.4 (یا پایین تر) تنظیم شده باشد - مقدار None است.
● اگر ویژگی Compatibility mode روی Do not use یا قدیمی تر از مقدار باشد نسخه 8.3.4 - مقدار Command bar;
اگر یک فرم حاوی چندین پنل فرمان باشد که منبع دستورات آنها یک جدول از یک فرم مدیریت شده است (نمایش داده ها از یک لیست پویا)، رشته جستجو و دکمه کنترل جستجو تنها در یک پانل فرمان قرار می گیرند:
● یا در نوار فرمان خود لیست پویا (اگر تکمیل خودکار برای آن فعال باشد)
● یا در هر یک از پانل های فرمان باقی مانده.

بیایید ویژگی های استفاده از جستجو در یک لیست پویا را در نظر بگیریم:
● برای راحت کردن جستجو برای استفاده (از جمله از نقطه نظر عملکرد)، باید جستجوی متن کامل را برای تمام اشیاء پیکربندی که می‌توانند به عنوان جدول اصلی لیست پویا استفاده شوند، فعال کنید. همچنین، جستجوی متن کامل باید شامل تمام ویژگی‌های اشیاء پیکربندی باشد که می‌توانند در یک لیست پویا نمایش داده شوند و ممکن است به جستجو نیاز داشته باشند.
اگر شی از جستجوی متن کامل حذف شود، موتور جستجوی مورد نظر کار خواهد کرد، اما عملکرد چنین جستجویی بسیار پایین خواهد بود. استفاده از جستجو در اشیایی که با جستجوی متن کامل نمایه نشده اند، توصیه نمی شود.
● در راه حل کاربردیباید یک کار برنامه ریزی شده وجود داشته باشد که به طور منظم فهرست جستجوی متن کامل را به روز کند.

● جستجو در تمام ستون‌های لیست پویا (و جسم پیکربندی) انجام نمی‌شود، بلکه فقط در ستون‌هایی که در جدول نمایش داده می‌شوند، انجام می‌شود.
● جستجو در یک لیست پویا بر اساس فیلدهای انواع مرجع با نمایش دلخواه توسط فیلدهایی انجام می شود که برای
شکل گیری یک دیدگاه (اینجا را ببینید). فیلدهای موجود در نما با در نظر گرفتن کنترلر ViewFieldGetProcessing () شی مربوطه به دست می آیند.
● برای لیست های پویا با جدول اصلی مشخص شده، از جستجوی تمام متن در جدول اصلی استفاده می شود. تمام پیوندهای فهرست نشده از جدول اصلی به نتایج جستجوی متن کامل اضافه می شوند. نتیجه جستجوی متن کامل برای جدول اصلی به عنوان انتخاب فیلدهای کلیدی استفاده می شود. جستجوی متن کامل نیز در فیلدهای نمایش داده شده در لیست از جداول دیگر انجام می شود (اگر جستجوی متن کامل برای فیلد و شیء پیکربندی استفاده شود). بدون فعال بودن جستجوی متن کامل، داده ها می توانند فعال شوند
پیدا شد، اما خود جستجو بسیار کند خواهد بود.
اگر هنگام تلاش برای انجام جستجوی تمام متن خطایی رخ دهد، جستجو بدون استفاده از جستجوی تمام متن انجام می شود.
به عنوان مثال، این می تواند در هنگام جستجو با یک حرف و تعداد زیادیخطوط در پایگاه اطلاع رسانیبا این نامه شروع می شود
● اگر فیلتر کردن با نوع مقایسه Equals برای یک فیلد در جدول اصلی یک لیست پویا استفاده می شود، هنگام انجام جستجوی متن کامل، پرس و جو جستجومقدار انتخاب در این جدول اضافه خواهد شد.
● رشته جستجو به کلمات تقسیم می شود. این تقسیم بر اساس قوانین زیر انجام می شود:
● خط با استفاده از فاصله و کاراکترهای برگه به ​​عنوان جداکننده تقسیم می شود.
● سپس هر قطعه به دست آمده پردازش می شود:
● اگر قطعه یک نمایش تاریخ (با یا بدون زمان) بر اساس تنظیمات منطقه ای فعلی جلسه است، آنگاه کلمه همان قطعه است.
● در غیر این صورت، قطعه بیشتر با استفاده از کاراکترهای ", .- / \" به عنوان جداکننده تقسیم می شود. در این حالت، هر قطعه خط حاصل به عنوان یک کلمه در نظر گرفته می شود.

● برای هر کلمه، مجموعه ای از شرایط خاص خود را تشکیل می دهد که با "OR" ترکیب می شوند. این مجموعه شرایط در صورتی تشکیل می شود که جستجوی تمام متن برای کلمه داده شده در جدولی که فیلد داده شده از آن به دست آمده، حداقل یک شی را برگرداند، یا جستجوی تمام متن برای این فیلد استفاده نشده باشد. شرایط به شرح زیر تشکیل می شود:
● برای یک فیلد از نوع String، شرط به شکل FieldName LIKE% Word است.
● برای یک فیلد از نوع Number، شرط به شکل FieldName = Value است، که در آن Value کلمه ای است که به نوع Number ارسال می شود. اگر ریخته گری قابل انجام نباشد، جستجوی میدانی انجام نخواهد شد.
● کلمه به عنوان یک رشته فرعی در نمایش پیش فرض نوع Boolean تعریف شده برای جلسه جاری جستجو می شود. اگر کلمه جستجو در نمایش یافت شود، سپس جستجویی برای مقداری مطابق با نمایشی که کلمه در آن یافت شده است، انجام می شود. با این حال، جستجو از نماهایی که با استفاده از ویژگی عنصر Format فرم مشخص شده اند استفاده نمی کند.
● برای یک فیلد از نوع Date، شرط به شکل FieldName> = StartDay (Word) و FieldName است.<=КонецДня(Слово). Если Слово подобно дате, в которой год
با یک یا دو رقم مشخص می شود، سال به قرن جاری تبدیل می شود و این مقدار در شرایط جستجو جایگزین می شود.
● برای فیلدهای مرجع، جستجو در فیلدهای مورد استفاده برای تشکیل ارائه مرجع انجام می شود. در هر یک از این فیلدها جستجو کنید
طبق قوانین توضیح داده شده در بالا انجام می شود. جستجو از فیلدهای مورد استفاده برای تشکیل یک نمایش داده دلخواه استفاده نمی کند.
مجموعه شرایط برای هر کلمه "با AND" ترکیب می شود.
● برای مقادیر با صفرهای ابتدایی، می‌توانید هم رشته‌ای را با صفرهای ابتدایی و هم رشته‌ای را که بدون صفرهای ابتدایی مشخص شده است جستجو کنید.
● اگر یک لیست پویا فهرستی از اسناد یا یک مجله سند را نمایش دهد، فاصله اسکن لیست مشخص شده نیز در ناحیه فرم رزرو شده برای نمایش وضعیت مشاهده لیست پویا مورد نیاز نمایش داده می شود.
● اگر جدول اصلی لیست پویا یک معیار فیلتر باشد، فرمان جستجو بر اساس مقدار فعلی در دسترس نیست.
● قطعات خط یافت شده هنگام نمایش در جدول برجسته می شوند.
● برای یک ستون، فقط یک رشته جستجو پشتیبانی می شود. هنگامی که یک عبارت جستجوی جدید برای ستونی که قبلا جستجو شده است اضافه می‌کنید، عبارت جستجو جایگزین می‌شود، نه افزودن دو عبارت جستجو.
● اگر فرم حاوی مکملی برای عنصر فرم از نمایش رشته جستجوی مرتبط با جدول (ویژگی Source عنصر یک فرم) که فهرستی پویا را نمایش می دهد، نباشد، با فشار دادن کلیدهای ترکیبی Ctrl + F جستجو باز می شود. گفتگو


برنج. 7. گفتگوی جستجو

اگر فرم حاوی اضافه‌ای به عنصر فرم از نوع نمایش رشته جستجوی مرتبط با جدول (ویژگی منبع افزودن عنصر فرم) است که فهرستی پویا را نمایش می‌دهد، از دستور جستجوی پیشرفته برای باز کردن گفتگوی جستجو استفاده کنید.
● هنگام استفاده از گفتگوی جستجو، نکات زیر را در نظر داشته باشید:
● باز کردن گفتگوی جستجو با میانبر صفحه کلید باعث می شود که مقدار سلول فعلی در خط What to search باشد و مقدار دکمه رادیویی How to search روی مطابقت دقیق تنظیم شده است.

● باز کردن گفتگوی جستجو با شروع مستقیم تایپ رشته جستجو در یک لیست پویا باعث می شود که مقدار چک باکس How to search روی قسمتی از رشته تنظیم شود و متن تایپ شده به قسمت What to search می رود.

6. بازیابی داده های نمایش داده شده توسط یک لیست پویا

هنگام استفاده از لیست های پویا، ممکن است لازم باشد با در نظر گرفتن فیلترهای اعمال شده و جستجوهای اعمال شده، اقدامات مختلفی را با داده هایی که در حال حاضر توسط لیست پویا نمایش داده می شود انجام دهید. این اقدامات عبارتند از: پردازش اطلاعات نمایش داده شده، به عنوان مثال، ارسال مجدد اسناد انتخاب شده یا تنظیم هر ویژگی برای اشیاء انتخاب شده، ایجاد لیستی از اشیاء موجود (با طراحی و غیره)، به عنوان مثال، برای چاپ یا ذخیره در یک سند صفحه گسترده.
برای به دست آوردن داده هایی که در یک لیست پویا نمایش داده می شوند، از GetExecutableDataCompositionSchema () و
ExecutableDataCompositionSettings () را دریافت کنید.
نمونه ای از گرفتن داده ها:

Schema = Items.List.Get ExecutableDataCompositionSchema ();
تنظیمات = Items.List.Get ExecutableDataCompositionSettings ();
LayoutComposer = New LayoutComposerDataComposition ();
LayoutComposition = LayoutComposer.Run (Outline، Settings)؛
Composition Processor = New Data Composition Processor;
LayoutProcessor.Initialize (LayoutDetail);
OutputProcessor = NewDataCompositionOutputResultProcessorIn a Tabular Document;
بازگشت OutputProcessor.Output (LayoutProcessor);

بازیابی داده ها در مجموعه ای از مقادیر (جدول یا لیست مقادیر) مشابه است.
دریافت داده های لیست پویا به این روش دارای تعدادی ویژگی است که باید هنگام توسعه راه حل های کاربردی مورد توجه قرار گیرد:
● طراحی جدول زیر پشتیبانی نمی شود:
● رنگ های ردیف متناوب.
● تصویر هدر.
● تصویر زیرزمین;
● رنگ پس زمینه زیرزمین.
● رنگ متن پاورقی.
● فونت پاورقی.
● موقعیت افقی در زیرزمین.
● حالت رمز عبور.
● ظاهر مشروط مشخص شده برای فرم مدیریت شده پشتیبانی نمی شود.
● هنگام مرتب کردن یک جدول سلسله مراتبی به ترتیب صعودی، بر اساس فیلد نوع Link، رکوردهای حاوی یک پیوند خالی همیشه در ابتدا قرار می گیرند.

در فرآیند نهایی کردن تنظیمات، هر برنامه نویس 1C با لیست های پویا روبرو می شود.
لیست پویا یک شی رابط است که برای نمایش لیست های مختلف از اشیاء پایگاه داده یا داده های غیر شی - رکوردهای ثبت استفاده می شود.
به عنوان مثال، یک لیست پویا برای نمایش لیستی از موارد استفاده می شود:

برای نشان دادن قابلیت های یک لیست پویا، بیایید یک پردازش خارجی ایجاد کنیم، یک فرم اصلی اضافه کنیم. بیایید یک ویژگی جدید از نوع "فهرست پویا" به فرم اضافه کنیم. بریم سراغ خواصش ببینیم چی هست.
ما به ملک "درخواست خودسرانه" علاقه مندیم. فعال کردن آن تمام قابلیت های یک لیست پویا را به ما نشان می دهد. ما می توانیم با استفاده از تقریباً تمام قابلیت های زبان پرس و جو 1C: Enterprise یک درخواست بنویسیم. کادر را علامت بزنید و روی پیوند "باز کردن" کلیک کنید:

به طور پیش فرض، لیست ما لیستی از اقلام را با موجودی کل برای همه انبارها نمایش می دهد. برای پیاده سازی چنین لیستی، کوئری زیر را اضافه کنید:


به عنوان جدول اصلی، ما "Directory.Nomenclature" را انتخاب می کنیم، این به ما امکان می دهد با یک لیست پویا مانند لیست موارد - اضافه کردن، تغییر، علامت گذاری برای عناصر دایرکتوری حذف کار کنیم. همچنین، تنظیم جدول اصلی امکان خواندن پویا داده ها را در دسترس قرار می دهد - این به این معنی است که انتخاب در قسمت های مورد نیاز انجام می شود.
در مرحله بعد، باید عناصر فرم را برای لیست ما ایجاد کنید:

اگر بخواهیم پردازش خود را در این فرم شروع کنیم، با خطا مواجه می شویم:


برای حذف آن، باید مقداری برای پارامتر "Period" تنظیم کنید. برای این کار می توانید از روش "SetParameterValue" مجموعه "Parameters" لیست پویا استفاده کنید. این روش دو پارامتر دارد:
... "پارامتر" - نوع: رشته; پارامتر DataComposition. نام پارامتر یا پارامتر ترکیب داده که مقدار آن را می خواهید تنظیم کنید.
... "ارزش" - نوع: دلخواه. مقداری که باید تنظیم شود.
می توان در کنترل کننده OnCreateAtServer فرم فراخوانی کرد:

آیا سوالی دارید، نیاز به کمک مشاور دارید؟


ما به کاربر امکان تغییر دوره دریافت موجودی را خواهیم داد. برای انجام این کار، یک props و یک عنصر فرم مرتبط با "Date" اضافه کنید:


در کنترل کننده "OnChange" عنصر فرم "Date"، متد "SetParameterValue" را فراخوانی کنید و مقدار متغیر مرتبط را به عنوان مقدار ارسال کنید. بیایید رویه "OnCreateAtServer" فرم را به همین ترتیب تغییر دهیم. از آنجایی که این روش در سرویس گیرنده موجود است، نیازی به تماس سرور نیست:


اکنون، هنگامی که تاریخ تغییر می کند، باقیمانده ها به طور خودکار به روز می شوند:




فرض کنید کاربران می‌خواهند موجودی‌های فعلی یا دریافت‌های پیش‌بینی‌شده را ببینند. بیایید یکی از گزینه های اجرایی را در نظر بگیریم. بیایید یک props فرم بولی و یک سوئیچ مرتبط اضافه کنیم:


هنگام تغییر مقدار سوئیچ، متن درخواست را تغییر می دهیم. برای انجام این کار، از کنترل کننده رویداد "OnChange" عنصر فرم "DisplayQuantityOnIncoming" استفاده می کنیم. ما باید ویژگی "RequestText" لیست پویا را بسته به مقدار ویژگی تغییر دهیم. از آنجایی که این ویژگی در کلاینت در دسترس نیست، فراخوانی رویه سرور مورد نیاز است:


نتیجه تغییرات ایجاد شده:



علاوه بر انواع داده های اولیه که در هر زبان برنامه نویسی یافت می شود، انواع منحصر به فرد در 1C وجود دارد. هر یک از آنها ویژگی ها، روش ها، عملکردها، هدف و تفاوت های ظریف استفاده در سیستم خود را دارند. یکی از این انواع لیست پویا است که بسیاری از وظایف برنامه را تا حد زیادی تسهیل می کند. به همین دلیل است که توسعه دهندگان باید این ابزار همه کاره را بشناسند و بتوانند از آن استفاده کنند.

امکان لیست های پویا در 1C

هدف از این نوع نمایش اطلاعات از هر جداول پایگاه داده صرف نظر از نوع آن است. این مکانیسم بر اساس ACS ایجاد شده است و دارای قابلیت های مشابه است. اما این بدان معنا نیست که شما قطعاً مجبور خواهید بود درخواستی را به زبان 1C بنویسید، اگرچه این فرصت وجود دارد و باید از آن استفاده کنید. شما به سادگی می توانید جدول، اطلاعاتی که از آن به آنها علاقه دارید را مشخص کنید، و 1C به طور مستقل ساده ترین پرس و جو را تشکیل می دهد.

برای اینکه ببینید لیست پویا چگونه تشکیل می شود و چه داده هایی را نشان می دهد، باید فرم های مدیریت شده را، جایی که در آن قرار دارد، در پیکربندی باز کنید: در لیست ویژگی ها از طریق منوی زمینه، ویژگی های آن را باز کنید و به " توجه کنید " درخواست سفارشی" مورد. اگر کادر انتخاب وجود نداشته باشد، پارامتر "جدول اصلی" جدول پایگاه داده ای را که داده ها از آن گرفته شده است، منعکس می کند. در غیر این صورت، لیست پویا داده های یک پرس و جو دلخواه را منعکس می کند که با باز کردن اولویت لیست قابل مشاهده است.

استفاده بسیار رایج تر از طرح پرس و جوی ad-hoc این است که روشی عالی برای ترکیب و نمایش طیف گسترده ای از داده ها ارائه می دهد. اغلب از این مکانیسم برای نمایش موجودی سهام، قیمت اقلام، رسیدها، مسائل یا خریدها استفاده می شود. باید با احتیاط از آن استفاده کرد، زیرا ممکن است عملکرد با پرس و جوهای پیچیده کاهش یابد.

یکی دیگر از ویژگی های مفید یک لیست پویا با کلیک بر روی عنوان "سفارشی کردن لیست" باز می شود. این منو به شما این امکان را می دهد که حتی با استفاده از مجموعه ای استاندارد از فیلدها، اطلاعات را برای کاربران نهایی قابل دسترس تر و قابل درک تر کنید. صرف نظر از اینکه درخواست دلخواه است یا خیر، تب "تنظیمات" را مشاهده خواهید کرد که در آن می توانید مشخص کنید:

  • انتخاب یک لیست پویا؛
  • گروه بندی ها
  • مرتب سازی؛
  • ثبت.

استفاده از پارامترها لیست های پویا را به اندازه کافی همه کاره و انعطاف پذیر می کند. همچنین می توانید آنها را با جزئیات در فرم مدیریت شده مرتبط کنید و بسته به پارامترهای انتخاب شده توسط کاربر، داده ها تغییر خواهند کرد. استفاده از این مکانیسم ها را می توان با در نظر گرفتن مثال هایی از مشکلات دنیای واقعی درک و درک کرد.

به عنوان مثال، اجازه دهید وظیفه انعکاس مانده موجودی را در یک فرم کنترل شده در نظر بگیریم. در عمل واقعی، چنین دستوراتی در پیکربندی های مختلف بسیار رایج هستند و یک لیست پویا به عنوان یک ابزار ایده آل است. برای این کار، ما باید از یک پرس و جو دلخواه، پارامترهای لیست پویا و تنظیمات آن استفاده کنیم.

برای وضوح بیشتر، بیایید یک پردازش خارجی جداگانه ایجاد کنیم و یک لیست پویا در آن قرار دهیم. برای اجرای طرح ما، جدول با نامگذاری کوچک خواهد بود، بنابراین باید یک پرس و جو دلخواه را مجاز کنیم. در آن، اتصال سمت چپ فهرست را با لیست نامگذاری و رجیستر موجودی ها شرح می دهیم و فهرست را به عنوان جدول اصلی تنظیم می کنیم. چنین طرحی به کاربران این امکان را می دهد که با یک لیست پویا کار می کنند، یک آیتم را اضافه یا تغییر دهند.



NomenklaturaPerechen.Naimenovanie AS SELECT نام، TovaryNaSkladahOstatki.Sklad انبارها، TovaryNaSkladahOstatki.KolichestvoOstatok AS KolichestvoOstatok Spravochnik.Nomenklatura ترکیبی از چپ NomenklaturaPerechen RegistrNakopleniya.TovaryNaSkladah.Ostatki (و TekuhtsayaData،) به عنوان در TovaryNaSkladahOstatki NomenklaturaPerechen.Ssylka = TovaryNaSkladahOstatki.Nomenklatura کجا

از آنجایی که درخواست ما از پارامتر "CurrentDate" استفاده می کند، باید مقدار آن را قبل از استفاده از پردازش تنظیم کنیم. برای انجام این کار، در ماژول فرم در رویه "OnCreateAtServer"، تابع "CurrentSessionDate" را با یک دستور استاندارد به آن اختصاص می دهیم. همچنین باید لیست پویا را در فرم کنترل نمایش دهیم و ترتیب فیلدها را برای وضوح تغییر دهیم. صفت "Nomenclature Remains" را به عناصر فرم (قسمت بالا سمت چپ) بکشید و ترتیب فیلدها را در جدول روی فرم با فلش های آبی تغییر دهید.

رویه & AtServer OnCreateAtServer (شکست، پردازش استاندارد) RemainingNomenclature.Parameters.SetParameterValue ("CurrentDate"، CurrentSessionDate ()) EndProcedure


در حال حاضر در این مرحله، می توانیم پردازش خارجی خود را در 1C باز کنیم و ببینیم که لیست پویا کار می کند. ما می توانیم به باقی مانده ها نگاه کنیم، یک آیتم و گروه ایجاد کنیم، جستجو کنیم. اغلب از مشتریان خواسته می شود تا قابلیت انتخاب تاریخی که در آن موجودی ها را می بینند را اضافه کنند. در مورد فرم با لیست پویا، این توسط یک فیلد اضافی و تنظیم پارامترها به کمک آن ارائه می شود.

ویژگی "DateLeft" از نوع "Date" را اضافه کنید و آن را به عناصر فرم منتقل کنید. در رویدادهای فیلد، یک رویداد "OnChange" ایجاد کنید و کد تنظیم پارامتر "CurrentDate" مورد استفاده در یک جستجوی پویا را بنویسید. به طوری که وقتی کاربر فرم را باز می کند، بلافاصله متوجه می شود که در چه تاریخی باقیمانده ها را می بیند، ما تغییرات کوچکی در رویه "OnCreationOnServer" ایجاد می کنیم.



رویه & AtServer OnCreateAtServer (لغو، StandardProcessing) RemainingDate = CurrentSessionDate (); RemainingNomenclature.Parameters.SetValueParameter ("CurrentDate"، Remaining Date); EndProcedure & OnClient Procedure RemainingDateOnChange (Element) Nomenclature Remains.Parameters.SetParameterValue ("CurrentDate"، Remaining Date); پایان رویه

در نتیجه، فرم لیست پویا ما می تواند موجودی ها را برای هر تاریخی نمایش دهد.

ما تنها بخش کوچکی از قابلیت‌های این جعبه ابزار را پوشش داده‌ایم، اما این برای درک راحتی چنین نوع به عنوان یک لیست پویا کافی است. مکانیزم مشابهی برای انواع وظایف استفاده می شود، اما اغلب در پیکربندی های معمولی در فرم های مدیریت شده یافت می شود:

  1. انتخاب؛
  2. لیست ها

برای دریافت لیست پویا و درخواست آن در فرم های معمولی مدیریت شده، توسعه دهنده باید فرم مورد نیاز را در پیکربندی باز کند. در بخش الزامات، یک ویژگی با نوع داده "DynamicList" پیدا کنید (اغلب با پررنگ برجسته می شود). ویژگی های آن شامل متن درخواست، فیلترها و تنظیمات دیگر است.