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

تنظیم یک لیست پویا 1s 8.3. مدیریت و قالب بندی داده های لیست پویا

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

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

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

بریم سراغ خواصش ببینیم چی هست.

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

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

267 درس ویدیویی 1C را به صورت رایگان دریافت کنید:

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

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

ابتدا، بیایید پرس و جوی مورد نیاز خود را با تعادل و قیمت ایجاد کنیم. کم و بیش مثل این:

برگه تنظیمات

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

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

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

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

رویه &روی سرور فهرست OnCreateOnServer (شکست، پردازش استاندارد). مولفه های. SetParameterValue("دوره"، پارامترها. تاریخ) ; فهرست کنید. مولفه های. SetParameterValue("PriceType"، Parameters.PriceType); EndProcedures Home Notes Through the Looking-Glass

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

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

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

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

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

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

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

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

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

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

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

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

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

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

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

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

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

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

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

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

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

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

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

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



یک نامگذاری را انتخاب کنید.

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

رویه &در سرور در CreationAt سرور (شکست، پردازش استاندارد) نامگذاری Remains.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


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

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



&OnServerProcedureOnCreateOnServer(شکست، پردازش استاندارد)RemainsDate = CurrentSessionDate(); آیتم Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); پایان رویه &در رویه مشتری RemainsDateOnChange(Element) Item Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); پایان رویه

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

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

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

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

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

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

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


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

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


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

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


اجازه دهید به کاربر امکان تغییر دوره دریافت موجودی را بدهیم. برای انجام این کار، اجازه دهید ویژگی و عنصر فرم "Date" مرتبط با آن را اضافه کنیم:


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


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




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


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


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



برترین مقالات مرتبط