زنگ

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

روز خوب.

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

مقدمه

بگذارید یادآوری کنم که در گذشته ، در اکثر اوقات ، اغلب می خواستم عنصر فهرست را جستجو کنم تا نام از پیش تعریف شده آن را دریابم. به عنوان مثال ، شما دو همتای از پیش تعریف شده ایجاد کرده و آنرا IPSidorov و OOO Meteor نامگذاری کرده اید. و آنها به نوعی منطق دوختند.

هنگامی که همه چیز اشکال زدایی و پردازش شد ، معلوم شد که کار برعکس است و منطق IP برای LLC لازم است ، و منطق LLC برای IP است. ما می گویم "مشکلی نیست" و در حالت شرکت ، عناصر را تغییر نام می دهیم. از این گذشته ، خزیدن به کد بسیار مشکل تر است. یک سال می گذرد و کار جدیدی برای شما تعیین شده است: برای SP Sidorov ، پیکربندی برخی منطق دیگر. شما به قسمت تنظیمات صعود می کنید ، منطق را می نویسید ، شروع به بررسی می کنید و هیچ کاری انجام نمی شود ، زیرا در تنظیم کننده IPSidor ، و در شرکت - Meteor LLC. مغز شکسته است و شما می خواهید این جیب را از بین ببرید. ساده ترین و واضح ترین راه نمایش نام کالای از پیش تعریف شده در فرم لیست است. در اینجا کمین است ، شما می توانید نام از پیش تعریف شده را در 8.2 فقط با روش دریافت کنید. و روش ناراحتی آن است ، در درخواست قابل دریافت نیست. آن اولین ناراحتی دریافت نام از پیش تعریف شده از لینک دایرکتوری است.

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

اکنون در تجارت

اولین مورد این است که دایرکتوری دارای ویژگی "داده های از پیش تعریف شده به روز شده" است.

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

خیلی جالب ، چرا؟ چگونه یک مورد را در دایرکتوری ایجاد کنیم؟ و همانطور که می خواهید ، می توانید ایجاد کنید یا می توانید آن را با یک موجود متصل کنید. اکنون دایرکتوری دارای ویژگی "نام داده های از پیش تعریف شده" است. ما مورد فهرست را بطور معمول از طریق "Directories. Accounts. Element () ایجاد می کنیم" را ایجاد می کنیم و آن را با "نام داده های از پیش تعریف شده" برابر با نام عنصر از پیش تعریف شده پر می کنیم. یا اگر این عنصر از قبل وجود داشته باشد ، موضوع آن را می گیریم و دوباره آن را با "نام داده های از پیش تعریف شده" پر می کنیم. همه.

و در آخر کمی شربت

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

از توجه شما ممنونم.

هنگام کار روی سکوی 1C: Enterprise 8.x ، اغلب لازم است که کد برنامه را به عناصر فهرست معمولی (نه از پیش تعریف شده) وصل کنید. به عنوان مثال ، یک سازمان ممکن است دارای پنج نوع قیمت باشد که تقریباً در همه مکانیسم ها مورد استفاده قرار می گیرد. در این حالت ، ارجاع برنامه ای به یک قیمت خاص در بهترین حالت یا با فشار دادن کد روی یک فهرست ، در بدترین حالت با نام کالا انجام می شود.

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

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

علاوه بر این ، اگر به نام یا کد عناصر پوشه متصل شوید ، پس از آن که به یک عنصر پیوند پیدا کردید ، همیشه یک جستجو در جدول دایرکتوری انجام می شود. علیرغم اینکه جزئیات استاندارد سیستم توسط DBMS نمایه می شود ، جستجوی آنها در بعضی موارد می تواند منابع قابل توجهی را بدست آورد. علاوه بر این ، انجام این کار منطقی تر است جستجوی جستجو طبق جدول مرجع ، اگر بیایید بگوییم ، پیوندی به یک عنصر قبلاً "از قبل شناخته شده است" است.

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

البته می توانید عناصر از پیش تعریف شده را به هر یک از فهرست ها اضافه کنید و دسترسی به آنها بسیار ساده تر خواهد بود. با این حال ، تغییر اشیاء نمونه باعث می شود روند به روزرسانی پیکربندی از بسته های فروشنده پیچیده شود.

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

یک راه حل متوقف

ماهیت راه حل جهانی به شرح زیر خواهد بود: دایرکتوری ایجاد می شود که توسعه دهنده عناصر از پیش تعریف شده را اضافه می کند. ویژگی "Value" به دایرکتوری اضافه شده است ، نوع آن بستگی به مقادیری دارد که مکاتبات "مورد فهرست پیش تعریف شده -\u003e مقدار پیوندی" ایجاد می شود. ساختار ابرداده فهرست به شرح زیر است (تصویر زیر را مشاهده کنید).

