جزئیات اولیه فرم جزئیات فرم مدیریت شده (1Cv8) 1c جزئیات فرم را اضافه کنید

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

به عنوان مثال، یک دایرکتوری نامگذاریممکن است چندین فرم داشته باشد که برای اهداف خاص مورد استفاده قرار می گیرد - ویرایش یک عنصر دایرکتوری، نمایش یک لیست و غیره:

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

فرم های پایه

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

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

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

بنابراین، اگر کاربر بخواهد فهرست دایرکتوری را مشاهده کند نامگذارییا لیست اسناد دریافت کالا و خدمات، سیستم فرم مربوطه را که به عنوان فرم لیست برای این اشیاء تعیین شده است باز می کند.

فرم های تولید شده به صورت خودکار

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

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

پیوند دادن فرم به داده

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

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

به عنوان مثال، اگر یک سند به عنوان ویژگی اصلی فرم اختصاص داده شود دریافت کالا و خدمات، سپس هنگام بستن فرم، سیستم درخواست تایید ثبت و ارسال این سند را خواهد داد. اگر مثلاً یک دایرکتوری را به عنوان ویژگی اصلی فرم اختصاص دهید نامگذاری، پس چنین درخواست تأییدی هنگام بستن فرم ظاهر نمی شود.

ساختار فرم

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

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

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

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

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

توسعه دهنده می تواند ترتیب عناصر را تحت تأثیر قرار دهد تنظیمات مختلف. می تواند ترتیب عناصر را تعیین کند، عرض و ارتفاع مورد نظر را نشان دهد. با این حال، این فقط برخی است اطلاعات اضافی، که به سیستم کمک می کند فرم را نمایش دهد.

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

جزئیات عمومی در 1C 8.3 یک شیء فراداده پلتفرم است که به شما امکان می دهد از یک ویژگی برای بسیاری از اشیاء پیکربندی (دایرکتوری ها، اسناد، نمودارهای حساب ها و غیره) استفاده کنید. شی عمدتاً برای آسان‌تر کردن کار توسعه‌دهنده و جداسازی داده‌ها ایجاد شده است.

جزئیات عمومی ابتدا در نسخه 1C 7.7 پیاده سازی شد، اما توسعه دهندگان بلافاصله آن را در پلتفرم نسخه 8 قرار ندادند. مکانیسم جزئیات عمومی توسط توسعه دهندگان 1C تنها در نسخه 8.2.14 معرفی شد.

اضافه کردن جزئیات عمومی بسیار راحت است تا اشیاء استاندارد را در پیکربندی تغییر ندهید؛ من اغلب آنها را همراه با .

پس از افزودن یک ویژگی کلی، می توان از آن در کوئری ها استفاده کرد و در فرم شی نمایش داد - از نظر ظاهری هیچ تفاوتی با وسایل معمولی ندارد.

تنها محدودیت جزئیات کلی عدم امکان استفاده از آنها در .

بیایید به تنظیمات اولیه و ویژگی های جزئیات عمومی که با سایر اشیاء پیکربندی متفاوت است نگاه کنیم:

ترکیب- فهرستی از اشیاء که از جزئیات عمومی استفاده خواهد شد؛ این تنظیم یادآور تنظیم یک طرح مبادله است.

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

استفاده خودکار— این تنظیم تعیین می‌کند که آیا از لوازم عمومی برای آن دسته از اشیایی که حالت استفاده «خودکار» مشخص شده است استفاده می‌شود یا خیر.

جداسازی داده ها- ما این تنظیم را جداگانه در نظر خواهیم گرفت.

جداسازی داده ها در 1C با استفاده از جزئیات مشترک

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

این مکانیسم به شما امکان می دهد نمایش تنها عناصری را که کاربر می تواند ببیند پیکربندی کنید. به عنوان مثال، شما می توانید بین تمام اشیاء (اسناد، دایرکتوری ها و غیره) که در آن سازمان خاصی نصب شده است، تمایز قائل شوید.

راه اندازی جداسازی داده ها با استفاده از جزئیات عمومی 1C

برای پیکربندی جزئیات کلی، باید جداسازی داده ها را مشخص کنید - تقسیم کنید. بلافاصله پس از کلیک کردن، سیستم پیشنهاد می کند پارامترهای حسابداری پیش فرض ایجاد کند:

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

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

نمونه ای از استفاده از وسایل رایج

بیایید با استفاده از مثالی از پیکربندی قاب و پایه‌ها، به راه‌اندازی پایه‌های عمومی در 1C 8.3 نگاه کنیم. سازمان:

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

