اینترنت پنجره ها اندروید
بسط دادن

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

چاپ (Ctrl + P)

لیست پویا

1. اطلاعات کلی

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

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

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

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

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

انتخاب کنید
انتخاب
زمان حمل و نقل. نرخ = 1 THEN EXPRESS (& Presentation AS Line (100)) حمل و نقل دیگر. ضریب
پایان دادن به نسبت
از جانب
Document.DeliveryProducts AS Shipping

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ables جداول بخش های جداول از اشیاء.
tables تغییر جداول ثبت نام (مورد استفاده در مکانیزم های تبادل داده) ؛
tables جداول توالی ؛
tables جداول تخصیص (مورد استفاده در مکانیزم های تسویه دوره ای).
table جدولی که در پرس و جو فقط در اتصال خارجی استفاده می شود.

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

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

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

انتخاب
وقتی یک دروغ
بعد 5
در غیر این صورت
EXPRESS (& پارامتر AS String (100))
پایان

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

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

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

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

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



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

read خواندن پویا ویژگی:
● نصب شده: روش 1 در حال استفاده است (روشها در بالا توضیح داده شده است).
ared پاک شده: روش 2 استفاده می شود (روشها در بالا توضیح داده شده است).

property ویژگی جدول اصلی شامل یک جدول معیار انتخاب یا یک جدول از وظایف مجری (وظایف توسط مجری) است:
● کلید شناسایی سطر جدول: Ref.

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

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

● ویژگی خواندن پویا قابل اجرا نیست.

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

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

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

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


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

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

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

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


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

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

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

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

یک لیست پویا که روی فرم قرار دارد ، امکان انجام جستجوی تعاملی در داده های نمایش داده شده را فراهم می کند. جستجو را می توان با استفاده از ابزارهای زیر انجام داد: رشته جستجو ، گفتگوی جستجو ، جستجوی مقدار فعلی ، استفاده از سابقه جستجو و تنظیم دوره (برای لیست های پویا که اسناد را نمایش می دهند). نتیجه جستجو مجموعه ای محدود از سوابق است
یک لیست پویا (در دسترس این کاربر) که با معیارهای جستجو مطابقت دارد.
سه ویژگی برای جدول فرم مدیریت شده وجود دارد که لیست پویا را برای کنترل قابلیت های جستجوی یک لیست پویا نمایش می دهد:
string موقعیت رشته جستجو - موقعیت رشته جستجو را مشخص می کند. این می تواند مقادیر زیر را داشته باشد: Auto ، Command Panel ، None ، Top ، Bottom.


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

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


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


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

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


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

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

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

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

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


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

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

● بازکردن محاوره جستجو با شروع مستقیم تایپ یک رشته جستجو در یک لیست پویا باعث می شود که کادر انتخاب How to search روی By part of the string تنظیم شود و متن در قسمت What to search تایپ شود.

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

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

Schema = Elements.List.Get ExecutableDataCompositionSchema ()؛
تنظیمات = Items.List.Get ExecutableDataCompositionSettings ()؛
LayoutComposer = NewDataCompositionLayoutComposer ()؛
LayoutLayout = LayoutLayout.Run (طرح کلی ، تنظیمات) ؛
پردازنده ترکیب = پردازشگر ترکیب داده جدید.
LayoutProcessor.Initialize (LayoutDeposit) ؛
OutputProcessor = OutputProcessorDataCompositionResultInTableSheetDocument جدید؛
Return OutputProcessor.Output (LayoutProcessor) ؛

بازیابی داده ها در مجموعه ای از مقادیر (جدول یا لیست مقادیر) مشابه است.
بدست آوردن داده های لیست پویا از این طریق دارای تعدادی ویژگی است که هنگام توسعه راه حل های کاربردی باید به آنها توجه شود:
lay طرح جدول زیر پشتیبانی نمی شود:
colors رنگ ردیف متناوب ؛
picture تصویر سرصفحه ؛
تصویر زیرزمین ؛
color رنگ زمینه زیرزمین ؛
color رنگ متن پاورقی ؛
font فونت پاورقی ؛
position موقعیت افقی در زیرزمین ؛
● حالت رمز عبور
appearance ظاهر مشروط مشخص شده برای فرم مدیریت شده پشتیبانی نمی شود.
● هنگام سفارش جدول سلسله مراتبی به ترتیب صعودی ، بر اساس فیلد نوع پیوند ، رکوردهای حاوی پیوند خالی همیشه اول قرار می گیرند.

یادداشت های خانه از طریق شیشه ای نمایان

2014/04/21 دریافت داده ها از یک لیست پویا

در نسخه 8.3.6.1977 پیاده سازی شده است.

ما توانایی بازیابی آسان و راحت داده های نمایش داده شده با استفاده از یک لیست پویا را پیاده سازی کرده ایم.

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

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

