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

2 نظر در مورد "استفاده از ACS برای چاپ اسناد" "

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

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

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

ویژگی "PrinterName" به شما امکان می دهد چاپگری غیر از حالت پیش فرض برای چاپ تنظیم کنید. نام باید با نام چاپگر تنظیم شده در سیستم مطابقت داشته باشد:

TabDoc.PrinterName \u003d "iR1133 کانن"؛

هنگام چاپ دسته ای از اسناد ، می توانید با تنظیم پرچم جمع کردن ، در وقت صرفه جویی کنید:

TabDoc.ParseCopy \u003d درست است؛

تعداد نسخه ها را می توان به شرح زیر مشخص کرد:

TabDoc. تعداد نسخه \u003d 5؛

البته می توانید زمینه ها را مشخص کنید:

TabDoc.Legin margin \u003d 20؛ // حاشیه چپ 20 میلی متر ، سایر حاشیه 10 میلی متر (به طور پیش فرض)

چند ویژگی صفحه دیگر:

TabDoc.Page Orientation \u003d صفحه جهت گیری.مناظر؛ TabDoc.InventsOnPage \u003d 2؛ // 2 صفحه TabDoc در این صفحه قرار می گیرد. // مشابه تنظیمات بزرگنمایی عرض صفحه

در صورت لزوم می توانید مقیاس مقیاس خاصی را به درصد (خاصیت) مشخص کنید "مقیاس چاپ" ).

ویژگی "اندازه صفحه" به شما اجازه می دهد اندازه های استاندارد صفحه - "A3" ، "A4" ، "A5" را تنظیم کنید (لیست کاملی از گزینه ها در راهنمای 1C موجود است).

TabDoc.Page Size \u003d "A3"؛ // حرف A باید انگلیسی باشد

برای اندازه کاغذ سفارشی ، می توانید طول و عرض صفحه (به میلی متر) را تعیین کنید:

TabDoc.PageSize \u003d "سفارشی"؛ // غیر استاندارد TabDoc.PageHeight \u003d 350؛ TabDoc.Page عرض \u003d 350 ؛

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

TabDoc.HeaderFooter.Office \u003d درست است؛ // عنوان TabDoc چاپ خواهد شد. FooterSizeTop \u003d 7؛ // اندازه پاورقی 7 میلی متر (پیش فرض 10 میلی متر) TabDoc.HeaderFooter.VerticalPosition \u003d VerticalPosition.Top؛ TabDoc.HeaderFooter.StartPage \u003d 2؛ // هدر از صفحه دوم نمایش داده می شود FontFootboard \u003d New Font ("Courier New"، 8، True)؛ TabDoc.HeaderFooter.Font \u003d HeaderFont؛ // italic font TabDoc.HeaderFooter.TextVCenter \u003d "سرآیند"؛ TabDoc.HeaderFooter.TextRight \u003d "صفحه [& PageNumber] از [& PagesTotal]"؛ // pagination TabDok.HeaderFooter.TextLeft \u003d "[& Date]"؛ // تاریخ فعلی

سند تولید شده با استفاده از روش برای چاپ ارسال می شود "نوع ()". دو گزینه تماس احتمالی وجود دارد.

1) مستقیماً به چاپگر:

TabDoc.Print (ModePrintDialogueUse استفاده نکنید)؛ TabDoc.Print (درست)

2) قبل از چاپ ، گفتگوی چاپ نمایش داده می شود:

TabDoc.Print (ModePrintDialogueUse.Use)؛ TabDoc.Print (نادرست) ؛

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

TabDoc. تعداد صفحات ()؛

با استفاده از روش ها "CheckOutput ()" و "CheckConnection ()" شما می توانید با تنظیمات فعلی چاپگر ، تعیین کنید که یک سند صفحه گسترده یا آرایه ای از مناطق سند صفحه گسترده در صفحه متناسب باشد.

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

برای وارد کردن شکستگی صفحه ، روشها اجازه می دهد "جداکننده صفحه DisplayVerticalPage ()" و "جدا کننده صفحه OutputHorizontalPage ()" .

بنابراین ، می توانید چاپ صفحه به صفحه را کنترل کرده و پر کردن صفحه را کنترل کنید:

If Not TabDoc.CheckOutput (آرایه ای از گزینه های خروجی) سپس TabDoc.OfferHorizontalPageSplitter ()؛ اگر پایان دهید

