ایلدارویچ 6489 16.11.12 18:24 اکنون در موضوع است

() ولادیمیر! خوشحالم که به مقاله توجه کردید ، خصوصاً اینکه شما از اولین کسانی بودید که این روش را در بحث "واقعاً یک پرسش روی حیله و تزویر بنویسید" دو سال پیش دیدید (و از آنها استقبال کرد). سوال جالبی که من خودم نیاوردم ، اما آن را در انجمن دیدم. نویسنده سوال استانیسلاو شپتالوف است. بعلاوه - در تاریخ 24/10/12 همان (فقط توجه را به این موضوع جلب کرد ، زیرا نام مستعار متفاوت است) عضو انجمن س forumال مشابهی را مطرح کرد ، اما در سلسله مراتب اعمال شد. به نظر می رسد که مسئله عملی حل شده است. بعلاوه ، مطابق با رویکرد "علمی" ، من مشکلات عملی را که می توان از این روش استفاده کرد ، مرور کردم. 7 مشکل دیگر پیدا شد 5 - در این مقاله. در این میان مشكل مربوط به حلقه های موجود در مشخصات است كه قبلاً قول داده ام با Ish_2 در یك پرسش حل كنم. من فکر می کنم Ish_2 قادر خواهد بود شما را در فوریت این کار متقاعد کند - او زمان زیادی را برای آن صرف کرد. راه حل کوتاه است - از چندین خط تشکیل شده است ، بنابراین کاملاً واضح است و از طریق نیاز به نتیجه ، به سبک غیر رویه ای فرموله شده است. خوب ، سایر وظایف در مقالات و در انجمن مشاهده شده است ، راه حل های دشوارتر برای آنها ارائه شده است. بنابراین بیایید کمی صبر کنیم تا ببینیم این برنامه چند بار اعمال می شود. این نوعی بازخورد است که من انتظار دارم - از کسانی که سعی خواهند کرد.
به هر حال ، این واقعیت که این شاخه از ریاضیات دور از عمل نیست و حسابداران به آن احتیاج دارند ، با مدول کلی "تعدیل هزینه" در BP2 ، که ما اکنون در حال دستکاری آن هستیم (کار ناپایدار یک درخواست منظم) مشهود است. در آنجا ما در مورد شکستن چرخه نمودار جابجایی نامگذاری و ساختن درخت پوشا صحبت می کنیم.
اکنون در مورد ساختار پایگاه داده "برای یک کار خاص". سوالی در مورد اجرای وظیفه در 1C پرسیده شد و بنابراین ، این وظیفه در 1C حل شد. اگر از شما سال شود "با چه اتوبوسی می توانید به کتابخانه بروید" ، و پاسخ دهید که بهتر است با کشتی هوایی پرواز کنید ، به راحتی درک نخواهید شد (شاید به جز کسانی که در ترافیک مسکو هستند). این روش در ابتدا به زبانی کاملاً متفاوت کار می کرد.
به طور کلی ، وقتی فکر می کنید معماری پلت فرم 1C بی ارزش نیست ، نمی توانم شما را قانع کنم. من فقط می توانم نظر خود را بیان کنم. تهیه یک طرحواره پایگاه داده از ابتدا برای یک کار خاص گران است. اگر با ساخت و ساز مقایسه کنیم: 1C ساختمانهای بلند پنلی است - مسکن ارزان - وسیله ای برای اتوماسیون انبوه - در محله های تنگ ، اما آزرده خاطر نیست. سازمان های فردی می توانند نورمن فاستر را استخدام کنند تا نیازهای دقیق آنها را برآورده کند. بقیه مجبورند از پروژه های انبوه ارزان - DBMS رابطه ای با یک مدل شی صلب استفاده کنند. علاوه بر این ، من با تجربه غم انگیز استفاده از Caсhe در چندین پروژه آشنا هستم. از نظر توسعه دهنده ، همه چیز به نظر تئوریک به هیچ وجه گلگون به نظر نمی رسد. مدل شی 1C امتحان زمان را می کشد - "سرزمین های عظیمی ساخته و آباد می شوند." علاوه بر این ، در حال توسعه است. اخیراً ، فناوری منبع داده خارجی ظاهر شده است. و اگر کاری به واکنش پذیری بالاتری نیاز دارد (به عنوان مثال ، سیستم های صورتحساب) ، اکنون می توانید 1C را با یک DBMS دیگر متصل کنید. به عنوان مثال ، ما این کار را با واردات ERP انجام داده ایم.
اما هنوز هم نمی خواهم مکالمه را از موضوع اصلی منحرف کنم - کار تکنیک های پیشنهادی در کارهای دقیق عملی.

