بستر 1C ابزاری سطح بالا برای کار با پایگاه های داده است. به طور کلی ، توسعه دهنده نیازی به فکر کردن در مورد اینکه چه چیزی در کنار DBMS اتفاق می افتد ، فکر نمی کند ، زیرا سیستم عامل خودش تصمیم می گیرد که چند جدول ایجاد کند و چه زمینه هایی درون آنها قرار دارد.
با این حال ، در پروژه های بزرگ نیاز به کار مستقیم با داده ها وجود دارد ، به عنوان مثال ، تجزیه و تحلیل اطلاعات با ابزار شخص ثالث یا مانند مورد من ، یکپارچه سازی یک پایگاه داده با برنامه های خارجی. در چنین شرایطی لازم است که در مورد اینکه کدام بخشهای جداول فیزیکی برای جستجوی اطلاعات مورد نیاز ما باید ایده داشته باشیم.
عملکرد داخلی فقط برای چنین موردی طراحی شده است GetDatabaseStorageStructure ()که تمام داده های مورد نیاز را به عنوان جدول مقادیر برمی گرداند. بعلاوه ، برخی از جزئیات (فیلدها و نمایه ها) این جدول خود جداول مقادیری هستند.
از یک طرف ، داشتن همه داده ها در یک ساختار راحت است ، اما از طرف دیگر ، مشکلات بیشتری با انتقال این جدول به مشتری ایجاد می شود (متاسفانه ، روش Load () ، جداول تو در تو را بارگیری نمی کند ) با توجه به این ، لازم است که از طریق تمام حلقه های جدول به صورت حلقه ای انجام شود ، که با حجم زیاد ، منجر به کاهش سرعت می شود.
در این راستا ، بهترین گزینه این است که نام اشیا met متادیتا را به تابع منتقل کنید تا مقدار داده های برگشتی کاهش یابد. با این حال ، همه جداول DBMS با فراداده پیکربندی مرتبط نیستند ، بنابراین فرصت مشاهده لیست کامل را گذاشتم.
قابلیت پردازش
هنگامی که عنصر درخت فراداده فعال می شود ، لیست جداول ، فیلدها و شاخص ها پر می شود. وقتی روی ریشه درخت دوبار کلیک می کنید ، همه جداول از جمله جداول سرویس (توصیه نمی شود ، زیرا مقدار داده مورد جستجو افزایش می یابد) نمایش داده می شوند.
دستورات جستجوی استاندارد و لیست در بخش های جداولی کار می کنند.
تفاوت در پیاده سازی های موجود
چندین نشریه مشابه وجود دارد ، به عنوان مثال ، و. با این حال ، نقطه ضعف آنها عدم وجود درخت فراداده است که ناوبری را دشوار می کند. جستجو همچنین با نام جداول و فیلدها در پایگاه داده انجام می شود و نه برعکس.
نزدیکترین کارکرد به نشریه نویسنده (). در مقابل ، این روش درمانی شامل کاملترین درخت است فراداده (برنامه های تبادل ، ثابت ها ، مجلات اسناد و غیره). بعلاوهساختار داده ها با وضوح بیشتری ارائه می شود: لیست جداول شی متاداده ، لیست زمینه ها و فهرست نمایه ها در جداول جداگانه نمایش داده می شوند.
UPD-2018-01-06 (v1.3). رفع اشکالی که در حالت سازگاری 8.3.7 و بالاتر رخ داده است (رفتار سیستم عامل تغییر کرده است).
UPD-2012-08-17 (نسخه 1.2). یک پچ برای پردازش صحیح وظایف برنامه ریزی شده ایجاد شد ، موردی برای نمایش برنامه های انواع محاسبه ثابت شد ، رفتار هنگام تعویض نوع ساختار در ریشه پیکربندی ثابت شد.
P.S. برخی از کارفرمایان در مورد تعداد جداول فیزیکی و مجازی برای ثبت نام هنگام استخدام سوال می کنند. خوب خواهد بود که پاسخ این س questionsالات را بدانید ، به خصوص که این سطح 1C: حرفه ای است. اگر می خواهید نه تنها این پاسخ را یاد بگیرید ، بلکه این جداول را "احساس" کنید ، این پردازش برای شما مناسب است!
داده هایی که منطق عملکرد سیستم را بر اساس 1C تعیین می کنند: Enterprise مربوط به پایگاه اطلاعات هستند. این infobase در یک پایگاه داده به صورت مجموعه ای از جداول ذخیره می شود که برای آن 1C: Enterprise 8.1 می تواند از یکی از چهار سیستم مدیریت پایگاه داده (DBMS) استفاده کند:
* داخلیدر 1C: Enterprise 8.1 (نسخه فایل infobase). در این حالت ، تمام اطلاعات infobase در پرونده ای به نام 1Cv8.1CD ذخیره می شوند. این پرونده دارای یک قالب باینری است و اساساً یک پایگاه داده برای DBMS است که در 1C: Enterprise 8.1 تعبیه شده است.
* Microsoft SQL Server (نسخه سرور مشتری و سرور پایگاه اطلاعات). تمام داده های infobase در پایگاه داده Microsoft SQL Server ذخیره می شوند.
* PostgreSQL (نسخه سرور مشتری و سرور پایگاه اطلاعات). تمام اطلاعات infobase در پایگاه داده PostgreSQL ذخیره می شود.
* IBM DB2 (نسخه سرور مشتری و سرور پایگاه اطلاعات). تمام اطلاعات infobase در پایگاه داده IBM DB2 ذخیره می شود.
در سطح اشیا database پایگاه داده (جداول ، فیلدها ، فهرست ها و غیره) ، هر دو نسخه فایل و سرور سرویس گیرنده اینفوباس دارای قالب مشابه هستند (تفاوت در جزئیات ناچیز). برخی از اطلاعات مربوط به این قالب در زیر آمده است.
کل اطلاعات در پایگاه داده به عنوان مجموعه ای از جداول ارائه شده است. در میان آنها چندین جدول وجود دارد که لزوماً در ارائه هرگونه اطلاعات وجود دارد:
* پیکربندی کنید - پیکربندی اصلی infobase. این پیکربندی مربوط به ساختار داده واقعی است و توسط 1C: Enterprise 8.0 در حالت Enterprise استفاده می شود.
* پیکربندی - پیکربندی ویرایش شده توسط تنظیم کننده. وقتی "به روزرسانی پیکربندی پایگاه داده" در تنظیم کننده انجام می شود ، پیکربندی از ConfigSave در Config بازنویسی می شود و برعکس - وقتی عملیات "پیکربندی - پیکربندی پایگاه داده - بازگشت به تنظیمات پایگاه داده" در تنظیمات انجام می شود.
* فایل ها شامل اطلاعات سرویس است ، به عنوان مثال ، در مورد کار با فروشگاه پیکربندی.
* پارامزها شامل پارامترهای infobase است. در میان آنها:
=>
لیست کاربران infobase.
=>
تنظیمات ملی پایگاه اطلاعات
=>
جدول مربوط به اشیا met فراداده و اشیا database پایگاه داده (جداول ، فیلدها ، نمایه ها).
=>
برخی اطلاعات دیگر
* _YearOffset - جبران تاریخ ها در پایگاه داده. این جدول فقط هنگام استفاده از Microsoft SQL Server ایجاد می شود.
* DBSchema شامل اطلاعاتی درباره ساختار پایگاه داده 1C: Enterprise است و سایر اشیا database پایگاه داده را که توسط این پایگاه اطلاعاتی استفاده می شود ، تعریف می کند.
هنگام شروع 1C: Enterprise ، وجود جداول ذکر شده در پایگاه اطلاعات را بررسی می کند و در صورت عدم وجود هر یک از آنها ، پیام "پایگاه اطلاعاتی تخریب شده" نمایش داده می شود. فقدان همه جداول ذکر شده به معنای خالی بودن اینفوبیت است. در حالت دوم ، این جداول ایجاد می شوند.
لیست و ساختار سایر جداول پایگاه داده توسط یک پیکربندی خاص تعیین می شود ، یعنی توسط اشیا met فراداده تعریف شده در آن. هر نام جدول از یک پیشوند الفبایی و به دنبال آن یک عدد تشکیل شده است. پیشوند هدف جدول را مشخص می کند و شماره به شما امکان می دهد بین جداول با همان هدف که به اشیا different مختلف فراداده اشاره می کنند ، تمایز قائل شوید. اگر از IBM DB2 به عنوان DBMS استفاده شود ، ساختار توصیف شده نام جداول را ندارد ، اما نام مستعار آنهاست.
اگر پیکربندی حداقل یک طرح مبادله را با مجموعه پرچم "Infobase توزیع شده" تعریف کند ، جداول زیر ایجاد می شود:
* _ConfigChangeRec - جدول ثبت تغییرات در اشیا conf پیکربندی.
* _ConfigChangeRec_ExtProps - جدول نام پرونده های تغییر یافته خصوصیات خارجی اشیا conf پیکربندی.
در زیر اشیا various مختلف فراداده موجود در جدول ذکر شده است که جداول می توانند با آنها مطابقت داشته باشند.
* ثابت ها
=>
_Consts شامل مقادیر فعلی تمام ثابت های تعریف شده در پیکربندی است.
=>
_ConstsChangeRec - جدول ثبت تغییرات ثابت. در صورتی که حداقل یک ثابت در حداقل یک طرح تبادل شرکت کند ایجاد شده است.
* برنامه های تبادل
=>
_نود
=>
_نود
* منابع
=>
_ارجاع
=>
_ارجاع
=>
_ReferenceChangeRec
* اسناد
=>
_سند
=>
_سند
=>
_DocumentChangeRec
* توالی اسناد
=>
_توالی
=>
_حد مرز
=>
_SequenceChangeRec
* مجلات اسناد.
=>
_ ژورنال Document
* شمارش
=>
_انوم
* طرحهایی از انواع مشخصه
=>
_Chrc
=>
_Chrc
=>
_ChrcChangeRec
* نمودارهای حساب
=>
_امکان
=>
_امکان
=>
_امکان
=>
_AccChangeRec
* طرح انواع محاسبه
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKindDN
=>
_CalcKind
=>
_CalcKindChangeRec
* ثبت اطلاعات
=>
_InfoReg
=>
_InfoRegChangeRec
* ثبت انباشت
=>
_AccumReg
=>
_AccumReg کل
=>
_AccumRegTurnovers
=>
_AccumRegChangeRec
=>
_AccumRegOptions - جدولی از تنظیمات برای ذخیره کل ثبت های انباشت ، یکی برای همه ثبت های تجمع.
* ثبت های حسابداری
=>
_AcntReg
=>
_AcntRegED
=>
_AccTtl0
=>
_AccTtl
=>
_AccTtlC
=>
_AccntRegChangeRec
=>
_AccntRegOptions - جدول تنظیمات ذخیره کل ، یکی برای همه ثبت های حسابداری.
* ثبت نام محاسبه
=>
_CalcReg
=>
_CalcRegActPer
=>
_CalcRegChangeRec
=>
_CalcRegRecalc
=>
_CalcRegRecalcChangeRec
* فرآیندهای کسب و کار
=>
_BPRoutePoint
=>
_فرآیند کاری
=>
_فرآیند کاری
=>
_BusinessProcessChangeRec
* وظایف
=>
_وظیفه
=>
_وظیفه
=>
_TaskChangeRec
هنگام استفاده از IBM DB2 ، پیشوندهای مستعار جدول با زیر خط شروع نمی شوند ، بلکه بلافاصله با یک قسمت الفبایی شروع می شوند.
تعداد این جداول به عملکرد پیکربندی بستگی دارد و می تواند بسیار زیاد باشد. در حالت عادی ، 1C: Enterprise حضور آنها و همچنین یکپارچگی و سازگاری داده های موجود را بررسی نمی کند. بنابراین مهم است که پایگاه داده ای که حاوی پایگاه اطلاعاتی 1C: Enterprise 8.1 است ، از دسترسی غیر مجاز محافظت شود و اصلاح آن فقط با استفاده از 1C: Enterprise انجام شود. برای بررسی آن ، از تابع "مدیریت - آزمایش و تعمیر" که در تنظیم کننده تعبیه شده استفاده کنید.
همچنین مهم است که پایگاه داده ذخیره کننده این infobase پشتیبان گیری شود و فقط به طور کامل بازیابی شود. برای این منظور ، توصیه می شود از ابزارهای پشتیبان پایگاه داده که در DBMS استفاده شده است استفاده کنید. تهیه نسخه پشتیبان از نسخه فایل infobase با کپی کردن فایل 1Cv8.1CD انجام می شود.
تنظیم کننده وظیفه خاصی دارد: مدیریت - پایگاه اطلاعاتی بارگذاری. با کمک آن ، می توانید تمام داده های مربوط به پایگاه اطلاعات را در پرونده مشخص شده (پرونده بارگذاری) بارگذاری کنید و هیچ چیز دیگری. عملکرد معکوس "Load infobase" اجازه می دهد تا تمام داده ها را از پرونده بارگذاری به جای داده های موجود در پایگاه فعلی بارگیری کنید. از این توابع همچنین می توان برای تهیه نسخه پشتیبان از اطلاعات infobase در هر دو نسخه پرونده و نسخه کلاینت-سرور استفاده کرد.
ساختار در زبان برنامه نویسی 1C 8.3 و 8.2 مجموعه ای از جفت "Key" و "Value" است. قسمت "کلید" دارای یک نوع رشته است ، "مقدار" می تواند هر نوع داده را بگیرد. این معمولاً برای ذخیره و انتقال مجموعه ای از پارامترها بین رویه ها استفاده می شود.
ساختار در زبان برنامه نویسی 1C را می توان به دو روش با استفاده از ساختار "جدید" ایجاد کرد.
راه اول:
ساختار \u003d ساختار جدید ؛
ساختار. درج ("KeyParameter1" ، "مقادیر پارامتر شماره 1")؛
ساختار. درج ("KeyParameter2" ، "مقادیر پارامتر شماره 2")؛
راه دوم:
ساختار \u003d ساختار جدید ("KeyParameter1، KeyParameter2" ، "مقادیر پارامتر # 1" ، "مقادیر پارامتر # 2")؛
هر دو روش ساختاری را ایجاد می کند که می توانید در تصویر از اشکال زدایی مشاهده کنید:
267 آموزش ویدیویی 1C را به صورت رایگان دریافت کنید:
تغییر
می توانید ساختار را با استفاده از روش "Insert ()" اضافه یا تغییر دهید.
Structure.Insert ("KeyName"، KeyValue)؛
در صورت نیاز به تغییر مقدار کلید قدیمی ، نام آن را وارد کنید. اگر یک کلید جدید اضافه می کنید ، یک نام منحصر به فرد نسبت به تمام کلیدهای ساختار اضافه کنید.
برای حذف یک مورد از مجموعه ، باید از روش "حذف" استفاده کنید ، در اینجا نام کلید را می آورید:
Structure.Remove ("نام اصلی")؛
همچنین می توان همه اشیا in موجود در مجموعه را پاک کرد:
ساختار. پاک ()؛
پیمایش ساختار
برای تکرار مجموعه ساختار ، باید از ساختار "برای هر کلید و مقدار از ساختار حلقه" استفاده کنید.
مثلا:
برای هر کلید و معنی حلقه ساختار
برای مثال ، فرآیند …… // ، مقادیر را تغییر دهید
پایان چرخه ؛
در هر چرخه مشاهده خواهد شد که زمینه های زیر در دسترس ما است: