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

ایجاد عناصر از پیش تعریف شده 1c 8.3. عناصر منظم و از پیش تعریف شده

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

ابتدا، باید خودتان به وضوح درک کنید که عناصر از پیش تعریف شده در پیکربندی و عناصر از پیش تعریف شده در پایگاه اطلاعاتی (IB) وجود دارد. عناصر امنیتی اطلاعات از پیش تعریف شده فنی رایج ترین عناصر فرهنگ لغت هستند که در آنها ویژگی "PredefinedDataName" مشخص می کند که با کدام عنصر پیکربندی از پیش تعریف شده مطابقت دارند. آنها تفاوت بیشتری با عناصر معمولی ندارند. بر این اساس، هر عنصر IB معمولی را می توان از پیش تعریف کرد، هر عنصر معمولی از پیش تعریف شده را. برای این کار کافیست مقدار مورد نظر را در قسمت پایه وارد کنید. "PredfinedDataName".

به صورت دوره‌ای، معلوم می‌شود که این ویژگی ارزشی نیست که توسعه‌دهنده ارائه کرده است. در نتیجه، خطاهایی در کار 1C رخ می دهد. از بحرانی که در آن کار اصولاً غیرممکن است تا غیر انتقادی که در آن منطق الگوریتم ها نقض می شود.

می توان آن را مشروط تشخیص داد سه نوع خطا:
1. "یک مورد از پیش تعریف شده در داده ها وجود ندارد"؛

3. نشانه نامعتبر از یک عنصر از پیش تعریف شده.

1. "یک مورد از پیش تعریف شده در داده ها وجود ندارد" - oعدم وجود یک عنصر از پیش تعریف شده که در پیکربندی در داده های IB توضیح داده شده است.

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

هنگام اشاره به عنصر گم شده در کد "Directories.Types of ContactInformation.EmailContactPerson" پیام نمایش داده می شود.

هنگام ارجاع به یک مورد در درخواست "VALUE (Directory.Types of ContactInformation.EmailContactPerson)" پیام زیر نمایش داده می شود:

این خطا در صورتی رخ می دهد که عنصری در پیکربندی توصیف شده باشد، اما عنصر در پایگاه داده با آن مرتبط نباشد.

برای شروع، اجازه دهید روشن کنیم که این وضعیت همیشه اشتباه نیست. استفاده از داده های از پیش تعریف شده در نوعی منطق برنامه کاملاً ممکن است که برای اکثر کاربران ممکن است استفاده نشود. در این مورد، برای اینکه کتاب مرجع برای همه کاربران پیکربندی تحت فشار قرار نگیرد، منطقی است که عناصر از پیش تعریف شده در پیکربندی تعریف شوند، اما نه اینکه آنها را در تمام سیستم های امنیت اطلاعات ایجاد کنیم، بلکه فقط برای آن دسته از سیستم های امنیت اطلاعات که در آن ها وجود دارد. منطق پیکربندی مورد نیاز استفاده می شود. در این حالت، برنامه‌نویس می‌تواند ویژگی «Data Predefined Update» را برای کتاب مرجع مشخص کند و هنگام دسترسی به عملکرد ماژول، عناصر را به صورت برنامه‌نویسی ایجاد کند. یا اینکه کاربر بتواند به طور مستقل عناصر از پیش تعریف شده ماژول را به عناصر معمولی که دارد متصل کند.

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

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

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

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

درخواست = درخواست جدید; Query.Text = "انتخاب | انواع اطلاعات تماس. پیوند | FROM | دایرکتوری. انواع اطلاعات تماس به عنوان انواع اطلاعات تماس | WHERE | انواع اطلاعات تماس. نام داده از پیش تعریف شده =" " EmailContactPerson"" "؛ ElementNoNo.VD = Request.Run (). Empty ();

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

2. "عنصر از پیش تعریف شده منحصر به فرد نیست" - hعناصر از پیش تعریف شده advoi:

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

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

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

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

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

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

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

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

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

3. نشانه نامعتبر از یک عنصر از پیش تعریف شده.

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

برای این کار کافیست یکی از دستورات را اجرا کنید.

// تعریف یک عنصر IB که به گزارش از پیش تعریف شده مورد نیاز گره خورده است (Directories.Types of ContactInformation.EmailContactPerson) // تعیین عنصر از پیش تعریف شده ای که گزارش انتخابی به آن محدود می شود (ElementRef.Name of PredefinedData)

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