ویژگی مهم پلت فرم 1C: Enterprise 8.2 جداسازی دقیق خواص و روش ها با توجه به زمینه اجرا است. اگر تمام خصوصیات فوق در هر زمینه ای موجود باشد ، روش های ذکر شده در تین کلاینت در دسترس نیستند. یک استثنا روش "Print ()" است که در دسترس بودن آن ، به دلایل واضح ، محدود به سمت مشتری است. این بدان معنی است که تشکیل یک سند صفحه گسترده باید در سرور انجام شود و برای چاپ در روش کارفرما ارسال شود.

بیایید یک گزارش خارجی ایجاد کنیم که اطلاعات گزارش در مورد مانده سهام و گردش آن را نشان دهد. اطلاعات مورد نیاز توسط یک درخواست با استفاده از مجموعه داده ای از نوع "درخواست" درخواست می شود که حاوی متن درخواست است:
انتخاب کنید
_DemoNomenclature.Ref AS نامگذاری
نام واقعی PLACE
از
Directory._DemoNomenclature AS _DemoNomenclature
جایی که
NOT _DemoNomenclature. علامت را حذف کنید
AND NOT _DemoNomenclature. این یک گروه است
;

////////////////////////////////////////////////////////////////////////////////
انتخاب کنید
نام واقعی
_Demo بقایای کالا در محل ذخیره سازی PlacesRenains وTurnover. ذخیره سازی ،
_DemoGoodsBalancesInStoragePlacesBalancesAndTurnover.QuantityBelencer تعادل ،
_DemoGoodsBalancesInStoragePlacesBalances andTurnovers.QuantityFinal Balance،
_Demo بقایای کالا در محل ذخیره سازی مکانها باقی مانده و گردش مالی تعداد درآمد ،
_DemoGoodsBalancesInStoragePlacesBalances andTurnovers.QuantityExpend،
_Demo بقایای کالاها در محل ذخیره سازی مکانها باقی مانده و گردش مالی.
از
ActualNomenclature AS ActualNomenclature
LEFT CONNECTION ثبت تجمع.
نرم افزار به روز نامگذاری. نامگذاری \u003d _DemoProductsBalancesIn StoragePlacesBalances & Turnovers .Nomenklature

در نتیجه ، این گزارش شامل زمینه های زیر است (شکل 1 را ببینید):

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

  1. تنظیم هدرهای زمینه در برگه ACS "مجموعه داده ها" ؛
  2. پیکربندی هدرهای زمینه در برگه "تنظیمات" ACS ؛
  3. تنظیم برنامه ای سربرگ های زمینه ؛
  4. تنظیم سرصفحه گزارش با استفاده از طرح بندی ؛
  5. نهایی شدن نتیجه (سند صفحه گسترده) ؛
بیایید آنها را به طور دقیق در نظر بگیریم.

1. تنظیم سرصفحه ها در زبانه ACS "مجموعه داده ها"

در اینجا همه چیز ساده است ، در مقابل ویژگی فیلد "Title" یک تیک قرار دهید (یعنی عنوان خودکار را لغو کنید) و متن عنوان مورد نظر را وارد کنید (شکل 4 را ببینید).
اگر می خواهید شکل ظاهری را برای کل قسمت تنظیم کنید ، و نه فقط برای عنوان آن ، در این صورت ویژگی فیلد "Appearance" وجود دارد که می توانید با آن شکل خاصی از فیلد را تنظیم کنید ، به عنوان مثال فونت را تغییر دهید یا تنظیم کنید رنگ زمینه (نگاه کنید به شکل 5).
اینجاست که دانش من درباره برگه "مجموعه داده ها" به پایان می رسد.

2. پیکربندی هدرهای زمینه در برگه "تنظیمات" ACS

برای تنظیم عنوان یک فیلد ، قسمت مورد نیاز را انتخاب کنید ، کلیک راست کنید تا منوی زمینه باز شود و مورد "تنظیم عنوان" را انتخاب کنید (شکل 6 را ببینید)
برای گروه بندی فیلدها (مثلاً براساس نوع اطلاعات) ، باید یک فیلد گروه بندی اضافه کنید و فیلدهای مورد نیاز را در آن قرار دهید (شکل 7 را ببینید) ، لانه سازی نامحدود است.
همچنین می توانید با ویژگی "مکان" قسمت گروه بندی بازی کنید که نوع گروه بندی فیلدها را تعیین می کند.

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

3. تنظیم سرصفحه های زمینه به صورت برنامه ای

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

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

// 1. تنظیمات سفارشی را دریافت کنید.
تنظیمات CD \u003d ThisObject.SettingsComposer.GetSettings ()؛

// 2. مقدار پارامتر "Period" را بدست آورید که از آن تاریخ شروع و پایان دوره را تعیین می کنیم.
ParameterPeriod \u003d NewDataCompositionParameter ("دوره")؛
Period \u003d CD Settings.DataParameters.FindParameterValue (ParameterPeriod) .Value؛
شروع دوره \u003d دوره. تاریخ شروع ؛
PeriodEnd \u003d Period.EndDate؛

// 3. اطلاعات مربوط به تعریف مجدد هدر زمینه را آماده کنید. برای این کار ، ایجاد کنید
// آرایه ای که حاوی اطلاعات باشد: FieldName - مقادیر ویژگی "Path" در
// مجموعه داده (شکل 1 را ببینید) ، عنوان - متن عنوان.
FieldList \u003d آرایه جدید؛
pStartPeriod \u003d قالب (شروع دوره ، "DF \u003d dd.MM.yyyy؛ DF \u003d" تاریخ خالی "")؛
FieldStartBallow \u003d ساختار جدید ("FieldName، Title"، "QuantityStartingBalance"، "Remaining by" + Symbols.PS + lineStartPeriod)؛
ListFields.Add (تراز FieldStart) ؛
stEndPeriod \u003d قالب (EndPeriod ، "DF \u003d dd.MM.yyyy؛ DF \u003d" تاریخ خالی "")؛
قسمت EndRemainment \u003d ساختار جدید ("FieldName، Title"، "NumberEndRemainment"، "Balance by" + Symbols.PS + lineEndPeriod)؛
ListFields.Add (FieldEnd Remaining)

// 4. لیستی از فیلدهایی را که در گروه "باقی مانده" هستند (شکل 7 را ببینید) و
// با چرخاندن عناصر ، یک عنوان جدید تنظیم کنید.
SelectedFields \u003d تنظیمات CD. // سطح اول فیلدها.
SelectedFieldsRemains \u003d SelectedFields.Element ها؛ // گروههای باقیمانده قسمتها.
برای هر فیلد انتخاب شده از قسمتهای انتخاب شده چرخه باقی می ماند
برای هر عنصر آرایه از فهرست Fields حلقه
CompositionField \u003d NewDataCompositionField (ArrayElement.FieldName)؛
If SelectedField.Field \u003d قسمت چیدمان سپس
SelectedField.Header \u003d ArrayItem.Header؛
پایان اگر
پایان چرخه ؛
پایان چرخه ؛

// 5. تنظیمات کاربر تغییر یافته را دوباره بارگیری کنید.
ThisObject.SettingsComposer.DownloadSettings (تنظیمات CD).

گزارش نتیجه (شکل 10 را ببینید):
روش سنگین تر از همه موارد بالا است ، اما من آن را دوست دارم.

4- تنظیم سرصفحه گزارش با استفاده از طرح بندی

برای سفارشی سازی انعطاف پذیرتر ظاهر گزارش در ACS ، ایجاد طرح بندی ارائه شده است. در تنظیمات گزارش ، یک "رکورد دقیق" دیگر گروه بندی ایجاد کنید و نام "رشته DZ" را برای این گروه بندی تنظیم کنید (شکل 11 را ببینید).
در زبانه طرح بندی ها ، طرح هدر گروه بندی را اضافه کنید. برای طرح در سند صفحه گسترده ، یک سرصفحه گزارش ایجاد کنید (هدر گزارش باید به اندازه نمایشگرهای رکورد دقیق ، دارای هدرهای زمینه باشد) و منطقه سند صفحه گسترده را برای چیدمان نشان دهید (شکل 12 را ببینید).
در نتیجه ، این گزارش دارای عنوان زیر است (شکل 13 را ببینید):

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

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

5. نهایی شدن نتیجه (سند صفحه گسترده)

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