راه اندازی ساده است:

  1. ما یک ویژگی عمومی جدید ایجاد می کنیم، نوع را مشخص می کنیم - DirectoryLink.Organization.
  2. در ترکیب ما اسناد خود را ترتیب می دهیم - استفاده کنید.

تمام شد، راه اندازی کامل شد!

نتیجه را ببینیم:

این سیستم جزئیات کلی را "انگار مال شما" نشان می دهد: در درخواست ها، در جزئیات فرم و در مکان های دیگر. این چنین جادویی است! 🙂

شرایط عمومی 1C 8.3 اضافه نشده است

در زیر، اشیاء اصلی 1C که هنگام کار با فرم‌های مدیریت شده استفاده می‌شوند، فهرست شده‌اند. نمونه‌های کد مختصری ارائه شده است که استفاده سنتی از این اشیاء را هنگام نوشتن پیکربندی‌های 1C نشان می‌دهد.

این فرم

در ماژول فرم، در رویه ها استفاده می شود&روی کلاینت و &روی سرور.

به شما امکان می دهد به عناصر فرم و جزئیات دسترسی داشته باشید.

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

ThisForm.Elements.VersionNumber.Header = "v."+ProgramVersion;

دسترسی به ویژگی هایی که در فرم وجود دارد به صورت زیر انجام می شود:

ThisForm.Advertisement Text="سلام رفقا!";

دسترسی ساده به عناصر و جزئیات فرم

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

// عنصر فرم

Elements.VersionNumber.Title = "v."+ProgramVersion;

// جزئیات فرم

Advertisement Text="سلام رفقا!";

ویژگی های بدست آوردن جزئیات فرم (مهم!)

اگر ویژگی فرم دارای یک نوع ساده باشد -رشته، شماره، تاریخ ... سپس می توانید مقدار ویژگی را به سادگی با نام دریافت کنید (تنظیم کنید):

Text=ProductName; // نام محصول یک ویژگی فرم است

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

برای به دست آوردن مقدار یک ویژگی با نوع "پیچیده"، باید از تابع استفاده کنیدFormAttributesValue():

CurrentTable=FormAttributesValue("SelectedConstructionObjects");

برای تنظیم مقدار یک ویژگی "complex"، می توانید از تابع استفاده کنیدValueInFormAttributes(<Значение>, <ИмяРеквизита>) ، هر دو پارامتر مورد نیاز است.

کارکرد FormAttributesValue()و ValueInFormAttributes()فقط روی سرور موجود است

یک شی

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

یا نماد کامل تر:

این شی

شامل خود شیء است. برای دریافت یک شی در یک ماژول شی یا یک ماژول فرم در نظر گرفته شده است.

استفاده: فقط خواندنی

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

جزئیات فرم

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

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

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

پسوند فرم- اینها ویژگی ها، روش ها و پارامترهای فرم اضافی شی ManagedForm هستند، مشخصه شی که عنصر اصلی فرم است.

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

ویژگی ویژگی فرم داده های ذخیره شدهنشانه ای است که تغییر تعاملی جزئیات منجر به تلاش برای قفل کردن داده های فرم برای ویرایش و همچنین نصب اتوماتیکنشانه ای از شکل اصلاح شده

انواع داده در فرم مدیریت شده موجود است

یک فرم مدیریت شده همچنین از نظر نوع داده ای که با آن کار می کند با یک فرم معمولی متفاوت است. اگر فرم منظمبا اکثر انواعی که 1C:Enterprise ارائه می دهد (از جمله انواع DirectoryObject، DocumentObject و غیره) کار می کند، سپس در یک فرم مدیریت شده می توان دسته بندی انواع زیر را تشخیص داد:

  • انواعی که مستقیماً در فرم استفاده می‌شوند، انواعی هستند که در کنار مشتری نازک و وب وجود دارند (به عنوان مثال، Number، DirectoryLink.Products، GraphicScheme، TabularDocument).
  • انواعی که به انواع داده های ویژه تبدیل می شوند - انواع داده های فرم مدیریت شده. چنین انواعی در لیست جزئیات فرم در داخل پرانتز نمایش داده می شوند، به عنوان مثال (DirectoryObject.Products).
  • لیست پویا (برای جزئیات بیشتر به بخش «فهرست پویا» این فصل مراجعه کنید).

تبدیل اشیاء برنامه به داده های فرم