خوب، به طور خلاصه در مورد خطاهای حین عملکرد برنامه یا در حالت پیکربندی:

"مورد از پیش تعریف شده به آن تعلق ندارد<Имя справочника>" - هنگام تلاش برای نوشتن یک عنصر از پیش تعریف شده با نامی که با نام موجود در configurator مطابقت ندارد، خطایی رخ می دهد..

"اشیاء از پیش تعریف شده نمی توانند ورودی های نوع subconto از پیش تعریف شده داشته باشند" - هنگامی که شما سعی می کنید یک عنصر نمودار از پیش تعریف شده حساب ها را تعریف نکنید، خطایی رخ می دهد. برای حذف خطاها، لازم است علامت "Predefined" را برای هر خط از قرارداد فرعی عنصر بردارید.

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

"اقلام از پیش تعریف شده منحصر به فرد نیستند"- هنگام به‌روزرسانی پایگاه اطلاعات به نسخه پیکربندی بدون حالت سازگاری 8.3.4، خطایی در پیکربندی نمایش داده می‌شود. لازم است قبل از به روز رسانی موارد تکراری را بررسی کرده و از بین ببرید.

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

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

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

به عنوان دانشجو وارد شوید

برای دسترسی به مطالب مدرسه به عنوان دانش آموز وارد شوید

زبان پرس و جو 1C 8.3 برای برنامه نویسان تازه کار: تابع VALUE

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

شما بپرسید این شمارش ها و داده های از پیش تعریف شده چیست؟ بیایید همه چیز را به ترتیب در نظر بگیریم.

شمارش ها

شمارش هایک شی برنامه است (به یاد داشته باشید که هنوز وجود دارد دایرکتوری هاو مستندات). چرا به او نیاز بود؟

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

تغییر ناپذیری برگ برنده آنهاست. اینها نوعی ثابت پایگاه داده هستند.

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

تصور کنید اگر او بخواهد از دایرکتوری برای این اهداف استفاده کند چه اتفاقی می افتد؟

در مرحله اول، برخی از کاربران بله را می گیرند و نوعی "کف مریخی" را اضافه می کنند.

ثانیاً کاربر دیگری بله را می گیرد و یکی از جنسیت های موجود را حذف می کند یا نام خود را تغییر می دهد.

و برنامه از این امر جدا می شود ، زیرا برای کار آن لازم است که دقیقاً دو جنس وجود داشته باشد ، یعنی با نام های "مذکر" و "مونث".

برای چنین مواردی، فقط شمارش وجود دارد: یک بار (حتی در مرحله پیکربندی) تمام مقادیر ممکن \ u200b \ u200 را به طور دقیق تنظیم کنید و سپس از آنها در کد برنامه استفاده کنید.

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

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

فقط دو مقدار وجود دارد. با نام های «مرد» و «مونث». آنچه ما نیاز داریم.

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

بنابراین، هنگام پر کردن کارت مشتری، در حال حاضر در حالت کاربر، ما قادر خواهیم بود تنها از دو مقدار Male و Female به عنوان جنسیت مشتری انتخاب کنیم:

اکنون بیایید یک پرس و جو ایجاد کنیم که مشتریان و جنسیت آنها را از پایگاه داده انتخاب کند:

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

آنوقت ما چیزی دریافت نمی کنیم:

زیرا به مقادیر enumeration نمی توان به آن دست یافت. باید با استفاده از تابع به آنها دسترسی داشت معنی:

بنابراین، یکی از وظایف تابع معنی- استفاده از مقادیر enumeration در پرس و جوها.

داده های از پیش تعریف شده

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

در پایگاه داده ما "Gastronome" (در حالت کاربر) کتاب مرجع "واحدهای اندازه گیری" را باز کنید:

به عناصر آن نگاه دقیق تری بیندازید. دایره های زرد در کنار برخی از موارد را می بینید؟ این عناصر (که دایره دارند) هستند داده های از پیش تعریف شده.

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

اول، به این معنی است که عنصر در مرحله پیکربندی توسط برنامه نویس ایجاد شده است (در مورد ما، این عناصر با کدهای 1، 2 و 3 هستند).

و ثانیاً به این معنی است که این عنصر برای عملکرد برنامه بسیار مهم است. اینکه برخی از کدهای پایگاه داده به آن (یا بهتر بگوییم، به نام از پیش تعریف شده آن) گره خورده است.