بیایید شروع کنیم. تولید استاندارد را غیرفعال کنید ، برای این کار در ماژول گزارش برای رویداد هنگام ComposingResult متغیر StandardProcessing را روی False قرار دهید و طرح خود را از نتیجه بنویسید:
پردازش استاندارد \u003d نادرست ؛
Layout Composer \u003d New DataComposition Layout Composer؛
LayoutComposition \u003d LayoutComposer.Run (
اینObject.DataCompositionSchema ،
ThisObject.SettingsComposer.Settings،
رمزگشایی داده ها)
پردازنده ترکیب \u003d پردازنده جدید ترکیب داده
LayoutProcessor.Initialize (LayoutData ، DecodeData ، True) ؛
OutputProcessor \u003d NewDataCompositionOutputResultProcessorTo TabularDocument؛
OutputProcessor.SetDocument (DocumentResult) ؛
OutputProcessor.Output (LayoutProcessor) ؛
با جزئیات بیشتر ، طرح برنامه ای نتیجه گزارش در مقاله شرح داده شده است

نتیجه ترکیبی به یک سند صفحه گسترده - متغیر DocumentResult - منتقل می شود. بعلاوه ، پس از تولید نتیجه و خروجی آن به یک سند صفحه گسترده ، ما یک کد می نویسیم تا متن سلول را با دیگری جایگزین کنیم. به عنوان مثال ، در عنوان گزارش ، نام گروه بندی "Remains" را به "Remains of stock" تغییر دهید (شکل 14 را ببینید):
Cell \u003d DocumentResult.FindText ("باقی می ماند")؛
اگر سلول است<> تعریف نشده پس
Cell.Text \u003d "مورد باقی می ماند"؛
پایان اگر

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

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

P.S. شاید شما در زرادخانه خود روش دیگری برای طراحی سربرگ های زمینه دارید؟

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

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

برای نمایش پارامترهای ACS به شکل معمول دو روش وجود دارد:

  • خروجی جدول تنظیمات پارامتر به طور کامل
  • خروجی پارامترهای منفرد به عنوان فیلدهای ورودی.

جدول تنظیم پارامترهای نمایش داده شده در فرم مشابه جدول تنظیم پارامترهای تولید شده توسط ACS است. برای نمایش آن در فرم ، باید یک کنترل ایجاد کنید TabularField، در آن ملک داده هانشان دادن تنظیمات آهنگساز تنظیمات پارامترهای داده

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

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

  1. بیایید جزئیات گزارش مربوط به پارامترها را ایجاد کنیم. در مثال ما ، این موارد ضروری خواهد بود تاریخ شروع ، تاریخ پایان ، سازمان... بیایید انواع داده های مربوطه را تنظیم کنیم.
  2. بیایید یک قسمت ورودی روی فرم برای هر یک از پارامترها ایجاد کرده و آنها را از طریق ویژگی پیوند دهیم داده ها با جزئیات گزارش برای هر قسمت ورودی ، خوب است یک کتیبه در کنار نام پارامتر ایجاد کنید تا کاربر بفهمد کدام پارامتر را ویرایش می کند.
  3. برای هر قسمت ورودی ، باید روال مربوط به کنترل کننده رویداد را ایجاد کنید وقتی تغییر می کند، که مقدار انتخاب شده توسط کاربر را بر روی پارامترهای ACS تنظیم می کند. در مثال ، من یک رویه ایجاد کردم و آن را برای تغییر وقایع برای هر سه قسمت ورودی اختصاص دادم. یعنی وقتی یک پارامتر تغییر می کند ، هر سه تنظیم مجدد می شوند. از نظر عملکرد ، این به احتمال زیاد کارآمد نیست ، اما از آن زمان به بعد پارامترهای زیادی وجود ندارد ، تفاوت قابل توجه نیست. با تعداد زیادی پارامتر ، ارزش نمایش تنظیمات هر یک را در یک روش جداگانه دارد. بنابراین ، کد روش برای کنترل کننده وقتی تغییر می کند به این شکل خواهد بود:

    پارامترهای روش OnChange (مورد)

    ParameterDateStart \u003d تنظیم کننده پیوند دهنده. تنظیمات. پارامترهای داده عناصر. Find ("StartPeriod") ؛ // جستجو با نام پارامتر ACS انجام می شود
    ParameterDateStart. کاربرد \u003d درست ؛ // از پارامتر هنگام انتخاب استفاده خواهد شد
    ParameterDateStart. مقدار \u003d تاریخ شروع ؛ // به پارامتر مقدار ویژگی گزارش اختصاص داده می شود

    ParameterDateCon \u003d تنظیمات پیوند دهنده. تنظیمات. پارامترهای داده عناصر. Find ("EndPeriod") ؛
    ParameterDateCon. کاربرد \u003d درست ؛
    ParameterDateCon. Value \u003d پایان روز (پایان تاریخ)؛

    ParameterOrg \u003d تنظیم کننده پیوند دهنده. تنظیمات. پارامترهای داده عناصر. پیدا کردن ("سازمان") ؛
    پارامتر کاربرد \u003d درست ؛
    پارامتر ارزش \u003d سازمان ؛

    پایان رویه

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

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

  • دکمه "انتخاب گزینه" را در صفحه گزارش قرار دهید
  • قسمت "OnDate" را روی فرم قرار دهید