برای دریافت یک مورد از پیش تعریف شده بهترین گزینه استفاده از یک روش جهانی است "مقدار از پیش تعریف شده (<Имя>)" . مسیر کامل به عنصر از پیش تعریف شده به عنوان یک پارامتر به متد منتقل می شود. نحو مشابه تابع مقدار پرس و جو "VALUE ()" است.

برای سهولت در توسعه ، توصیه می کنم که عملکرد را حذف کنید تا مقدار مرتبط با عنصر از پیش تعریف شده در ماژول عمومی را بدست آورید. در پیکربندی آزمون که برای دانلود توسط لینک در انتهای مقاله در دسترس است ، یک ماژول کلی "مقادیر عناصر از پیش تعریف شده" با عملکرد صادراتی ایجاد شده است "GetValue از یک عنصر از پیش تعریف شده (<ИмяПредопределенногоЭлемента>)" . کد برنامه تابع پیوندی را به یک عنصر از پیش تعریف شده دریافت می کند ، سپس با درخواست مقدار مقادیر غرفه های "Value" را دریافت می کند. تصویر زیر فهرست کاملی از عملکرد را نشان می دهد.

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

تأثیر عملکرد

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

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

در نسخه مشتری-سرور کار ، نتایج آزمون تصویری کاملاً متفاوت را نشان می دهد. سرعت به دست آوردن پیوند به مورد مورد نظر به طور قابل توجهی کاهش نیافته است (یکی از تست ها 0.002 ثانیه برای جستجو با نام و 00000/0 ثانیه برای کار از طریق یک عنصر از پیش تعریف شده نشان داد) ، با این حال ، قابلیت اطمینان برنامه به میزان قابل توجهی افزایش یافته است!

نتیجه گیری

در مواردی که اغلب اتصال به عناصر معمول دایرکتوری ضروری است ، توصیه می کنم از کدگذاری یا نام استفاده نکنید. این روش قابلیت اطمینان سیستم و عملکرد را کاهش می دهد.

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

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

علاوه بر این ، این روش به شما امکان می دهد در صورت نیاز به افزودن عنصر از پیش تعریف شده به آنها ، اشیاء پیکربندی معمولی را تغییر ندهید. در آینده ، این کار روند به روزرسانی پیکربندی را کمی آسانتر می کند.

پرونده ها برای بارگیری:

  1. تخلیه پایه آزمایش با نمونه هایی از مقاله.

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

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

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

// محصولات ثبت نام محصولات سازمان ها. مجموعه حرکات \u003d حرکات. محصولات سازمانها؛ اگر نوع درآمد \u003d نقل و انتقالات. انواع دریافت کالا. انبار سپس // یک جدول از مقادیر را که مطابق با ساختار مجموعه ورودی های ثبت نام است ، بدست آورید. جدول حرکت \u003d مجموعه حرکات. بارگیری () // جدول حرکت را پر کنید. همه منظوره. بارگیری در جدول ارزش ها (جدول محصول ، جدول حرکت)؛ // زمینه های از دست رفته. جدول حرکت پر کردن ارزش ها (سازمان ، "سازمان")؛ جدول حرکت پر کردن مقادیر (نامشخص ، "نماینده کمیسیون")؛ جدول حرکت پر کردن مقادیر (منابع. کیفیت. جدید ، "کیفیت")؛ // کیفیت را از یک عنصر از پیش تعریف شده پر کنید

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

تفاوت

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

اما چگونه می توان مکاتبات جزئیات را با درخت پیکربندی و زمینه های موجود در جدول SQL تعیین کرد؟

بهره بردن روش استاندارد از بستر جهانی "GetStorage DatabaseStructureSstrucure ()" ، که یک جدول از ارزش ها را با شرح ساختار جداول به ما باز می گرداند.

در جدول مقادیر "فیلدها" ، مکاتبات زمینه های جدول SQL و جزئیات جسم را در درخت ابرداده مشاهده می کنیم. در مثال ما ساختار دایرکتوری "محصولات" را در نظر می گیریم. همه دایرکتوری ها دارای یک ویژگی استاندارد "از پیش تعریف شده" از نوع boolean هستند که برای عناصر از پیش تعریف شده در TRUE تنظیم شده است:

با توجه به جدول با ساختار دایرکتوری در دیتابیس ، می توانیم به روشنی بگوییم که قسمت "پیش تعریف شده" با قسمت "IsMetadata" مطابقت دارد. اگر به محتوای جدول "_Reference37" در پایگاه داده SQL بنگریم ، موارد زیر را مشاهده خواهیم کرد:

در ضبط برای مورد از پیش تعریف شده ، مقدار قسمت "IsMetadata" روی "0x01" تنظیم شده است ، که مطابق با پرچم TRUE است. برای موارد معمولی ، مقدار "0x00" تنظیم شده است. این تفاوت اصلی بین عناصر از پیش تعریف شده با عناصر معمولی است. تمام زمینه های دیگر در پایگاه داده مشابه فیلدهای عناصر معمولی که توسط کاربران اضافه شده اند ذخیره می شوند.

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

بنابراین ، عناصر از پیش تعریف شده ، گروهی را که در آن قرار می گیرند ، "پیش تعریف شده" می سازند.

تکمیل

موارد تعریف شده جزئی جدایی ناپذیر در اکثر تنظیمات هستند. استفاده از آنها توسعه را ساده تر كرده و ساخت كاركردها را منطقاً "باریك" و انتگرال تر می سازد.

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

مدت زمان 4 درس دوره:

00:19 تغییرات در کتاب مرجع کارمندان پس از اتمام تکالیف در درس 3 دوره
00:35 ویرایش ترتیب جزئیات در دایرکتوری ها
02:54 ایجاد یک فهرست نامی دایرکتوری
03:40 ایجاد و پیکربندی دایرکتوری سلسله مراتبی
05:10 ایجاد گروه ها خدمات و کالاها را در فهرست نامگذاری
06:05 نامگذاری فهرست را پر کنید
07:14 3 روش برای انتقال یک مورد دایرکتوری به گروه دیگر
08:21 ایجاد یک دایرکتوری انبار
09:19 ایجاد موارد دایرکتوری از پیش تعریف شده
11:25 پر کردن فهرست انبارها
12:20 آزمون را در مورد 4 درس بگیرید

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

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

فرم های دایرکتوری - نمایش تصویری دایرکتوری. بسته به نوع کارهایی که می خواهیم با دایرکتوری خود انجام دهیم ، لازم است که دایرکتوری را در "اشکال مختلف" نمایش دهیم. بنابراین ، در درس چهارم دوره ، ما ترتیب جزئیات را در قالب لیست و در قالب یک عنصر دایرکتوری ویرایش کردیم.

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

درمجموع ، برای كتابهای مرجع ، 5 فرم (انواع فرم) وجود دارد:

  • شکل عنصر - ایجاد یا ویرایش یک مورد فهرست.
  • فرم گروه - ایجاد یا ویرایش گروه دایرکتوری.
  • فرم لیست - نمایش لیستی از موارد فهرست.
  • فرم انتخاب - برای انتخاب یکی از عناصر این فهرست در فیلد فرم مشخصی استفاده می شود. به عنوان مثال ، انتخاب یک انبار خاص از فهرست Warehouses در سند دریافت کالا در قسمت انبار.
  • فرم انتخاب گروه - استفاده می شود برای انتخاب یکی از گروه های این فهرست در زمینه ای از فرم خاص.

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

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

مهم! از نظر فنی ، کاربر توانایی حذف یک آیتم از پیش تعریف شده دایرکتوری را دارد ، اما ، به عنوان یک قاعده ، کاربران از حق حذف موارد دایرکتوری از پیش تعریف شده محروم می شوند.

مشق شب برای 4 درس دوره

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

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

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

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

به طور مشروط ، می توانید انتخاب کنید سه نوع خطا:
1. "یک مورد از پیش تعریف شده از داده ها گم نشده است"؛

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

1. "مورد از پیش تعریف شده موجود در داده ها" - دربارهعدم وجود عنصر از پیش تعریف شده شرح داده شده در پیکربندی در امنیت اطلاعات.

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

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

هنگام دسترسی به یک عنصر در عبارت "VALUE (مرجع. انواع اطلاعات تماس. ایمیل شخص تماس)" ، این پیام نمایش داده می شود:

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

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

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

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

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

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

درخواست \u003d درخواست جدید؛ Request.Text \u003d "SELECT | انواع اطلاعات تماس. پیوند | از | مرجع. انواع اطلاعات تماس به عنوان انواع اطلاعات تماس | کجا | انواع اطلاعات تماس. نام از پیش تعریف شده \u003d" " تماس با ایمیل"" "؛ ElementNo DataData \u003d درخواست. اجرای (). خالی ()؛

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

زنگ

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