1s 8.3 حذف انتخاب در لیست پویا

چاپ (Ctrl+P)

لیست پویا

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

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

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

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

انتخاب کنید
انتخاب
WHEN Delivery.Coefficient = 1 THEN &Presentation
در غیر این صورت تحویل. ضریب
END AS نسبت
از جانب

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

انتخاب کنید
انتخاب
WHEN Delivery.Coefficient = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Delivery. ضریب
END AS نسبت
از جانب
Document.Delivery of Products How to Deliver

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

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

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

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

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

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

  • با توجه به جزئیات قسمت های جدولی.
  • مشاهده فیلدها
  • فیلد DataVersion.
  • فیلد PredefinedDataName.
  • فیلد نوع جدول نمودار حساب ها.
  • فیلد نوع حرکت جدول ثبت تجمع.
  • فیلد TypeValues ​​جدول پلان نوع مشخصه.
  • نوع فیلد نوع;
  • فیلد از نوع String (طول نامحدود).
  • فیلد از نوع BinaryData.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

● ویژگی Main table روی یکی از جداول ثبت مجازی تنظیم شده است، به جز موارد ذکر شده در بالا:

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

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

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

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

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


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

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

مشاوره.لازم به یادآوری است که انتخاب ضعیف زمینه های مرتب سازی (و همچنین انتخاب و گروه بندی داده ها) بر کارایی نمونه گیری پویا تأثیر منفی می گذارد.
از نقطه نظر یک توسعه دهنده برنامه، تنظیمات لیست پویا شامل چندین بخش است که به هم مرتبط هستند. ویژگی اصلی که از طریق آن می توانید تنظیمات یک لیست پویا را مدیریت کنید این است LinkerSettings. این شی شامل سه مجموعه تنظیمات است که وقتی سیستم اجرا می شود، تنظیمات نهایی اعمال شده در لیست پویا را تعیین می کند:
● تنظیمات – تنظیمات ایجاد شده در حالت Configurator. ویژگی Order لیست پویا دسترسی سریع به ویژگی Settings.Order سازنده تنظیمات لیست پویا را فراهم می کند، بنابراین ساختارهای زیر معادل هستند:
List.Order و List.SettingsLinker.Settings.Order;
● UserSettings - اینها تنظیماتی هستند که توسط کاربر در حالت 1C:Enterprise تغییر می کنند.
● تنظیمات ثابت – این تنظیمات از زبان داخلی تنظیم می شوند. این ویژگی همچنین حاوی مقادیر انتخابی است که با استفاده از پارامترهای آن به فرم منتقل می شود. ویژگی های لیست پویا Selection, Options, Conditional Appearance دسترسی سریع به تنظیمات ثابت سازنده تنظیمات لیست پویا را فراهم می کند. به عبارت دیگر، این تماس ها معادل هستند:
List.Settings Composer.FixedSettings.Selection و List.Selection.
هنگام ایجاد تنظیمات نهایی برای یک لیست پویا، گزینه های تنظیمات مختلف به شرح زیر ترکیب می شوند:
● اگر هر نوع تنظیماتی کاملاً به عنوان سفارشی علامت‌گذاری شده باشد، تنظیمات حاصل شامل تنظیمات سفارشی می‌شود
(List.ComposerSettings.UserSettings). علاوه بر این، اگر هر یک از عناصر تنظیمات به عنوان غیرقابل دسترس علامت‌گذاری شود، این تنظیمات در تنظیمات حاصل از ویژگی List.Settings Composer قرار می‌گیرند. تنظیمات.
● اگر هر نوع تنظیماتی نه به طور کامل، بلکه عنصر به عنصر به عنوان سفارشی علامت گذاری شده است، پس:
● مواردی که به عنوان سفارشی علامت‌گذاری شده‌اند در تنظیمات حاصل از ویژگی List.SettingsComposer.CustomSettings گنجانده می‌شوند.
● مواردی که به‌عنوان غیرقابل دسترس علامت‌گذاری شده‌اند در تنظیمات حاصل از ویژگی List.SettingsComposer.Settings گنجانده می‌شوند.
● تنظیمات ثابت (List.SettingsComposer.FixedSettings) به تنظیمات حاصل «همانطور که هست» اضافه می شوند. در عین حال، غیرقابل قبول است که تنظیمات ثابت و کاربر دارای تنظیماتی به همین نام باشد، به عنوان مثال، انتخاب با همان مقدار سمت چپ در شرایط.

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


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

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

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

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

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


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

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


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


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

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


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

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

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

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

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


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

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

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

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

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

Schema = Elements.List.GetExecutableDataCompositionSchema();
تنظیمات = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Scheme, Settings);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

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

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

چگونه انتخاب را روی یک لیست تنظیم کنیم؟

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

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

انتخاب ها در جدول ارزش 1C

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

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

منطقی ترین روش انتخاب جدول را می توان از طریق سازنده پرس و جو انجام داد.

سایر ویژگی های لیست پویا در 1C

لیست های پویا فرصت های زیادی را برای کار با داده ها فراهم می کند که در 1C 7 در دسترس نبود. یکی از راحت ترین آنها ایجاد فرم های انتخاب است. به عنوان مثال، در 1C: حسابداری، باید به منوی "Nomenclature" بروید و یک فرم انتخاب جدید اضافه کنید و آن را به عنوان اصلی تعیین کنید.

برای تنظیم پارامترها در یک لیست پویا:

  • می توانید از فرم های انتخاب استفاده کنید.
  • هنگامی که این فرم را ایجاد می کنید، یک لیست انتخاب پویا به طور خودکار در فیلد ظاهر می شود.
  • با رفتن به ویژگی های آن، می توانید مورد "درخواست سفارشی" را مشاهده کنید. این پرس و جو است که به شما امکان می دهد از تمام مزایای یک لیست پویا استفاده کنید.
  • شما می توانید پارامترهای خود را در این درخواست وارد کنید.
  • با علامت زدن کادر و باز کردن این پنجره، می‌توانید یک درخواست جدید را با تمام فیلدهای کتاب مرجع آیتم مشاهده کنید.
  • با کلیک بر روی دکمه query builder می توانید محتویات این لیست را تغییر دهید.

برای افزودن درخواست خود به لیست کشویی، باید به تب تنظیمات بروید. در تب اول این فرصت را خواهید دید که هر انتخابی را با توجه به نیاز خود انجام دهید.

نصب برنامه ای درخواست

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

در 1C، فهرستی از مقادیر روی یک فرم، راهی عالی برای منطقی‌تر کردن و سودمند کردن کار با نرم‌افزار 1C است. این به شما امکان می دهد تمام کارها را در سازمان بهینه کنید.

انتخاب در فرم های مدیریت شده در 1C 8.3

در این مقاله گزینه هایی برای نصب انتخاب در فرم های مدیریت شده 1C 8.3 بحث خواهد شد. انتخاب یک لیست پویا را می توان به صورت ایستا یا پویا در رابط کاربری یا پیکربندی تنظیم کرد. ما تمام گزینه های انتخاب را در زیر در نظر خواهیم گرفت.

  • تنظیم انتخاب در پیکربندی

تنظیم انتخاب در حالت کاربر

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

برای تنظیم انتخاب در حالت سازمانی، باید دستور "Customize list" را فراخوانی کنید.

پنجره ای باز خواهد شد.


برگه "انتخاب" لیستی از فیلدهایی را که در لیست فعلی هستند نشان می دهد. فیلدهای لیست را که با آن فیلتر خواهیم کرد انتخاب کنید. این را می توان با دوبار کلیک کردن یا کشیدن و رها کردن انجام داد.


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


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


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


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

تنظیم انتخاب در پیکربندی

با کار در پیکربندی، می توانیم دو نوع انتخاب لیست پویا را تنظیم کنیم - ثابت و پویا. انتخاب ثابت را می توان یک بار پیکربندی کرد، بسته به هر داده در سیستم می توان پویا یا برنامه ای را تنظیم کرد.

اصل تنظیم یک انتخاب ثابت در پیکربندی با تنظیم آن در حالت کاربر که در بالا توضیح داده شد تفاوتی ندارد. برای تنظیم انتخاب، باید تنظیمات لیست پویا را باز کنیم.


پنجره ای باز خواهد شد.


انتخاب به همان روشی که در حالت کاربر تنظیم می شود.

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


انتخاب پویا (نرم افزار).

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

مواد و روش ها

اگر پیکربندی در حال توسعه حاوی زیرسیستم BSP "Basic Functionality" باشد، انتخاب نرم افزار در لیست پویا می تواند با استفاده از روش استاندارد نصب شود:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

امضای این روش:

DynamicList نوع: DynamicList - لیستی که می خواهید انتخاب را در آن تنظیم کنید.

نام زمینه نوع: رشته – فیلدی که می خواهید انتخاب را با آن تنظیم کنید.

RightValue نوع: دلخواه - مقدار انتخاب (اختیاری. مقدار پیش فرض: Undefined. توجه: اگر Undefined را پاس کنید، مقدار تغییر نخواهد کرد).

مشاهده مقایسه نوع: نوع مقایسه ترکیب داده ها - شرایط انتخاب.

کارایی نوع: رشته – نمایش عنصر ترکیب داده (اختیاری. مقدار پیش‌فرض: تعریف نشده. اگر مشخص شده باشد، فقط پرچم استفاده با نمایش مشخص شده چاپ می‌شود (هیچ مقداری چاپ نمی‌شود). یک رشته خالی باید ارسال شود تا پاک شود تا مقدار دوباره چاپ شود.)

استفاده نوع: Boolean – برای استفاده از این انتخاب پرچم گذاری کنید (اختیاری. پیش فرض: تعریف نشده).

حالت نمایش نوع: ItemDisplayModeDataCompositionSettings – نحوه نمایش این انتخاب به کاربر. مقادیر ممکن:

  • Element Display ModeData Layout Settings.Quick Access – در گروه تنظیمات سریع بالای لیست.
  • Element Display ModeData Layout Settings. Normal – در تنظیمات لیست (در زیر منوی More).
  • ElementDisplayModeDataCompositionSettings.Inaccessible – از تغییر این انتخاب توسط کاربر جلوگیری کنید.

IdentifierUserSettings نوع: رشته – شناسه منحصر به فرد برای این انتخاب (برای ارتباط با تنظیمات کاربر استفاده می شود).

برای حذف یک مقدار انتخاب، باید از روش استاندارد استفاده کنید:

کلینت سرور. RemoveGroupElementsSelectionDynamicList()

امضای این روش:

DynamicList نوع: DynamicList – ویژگی فرمی که می‌خواهید انتخاب را برای آن تنظیم کنید.

نام زمینه نوع: رشته – نام فیلد طرح بندی (برای گروه ها استفاده نمی شود).

کارایی نوع: رشته – نمایش یک فیلد طرح.

اگر BSP در سیستم وجود نداشته باشد، انتخاب را می توان به طور مستقل با استفاده از شی DataComposition Field تنظیم کرد.

Selection Element = List.Selection.Elements.Add(Type("DataComposition Selection Element")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // عنصر انتخابی انتخابی RightValue = "Ivanov";

این انتخاب ردیف هایی را انتخاب می کند که در آنها مقدار "نام کامل" = "ایوانوف" وجود دارد.

برای استفاده از «AND»، «OR»، «NOT» منطقی، نوع داده DataCompositionSelectionElementGroup در نظر گرفته شده است.

Selection Group = List.Selection.Elements.Add(Type("Group of DataComposition Selection Elements")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; عنصر انتخاب = گروه انتخاب عناصر افزودن(نوع("عنصر انتخاب ترکیب داده")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.RightValue = "ایوانوف"; عنصر انتخاب = گروه انتخاب عناصر افزودن(نوع("عنصر انتخاب ترکیب داده")); Selection Element.LeftValue = NewDataCompositionField("Name"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.RightValue = "Petrov";

این انتخاب ردیف هایی را انتخاب می کند که در آنها مقدار "نام کامل" = "ایوانوف" یا "پتروف" وجود دارد.

انتخاب در لیست پویا با تغییر متن درخواست لیست پویا نیز قابل انجام است. این گزینه زمانی کار می کند که لیست پویا از طریق یک "درخواست سفارشی" ساخته شود.


برای انجام این کار، شرط "WHERE IS THE TRUE" را به متن درخواست اضافه کنید...


همانطور که می بینید، این رویکرد از نظر نوشتن کد فشرده تر است. هرچه شرایط انتخاب در قسمت جدولی که می‌خواهیم تنظیم کنیم پیچیده‌تر باشد، گزینه استفاده از انتخاب از طریق عنصر انتخاب ترکیب داده‌ها دست و پاگیرتر خواهد بود. با این حال، مثال با تغییر متن درخواست دارای اشکالاتی است - این پیاده سازی در برابر تغییرات کد مقاوم نیست. به عنوان مثال، شما چنین پیاده سازی را انجام داده اید و فراموش کرده اید، اما اگر در آینده می خواهید متن درخواست را با اضافه کردن یک عملگر بعد از WHERE (ORDER، GROUP) تغییر دهید، باید به خاطر داشته باشید که کد برنامه حاوی:

List.QueryText = List.QueryText + " And DirectoryUsers.Full Name V(""Ivanov""""""Petrov"")";

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

WHERE (NOT &SelectionInstalled OR DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("SelectionSet", Full Name.Quantity() > 0); List.Parameters.SetParameterValue("نام کامل مجاز"، نام کامل);

در اینجا نام کامل یک آرایه است.

همانطور که می بینید، 2 خط کد در مقابل 10. کدام روش را انتخاب کنید به وظیفه برنامه خاص بستگی دارد.