یک لیست پویا به تنهایی نمی تواند این اطلاعات را در اختیار شما قرار دهد. هدف از ایجاد لیست پویا ، مشاهده سریع حجم زیادی از داده ها است. بنابراین ، داده ها را در قسمت های مورد نیاز برای نمایش در یک یا دو صفحه می خواند. و "هیچ چیز نمی داند" ، به عنوان مثال ، در مورد کل داده هایی که باید بخواند.

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

قبلا ، می توانید این کار را انجام دهید. اما همیشه آسان نبود. در واقع ، علاوه بر متن پرس و جو اصلی ، که لیست پویا روی آن کار می کند ، باید همه انتخاب ها ، انواع و سایر پارامترهایی را که کاربر به صورت تعاملی در جدول نمایش داده ها تنظیم کرده است ، بدانید.

در حال حاضر این کار به راحتی حل می شود. جدول لیست پویا دارای دو روش جدید است:

  • دریافت ExecutableDataCompositionSchema ();
  • دریافت ExecutableDataCompositionSettings ().

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

در نتیجه ، یک ساختار (یا گزارش) حاوی ستون ها و سطرهایی را که در جدول لیست پویا خروجی دارند دریافت خواهید کرد.

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

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

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

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

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


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

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


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

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


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


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


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




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


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


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



علاوه بر انواع داده های ابتدایی که در هر زبان برنامه نویسی یافت می شود ، انواع منحصر به فردی در 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" اختصاص می دهیم. ما همچنین باید لیست پویا را در فرم کنترل نمایش دهیم و ترتیب فیلدها را برای وضوح تغییر دهیم. ویژگی "نامگذاری باقی می ماند" را به عناصر فرم (قسمت بالا سمت چپ) بکشید و ترتیب فیلدهای جدول موجود در فرم را با پیکان های آبی تغییر دهید.

& AtServer Procedure OnCreateAtServer (Failure، StandardProcessing) RemainingNomenclature.Parameters.SetParameterValue ("CurrentDate"، CurrentSessionDate ()) EndProcedure


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

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



& AtServer Procedure OnCreateAtServer (لغو ، StandardProcessing) RemainingDate = CurrentSessionDate ()؛ RemainingNomenclature.Parameters.SetValueParameter ("CurrentDate" ، تاریخ باقیمانده) ؛ EndProcedure & OnClient Procedure RemainingDateOnChange (Element) Nomenenclature Remains.Parameters.SetParameterValue ("CurrentDate" ، تاریخ باقی مانده) ؛ پایان مراحل

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

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

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

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

سرانجام ، رویای هر "هفت نفره" محقق شد. هر چند وقت یکبار کاربران برنامه 7.7 از یک نام معمولی انتخاب معمولی می کردند. به طوری که می توانید موجودی ها و قیمت ها را ببینید و فیلترها را تنظیم کنید. مجبور شدم ترفندهای مختلفی را ارائه دهم ، از جمله نوشتن اجزای خارجی. لیست های پویا در 1C 8.2 ظاهر شد. من پیشنهاد می کنم در نظر بگیرید که این چیست و چه چیزی می توانند در 1C 8.3 به ما بدهند.

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

هنگامی که ایجاد می شود ، سیستم به طور پیش فرض فیلد جدولی از نوع "لیست پویا" را به فرم اضافه می کند.

بیایید به خواص آن برویم و ببینیم چه چیزی وجود دارد.

اول از همه ، ما به کادر تأیید "درخواست سفارشی" علاقه داریم. او همه مزایای یک لیست پویا را برای ما فاش می کند. ما قادر خواهیم بود درخواست خود را با پارامترها بنویسیم. کادر را علامت زده و روی پیوند "باز کردن" کلیک کنید:

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

267 آموزش تصویری 1C را به صورت رایگان دریافت کنید:

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

درخواست سفارشی در لیست پویا

ابتدا بیایید درخواست مورد نیاز خود را با موجودی و قیمت ایجاد کنیم. مثل آن:

برگه تنظیمات

و در حال حاضر خوشمزه ترین! به برگه "تنظیمات" بروید. و بلافاصله می بینیم که در برگه اول می توانیم هر زمینه ای را در درخواست انتخاب کنیم:

تنظیم برنامه ای پارامترهای پرس و جو در یک لیست پویا 1C 8.3

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

بیایید این پارامترها را در پارامترهای فرم بنویسیم و خطوط زیر را در ماژول فرم اضافه کنیم:

& AtServer Procedure OnCreateAtServer (شکست ، استاندارد پردازش) لیست. گزینه ها. SetValueParameter ("دوره" ، پارامترها. تاریخ) ؛ لیست گزینه ها. SetValueParameter ("PriceType" ، Parameters .PriceType) ؛ پایان مراحل