برخی از انواع برنامه ها (مانند DirectoryObject و غیره) در سمت نازک و سرویس گیرنده وب وجود ندارند (برای جزئیات بیشتر به فصل مفهوم برنامه مدیریت شده مراجعه کنید). بنابراین، این پلتفرم برای نشان دادن این گونه برنامه ها در فرم، انواع داده های ویژه ای را معرفی کرده است که برای کار در فرم های مدیریت شده طراحی شده اند. این ویژگی یک برنامه مدیریت شده، تبدیل اشیاء برنامه به شکل داده را ضروری می کند (و بالعکس).

انواع داده های زیر استفاده می شود:

  • Form DataStructure – شامل مجموعه ای از خواص از نوع دلخواه است. ویژگی ها می توانند سایر ساختارها، مجموعه ها یا ساختارهایی با مجموعه باشند. این نوع به عنوان مثال به شکل DirectoryObject نشان داده می شود.
  • FormDataCollection فهرستی از مقادیر تایپ شده، شبیه به یک آرایه است. یک عنصر مجموعه با نمایه یا شناسه قابل دسترسی است. دسترسی با شناسه ممکن است در برخی موارد در دسترس نباشد. این به دلیل نوع شیء کاربردی است که توسط این مجموعه نشان داده شده است. شناسه می تواند هر عدد صحیحی باشد. این نوع، به عنوان مثال، در فرم نشان داده شده است بخش جدولی.
  • Form DataStructureWithCollection یک شی است که به صورت یک ساختار و یک مجموعه نمایش داده می شود. می توان با آن مانند هر یک از این نهادها رفتار کرد. این نوع به عنوان مثال مجموعه ای از رکوردها را در یک فرم نشان می دهد.
  • Form DataTree – یک شی طراحی شده برای ذخیره داده های سلسله مراتبی.

یک شی برنامه توسط یک یا چند عنصر داده فرم نمایش داده می شود. به طور کلی، سلسله مراتب و ترکیب داده های فرم به پیچیدگی و اتصال اشیاء کاربردی فرم مدیریت شده بستگی دارد.

به عنوان مثال، یک سند حاوی یک بخش جدولی با یک شی از نوع FormDataStructure (خود سند) نشان داده می شود که یک شی از نوع FormDataCollection (بخش جدولی سند) تابع آن است.

مهم!هنگام توسعه یک پیکربندی، مهم است که به یاد داشته باشید که اشیاء برنامه فقط در سرور در دسترس هستند، در حالی که اشیاء داده فرم را می توان هم در سرور و هم در سرویس گیرنده استفاده کرد.

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

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

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

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

توجه داشته باشید. باید به خاطر داشت که ویژگی تنظیم شده روی صفت والد بر تمام ویژگی های فرعی تأثیر می گذارد. به عنوان مثال، اگر ویژگی Use همیشه برای قسمت جدولی سند پاک شود، سیستم در نظر می‌گیرد که این ویژگی برای تمام جزئیات فرعی نیز پاک می‌شود (علی‌رغم وضعیت واقعی ویژگی).

روش‌هایی برای تبدیل داده‌های شی برنامه به داده‌های فرم

برای تبدیل اشیاء برنامه به داده های فرم و برگشت، مجموعه ای از روش های جهانی وجود دارد:

  • ValueInFormData()،
  • FormDataInValue()،
  • CopyFormData().

مهم!روش هایی که با اشیاء برنامه کار می کنند فقط در رویه های سرور موجود هستند. روش کپی کردن مقادیر بین داده های فرم در سرور و مشتری در دسترس است، زیرا به اشیاء برنامه به عنوان پارامتر نیاز ندارد.

هنگام تبدیل داده های فرم به یک شی برنامه، باید سازگاری آنها را در نظر بگیرید.

  • ValueInFormData() - یک شی از نوع برنامه را به داده فرم تبدیل می کند.
  • FormDataInValue() – داده های فرم را به یک شی از نوع برنامه تبدیل می کند.
  • CopyFormData() - داده های فرمی را کپی می کند که ساختاری سازگار دارند. در صورت موفقیت آمیز بودن کپی، True یا اگر ساختار شی ناسازگار باشد، False را برمی‌گرداند.

توجه داشته باشید. هنگام انجام اقدامات استاندارد (باز کردن فرم، اجرای دستور Write استاندارد و غیره) یک فرم با جزئیات اصلی، تبدیل به صورت خودکار انجام می شود.

بیایید مثالی از نحوه استفاده از تبدیل داده در الگوریتم های خود ارائه دهیم.

&OnServerProcedure هنگام CreateOnServer (شکست، پردازش استاندارد)

