اینترنت پنجره ها اندروید
بسط دادن

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

درخواست = درخواست جدید ؛ Query.Text = "SELECT | انواع اطلاعات تماس. پیوند | FROM | Directory. انواع اطلاعات تماس AS انواع اطلاعات تماس | WHERE | انواع اطلاعات تماس. PredefinedData Name =" " ایمیل شخص مخاطب"" "؛ ElementNoNo.VD = Request.Run (). خالی ()؛

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

روز خوب.

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

معرفی

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

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

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

حالا در مورد پرونده

اول این که مرجع اکنون دارای ویژگی "Update predefined data" است.

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

بسیار جالب است ، اما چرا؟ چگونه یک آیتم در مرجع ایجاد کنیم؟ و همانطور که می خواهید ، می توانید ایجاد کنید ، یا می توانید آن را با یک موجود پیوند دهید. اکنون جستجو ویژگی "PredefinedDataName" را دارد. ما طبق معمول از طریق "References.Contractors.CreateElement ()" یک آیتم کاتالوگ ایجاد می کنیم و ویژگی "PredefinedDataName" آن را برابر با نام مورد از پیش تعیین شده پر می کنیم. یا اگر عنصر از قبل وجود داشته باشد ، شیء آن را دریافت می کنیم و دوباره "PredefinedDataName" را در آن پر می کنیم. همه چيز.

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

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

با تشکر از توجه شما.

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

به شما امکان می دهد عناصر IB را با عناصر از پیش تعیین شده در پیکربندی مطابقت دهید.

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

فقط می توانید مقادیر فعلی را مشاهده کنید ، می توانید تغییرات لازم را انجام دهید.

روش کار:

1. پردازش را شروع می کنیم.

2. ما نوع (کتاب مرجع ، نمودار حساب ، PVC ، PVR) را انتخاب می کنیم.

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

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

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

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

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

6. ما با فشردن دکمه "تعیین مجدد عناصر" واگذاری را انجام می دهیم.

بررسی موارد تکراری(اشتباه "مورد از پیش تعریف شده منحصر به فرد نیست"):

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

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

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

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

برای استفاده به پلت فرم 8.3.3 یا بالاتر نیاز دارد.

همه کاره ، با هر پیکربندی قابل استفاده است.

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