کد نمونه: طرح بندی ProcedureFormSelectOptions (دکمه) \u003d GetLayout ("MainDataCompositionSchema")؛ spVariants \u003d لیست جدید مقادیر؛ برای هر گزینه از Layout.OptionsSettings CyV spVariants.Add (option.Settings ، option.P Presentation) ؛ پایان چرخه ؛

choice \u003d spVariants.SelectItem ()؛ If Choice \u003d Undefined سپس Return؛ پایان اگر

تنظیمات آهنگساز. بارگذاری تنظیمات (انتخاب مقدار).

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

روش OnDateWhenChanging (Element) Generate ()؛ پایان رویه

فرم روش () FormElement.Result.Clear ()؛ SettingsComposer.Settings.DataParameters.SetParameterValue ("دوره" ، OnDate) ؛ BuildResult (عناصر فرم. نتیجه) پایان رویه

رویه باز () OnDate \u003d CurrentDate ()؛ فرم ()؛ پایان رویه

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

تهیه گزارش گام به گام

  1. یک گزارش در گره Reports ایجاد کنید
  2. در یک گزارش یک طرح بندی ایجاد کنید ، نوع آن Data Commercial Schema است
  3. تنظیم در ویژگیهای گزارش: طرح اصلی ترکیب داده \u003d طرح ایجاد شده
  4. در خصوصیات گزارش ، زیر سیستم را که به آن تعلق دارد تنظیم کنید (گزارش در Enterprise در قسمت بالای صفحه نمایش نشان داده می شود)
  5. ایجاد یک درخواست در طرح بندی (مورد: افزودن مجموعه داده - درخواست)
  6. در زبانه Parameters در Layout ، علامت همه خطوط را در ستون Access Restriction بردارید - یعنی همه پارامترها برای ویرایش توسط کاربر در دسترس خواهند بود
  7. در برگه تنظیمات Layout ، در پنجره ای که گره Report نمایش داده می شود ، بدون تعیین قسمت گروه بندی ، یک گروه بندی جدید ایجاد کنید - یک خط دقیق ایجاد می شود
  8. در برگه تنظیمات Layout ، در پنجره ای که مجموعه دیگری از برگه ها نمایش داده می شود ، گزینه های اضافی را انتخاب کنید. زبانه Parameters - همه پارامترها را با یک علامت مشخص کنید و روی هر پارامتر روی دکمه کلیک کنید Properties مورد تنظیمات سفارشی ، پنجره تنظیمات پارامتر باز می شود ، جایی که باید کادر را علامت بزنید - پارامتر را در تنظیمات سفارشی وارد کنید
  9. در برگه تنظیمات Layout ، در پنجره ای که مجموعه دیگری از برگه ها نمایش داده می شود ، گزینه های اضافی را انتخاب کنید. زبانه SelectedFields - ستونهایی را در آنجا اضافه کنید که در گزارش نمایش داده می شوند
  10. Enterprise را اجرا کنید ، گزارش را باز کنید ، مقادیر پارامتر را تنظیم کنید ، تولید کنید (بررسی کنید که گزینه اصلی برای تولید گزارش انتخاب شده باشد)

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

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

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


  • در ماژول فرم گزارش ، در کنترل کننده رویداد "OnVariantLoadOnServer" (شما همچنین می توانید OnOpening ، اما NOT WhenCreateAtServer را اجرا کنید ، زیرا قبل از بارگیری تنظیمات گزارش اجرا می شود و تنظیمات بازنویسی می شوند) به صورت برنامه ای پارامتر را تنظیم کنید:

