نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • تلفن ویندوز
  • 1c با قسمت جدولی سند کار کنید. نحوه پر کردن جزئیات یک ردیف جدول بصورت برنامه ای

1c با قسمت جدولی سند کار کنید. نحوه پر کردن جزئیات یک ردیف جدول بصورت برنامه ای

قطعات جدولی برای بسیاری از اشیاء در 1C وجود دارد:

  • کتاب های مرجع
  • مدارک
  • گزارش ها و پردازش
  • نمودارهای حسابداری
  • طرح های انواع ویژگی ها
  • طرح های نوع محاسبه
  • فرآیندها و وظایف کسب و کار

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

بیایید به چند روش کار با قطعات جدولی نگاه کنیم.

نحوه دور زدن قسمت جدولی

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

برای هر ردیف از TabularPart Loop

گزارش (String.TablePartAttribute) ;

چرخه پایان ;

در هر تکرار به یک متغیر خطخط بعدی قسمت جدولی منتقل می شود. مقادیر ویژگی رشته را می توان با عبارت بدست آورد String.AttributeName.

نحوه دریافت و دور زدن ردیف های انتخاب شده از بخش جدول

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

برای دریافت لیستی از خطوط انتخاب شده، از کد زیر استفاده کنید:

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

SelectedLines = FormElements. TableFieldName. خطوط انتخابی؛

برای هر ردیف از حلقه سطرهای انتخاب شده

//محتوای حلقه

چرخه پایان ;

نحوه انتخاب سطرهای قسمت جدولی (فیلد جدول) به صورت برنامه نویسی و حذف انتخاب

برای حذف برنامه‌ای ردیف‌ها در فیلد جدول:

عناصر فرم. TableFieldName. SelectedStrings. Clear() ;

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

برای هر CurrentRow از TablePart Loop
عناصر فرم. TableFieldName. خطوط انتخاب شده افزودن (CurrentRow) ;
چرخه پایان ;

نحوه پاک کردن صفحه گسترده

قسمت جدولی. Clear() ;

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

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

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

عناصر فرم. TableFieldName. داده های جاری؛

برای فرم های مدیریت شده:

عناصر. TableFieldName. داده های جاری؛

چگونه یک ردیف جدید به صفحه گسترده اضافه کنیم

افزودن یک خط جدید به انتهای بخش جدول:

NewRow = TablePart. اضافه کردن() ؛

افزودن یک خط جدید در هر نقطه از بخش جدول (خطوط بعدی جابجا خواهند شد):

NewRow = TablePart. چسباندن (شاخص)
//Index - تعداد خط اضافه شده. شماره گذاری خطوط از صفر شروع می شود.

خط جدید. Attribute1 = "Value" ;

نحوه پر کردن جزئیات یک ردیف جدول بصورت برنامه ای

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

رویه ایجاد شده توسط handler دارای سه پارامتر است:

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

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

Procedure TabularPartAt EditingStart(Element، NewRow، Copy)

//اگر کاربر در حال ویرایش یک ردیف موجود است، هیچ کاری انجام ندهید
اگر NewString نیست پس
برگشت؛
EndIf

//اگر رشته جدید است، حساب را تنظیم کنید
TextString = عنصر. داده های جاری؛ // ردیف فعلی بخش جدولی را دریافت کرد
TekString. AccountAccount = نمودارهای حساب. خود حمایت کننده. حساب مورد نظر؛
پایان رویه

در چارچوب این مقاله، پردازش پر کردن قسمت جدولی را در 1C 8.3 برای پیکربندی معمولی 1C: ERP 2.1 خواهیم نوشت. بیایید فرض کنیم که هدف از کار، تعیین تخفیف دستی 5٪ برای همه اقلام موجودی این سند است. نمونه‌ای از مقاله را می‌توان توسط یا سایر پردازش‌های مشابه دانلود کرد.

این دستورالعمل برای فرم های مدیریت شده (8.2 و 8.3) است. برای فرم های معمولی (8.1، 8.2) می توانید از .

یک درمان جدید را در رایانه خود ایجاد و ذخیره کنید. ابتدا باید چند مرحله ثبت نام را انجام دهید.

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

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

پر کردن قسمت جدولی سند

بیایید یک فرم پردازش جدید ایجاد کنیم.

حالا باید یک دستور جدید روی فرم ایجاد شده اضافه کنیم. فرض بر این است که به طور خودکار داده ها را در قسمت جدولی یک و چند سند (فرم لیست آنها) به طور همزمان تغییر می دهد و بعداً آنها را یادداشت می کند.

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