ObjectProduct = Directories.Products.FindByName("Coffeepot").GetObject(); ValueInFormData(ObjectItem، Object);

پایان رویه

&OnClient رویه نوشتن()

WriteOnServer();

پایان رویه

رویه &روی سرور WriteOnServer()

ObjectProduct = FormDataValue(Object, Type("DirectoryObject.Products")); ObjectItem.Write();

پایان رویه

شی ManagedForm همچنین دارای روش های موجود در سرور است:

  • ValueВFormAttribute() – یک شی از نوع برنامه را به ویژگی فرم مشخص شده تبدیل می کند.
  • FormAttributeVValue() – یک ویژگی داده فرم را به یک شی از نوع برنامه تبدیل می کند.

استفاده از این روش‌ها معمولا راحت‌تر است، زیرا برای مثال اطلاعاتی در مورد نوع جزئیات فرم دارند. علاوه بر این، متد Form AttributesValue() مطابقت بین داده های فرم و شی را تنظیم می کند که هنگام تولید پیام استفاده می شود. شما می توانید در این مورد بیشتر در بخش " قابلیت های خدماتیجهت یابی."

بیایید مثالی از استفاده از این روش ها بزنیم.

رویه &روی سرور RecalculateOnServer()

// ویژگی Object را به یک شی برنامه تبدیل می کند. Document = Form AttributesValue("Object"); // محاسبه مجدد را با استفاده از روش تعریف شده در ماژول سند انجام می دهد. Document.Recalculate(); // شی برنامه را به یک prop تبدیل می کند. ValueВFormAttributes (سند، "شیء");

پایان رویه

رابط نرم افزاری

FormDataTree

  • FindById
  • GetItems

شرح:

طراحی شده برای مدل سازی یک درخت در داده های فرم مدیریت شده.

این شی را می توان به/از XDTO سریال کرد. نوع XDTO مربوط به این شی در فضای نام تعریف شده است. نام نوع XDTO:

GetItems

نحو:

GetItems()

ارزش برگشتی:

نوع: Form DataCollection of Tree Elements.

شرح:

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

در دسترس بودن: کلاینت، سرور، تین کلاینت، سرویس گیرنده وب.

FindById

نحو:

FindById(<Идентификатор>)

گزینه ها:

<Идентификатор>(ضروری)

نوع: شماره شناسه عنصر درخت.

ارزش برگشتی:

نوع: FormDataTreeElement.

شرح:

یک عنصر مجموعه را با شناسه دریافت می کند.

در دسترس بودن: کلاینت، سرور، تین کلاینت، سرویس گیرنده وب.

FormDataTreeItem

خواص:

<Имя свойства> (<Имя свойства>)

  • GetId (GetId)
  • GetParent
  • GetItems
  • ویژگی

شرح:

عنصر درخت داده فرم.

FormDataTreeItemCollection

عناصر مجموعه: DataFormTreeElement

برای یک شی، می توان مجموعه را با استفاده از عملگر For every... From... Loop پیمایش کرد. پیمایش عناصر مجموعه را انتخاب می کند. دسترسی به عنصر مجموعه با استفاده از عملگر [...] امکان پذیر است. شاخص عنصر به عنوان آرگومان ارسال می شود.

  • درج کنید
  • اضافه کردن
  • فهرست (IndexOf)
  • شمردن
  • پاک کردن
  • گرفتن
  • حرکت
  • حذف

شرح:

مجموعه ای از عناصر چوبی.

در دسترس بودن: کلاینت، سرور، تین کلاینت، سرویس گیرنده وب.

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

  • FormDataTreeElement، روش GetElements
  • DataFormTree، متد GetItems

ویژگی های کار با درخت ارزش

به روز رسانی درخت

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

اگر هر گره ای در درخت گسترش یافته باشد و یک گره فرعی انتخاب شده باشد، هنگام به روز رسانی درخت با تابع ValueInFormDataسکو می افتد

راه حل: قبل از به روز رسانی باید درخت را پاک کنید.

مثلا:

&روی رویه سرور ClearTree(Elements) برای هر عنصر از عناصر Loop ClearTree(element.GetElements()); چرخه پایان عناصر.Clear(); پایان رویه

&روی رویه سرور Fill Concept Tree() dConcepts = srProperties.Build Concept Tree(OnDate, Meta.CurrentIB()); ClearTree(ConceptTree.GetItems()); ValueInFormData(dConcepts، ConceptTree); پایان رویه

رویه &OnClient OnDateOnChange(Element) Fill ConceptTree(); پایان رویه