رویه & AtServer هنگام بارگیری OptionOnServer (تنظیمات)

// تنظیم پارامتر Settings \u003d Report.Configuration Composer.Settings؛ Settings.DataParameters.SetParameterValue ("پایگاه اطلاعاتی" ، Report.InformationBase)؛ پایان رویه

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

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

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

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

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

در ماژول فرم:

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

ThisForm.ComposeResult ()؛

پایان رویه

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

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

  • ایجاد یک وضعیت در یک آزمون مشتری از طریق جدول وضعیت راحت تر است
  • فرم گزارش را دریافت کنید - فرم \u003d GetForm ("Report.Process.Motion.Report Form") ؛
  • نوع مورد نیاز گزارش را بارگیری کنید - پارامتر پسوند فرم گزارش "VariantKey" را تنظیم کنید (نام تنظیمات در الگوی ترکیب داده ها)
  • تنظیمات گزارش مورد نیاز را بارگیری کنید -؟ برای پر کردن پارامتر پسوند فرم گزارش "UserSettings" (نوع "UserDataCompositionSettings") کار نکرد ، همه چیز پیچیده است ، به زیر مراجعه کنید.
  • فرم باز - فرم. باز ()
  • اجرای شکل گیری - فرم .ComposeResult ()؛
  • محتویات فرم سند صفحه گسترده را بررسی کنید نتیجه - خوب است که توابع مقایسه ای با مرجع mxl داشته باشید
  • بستن فرم - فرم بستن ()؛ - یا شاید نیازی به باز کردن آن نیست ، باید بررسی کنید

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

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

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

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

یک طرح واقعاً کارا:

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

  • دوره از نوع دوره استاندارد
  • انتخاب نوع ListValues \u200b\u200b(داشتن یک ساختار بهتر است اما در لیست انواع پارامترها و همچنین نوع دلخواه وجود ندارد)

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

دوره \u003d دوره استاندارد جدید ؛ period.Variant \u003d VariantStandardPeriod.ArbitraryPeriod؛ period.StartDate \u003d currentDate؛ period.EndDate \u003d فردای تاریخ؛

selection \u003d لیست جدید مقادیر؛ selection.Add (Testing.GetObject (stSituation، "BP1")، "BusinessProcess")؛

stParameters \u003d ساختار جدید ("کلید متغیر ، دوره ، انتخاب" ، "اصلی" ، دوره ، انتخاب)؛ // OpenFormModally ("Report.Process Movement.Form.ReportForm"، stParameters)؛ form \u003d GetForm ("Report.Process Movement.Form.Report Form"، stParameters)؛

3- در قسمت کنترل کننده های رویداد ، پارامترها را تنظیم کنید

& AtServer Function cnGet (لیست ، نمایش) صادرات برای هر مورد از لیست لیست حلقه اگر مورد. مشاهده \u003d مشاهده سپس بازگشت مورد. ارزش؛ پایان اگر پایان چرخه ؛ بازپرداخت تعریف نشده عملکرد نهایی

& OnServer SetValueUserSettings (تنظیمات ، نام ، مقدار) برای هر عنصر از تنظیمات. حلقه عناصر IfTypeValue (عنصر) \u003d نوع ("DataCompositionSettingsParameterValue") سپس If String (element.Parameter) \u003d نام سپس عنصر. Value \u003d Value؛ element.Usage \u003d درست است؛ پایان اگر پایان اگر پایان چرخه ؛ پایان رویه

& روی روی سرور SetValueCustomSelection (تنظیمات ، نام ، مقدار) برای هر مورد از تنظیمات. حلقه عناصر IfTypeVal (مورد) \u003d نوع ("DataCompositionFlection") سپس برای هر انتخاب از مورد. حلقه عناصر اگر ردیف (انتخاب. ارزش چپ) \u003d نام سپس انتخاب .RightValue \u003d مقدار ؛ selection.Use \u003d درست است؛ پایان اگر پایان چرخه ؛ پایان اگر پایان چرخه ؛ پایان رویه

رویه & AtServer هنگام بارگیری OptionOnServer (تنظیمات)