&در رویه سرور دستور (فرمان، اشیاء مقصد) را برای هر سفارش مشتری از Objects Destination Loop Object سفارش مشتری = سفارش مشتری را اجرا کنید. GetObject(); برای هر خط TK از CustomerOrderObject. رشته چرخه کالا TZ. درصد تخفیف دستی = 5 ; رشته TZ. مقدار تخفیف دستی = رشته TK. مقدار * 0 . 05; چرخه پایان ; OrderCustomer Object. نوشتن() ؛ چرخه پایان ; پایان رویه

ثبت پردازش خارجی

1C را در حالت "Enterprise" اجرا کنید و دایرکتوری "Additional report and processing" را باز کنید. آن را از طریق منوی "همه توابع" پیدا کنید.

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

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

همچنین این دکمه در کارت خود سند موجود خواهد بود.

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

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

بنابراین، در 1C، کار با جداول جایگاه برجسته ای را اشغال می کند.

به جداول 1C "قطعات جدول" نیز می گویند. کتب مرجع، اسناد و دیگران آنها را دارند.

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

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

//گزینه 1 - دسترسی متوالی به نتایج پرس و جو

// جدول را دریافت کنید
Selection = Query.Execute().Select();
// تمام ردیف های نتیجه پرس و جو را به ترتیب دور بزنید
در حالی که حلقه Selection.Next()
گزارش (Selection.Name);
چرخه پایان

//گزینه 2 - آپلود در جدول مقادیر
Query = New Query ("SELECT Name FROM Directory.Nomenclature");
// جدول را دریافت کنید
جدول = Query.Execute().Upload().
// سپس می توانیم تمام خطوط را نیز دور بزنیم
برای هر ردیف از حلقه جدول
گزارش (String.Name);
چرخه پایان
//یا به صورت دلخواه به رشته ها دسترسی پیدا کنید
String = Table.Find("Shovel", "Name");

یک ویژگی مهم این است که در جدولی که از نتیجه پرس و جو به دست می آید، تمام ستون ها به شدت تایپ می شوند. به این معنی که با درخواست فیلد Name از جستجوی Nomenclature، ستونی از نوع String با طول مجاز بیش از N کاراکتر دریافت خواهید کرد.

جدول روی فرم (کلینت ضخیم)

وقتی جدول روی فرم قرار می گیرد کاربر با آن کار می کند.

اصول اولیه کار با فرم ها را در درس روی و در درس روی بحث کردیم

بنابراین، بیایید جدول را روی فرم قرار دهیم. برای این کار می توانید جدول را از کنترل پنل بکشید. به طور مشابه، می توانید کنترل Form/Insert را از منو انتخاب کنید.

داده ها را می توان در یک پیکربندی ذخیره کرد - سپس باید یک بخش جدولی موجود (که قبلاً اضافه شده است) از شی پیکربندی که فرم آن را ویرایش می کنید انتخاب کنید.

روی دکمه "..." در ویژگی Data کلیک کنید. برای دیدن لیست قطعات جدولی، باید شاخه Object را گسترش دهید.

هنگام انتخاب یک قسمت جدولی، خود 1C ستون هایی را به جدول روی فرم اضافه می کند. رشته های وارد شده توسط کاربر در چنین جدولی به طور خودکار همراه با دایرکتوری/سند ذخیره می شوند.

در همان ویژگی Data می توانید یک نام دلخواه وارد کنید و نوع ValueTable را انتخاب کنید.

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

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

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

برای مدیریت جدول باید پنل فرمان را روی فرم نمایش دهید. مورد منو Form/Insert Control/Command Panel را انتخاب کنید.

در ویژگی های نوار فرمان، کادر تکمیل خودکار را انتخاب کنید تا دکمه های نوار ابزار به طور خودکار ظاهر شوند.

جدول روی فرم (مشتری نازک/مدیریت شده)

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

اگر نیاز به قرار دادن جدول مقادیر دارید، یک ویژگی فرم جدید اضافه کنید و نوع آن را در ویژگی های آن مشخص کنید - جدول مقادیر.

برای افزودن ستون‌ها، از منوی دکمه سمت راست ماوس در این ویژگی فرم، آیتم ستون ویژگی افزودن استفاده کنید.

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

برای اینکه جدول دارای نوار فرمان باشد، در قسمت خصوصیات جدول، مقادیر موجود در قسمت Usage - Command bar position را انتخاب کنید.

صادرات جدول به اکسل

هر جدول 1C موجود در فرم را می توان چاپ یا در اکسل آپلود کرد.

برای این کار بر روی فضای خالی جدول کلیک راست کرده و Show List را انتخاب کنید.

در یک کلاینت مدیریت شده (نازک)، اقدامات مشابه را می توان با استفاده از آیتم منو All actions/Display list انجام داد.

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