• نتایج جستجو بر اساس فرم انتخاب سازنده طرحواره ترکیب داده - برگه تنظیمات گزینه های انتخاب SKD

    سوال: SKD، چگونه می توانم فرم انتخاب مورد نیاز برای یک پارامتر را باز کنم؟


    عصر بخیر گزارشی در مورد ACS وجود دارد، دارای پارامتر Brand - نوع Directory.Nomenclature است. چگونه می توانم فرم انتخاب خاصی را برای این پارامتر فراخوانی کنم؟ من آن را در ACS در تب "Parameters" امتحان کردم، روی پارامتر مورد نظر بلند شدم - روی ستون "Editing Options" دوبار کلیک کنید - کادر "Selection Form" را علامت بزنید و مقدار Directory.Nomenclature.Form.VoiceFormNecessary را وارد کنید. . هنگامی که گزارش را اجرا می کنید، فرم انتخاب همچنان به طور پیش فرض استفاده می شود و نه فرمی که در "انتخاب فرم" مشخص شده است. پیکربندی UT، اشکال منظم. به من بگو pzhl کجا، چه اشکالی دارد؟

    پاسخ:عبارت کلیدی فرم های معمولی، به فرم های مدیریت شده تغییر دهید

    سوال: یک مقدار را در فرم انتخاب انتخاب کنید


    عصر بخیر

    برنامه منظم.

    یک سند وجود دارد. دارای چندین مورد از یک نوع مرجع است، برای مثال "DirectoryLink.Banks"، با مقدار "Bank1".

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

    تا الان کارهای زیر رو انجام دادم:
    رویه Perform SelectionIn SelectionForm (مرجع)
    DirectorySelectionForm = Directories.Banks.GetChoiceForm(,Reference); //فرم انتخاب دایرکتوری Banks را با پارامتر پاس شده Link دریافت کنید
    //من انتخاب را در این فرم انتخاب، با توجه به پیوندی که در props دارم، تنظیم کردم
    HandbookChoiceForm.Selection.Reference.Use = true;
    DirectoryChoiceForm.Selection.Link.Value = پیوند;
    CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False;
    HandbookChoiceForm.Open();
    //اینم کدی که فشردن دکمه Select رو شبیه سازی میکنه چطوری؟؟؟؟
    پایان رویه

    کمک کنید، کسانی که با آنها روبرو شده اند یا ایده هایی دارند.

    متشکرم.

    پاسخ:

    اینطوری شد:

    رویه ExecuteChoiceInChoiceForm(Link, rec) //پارامتر "مرجع" یک پیوند مقدار در فرم سند است. "rec" عنصر فرم فعلی است، یعنی. جعبه را انتخاب کنید
    Dictionary Selection Form = Directories.Banks.Get SelectionForm(,Rec,Reference);
    CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False;
    OpenForm (FormChooseCatalog, rivers,);

    IfCatalogSelectionForm.Open() سپس
    HandbookChoiceForm.Activate();
    EndIf

    HandbookChoiceForm.CurrentItem.CurrentRow = پیوند;
    ChoiceEl = FormCategoryChoice.CurrentItem.CurrentRow;

    اگر ChoiceEl = تعریف نشده یا مقدار پر نشده است (ChoiceEl) پس
    Show("مقدار "+Reference+" در فرم انتخاب جستجو یافت نشد");
    در غیر این صورت
    Handbook Selection Form.NotifyOfChoice(ChoiceEmail);
    EndIf

    پایان رویه

    سوال: دکمه "انتخاب" در فرم انتخاب یا نحوه کلیک بر روی دکمه "انتخاب".


    عصر بخیر

    برنامه منظم.

    نظر شما در مورد نحوه کلیک بر روی دکمه "انتخاب" در فرم انتخاب سند / فهرست چیست؟

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

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

    پاسخ:به نظر می رسد مشکل را حل کرده است ... چند بار آزمایش.

    بعد از 17 دقیقه اضافه شد
    تا اینجا به این صورت عمل می کند:

    1C
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 رویه انجام SelectionIn SelectionForm (مرجع، rec) //پارامتر "link" یک پیوند مقدار در فرم سند است. "rec" عنصر فرم فعلی است، یعنی. جعبه را انتخاب کنید DirectorySelectionForm = فهرست راهنماها. بانک ها. GetSelectionForm(, Req, Link ) ; FormChoiceDirectory. عناصر فرم. فهرست فهرست. HierarchicalView = False ; OpenForm(DirectoryChoiceForm, rivers, ); IfFormSelectionDirectory. Open() سپس HandbookChoiceForm. Activate() ; EndIf FormChoiceDirectory. CurrentElement. CurrentLine = پیوند ; ChoiceEl = FormChoiceCatalog. CurrentElement. CurrentLine ; اگر ChoiceEmail = تعریف نشده یا مقدار پر نشده است (ChoiceEmail) سپس گزارش ("Value" + Reference + "در فرم انتخاب جستجو یافت نشد") ؛ در غیر این صورت، HandbookChoiceForm. اطلاع در موردChoice(ChoiceEl)؛ EndIf پایان رویه

    سوال: چرا مقدار از فرم انتخاب دیگر انتخاب نمی شود؟


    فیلدی در فرم سند از نوع مرجع DocumentLink.PaymentOrderOutgoing وجود دارد. پس از انتخاب، فرمی برای انتخاب دستور پرداخت خروجی باز می شود. هنگامی که یک مقدار انتخاب می شود، در فرم انتخاب شده جایگزین نمی شود. من در ابتدا فکر کردم پردازش انتخاب بر روی پردازش استاندارد و برنامه فراموش کرده است که پردازش انتخاب را تجویز کند. اما همه چیز معمولی است. باز کردن فرم برنامه‌ای نیست، در زمینه‌ای که انتخاب می‌کنم هیچ رویدادی را در آن انجام ندهم. چه چیزی می تواند باشد؟
    --- ادغام پیام ها، 2 ژانویه 2018 ---

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

    پاسخ:

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

    سوال: لطفا به من کمک کنید تا انتخاب را در فرم انتخاب دایرکتوری تنظیم کنم


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

    پاسخ:

    الکترون گفت:

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

    برای نمایش کلیک کنید...

    تصمیم گرفته شده است. یک صفحه کلید مجازی در فرم انتخاب دایرکتوری "پیمانکاران" ساخته است.
    وقتی هر کلیدی را فشار می دهید، کد فعال می شود
    ResultSearchByAttribute = CurrentRequest.FindByName(N,False);
    FormElements.CatalogList.CurrentLine=SearchResultByAttribute;
    که در آن H یک متغیر حاوی مقدار کلید است

    سوال: فرم انتخاب با انتخاب لیستی از مقادیر


    عصر بخیر. برای حل یک مشکل ساده به کمک شما نیاز دارم.

    پیکربندی ZUP 2 .5 .113 .1 یک گزارش خارجی وجود دارد، گزارش دارای ویژگی "list of bases"، نوع لیست مقادیر است.
    یک فرم گزارش وجود دارد. در فرم گزارش، فیلد "فهرست ورودی پایه ها"، ValueType = "ValueList" و ListValueType = "ReferenceReference.ObjectPropertyValue".

    چگونه با انتخاب مالک برخی از اموال فرم انتخاب باز کنیم؟

    پیشاپیش از شما متشکرم!

    پاسخ:در تب Parameters یک ستون Editing Parameters وجود دارد. در آنجا می توانید سعی کنید پیوندهای پارامتر انتخاب یا پارامتر انتخاب را پیکربندی کنید

    سوال: فرم انتخاب سند 1s 8.3 را به صورت برنامه ای باز کنید


    چگونه می توان فرم انتخاب سند را به صورت برنامه نویسی فرم 1s 8.3 باز کرد و مقدار انتخاب شده را در یک متغیر ذخیره کرد؟

    گوگل نوعی راه حل برای عصا ارائه کرد، من می خواهم بدانم چگونه آن را به درستی انجام دهم.

    پاسخ:+ () PM هم چنین روش جادویی دارد - دانلود.

    بخش جدولی
    بار
    نحو:

    دانلود(<Таблица>)
    گزینه ها:

    <Таблица>(الزامی) نوع: ValueTable.
    جدول مقادیر از جایی که قسمت جدولی بارگذاری شده است. ستون های جدول با نام ترکیب می شوند.
    شرح:

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

    دسترسی:

    سرور، کلاینت ضخیم، اتصال خارجی.
    توجه داشته باشید:

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

    Composition.Load(CompositionTable);

    سوال: ارسال پارامترها به فرم انتخاب.


    من راهنمایی می خواهم.
    از سند "فروش کالا و خدمات" فرم انتخاب قرارداد (ERP) نامیده می شود. conf تصحیح شد، من آن را با استاندارد مقایسه می کنم. در ProcessingCreationOnServer فرم انتخاب، من در Debugger Parameters.Selection نگاه می کنم. من فقط نمی توانم بفهمم لیست انتخاب چگونه تشکیل می شود - هیچ فراخوانی صریحی به این فرم با پارامترها وجود ندارد، فقط یک عنصر انتخابی در ویژگی "ChoiceParametersConnection" وجود دارد، و در حال حاضر چندین عنصر در Parameters.Filter وجود دارد. کسی میتونه بگه کجا رو ببینم

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

    در سازنده پرس و جو، هنگامی که از فرم تنظیم منبع داده فراخوانی می شود، برای طرح ترکیب داده ها. یک برگه "ویژگی ها" وجود دارد که استفاده از آن به وضوح در اسناد توضیح داده نشده است. در این مقاله سعی خواهم کرد توضیح دهم که چگونه و چرا از ویژگی ها در ACS استفاده می شود. در پیکربندی های معمولی، مکانیسم خواص و مقادیر دارایی به طور فعال استفاده می شود، که تقریباً برای هر شی در دسترس است. در ابتدا، در کتاب های مرجع، این مکانیسم در 7.7 پیکربندی پیاده سازی شد. اکنون این مکانیسم با استفاده از طرحی از انواع ویژگی ها و ثبت اطلاعات اجرا می شود، اما ایده یکسان باقی می ماند. هنگامی که برای اولین بار با نیاز به استفاده از این مکانیسم در طرح ACS مواجه شدم، برای مدت طولانی رنج بردم، پرس و جوهای تودرتو سازماندهی کردم، به انتخاب اصلی پیوستم و در مورد چگونگی در نظر گرفتن امکان انواع جدیدی از ویژگی هایی که این کار را انجام نمی دهند، متحیر بودم. در زمان تهیه گزارش وجود داشته باشد. کل مکانیسم ویژگی ها، از نظر کاربر ساده و منطقی است، تا زمانی که برگه "ویژگی ها" را کشف نکردم، به هیچ پردازشی عادی کمک نمی کند. جدول روی برگه بسیار دمدمی مزاج است، یا کل خط را به درستی وارد می کنید، یا اصلاً از وارد شدن به خط خودداری می کنید، سیستم به شما اجازه نمی دهد خطی را که به طور کامل پر نشده است، "برای بعد" بگذارید. بنابراین، اجازه دهید به جزئیات بپردازیم. ستون اول: نوع - در اینجا نوع شی را انتخاب می کنیم که ویژگی ها به آن محدود می شود، به عنوان مثال، "DirectoryReference.Nomenclature" به این معنی که اکنون می توان مقادیر ویژگی را برای همه اشیاء از نوع مشخص شده دریافت کرد. سپس در ستون بعدی Source of Views باید پارامترهای سورس انواع ویژگی ها را تنظیم کنیم. گزینه های جدول و پرس و جو امکان پذیر است، چرا به گزینه پرس و جو نیاز دارم، بعداً خواهم گفت، اکنون آیتم جدول را انتخاب می کنیم. در ستون Types of features، باید جدول infobase را انتخاب کنیم که انواع ویژگی های مورد نیاز را ذخیره می کند، در مثال ما "Plan of Types of Characteristics. Properties of Objects" خواهد بود. علاوه بر این، مقادیر در دسترس ما برای انتخاب در ستون‌های Key Field، Name Field و Value Type Field مستقیماً به فیلدهای جدولی که انتخاب کرده‌ایم بستگی دارد. در قسمت Key، Link، در قسمت Name - View (کاربر آن را به عنوان نام ویژگی مشاهده می کند) و در قسمت Type به ترتیب ValueType را انتخاب می کنیم. حال به سراغ منبع ارزش ها می رویم. منبع مقادیر، ثبت اطلاعات "Values ​​of ObjectsProperties" خواهد بود، بنابراین ما در ستون منبع مقادیر - جدول و در ستون مقادیر ویژگی ها - "ثبت اطلاعات. ارزش ها" را انتخاب می کنیم. از ویژگی های اشیاء». در ستون های Object، Property، Value، فیلدهای مربوط به ثبت Object، Property، Value را انتخاب کنید. به نظر می رسد که این همه است. ما به تنظیمات طرح می رویم، یک گروه بندی بر اساس محصولات اضافه می کنیم و یک گروه بندی فرعی به آن اضافه می کنیم، به عنوان مثال، توسط Brands، چنین خاصیتی داریم. ما لیست ویژگی های گروه بندی Nomenclature را گسترش می دهیم و ... هیچ خاصیتی را در آنجا نمی بینیم: واقعیت این است که ما در پیکربندی هستیم که از آنجا به داده ها دسترسی وجود ندارد. چگونه تنظیم مورد نظر را انجام دهیم؟ راحت‌ترین راه برای انجام این کار استفاده از کنسول ترکیب داده، کنسول روی دیسک ITS یا موجود در زیرسیستم «ابزار توسعه‌دهنده» است. اما شما همچنین می توانید تنظیمات گزارش را در حالت Enterprise نیز باز کنید. بنابراین، بیایید همان تنظیمات را باز کنیم، اما در حالت سازمانی: همانطور که می بینید، ما "جزئیات" جدید را اضافه کرده ایم، در حالی که ...

    ویژگی های ایجاد گزارش در 1C v8 در حالت کلاینت ضخیم

    چگونه یک گزینه را انتخاب کنیم؟

    • در پانل گزارش، دکمه "انتخاب گزینه" را قرار می دهیم.
    • در فرم فیلد "OnDate" را قرار می دهیم

    مثال کد: Form Action ProcedureOptionSelection(Button) layout = GetLayout("MainDataCompositionSchema"); spOptions = New ValueList; برای هر گزینه از Layout.OptionsSettings Loop spOptions.Add(Option.Settings, Option.View); چرخه پایان

    select = spOptions.SelectItem(); اگر انتخاب کنید = Undefined سپس Return; EndIf

    SettingsComposer.LoadSettings(selection.Value);

    فرم()؛ پایان رویه

    رویه OnDateOnChange(Element) Generate(); پایان رویه

    Procedure Form() Form Elements.Result.Clear(); SettingsComposer.Settings.DataParameters.SetParameterValue("Period", OnDate); ComposeResult(FormElements.Result); پایان رویه

    رویه OnOpening() OnDate = CurrentDate(); فرم()؛ پایان رویه

    ویژگی های ایجاد گزارش از طریق ACS

    ایجاد گزارش گام به گام

    1. یک گزارش در گره Reports ایجاد کنید
    2. یک Layout در گزارشی ایجاد کنید که نوع آن طرحواره ترکیب داده است
    3. در مشخصات گزارش، مجموعه: طرح ترکیب داده اصلی = طرح‌بندی ایجاد شده را تنظیم کنید
    4. در ویژگی های گزارش، زیرسیستم مربوط به آن را تنظیم کنید (گزارش در Enterprise در پانل ناوبری بالا نمایش داده می شود)
    5. ایجاد یک پرس و جو در Layout (مورد: افزودن مجموعه داده - Query)
    6. در تب Parameters Layout، باید تیک تمام خطوط ستون محدودیت دسترسی را بردارید - i.e. تمامی پارامترها توسط کاربر قابل ویرایش خواهد بود
    7. در تب تنظیمات Layout، در پنجره ای که گره گزارش نمایش داده می شود، یک گروه بندی جدید بدون تعیین قسمت گروه بندی ایجاد کنید - یک خط دقیق ایجاد می شود.
    8. در برگه تنظیمات Layout، در پنجره ای که مجموعه دیگری از نشانک ها نمایش داده می شود، گزینه اضافی را انتخاب کنید. برگه پارامترها - همه پارامترها را با یک علامت علامت بزنید و روی هر پارامتر روی دکمه ویژگی های عنصر تنظیمات کاربر کلیک کنید، پنجره تنظیمات پارامتر باز می شود، جایی که باید کادر را علامت بزنید - شامل پارامتر در تنظیمات کاربر
    9. در برگه تنظیمات Layout، در پنجره ای که مجموعه دیگری از نشانک ها نمایش داده می شود، گزینه اضافی را انتخاب کنید. نشانک SelectedFields - در آنجا باید ستون هایی را اضافه کنید که در گزارش نمایش داده می شوند
    10. Enterprise را راه اندازی کنید، گزارش را باز کنید، مقادیر پارامترها را تنظیم کنید، Generate (بررسی کنید که گزینه Basic برای تولید گزارش انتخاب شده باشد)

    چگونه یک پارامتر قابل ویرایش غیر کاربر اضافه کنیم؟

    به عنوان مثال، ما باید پارامتر پرس و جو را "Infobase" تنظیم کنیم.

    • در فرم طرح‌بندی، در تب Parameters، علامت‌های «شامل در فیلدهای موجود» و «محدود کردن دسترسی» را برای پارامتر مورد نیاز بردارید.
    • در فرم چیدمان، در تب تنظیمات، در زیر تب (در پایین) پارامترها، تیک پارامتر مورد نظر را بردارید، خصوصیات را باز کنید (دکمه با آچار)، در این فرم:
      • تیک «شامل در تنظیمات کاربر» را بردارید
      • حالت ویرایش روی "غیرقابل دسترسی" تنظیم شد


    • در ماژول فرم گزارش، در کنترل کننده رویداد "On VariantLoadOnServer" (شما همچنین می توانید OnOpen، اما نه OnCreateOnServer، زیرا قبل از بارگیری تنظیمات گزارش انجام می شود و تنظیمات بازنویسی می شوند) به صورت برنامه ای پارامتر را تنظیم کنید:

    رویه &روی سرور هنگام بارگیریVariantOnServer(تنظیمات)

    //تنظیم پارامتر تنظیمات = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase); پایان رویه

    چگونه گزینه های گزارش را تنظیم کنیم؟

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

    چگونه گروه بندی را تنظیم کنیم؟

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

    چگونه یک گزارش را به صورت برنامه ای نمایش دهیم؟

    در ماژول فرم:

    &در رویه کلاینت GenerateReportExecute()

    ThisForm.ComposeResult();

    پایان رویه

    چگونه یک گزارش را تست کنیم؟

    شما باید انجام دهید:

    • شکل‌دهی یک موقعیت در آزمون مشتری از طریق جدول وضعیت راحت‌تر است
    • دریافت فرم گزارش - فرم = GetForm("Report.ProcessMovement.Form.ReportForm");
    • نوع گزارش مورد نیاز را بارگیری کنید - پارامتر فرمت گزارش "VariantKey" را تنظیم کنید (نام تنظیم در طرح ترکیب داده ها)
    • بارگیری تنظیمات گزارش مورد نیاز - ? پر کردن پارامتر پسوند فرم گزارش "UserSettings" (نوع "DataCompositionUserSettings") به این ترتیب کار نکرد، همه چیز پیچیده است، در زیر ببینید.
    • فرم باز - form.Open()
    • execute formation - form.ComposeResult();
    • محتویات فرم سند صفحه گسترده را بررسی کنید نتیجه - خوب است که توابع مقایسه با مرجع mxl داشته باشید.
    • بستن فرم - form.Close(); - یا شاید نتوانید آن را باز کنید، باید بررسی کنید

    همچنین ببینید

    • توضیحات: منوی راهنما/دستیار نحو/برگه محتوا/اشیاء رابط برنامه مدیریت شده/افزونه‌های فرم مدیریت‌شده/افزونه فرم مدیریت‌شده برای گزارش/گزینه‌های فرم

    چگونه تنظیمات گزارش مورد نیاز را بارگیری کنیم؟

    در اسناد توضیح داده شده است که چنین پارامتری از پسوند فرم گزارش "UserSettings" از نوع "UserDataCompositionSettings" وجود دارد، اما یک ساختار شی بسیار پیچیده وجود دارد، استفاده از آن ممکن نبود.

    طرح واقعاً کارآمد:

    1. ایجاد پارامترها در گزارش

    • نوع دوره StandardPeriod
    • انتخاب نوع ValueList (بهتر است ساختار داشته باشید، اما در لیست انواع پارامترها وجود ندارد و همچنین یک نوع دلخواه)

    2. پارامترهای مورد نیاز را به رویه GetForm ارسال کنید:

    period = New StandardPeriod; period.Variant = VariantStandardPeriod.CustomPeriod; period.StartDate = currentDate; period.EndDate = فردا تاریخ;

    انتخاب = فهرست جدید مقادیر. selection.Add(Testing.GetObject(stSituation، "BP1")، "BusinessProcess");

    stParameters = ساختار جدید ("OptionKey, Period, Filter", "Main", period, filter); // OpenFormModally("Report.ProcessMovement.Form.ReportForm"، stParameters); form = GetForm("Report.ProcessMovement.Form.ReportForm"، stParameters);

    3. پارامترها را در handlers رویداد فرم تنظیم کنید

    تابع &AtServer cGet(cList، View) صادرات برای هر مورد از ListList حلقه اگر item.View = view سپس Return item.Value; EndIf چرخه پایان بازگشت تعریف نشده؛ EndFunctions

    رویه &روی سرور SetUserSettingValue(تنظیمات، نام، مقدار) برای هر عنصر از Setting.Elements حلقه اگر ValueType(element) = Type("DataCompositionSettingsParameterValue") سپس اگر String(element.Parameter) = Name سپس element.Value = Value; element.Use = true; EndIf EndIf چرخه پایان پایان رویه

    رویه &روی سرور SetCustomFilterValue(تنظیمات، نام، مقدار) برای هر عنصر از Settings.Elements حلقه If ValueType(element) = Type("DataComposition Selection") سپس برای هر Element.Elements انتخاب از Elements Loop If String(selection.LeftValue) سپس RightValue = Value را انتخاب کنید. انتخاب.استفاده = درست; EndIf چرخه پایان EndIf چرخه پایان پایان رویه

    رویه &روی سرور هنگام بارگیریVariantOnServer(تنظیمات)

    CurrentVariantName = CurrentVariantRepresentation;

    تنظیمات = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    پایان رویه

    &AtServer Procedure WhenLoadingCustomSettingsAtServer(Settings) Settings = Report.SettingsComposer.UserSettings.

    <>"00010101" سپس تنظیمات = Report.SettingsComposer.UserSettings; SetUserSettingValue (تنظیمات، "دوره"، Parameters.Period)؛ EndIf

    ssBusinessProcess = spGet(Parameters.Filter، "BusinessProcess"); اگر ssBusinessProcess<>تعریف نشده سپس SetCustomFilterValue(تنظیمات، "BusinessProcess"، sBusinessProcess); EndIf

    پایان رویه

    یادداشت:

    • پارامترهای داده وجود دارد، یعنی آنچه در پارامترهای پرس و جو ACS تنظیم شده است
    • برخی از آنها در تنظیمات نوع در UserSettings اختصاص داده شده اند (در ویژگی های پارامتر یک پرچم "شامل در تنظیمات کاربر" وجود دارد.
    • حتی اگر هنگام بارگیری روی سرور، مقادیر لازم در پارامترهای داده بارگیری شود، فرمی باز می شود که تنظیمات ذخیره شده آخرین بار به طور خودکار در آن بارگیری می شود. این تنظیمات هنگام ایجاد یک گزارش، تنظیمات داده را «نادیده می‌کنند».
    • در کنترل کننده OnLoadingUserSettingsOnServer، شیء ارسال شده تنظیمات است کپی 🀄تنظیمات واقعی، بنابراین برای تغییر تنظیماتی که در فرم ظاهر می شود، باید شی Report.SettingsComposer.UserSettings را پر کنید.

    چگونه پارامترهای پرس و جوی متعدد (لیست) را در SKD ایجاد کنیم؟

    پرس و جو باید از عبارت استفاده کند "در (&ParameterName)"(به عبارات بولی در زبان پرس و جو 1Cv8 مراجعه کنید)

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

    چگونه پارامترهای پرس و جو را در SKD غیرفعال کنیم؟

    در پرس و جوی SKD، باید از ساختارهایی استفاده کنید که با مهاربندهای فرفری احاطه شده اند "{}" .

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

    برای جزئیات بیشتر، نگاه کنید برنامه افزودنی زبان پرس و جو برای سیستم ترکیب داده (1Cv8)

    چگونه با اسپرد ستونی گزارش تهیه کنیم؟

    برای انجام این کار، در تنظیمات نوع گزارش (ویرایش طرح‌بندی داده‌ها، برگه «تنظیمات»، قسمت بالا سمت راست)، باید «جدول» را به عنوان اولین گروه‌بندی اضافه کنید.

    پس از آن، شاخه های "Rows" و "Columns" در گره "Table" ظاهر می شوند، جایی که گروه بندی های لازم اضافه می شوند.

    چگونه فرمت خروجی فیلدها را سفارشی کنیم؟

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

    دو احتمال وجود دارد:

    1. مقدار ستون "View Expression" را تنظیم کنید
      • در اینجا می توانید یک عبارت زبانی را وارد کنید که رشته مورد نظر را تولید می کند
      • با فیلدهای منبع کار نمی کند
    2. مقدار ستون "طراحی" را تنظیم کنید
      • در طراحی یک ویژگی "Format" وجود دارد - این مقدار شبیه به پارامتر تابع زبان "Format" است، می توانید ظاهر مورد نظر را تنظیم کنید.
      • تبدیل نوع در اینجا انجام نمی شود

    برای فیلدهای منبع، می توانید عبارات محاسبه را تنظیم کنید (برگه "منابع") - به عنوان مثال،

    مقدار (زمان)/3600.0

    برای تبدیل از ثانیه به ساعت

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

    ویژگی های تنظیم پارامترهای سیستم ترکیب داده ها

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

    داده های پارامترها

    پارامترهای داده در پرس و جو (منبع داده) ACS تعریف می شوند.

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

    شی SettingsComposer دارای ویژگی خاصی برای کار با پارامترهای داده است SettingsComposer.Settings.ParametersData

    با فراخوانی نمای قابل تنظیم است

    تنظیمات = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    انتخاب

    انتخاب ها روی داده های دریافتی قرار می گیرند بعد ازاستخراج از منبع داده

    شی SettingsComposer دارای ویژگی خاصی برای کار با انتخاب ها است ComposerSettings.Settings.Selection.

    مثلا: تنظیمات = Report.SettingsComposer.Settings; Settings.DataParameters.SetParameterValue("InfoBase", Report.InfoBase);

    برای هر عنصر From Parameters.Filter LoopFilterElement = Settings.Filter.Elements.Add(Type("DataCompositionFilterItem")); Selection Element.ComparisonType = DataCompositionComparisonType.Equal; SelectionItem.LeftValue = New DataCompositionField(element.View); FilterElement.RightValue = element.Value; چرخه پایان

    تنظیمات سفارشی

    تنظیمات برگزیده کاربر، داده‌هایی را که کاربر می‌تواند در فرم سفارشی کند، تعیین می‌کند.

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

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

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

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

    یک مکان مناسب برای تنظیم مقادیر مورد نیاز، کنترل کننده رویداد "OnLoadingUserSettingsOnServer" پسوند فرم گزارش است.

    رویه &روی سرور هنگام بارگیری تنظیمات کاربر روی سرور (تنظیمات)

    اگر Parameters.Period.EndDate<>"00010101" سپس تنظیمات = Report.SettingsComposer.UserSettings; Settings.Items.Value = Parameters.Period; EndIf

    پایان رویه

    استفاده از منبع داده به عنوان یک شی

    برای استفاده از یک مجموعه داده از نوع شی، باید یک منبع داده خارجی را به متد Initialize شیء Data Composition Processor ارسال کنید.

    رمزگشایی داده = تعریف نشده؛

    Layout Layout Builder = New Data Layout Layout Layout Builder; LayoutLayout = LayoutComposer.Run(DataCompositionScheme, SettingsComposer.Settings, DecodeData);

    CompositionProcessor = NewDataCompositionProcessor; Layout Processor.Initialize(LayoutLayout, New Structure("Data", GetExternalSourceData()), DecodeData);

    یک مثال ساده ضمیمه شده است (برای اینکه نمونه کار کند، کتابهای مرجع "طرفداران" و "قراردادهای طرف مقابل" باید وجود داشته باشد).

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

    تنظیمات اضافی برای فیلدهای ACS.

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

    ستون "ارزش های موجود"به شما امکان می دهد مقادیر موجود برای انتخاب را مشخص کنید و انتخاب کاربر را به محدودیت های خاصی محدود کنید.

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

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

    فیلدهای محاسبه شده

    می توانید فیلدهای محاسبه شده خود را در برگه فیلدهای محاسبه شده ترکیب داده ایجاد کنید.

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

    در ستون فیلد محاسبه شده "Expression" باید یک عبارت دلخواه بنویسید که از فیلدهای ترکیب داده ها با اشاره به مسیر آنها استفاده می کند (ستون "مسیر" در برگه "مجموعه داده ها"). یا می توانید از توابع تبدیل ریاضی استفاده کنید یا می توانید به توابع ماژول های عمومی مراجعه کنید. برای مثال، نام فیلد محاسبه شده را در ستون «مسیر به داده» «انحراف» و در فیلد «عبارت» زیر را بنویسیم.