CurrentVariantName \u003d PresentCurrentVariant؛

تنظیمات \u003d Report.ConfigurationComposer. تنظیمات ؛ Settings.DataParameters.SetParameterValue ("پایگاه اطلاعاتی" ، Report.InformationBase)؛

پایان رویه

& AtServer روش هنگام بارگیری تنظیمات کاربر OnServer (تنظیمات) تنظیمات \u003d Report.ConfigurationComposer.UserSettings؛

<> "00010101" سپس تنظیمات \u003d Report.ConfigurationComposer.UserSettings؛ مقدار SetUserSetting (تنظیمات ، "دوره" ، Parameters.Period) ؛ پایان اگر

ssBusinessProcess \u003d spGet (Parameters.Selection ، "BusinessProcess") ؛ اگر ssBusinessProcess<> Undefined سپس SetCustomSelectionValue (تنظیمات ، "BusinessProcess" ، ssBusinessProcess) ؛ پایان اگر

پایان رویه

یادداشت:

  • پارامترهای داده وجود دارد ، یعنی آنچه در پارامترهای درخواست ACS تنظیم شده است
  • بعضی از آنها در تنظیمات مختلف در UserSettings اختصاص داده شده اند (در ویژگی های پارامتر یک پرچم وجود دارد "شامل در تنظیمات کاربر")
  • حتی اگر هنگام بارگیری بر روی سرور ، مقادیر مورد نیاز در پارامترهای داده بارگیری شوند ، فرمی باز می شود که تنظیمات ذخیره شده برای آخرین بار بصورت خودکار بارگیری می شوند. این تنظیمات هنگام ایجاد گزارش ، "تنظیمات داده" را قطع می کنند
  • در کنترل کننده WhenLoadingUserSettings در سرور ، شی تنظیمات ارسال شده است یک کپی تنظیمات واقعی ، بنابراین برای تغییر تنظیماتی که در فرم ظاهر می شود ، باید شی Report را پر کنید تنظیمات آهنگساز تنظیمات کاربر.

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

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

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

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

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

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

برای اطلاعات بیشتر مراجعه کنید گسترش زبان جستجو برای سیستم ترکیب داده (1Cv8)

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

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

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

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

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

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

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

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

جمع (زمان) / 3600.0

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

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

مشخصات تنظیم پارامترهای سیستم ترکیب داده

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

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

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

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

شی SettingsComposer ویژگی خاصی برای کار با پارامترهای داده دارد تنظیمات آهنگساز تنظیمات پارامترهای داده

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

تنظیمات \u003d Report.ConfigurationComposer. تنظیمات ؛ Settings.DataParameters.SetParameterValue ("پایگاه اطلاعاتی" ، Report.InformationBase)؛

انتخاب

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

شی SettingsComposer ویژگی خاصی برای کار با انتخاب دارد تنظیمات برگزیده آهنگساز انتخاب.

مثلا: تنظیمات \u003d Report.ConfigurationComposer. تنظیمات ؛ Settings.DataParameters.SetParameterValue ("پایگاه اطلاعاتی" ، Report.InformationBase)؛

برای هر مورد از Parameters.Selecting CyclePickingElement \u003d Settings.Finding.Element.Add (Type ("DataCompositionFindingElement")؛ SelectionElement.ComparisonType \u003d DataCompositionComparisonType.Equal؛ SelectionItem.LeftValue \u003d NewDataCompositionField (element.View)؛ SelectionItem.RightValue \u003d element.Value؛ پایان چرخه ؛

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

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

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

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

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

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

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

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

اگر پارامترها. دوره ، تاریخ پایان<> "00010101" سپس تنظیمات \u003d Report.ConfigurationComposer.UserSettings؛ تنظیمات. عناصر. ارزش \u003d پارامترها: دوره؛ پایان اگر

پایان رویه

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

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

DataDecryption \u003d تعریف نشده

Layout Composer \u003d New DataComposition Layout Composer؛ LayoutComposer \u003d LayoutComposer.Run (DataCompositionSchema، PreferencesComposer.Settings، DecodingData)؛

پردازنده ترکیب \u003d پردازشگر ترکیب داده جدید LayoutProcessor.Initialize (LayoutDetails، New Structure ("Data"، GetExternalSourceData ())، DecryptionData)؛

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