کتاب مرجع 1c چیست و برای چه کاری استفاده می شود؟ کتاب مرجع اطلاعات ثابت را به طور مشروط ذخیره می کند ، اطلاعاتی که تقریباً برای مدت طولانی تغییر نمی کند. به عنوان مثال ، فهرست "نام" شامل لیستی از کالاهای فروخته شده یا تولید شده است. همچنین ، مرجع می تواند شامل بسیاری از خصوصیات توصیف عنصر مرجع باشد.

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

با ایجاد یک فهرست جدید ، تصویر زیر را مشاهده خواهیم کرد.

بیایید تمام نشانکهای آن را در نظر بگیریم.

اصلی

نام (شناسه در پایگاه داده) و مترادف (نام سفارشی فهرست) در اینجا نشان داده شده است. یک نظر اختیاری ، نظری است که می تواند هدف کتاب مرجع را توضیح دهد یا ویژگی های آن را توصیف کند.

سلسله مراتب

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

نوع سلسله مراتب:

سلسله مراتب گروه ها و عناصر

با این تنظیمات می توان عناصر را فقط در گروه ها (پوشه ها) قرار داد.

در اینجا ، همانطور که مشاهده می کنید ، همه عناصر و گروه ها آیکون های یکسانی دارند و هر عنصری را می توان تو در تو قرار داد.

گروه ها را در بالا قرار دهید

اگر این کادر را علامت بزنید ، گروه ها همیشه در بالا هستند ، در غیر این صورت آنها به ترتیب مرتب می شوند ، به عنوان مثال:

محدود کردن تعداد سطوح در سلسله مراتب

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

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

صاحبان

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

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

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

چگونه می توان به صورت برنامه نویسی پی برد ، سلسله مراتب دارد یا خیر

برای این کار باید به فراداده مراجعه کنید

It isHierarchicalDirectory \u003d Metadata.Reference.Contractors.Hierarchical؛

ادامه دارد ...

ساختار "IN HIERARCHY" در پرس و جوهای 1C: Enterprise 8.x به شما امکان می دهد عناصر تابع یک شی پیکربندی سلسله مراتبی را با توجه به انتخاب داده شده دریافت کنید. امروز در مقاله مثالی از کاربرد آن و همچنین اقدامات سیستم عامل در کنار DBMS و تأثیر آن بر عملکرد را بررسی خواهیم کرد.

استفاده كردن

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

متن درخواست \u003d "SELECT | محصولات ... ارتباط دادن، | محصولات ... کد فروشنده |از | فهرست راهنما ... محصولات AS محصولات | در کجا | محصولات ... پیوند در HIERARCHY (و پیوند)"

در پایگاه آزمون ، دایرکتوری "محصولات" داده های آزمون زیر را دارد:

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

بیایید به جستجوی آزمون برگردیم. بیایید در پارامتر "& Link" پیوندی به گروه "Group - 1" منتقل کنیم (تصویر بالا را ببینید). سپس نتیجه س theال به صورت زیر خواهد بود:

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

نحو زبان پرس و جو 1C: شرکت ها و sQL کلاسیک در برخی از نقاط بسیار شبیه هستند. اما برای عبارت "IN HIERARCHY" هیچگونه آنالوگ در زبان جستجوی SQL وجود ندارد ، به عنوان مثال ، برای بیان زبان پرس و جو از سیستم عامل "B" ، یک عملگر SQL مشابه "IN" وجود دارد. بنابراین ، جالب است که هنگام استفاده از این اپراتور با سیستم عامل با DBMS کار کنید.

پشت صحنه

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

  1. به عنوان پارامتر "& Link" از گروه سطح بالا "Group 1" عبور خواهیم کرد (همانطور که قبلاً انجام دادیم).
  2. در پارامتر ما پیوندی به گروه "گروه 1 - 1" منتقل خواهیم کرد ، که در گروه سطح بالا "گروه 1" قرار دارد.

حالا به ترتیب. در حالت اول ، پلتفرم اقدامات زیر را بر روی سرور SQL انجام می دهد:

1. ابتدا یک پرس و جو SQL برای دستیابی به مرجعی به گروه مرجع که به عنوان یک پارامتر عبور کرده و همه گروه های تابعه آن اجرا می شود ، اجرا می شود. نتیجه در جدول موقت "# tt1" قرار می گیرد.

2. در مرحله دوم ، همان پرس و جو دو بار اجرا می شود:

تصویر صفحه متن پرس و جو SQL را جزئیات می دهد. به طور خلاصه ، پرس و جو به شما امکان می دهد عناصر تابع را برای گروه هایی که در یک جدول موقت به آنها ارجاع داده می شود ، انتخاب کنید. این س remainsال باقی می ماند: "چرا درخواست دو بار اجرا می شود؟" در اینجا پاسخ ساده است: اول ، درخواست عناصر فرعی را برای گروه های سطح اول که قبلا در جدول موقت موجود است دریافت می کند (نگاه کنید به بند 1). سپس پرس و جو دوم برای افراد زیرمجموعه گروه های سطح دوم زیردست می گیرد. از آنجا که هیچ گروه کاتالوگ در سطح سوم سلسله مراتب وجود ندارد ، این سeryال دیگر اجرا نمی شود.

در مورد ما ، پرس و جو دوم نتیجه خالی را برمی گرداند ، زیرا هیچ عنصر تبعی برای سوابق واقع در سطح 3 سلسله مراتب وجود ندارد (هیچ گروهی در آنجا وجود ندارد).

3. برای بدست آوردن نتیجه نهایی پرس و جو ، سیستم عامل پرس و جو SQL زیر را تشکیل می دهد:

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

4. در آخرین مرحله ، پلت فرم 1C: Enterprise 8.x جدول موقت "# tt1" را حذف می کند ، زیرا در آینده دیگر از آن استفاده نمی شود.

این روند اجرای عملگر "IN HIERARCHY" را به پایان می رساند. بگذارید یادآوری کنم که توالی فوق اقدامات در سرور SQL زمانی انجام شد که پیوندی را به گروه سطح بالا "گروه - 1" به جستجوی سمت پلت فرم منتقل کردیم. اما اگر پیوندی را به گروه سطح دوم "Group - 1 - 1" به عنوان پارامتر "& Link" منتقل کنیم ، سکوی عملکرد چگونه خواهد بود؟ همه موارد به همین ترتیب اتفاق خواهد افتاد ، به جز نکته زیر: در بالا ، در مرحله دوم اجرای نمایش داده های SQL توسط سیستم عامل ، نوشته شده است که درخواست دریافت عناصر زیردست دو بار اجرا شده است - در مورد بدست آوردن عناصر زیرمجموعه برای گروه "گروه - 1 - 1" ، این مورد نیست ... درخواست فقط یکبار اجرا می شود.

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

تأثیر بر عملکرد

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

من یک مثال از یک درخواست غیربهینه را ارائه می دهم که می تواند منجر به عواقب غم انگیز فوق شود:

محصولات را انتخاب کنید. از دایرکتوری پیوند دهید. محصولات به عنوان محصولات WHERE (محصولات. مرجع در HIERARCHY (و مرجع) یا محصولات. مرجع در HIERARCHY (و مرجع 1) یا محصولات. مرجع در HIERARCHY (و مرجع 2))

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

نتیجه گیری!