به همین دلیل است که حذف چنین عنصری به سادگی امکان پذیر نخواهد بود. سعی کنید آن را برای حذف علامت گذاری کنید:

بیایید اکنون به حالت پیکربندی برویم و ببینیم که همان عناصر از پیش تعریف شده (در این مورد، برای مرجع Units) در کجا ایجاد می شوند:

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

برای کالایی با کد 1، این نام تن، با کد 2 - گرم و غیره است. این نام نامیده می شود نام عنصر از پیش تعریف شدهو با این نام است که می توانید از کد (یا از درخواست در مورد ما) به آن مراجعه کنید.

ممکن است بپرسید که چرا نمی‌توان واحدهای اندازه‌گیری را صرفاً با عناصر Ton، Gram و Pack فهرست کرد؟ و همه به این دلیل که در این مورد برای ما مهم است که واحد اندازه گیری مرجع همیشه حاوی برخی از عناصر خاص (تن، گرم و بسته) باشد، اما در عین حال ما نمی خواهیم کاربر را از اضافه کردن برخی از عناصر خود منع کنیم ( کیلوگرم، قطعه و غیره). شما در حال خواندن یک نسخه مقدماتی از درس هستید، دروس کامل پیدا شده است.

بنابراین، عناصر از پیش تعریف شده مطمئناً در اینجا مناسب تر از شمارش هستند.

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

امتحان بده

شروع تست

1. مقادیر شمارش ها تنظیم شده است

2. برای ذخیره لیست انبارها در یک شرکت، نوع

3. برای ذخیره لیست واحدهای اندازه گیری در یک انبار، نوع

4. برای ذخیره نرخ های مالیاتی که لیست آن توسط کاربر نباید تغییر کند، نوع

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

6. برای ذخیره نرخ های مالیاتی که لیست آن توسط کاربر تغییر می کند، نوع

7. داده های از پیش تعریف شده وجود دارد

چاپ (Ctrl + P)

کار با مقادیر از پیش تعریف شده با استفاده از مدیر شی

با استفاده از مدیر شی مربوطه می توانید یک مقدار از پیش تعریف شده در سمت سرور 1C: Enterprise دریافت کنید. رشته ای که پروپ های دریافتی را تعریف می کند به صورت زیر است:

PredefinedValueType.MetadataObjectName.Value


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

● مقدار - می تواند یکی از موارد زیر باشد:
● برای enumerations، نام مقدار enumeration مشخص شده است.

● Route Points. Point Name یک نقطه مسیر فرآیند تجاری است.
در صورتی که نیاز به دریافت نقطه مسیر یک فرآیند تجاری داشته باشید، خطی که مقدار دریافتی را توصیف می کند به صورت زیر خواهد بود:

BusinessProcesses.ObjectNameMetadata.Route Points.RoutePointsName
مثال:


نوع = Enumerations.انواع کالاها.محصولات;
// دریافت داده های جستجوی از پیش تعریف شده.
عنصر = Directories.Currency.RUB;
// نقطه مسیر فرآیند کسب و کار
نقطه = فرآیند کسب و کار تأیید امتیاز مسیر تأیید.

کار با مقادیر از پیش تعریف شده با استفاده از یک تابع مقدار از پیش تعریف شده ()

با توجه به این واقعیت که اشیاء برنامه در سمت مشتری در دسترس نیستند، به دست آوردن ویژگی های از پیش تعریف شده با استفاده از مدیران شی غیر ممکن می شود. بنابراین، برای بدست آوردن آنها روشی از زمینه جهانی PredefinedValue () وجود دارد. پارامتر این روش رشته ای است که توصیف می کند کدام مقدار از پیش تعریف شده را می خواهید دریافت کنید. نحو برای توصیف یک مقدار از پیش تعریف شده مانند عملگر VALUE در زبان پرس و جو است.
رشته ای که پروپ های دریافتی را تعریف می کند به صورت زیر است:

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

● برای enumerations، نام مقدار enumeration مشخص شده است.
● برای به دست آوردن یک مقدار از پیش تعریف شده، نام آن همانطور که در پیکربندی مشخص شده است مشخص می شود.
● نقطه مسیر نام نقطه - نقطه مسیر فرآیند کسب و کار.
● EmptyLink - برای دریافت یک پیوند خالی.
اگر شما نیاز به دریافت مقدار شمارش سیستم دارید، پارامتر متد به شکل زیر خواهد بود:
مقدار SystemEnumerationName.SystemEnum.
برای مثال:

ChartType = PredefinedValue ("ChartType. ConcaveSurface“);
در صورتی که نیاز به دریافت نقطه مسیر یک فرآیند تجاری داشته باشید، خطی که مقدار دریافتی را توصیف می کند به صورت زیر خواهد بود:
مثال:

// مقدار enumeration را دریافت کنید.
نوع = از پیش تعریف شده ارزش("شمارش. انواع کالاها. کالاها");
// مقدار یک لینک خالی را دریافت کنید.
EmptyRef =
معنی از پیش تعریف شده("Document.Invoice.EmptyLink");
// دریافت داده های جستجوی از پیش تعریف شده.
عنصر = از پیش تعریف شده مقدار("دایرکتوری. ارز. روبل")؛
// نقطه مسیر فرآیند کسب و کار
نقطه = مقدار از پیش تعریف شده("BusinessProcess. Approval. Route Point. Approval");

معتبر برای 1C: پلتفرم Enterprise نسخه 8.3.3 و بالاتر بدون حالت سازگاری با نسخه 8.2

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

1.2. در بیشتر موارد توصیه می شود عناصر از پیش تعریف شده به صورت خودکار ایجاد شوند، زیرا دائماً مورد نیاز هستند و لازم است ارجاع به این عناصر از کد ساده شود.
به عنوان مثال، یک کشور از پیش تعریف شده روسیهدر دایرکتوری کشورهای جهان، گروه های دسترسی نمایه از پیش تعریف شده مدیرو غیره.

برای این

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

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

که در آن:

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

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

ج) کد کنترل کننده های به روز رسانی IS که عناصر از پیش تعریف شده را پردازش می کند، نباید در گره های RIB تابع اجرا شود:

اگر بورس برنامه دارد. MasterNode () = نامشخص سپس // عناصر از پیش تعریف شده را پر کنید// ... EndIf;

هنگام استفاده از زیر سیستم "تبادل داده" در پیکربندی کتابخانه زیرسیستم های استاندارد (BSP) نسخه 2.1.4 و بالاتر، الزامات (a) و (b) حذف می شوند.

1.4. برای جداول با عناصر از پیش تعریف شده که در طرح مبادله RIB گنجانده نشده اند (و سایر جداول موجود در طرح مبادله RIB به آنها ارجاع نمی دهند)، توصیه می شود ویژگی را تنظیم کنید. UpdatePredefinedDataدر ارزش Refresh Automaticallyو همچنین در اولین شروع گره برده RIB، به روز رسانی خودکار داده ها را با استفاده از تماس تنظیم کنید:

کتاب های مرجع. نام دایرکتوری>. InstallUpdatePredefinedData (UpdatePredefinedData. UpdateAutomatically);

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

به عنوان مثال، برخی از انواع محاسبات از پیش تعریف شده از نظر انواع محاسبات اقلام تعهدیبه مقادیر گزینه های عملکردی بستگی دارد از Time TrackingEmployeesIn Clock استفاده کنید, استفاده از درآمدهای دست سازو غیره.

برای این

  • در ملک UpdatePredefinedDataکتاب مرجع، نمودار حساب، نمودار انواع مشخصه یا نمودار انواع محاسبات باید روی «به‌روزرسانی خودکار» تنظیم شود.
  • کدی را برای ایجاد (و باطل کردن) یک عنصر از پیش تعریف شده بسته به منطق تجاری ارائه کنید، به عنوان مثال:
اگر GetFunctionalOption ( "استفاده از ردیابی زمان کارکنان") سپس AccrualObject =CalculationType Plans. اقلام تعهدی. CreateCalculationView (); AccrualObject. PredefinedDataName = "حقوق ساعتی"; // ... AccrualObject. نوشتن ()؛ EndIf
  • عدم وجود عناصر از پیش تعریف شده در امنیت اطلاعات در کد برنامه را در نظر بگیرید. در غیر این صورت، هنگام دسترسی به یک عنصر از پیش تعریف شده غیر موجود از کد یا متن درخواست، یک استثنا ایجاد می شود:
... ... ... = طرح انواع محاسبات. اقلام تعهدی. حقوق ساعتی؛ ... ... ... = مقدار از پیش تعریف شده ( "طرح انواع محاسبات اقلام تعهدی حقوق ساعتی") ;

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

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