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

1c 8.3 اختیاری پارامترهای جستجو لیست پویا. تنظیمات لیست پویا

یادداشت های صفحه اصلی از نگاه شیشه ای

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

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

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

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

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

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

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

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

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

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

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

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

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

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

خدمات وبیکی از مکانیسم های پلت فرمی است که برای یکپارچه سازی با سایر سیستم های اطلاعاتی استفاده می شود. این وسیله ای برای پشتیبانی از SOA (معماری سرویس گرا) - معماری سرویس گرا است که استاندارد مدرن برای یکپارچه سازی برنامه ها و سیستم های اطلاعاتی است.

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

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

راه حل کاربردی 1C: Enterprise 8 می تواند هم ارائه دهنده خدمات وب و هم مصرف کننده خدمات وب منتشر شده توسط سایر ارائه دهندگان باشد.

سیستم هایی که از پلتفرم های سخت افزاری و نرم افزاری دلخواه استفاده می کنند می توانند به عنوان مصرف کننده عمل کنند. فناوری خدمات وب مستقل از پلتفرم است.


پیاده سازی فنی خدمات وب

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

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

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

اگر راه حل برنامه یک مصرف کننده خدمات وب شخص ثالث باشد، تعامل بین راه حل برنامه و ارائه دهنده خدمات وب است.

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

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

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

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

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

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

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

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

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

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



نامگذاری را انتخاب کنید. نام. نام به عنوان نام، کالاها و هزینه های فروش. Sklad به عنوان یک انبار، کالاها و هزینه های فروش. لباس به عنوان تعدادی از تاسیسات از یک فهرست. تاسیسات (و اجرا می شود،) به عنوان یک کالا و مصرف.

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

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

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

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

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

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

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

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

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

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

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

برگه تنظیمات

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

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

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

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

رویه &روی سرور فهرست OnCreateOnServer (شکست، پردازش استاندارد). گزینه ها. SetParameterValue("دوره"، پارامترها. تاریخ) ; فهرست کنید. گزینه ها. SetParameterValue("PriceType"، Parameters.PriceType); پایان رویه

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