نتیجه گیری برای شما. بگذارید فقط بگویم که اپراتور "IN HIERARCHY" هنگامی که شرایط انتخاب شامل "IN GROUP" ، "IN GROUP FROM LIST" و موارد دیگر باشد ، توسط سیستم عامل برای سیستم ترکیب داده استفاده می شود. فکر نمی کنم ارزش این را داشته باشد که با دستکاری های نادرست ، کاربران می توانند انتخاب بسیار پیچیده ای انجام دهند و بار سرور 1C و DBMS را چندین برابر کنند. اجازه دهید فقط تنظیمات را برای کاربران پیشرفته تغییر دهیم.

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

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

بازیابی عناصر یک فهرست سلسله مراتبی تابع یک گروه معین

برای به دست آوردن عناصر فرعی فهرست سلسله مراتبی ، زبان جستجو ساختار IN HIERARCHY را فراهم می کند. نمونه استفاده در HIERARCHY:


انتخاب کنید
نامگذاری. کد ،
نامگذاری. قیمت خرید
از

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

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


انتخاب کنید
نامگذاری. کد ،
نامگذاری نام
نامگذاری. قیمت خرید
از
مرجع. نامگذاری AS نامگذاری

جایی که
نامگذاری. والدین \u003d & گروه

این س groupsال گروه ها و مواردی را که با پیوند & Group تابع یک گروه هستند انتخاب می کند.

بررسی وجود عناصر تابع یک مورد کاتالوگ

برای بررسی وجود سوابق تابع یک عنصر فرهنگ لغت ، می توانید از پرس و جو مشابه س presentedال ارائه شده استفاده کنید:

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


اگر Query.Run (). خالی () سپس
گزارش ("بدون ثبت") ؛
در غیر این صورت
گزارش ("سوابق وجود دارد") ؛
پایان اگر

گرفتن همه والدین یک عنصر

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


CurrentNomenclatureItem \u003d نام نامگذاری؛

درخواست \u003d درخواست جدید ("انتخاب کنید
| نامگذاری. والدین ،
| نامگذاری. والدین والدین ،
| نامگذاری والدین والدین والدین والدین
| نامگذاری. والدین والدین والدین والدین
| نامگذاری والدین والدین والدین والدین والدین
| از
| مرجع. نامگذاری AS نامگذاری
| در کجا
| Nomenclature.Ref \u003d & CurrentNomenclatureItem "؛

تا چرخه حقیقت
Request.SetParameter ("CurrentNomenclatureItem"، CurrentNomenclatureItem)؛
نتیجه \u003d Query.Run ()؛
اگر نتیجه. خالی () سپس
سقط
پایان اگر
انتخاب \u003d نتیجه. انتخاب ()؛
نمونه. بعدی ()؛
برای شماره ستون \u003d 0 نتیجه. Columns.Number () - 1 چرخه
CurrentNomenclatureItem \u003d انتخاب [تعداد ستون]؛
سقط
در غیر این صورت
گزارش (CurrentNomenclatureItem) ؛
پایان اگر
پایان چرخه ؛

اگر CurrentNomenclatureElement \u003d Directories.Nomenclature.EmptyRef () سپس
سقط
پایان اگر
پایان چرخه ؛

در این مثال ، همه والدین در پنجره پیام سرویس برای پیوند نوشته شده به متغیر ElementNomenclature نمایش داده می شوند. چرخه 5 والدین پیوند را انتخاب می کند.

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

خروجی یک فهرست سلسله مراتبی به یک گزارش

برای نمایش کاتالوگ سلسله مراتبی در یک گزارش ضمن حفظ سلسله مراتب ، باید از کوئری مشابه موارد زیر استفاده کنید:


انتخاب کنید
نامگذاری. کد ،
نامگذاری نام
نامگذاری. قیمت خرید
از
مرجع. نامگذاری AS نامگذاری
مرتب سازی بر اساس
نام HIERARCHY

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

برای اینکه گروه های دایرکتوری بالای عناصر قرار بگیرند ، لازم است پیشنهاد ORDER BY SOFTWARE را در این درخواست با موارد زیر جایگزین کنید:


مرتب سازی بر اساس
نامگذاری. این گروه HIERARCHY است ،
نام

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

همچنین می توانید پیشنهاد ORDER SOFTWARE را با پیشنهاد AUTO ORDER جایگزین کنید. در این حالت ، نتیجه مطابق با تنظیمات کتاب مرجع ، به ترتیب اگر کتاب مرجع نشان می دهد که گروه ها باید بالای عناصر قرار بگیرند ، آنها در بالا قرار می گیرند.

همچنین می توان با استفاده از کل ها ساختار سلسله مراتبی کتاب مرجع را بدست آورد.


انتخاب کنید
نامگذاری. کد ،
نامگذاری نام
نامگذاری. قیمت خرید

FROM Reference.Nomenclature AS Nomenclature

جایی که
(نامگذاری. این گروه \u003d نادرست)

سفارش به نام

گرفتن کل با سلسله مراتب

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


انتخاب کنید

از

نامگذاری HIERARCHY

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

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


انتخاب کنید
AccountingNomenclatureTurnovers.Nomenclature AS Nomenklature،
حسابداری نامگذاری گردش مالی نام تجاری ارائه ،
AccountingNomenclatureTurnover.QuantityTurnover AS QuantityTurnover
از
ثبت تجمع. نام حسابداری. گردش مالی نام اسکناس حسابداری گردش مالی
TOTALS SUM (NumberTurnover) توسط
نامگذاری فقط HIERARCHY

در نتیجه این درخواست ، مجموع سوابق فقط برای گروه های مورد وجود خواهد داشت.

منابع 1C - یک شی specialized خاص از درخت فراداده ، که در خدمت ذخیره اطلاعات ثابت از نوع مرجع است. به عنوان مثال ، در پیکربندی های معمولی ، می توانید نماهای زیر را مشاهده کنید: ، نامگذاری ، کارمندان ، دارایی های ثابت و غیره به طور معمول ، اطلاعات در فهرست ها تغییر نمی کند. کتابهای مرجع بیشتر تقریباً در همه اشیا accounting حسابداری به عنوان بخش حسابداری یا اطلاعات مرجع استفاده می شوند.

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

برگه اصلی

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

برگه مرجع مراتب

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

در 1C 8.3 دو نوع سلسله مراتب وجود دارد - " گروه ها و عناصر"و" عناصر" تفاوت در این است که در حالت اول ، والد (پوشه) فقط می تواند یک پوشه (گروه) باشد ، و در حالت دوم ، والد نیز می تواند یک عنصر باشد.

"گروه ها را در بالا قرار دهید" - پرچم وظیفه نمایش گروه ها را به صورت لیست دارد.

همچنین در تنظیمات ، می توانید تعداد گروه های موجود در سلسله مراتب فهرست را با تنظیم مربوطه محدود کنید.

برگه مالکان

یک دایرکتوری می تواند تابع یک دایرکتوری دیگر باشد. از منظر پیکربندی 1C 8.3 ، این بدان معنی است که ویژگی "Owner" برای عنصر تابع اجباری می شود. نمونه ای از چنین پیوندی بین فهرست در تنظیمات استاندارد "نامگذاری - واحدهای اندازه گیری" ، "طرفین مقابل - قراردادهای طرفین".

اشیا met فراداده زیر نیز می توانند مالک یک فهرست باشند: ،.

برگه داده

267 آموزش ویدیویی 1C را به صورت رایگان دریافت کنید:

مهمترین برگه از دید یک برنامه نویس. جزئیات کتاب مرجع روی آن مشخص شده است.

کتاب مرجع دارای مجموعه ای از جزئیات استاندارد است که توسط برنامه نویس 1C 8.2 ویرایش نمی شود ، لیستی از آنها را می توان با کلیک روی دکمه "جزئیات استاندارد" مشاهده کرد:

با جزئیات بیشتر در مورد هر یک صحبت خواهم کرد:

  • این گروه - یک ویژگی نوع بولی که نشان می دهد این یک گروه است یا یک عنصر. فقط در مرجع سلسله مراتبی موجود است. توجه داشته باشید، مقدار این متغیر را نمی توان در حالت 1C: Enterprise تغییر داد.
  • کد - ویژگی ، نوع شماره یا رشته (معمولاً رشته). شماره اختصاص داده شده توسط سیستم به طور خودکار. معمولاً به صورت (کد قبلی + 1) محاسبه می شود. من توصیه می کنم از نوع رشته استفاده کنید ، زیرا مرتب سازی مقادیر عددی مطابق انتظار انجام نمی شود. می تواند به عنوان نمای جستجو در یک لیست و در زمینه های ورودی استفاده شود. به طور معمول برای جستجوی مورد هنگام تایپ توسط رشته استفاده می شود. اگر می خواهید قسمت Code را حذف کنید ، صفر را در طول خط مشخص کنید.
  • نام - صفت لازم ، نوع رشته. حداکثر طول خط 150 نویسه است. می تواند به عنوان نمای جستجو در یک لیست و در زمینه های ورودی استفاده شود. به طور معمول برای جستجوی مورد هنگام تایپ توسط رشته استفاده می شود. اگر می خواهید قسمت Name را حذف کنید ، صفر را در طول خط مشخص کنید.
  • والدین - صفتی از نوع ReferenceLink.<ИмяТекущегоСправочника>... فقط در مرجع سلسله مراتبی موجود است. والد برتر را در سلسله مراتب نشان می دهد. اگر عنصر یا گروه در ریشه فهرست قرار داشته باشد ، مقدار Directory مشخص می شود.<ИмяТекущегоСправочника>خالی.
  • مالک - پیوند به صاحب عنصر عنصر فعلی (گروه) کاتالوگ. در دسترس فقط در کتاب مرجع تابع 1C.
  • علامت حذف - یک ویژگی بولی مسئول نمایش "علامت حذف" در سیستم است. عنصری که برای حذف علامت گذاری شده غیرقابل استفاده تلقی می شود ، اما حرکات قدیمی اسناد ممکن است روی آن باقی بماند.
  • ارتباط دادن - فیلد از نوع رشته. این ویژگی یک شناسه شی منحصر به فرد - GUID را ذخیره می کند. آنچه در سیستم در نمایش تصویری تحت عنوان "link" می بینیم فقط نمایش شی است. تغییر غیرممکن است.
  • از پیش تعریف شده - type boolean ، نشان می دهد که آیا عنصر از پیش تعریف شده است ، بعداً در مورد آن بیشتر توضیح می دهیم. تغییر غیرممکن است.

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

برگه شماره گذاری

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

یک سری کد - نحوه شماره گذاری فهرست را تعیین می کند ، می توانید شماره گذاری پوشه را در متن مالک وارد کنید. به عنوان مثال ، طرف قرارداد "شاخ و سم" شماره قرارداد خود را خواهد داشت - "1 ، 2 ، 3" و غیره.

برگه فرم ها

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

در این صفحه ویژگی مهم کتاب مرجع وجود دارد - "". این یک عملکرد بسیار مناسب از 1C 8 است که به شما اجازه می دهد در هنگام پر کردن داده ها در قسمت ورودی ، به فهرست مراجعه نکنید ، بلکه نام ، کد و غیره را تایپ کنید. و مورد مورد نظر را از لیست کشویی انتخاب کنید. به نظر می رسد به این شکل است:

برگه دیگر

در برگه ، می توانید سریع به ماژول های اصلی کتاب مرجع - ماژول شی و ماژول مدیر دسترسی پیدا کنید.

همچنین می توانید لیستی از موارد از قبل تعریف شده کاتالوگ را در صفحه تعریف کنید. اینها مواردی هستند که نمی توانند در حالت Enterprise حذف شوند. عناصر از پیش تعریف شده را می توان مستقیماً با نام در تنظیم کننده دسترسی پیدا کرد ، به عنوان مثال: Directories.Nomenclature.

این برگه همچنین حالت مسدود کردن - خودکار یا کنترل شده را تعریف می کند. با استفاده از جستجوی متن کامل ، و همچنین اطلاعات مرجع در مورد کتاب مرجع ، موجود در حالت 1C: Enterprise.