نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

انواع داده در سازمانی 1c. استفاده از انواع تعریف شده

انواع داده در 1C: Enterprise 8.x

قبل از فرو رفتن در ساختارهای زبان جاسازی شده، باید با انواع داده های اولیه آشنا شویم. خوشبختانه،:

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

عدد. اعداد در 1C به معنای مقادیر صحیح و ممیز شناور هستند. حداکثر طول کلمه برای مقداری از نوع "عدد" می تواند 32 کاراکتر، با احتساب نقطه اعشار باشد. همچنین باید در نظر داشت که محدودیت 32 نویسه برای اعدادی که در پایگاه داده نوشته می شوند اعمال می شود. می توان یک متغیر را اعلام کرد و مقداری بیشتر از 32 کاراکتر به آن اختصاص داد. برای مقادیر عددی که در حافظه ذخیره می شوند، این محدودیت اعمال نمی شود. پس از اعلام یک متغیر از نوع "Number"، مقدار آن 0 خواهد بود.

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

تاریخ. علاوه بر خود تاریخ، مقادیر این نوع حاوی زمان نیز هستند. زمان به ساعت، دقیقه و ثانیه اشاره دارد. بلافاصله پس از مقداردهی اولیه متغیری از نوع "تاریخ"، مقدار (تاریخ) "01 ژانویه 0001 00 ساعت 00 دقیقه 00 ثانیه" به آن اختصاص داده می شود. این گاهی اوقات آزاردهنده است، اما به مرور زمان به آن عادت می کنید.

بولی. این قابل درک است که متغیرهای این نوع فقط می توانند دو مقدار داشته باشند: True، False.

تعریف نشده مقادیر از نوع "تعریف نشده" زمانی استفاده می شود که شما نیاز به تعیین یک مقدار خالی دارید که به هیچ نوع داده دیگری تعلق ندارد. به عنوان مثال، شما باید متغیری را اعلام کنید که سپس در جایی استفاده شود. می توانید مقداری مانند 0 یا "" (یعنی یک رشته خالی) به آن اختصاص دهید، اما با انجام این کار بلافاصله نوع مناسب را برای آن تعیین می کنیم (عدد یا رشته). اما اگر نصب یکی از این انواع بعداً ممکن است تداخل داشته باشد چه؟ در چنین مواردی، می توانید از مقداری از نوع «تعریف نشده» استفاده کنید. همچنین شایان ذکر است که بسیاری از توابع زبان تعبیه شده در صورت اجرای ناموفق، مقداری از این نوع را برمی گرداند. هنگام توصیف عملکردهای آن، توصیه می شود از همان قانون پیروی کنید.

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

نه تنها هنگام کار با کوئری ها ممکن است با مقداری از نوع Null مواجه شوید. به عنوان مثال، یک مقدار Null ویژگی هایی را می پذیرد که توسط شی مورد استفاده قرار نمی گیرند. بیایید تصور کنیم که یک فهرست سلسله مراتبی با ویژگی "کمیت" داریم. هنگام ایجاد این ویژگی، ویژگی "Usage" با مقدار "For the element" تنظیم شد. اگر بخواهید برای عنصر دیکشنری از نوع "گروه" به این ویژگی مراجعه کنید، مقدار آن فقط Null خواهد بود.

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

متغیر1 = 123; // از آنجایی که ما یک عدد اختصاص دادیم، نوع متغیر "عدد" خواهد بود.
Variable2 = "string"; // در اینجا یک رشته اختصاص دادیم، بنابراین نوع متغیر رشته ای خواهد بود.

اکنون باید ۱۰۰٪ مطمئن شوید که متغیر ۱ عددی است. این جایی است که نوع "نوع" به کار می آید (به نظر خنده دار می رسد)، و همچنین چند عملکرد کمکی. هنوز وارد جزئیات نمی شود. فقط نگاه کنید و سعی کنید مثال زیر را بفهمید:

اگر (TypeZnch (Variable1) = Type ("Number")) سپس

گزارش ("متغیر 1 عددی است!")؛

در غیر این صورت

گزارش ("Variable1 عددی نیست :(");

EndIf

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

با تشکر از شما برای کمک در نوشتن این مقاله توسط ایگور آنتونوف.

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

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

سیستم نوع در راهنمای نحو، راهنمای آنلاین و مستندات توضیح داده شده است.

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

انواع داده های تعریف شده در سطح پلت فرم

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

انواع اولیه

انواع داده های اولیه انواعی مانند خط, عدد, تاریخ, بولیدیگر. این انواع برای 1C چیز خاصی نیستند: Enterprise 8. به عنوان یک قاعده، این نوع داده ها در سایر سیستم های نرم افزاری نیز وجود دارند.

مقادیر انواع اولیه مقادیر ساده و غیر قابل تقسیمی هستند که نمی توان آنها را از اجزای جداگانه آنها متمایز کرد. به عنوان مثال، مقادیر مانند عددمی تواند 1، 8، 15 و غیره باشد. برای ایجاد یک مقدار از نوع اولیه، باید آن را در متن برنامه مشخص کنید. تحت اللفظی- شناسه نمادین مقدار

مجموعه های عمومی از ارزش ها

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

انواع رایج

علاوه بر این، این پلت فرم انواع داده های خاصی را پیاده سازی می کند که یک یا آن عملکرد راه حل های کاربردی را پیاده سازی می کند: سند متنی, سند جدولی, StorageValues, Query Builderدیگر.

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

نمونه های شی با استفاده از عملگر زبان تعبیه شده ویژه ایجاد می شوند - جدید.

انواع رابط

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

انواع داده های تولید شده در راه حل کاربردی

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

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

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

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

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

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

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

به عنوان مثال، پس از ایجاد یک فهرست جدید نامگذاری، انواع داده های زیر در دسترس می شوند:

  • DirectoryManager.Nomenclature,
  • DirectoryRef.Nomenclature،
  • DirectoryObject.Nomenclature،
  • DirectorySample.Nomenclature,
  • DirectoryList.Nomenclature.

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

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

  • انباشت ثبت نام شرکت های مدیر فروش
  • انباشت RegisterSample.SalesCompanies
  • انباشت RegisterList.SalesCompanies
  • انباشت RegisterRecordSetSalesCompanies
  • انباشت RegisterRecord.SalesCompanies
  • انباشت RegisterKeyRecord.SalesCompany.

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

نکته دیگری که باید بر آن تاکید شود، ساده ترین راه برای نشان دادن با مثال است.

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

/
ایجاد و اصلاح اشیاء ابرداده

استفاده از انواع تعریف شده

دامنه: برنامه مدیریت شده، برنامه عمومی.

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

همچنین به مقاله ITS مراجعه کنید: "اشیاء پیکربندی - انواع تعریف شده"

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

  • شماره فاکتور- خط، طول 30. تنظیم فرمت شماره فاکتور در اسناد مختلف: ورود کالاها و خدمات, خرید کتاب بنویسید, مرجوعی کالا از مشتریو غیره.
  • نشانی تحویل- خط، 500. نمایش متنی آدرس تحویل در اسناد سفارش به تامین کننده, نشانی حمل و نقل، در حال پردازش دستیار فروش، در لوازم نشانی حمل و نقلسند درخواست بازگشت کالا از مشتریو غیره.

2.2. برای تعریف یک نوع ترکیبی که به طور گسترده در اشیاء یک زیر سیستم یا در کل راه حل کاربردی استفاده می شود. نوع تعریف شده ترکیب (نوع) یکسانی از داده ها را در همه مکان های استفاده تضمین می کند و همچنین اصلاح و پیاده سازی زیرسیستم ها را در تنظیمات برنامه ساده می کند.

به عنوان مثال، پیکربندی شامل یک زیر سیستم است فعل و انفعالات، که برای انجام مکاتبات از طریق ایمیل، ثبت تماس ها و جلسات در نظر گرفته شده است. هنگام پیاده‌سازی این زیرسیستم، توسعه‌دهنده تصمیمی در مورد ترکیب اشیاء فراداده‌ای اتخاذ کرد که می‌توانند به عنوان "مخاطبین تعامل" عمل کنند - اینها عناصر دایرکتوری هستند. اشخاص حقیقی, شرکا, تماس با همکاران، و این مجموعه از انواع را در نوع تعریف شده تنظیم کنید تعاملات تماسدر زیر سیستم ارائه شده است. به نوبه خود، نوع تعریف شده به طور گسترده در ویژگی های اشیاء و اشکال زیر سیستم (در اسناد) استفاده می شود. ملاقات, تعامل برنامه ریزی شده- بخش جدولی شركت كنندگان، در سند پیامک پیامک- بخش جدولی مخاطبین، در سند تماس تلفنی- لوازم تماس مشترک، در اشکال کلی دفترچه آدرس, مخاطب را انتخاب کنید- ملزومات تماس بر اساس موضوع، در پارامتر layout سلسله مراتب تعاملاتمجله سند فعل و انفعالاتو غیره) در غیر این صورت بدون استفاده از نوع تعریف شده تعاملات تماسلازم است که اشیاء زیرسیستم را از پشتیبانی حذف کرده و مجموعه مورد نیاز از انواع را در همه مکان های فهرست شده تنظیم کنید.

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

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

ما به آشنایی خود با قابلیت جدید 1C: Enterprise که در مقاله قبلی این مجموعه شروع کردیم، ادامه می دهیم. پس از مطالعه مطالب این مقاله، خواهید آموخت:

  • انواع تعریف شده چیست و چگونه از آنها استفاده کنم؟
  • ویژگی پیکربندی نقش های اصلی برای چیست؟
  • چگونه از Form Client Event Handler Helper استفاده کنم؟
  • چگونه و چرا از تنظیمات پیکربندی در فایل های XML استفاده می شود؟

قابلیت کاربرد

این مقاله پلتفرم "1C: Enterprise" نسخه 8.3.4.437 را مورد بحث قرار می دهد، اما مواد آن می تواند برای کسانی که روی نسخه های قدیمی کار می کنند مفید باشد.

نحوه تسهیل توسعه در "1C: Enterprise 8.3"

ما همچنان به بررسی نوآوری های پلتفرم 1C: Enterprise 8 با هدف تسهیل پیکربندی ادامه می دهیم.

انواع تعریف شده

یک شی جدید به پلت فرم 8.3 در شاخه پیکربندی "عمومی" اضافه شده است - انواع تعریف شده.

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

برای مثال، یک نوع ترکیبی را در نظر بگیرید که شامل پیوندی به فهرست‌های «پیمانکاران» و «افراد» است.

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

در حین اجرای چنین پیکربندی، ترکیب این نوع می تواند تغییر کند - اشیاء جدیدی را می توان به آن اضافه کرد، و همچنین برعکس - انواع اضافی را می توان حذف کرد.

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

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

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

در اینجا مثال دیگری از استفاده از یک نوع تعریف شده است.

برای برخی از جزئیات، یک استاندارد تایپ در پیکربندی وجود دارد. به عنوان مثال، ما یک کمیت را به عنوان عدد طول 15 با دقت 3 و مجموع را به عنوان عدد طول 15 با دقت 2 تعریف می کنیم.

فرض کنید که یک شرکت باید سوابق کالاهای با ارزش بالا را با دقت بالای وزن آنها نگه دارد.

بر این اساس، ما باید دقت جزئیات را برای محاسبه مقدار تا 4 رقم اعشار افزایش دهیم. این تغییرات باید به طور همزمان در تمام جزئیات اسناد و منابع ثبت شود.

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

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

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

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

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

توجه داشته باشید که در بستر ویرایش 8.3.5 با گسترش مجموعه انواعی که می توانند بخشی از نوع تعریف شده باشند، امکانات استفاده از انواع تعریف شده افزایش یافته است.

هیچ تغییر دیگری در کار با نوع تعریف شده تا نسخه های پلت فرم فعلی 8.3.10 / 8.3.11 ایجاد نشد.

ویژگی پیکربندی نقش های اصلی

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

در پلتفرم 8.3، امکان تعیین چندین نقش وجود داشت که در هنگام تعیین حقوق دسترسی با لیست خالی کاربران استفاده می شود. بر این اساس ملک به «نقش اصلی» تغییر نام یافت.

برای بزرگنمایی روی تصویر کلیک کنید.

ایجاد کنترل کننده رویداد مشتری فرم سفارشی

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

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

پلتفرم 8.3 یک جادوگر را برای ایجاد کنترل کننده رویدادهای فرم مشتری معرفی می کند.

برای بزرگنمایی روی تصویر کلیک کنید.

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

آپلود تنظیمات روی فایل ها

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

پیکربندی همیشه فقط به طور کامل بدون امکان فیلتر کردن اشیاء بارگیری نشده تخلیه می شود.

برای آپلود پیکربندی در فایل ها، آیتم Configuration - Upload configuration to files را در منو انتخاب کنید، در گفتگوی باز شده دایرکتوری که فایل ها در آن ذخیره می شوند را انتخاب کنید.

اشیاء پیکربندی به عنوان مجموعه ای از فایل های XML آپلود می شوند. ماژول ها و طرح بندی متن به عنوان فایل های TXT ذخیره می شوند. تصاویر از پیکربندی به عنوان فایل های تصویری (BMP، PNG، و غیره) ذخیره می شوند. اطلاعات راهنما در فایل های HTML ریخته می شود.

برای بزرگنمایی روی تصویر کلیک کنید.

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

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

فایل های ویرایش شده را می توان با استفاده از آیتم منوی Configuration - Load configuration from files دوباره در پیکربندی بارگذاری کرد.

کار با عملکرد جدید بارگیری / تخلیه نیز با استفاده از پارامترهای خط فرمان LoadConfigFromFiles و DumpConfigToFiles در دسترس است. به عنوان مثال، مانند این:

"C: \ Program Files (x86) \ 1cv8 \ 8.3.4.437 \ bin \ 1cv8.exe" DESIGNER / F "X: \ Platform8Demo" / N "Administrator" / DumpConfigToFiles "X: \ 1 \"

پیش از این، در پلت فرم 8.2، مکانیزمی برای تخلیه / بارگیری فایل های پیکربندی وجود داشت که امکان تخلیه / بارگیری انتخابی برخی از ویژگی های اشیاء پیکربندی (ماژول ها، طرح بندی ها و اطلاعات مرجع) را فراهم می کرد.

متوجه شدیم که به‌طور پیش‌فرض دستورات «Unload configuration files» و «Load configuration files» از پیکربندی‌کننده در پلتفرم 8.3 حذف شده‌اند.

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

مکانیسم جدید برای تخلیه پیکربندی در فایل‌ها همیشه کل داده‌ها را برای کل پیکربندی تخلیه می‌کند؛ توانایی پیکربندی اشیاء برای تخلیه ارائه نشده است، در نتیجه یکپارچگی پیکربندی را تضمین می‌کند.

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

بقیه اشیاء در فایل هایی با فرمت های جهانی آپلود می شوند. اساساً موتور یک برنامه مدیریت شده را هدف قرار می دهد.

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

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

هنگام تخلیه، پردازش اضافی پیکربندی انجام می شود: پیوندهای گیر کرده حذف می شوند، اطلاعات استفاده نشده نیز بارگیری نمی شوند (به عنوان مثال، کمک برای یک زبان غیر موجود).

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

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

از نسخه 8.3.11، قالب "سلسله مراتبی" تنها فرمت موجود برای انتخاب در طول آپلود تعاملی شده است:

اگر از این قابلیت استفاده می کنید، توصیه می کنیم:

  • ابتدا از قالب آپلود "سلسله مراتبی" استفاده کنید.
  • ثانیا، از پلتفرمی استفاده کنید که کمتر از نسخه 8.3.8+ نباشد، زیرا با شروع آن، سرعت بارگیری / تخلیه در فایل های XML به طور قابل توجهی افزایش یافته است.

در نسخه 8.3.10، بارگیری جزئی پیکربندی در فایل های XML پشتیبانی شده است. در نتیجه، امکان استفاده از تنظیمات XML در ارتباط با Git فراهم شد.

- ما شروع کردیم به بحث در مورد انواع مقادیر 1C و تبدیل نوع 1C.

امروز با جزئیات بیشتری در مورد انواع اشیاء پیکربندی 1C (نوع سند 1C، ​​نوع دایرکتوری 1C و غیره) صحبت خواهیم کرد.

از آنجایی که در کد برنامه با مقادیر کار می کنیم، به طور دوره ای باید نوع آنها را بدانیم. نوع 1C همیشه در فراداده برای جزئیات نشان داده می شود - در فهرست ها، اسناد.

کار با انواع 1C اغلب استفاده می شود:

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

نوع 1C را می توان به دست آورد:

  • نوع مقدار واقعی 1C را تعیین کنید
  • مقادیر آبجکت دارای ویژگی هایی هستند که نوع 1C مجاز را نشان می دهد (به عنوان مثال، انواع 1C مجاز در ستون جدول، فیلد روی فرم، در ابرداده) یا روش هایی که این نوع 1C را برمی گرداند.
  • از متادیتا - می توانید نوع 1C را همانطور که در متادیتا در پیکربندی نشان داده شده است دریافت کنید.

انواع 1C را می توان به سه نوع تقسیم کرد:

  • انواع پایه 1C
  • انواع پایگاه داده 1C (مرجع، اشیاء)
  • انواع 1C.

تعریف نوع 1C و مقایسه انواع 1C

با استفاده از تابع TypeZnch (متغیر) می توانید نوع مقدار 1C را پیدا کنید

برای درک اینکه این تابع چه نوع 1C را برگردانده است، باید نوع مورد نیاز خود را مشخص کنید ("TypeName")

به عنوان مثال، تعریف (مقایسه) نوع متغیر 1C:
IfTypeZnch (Variable) = تایپ کنید ("TypeName") سپس

چه نوع هایی برای TypeName باید بنویسم؟

انواع پایه

انواع اصلی 1C - عدد، رشته، تاریخ، بولی.

برای مثال:
Znch = 12;
اگر TypeZnch (Znch) = نوع ("شماره") سپس
ElseIf Znch = تایپ کنید ("رشته") سپس
ElseIf Znch = تایپ کنید ("تاریخ") سپس
ElseIf Znch = تایپ کنید ("Boolean") سپس
EndIf

انواع پایگاه داده

1C داده ها را در یک پایگاه داده ذخیره می کند، اما نه به عنوان رکوردهای جداگانه، بلکه به عنوان اشیا.

بسیاری از اشیاء ذخیره شده (از جمله: دایرکتوری ها، اسناد، شمارش ها، فرآیندهای تجاری، وظایف) به عنوان یک شی (برای ویرایش و نوشتن) و به عنوان یک مرجع (برای خواندن) در دسترس هستند. برای جزئیات بیشتر به مراجع و اشیاء مراجعه کنید.

برای مثال:
Znch = Directories.Organizations.EmptyRef ();
اگر TypeZnch (Znch) = تایپ کنید ("DirectoryLink.Organizations") سپس
ElseIf Znch = تایپ کنید ("DirectoryObject.Organizations") سپس
ElseIf TypeZnch (Znch) = تایپ کنید ("DocumentLink.Arrival of Goods") سپس
ElseIf Znch = تایپ کنید ("DocumentObject.Goods رسید") سپس
EndIf

رجیسترها می توانند انواع مختلفی داشته باشند. نام نوع ثبت نام مرکب است:
RegisterTypeAccessType.RegisterName

انواع رجیسترهای 1C:

  • اطلاعات
  • تجمع
  • بخش های حسابداری
  • محاسبه.

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

  • مجموعه رکورد
  • فهرست کنید
  • نمونه
  • در حال ضبط
  • رکوردهای کلیدی

مجموع، مثال:
IfTypeZnch (Znch) = تایپ کنید ("InformationRegisterList.RegisterName") سپس
ElseIf Znch = تایپ کنید ("AccumulationRecordRecordSet.RegisterName") سپس
EndIf

زبان 1C به شما امکان می دهد با انواع مختلفی از اشیاء ایجاد شده به صورت پویا در برنامه کار کنید، به عنوان مثال - یک آرایه، یک لیست از مقادیر، یک جدول از مقادیر، یک ساختار ...

چنین انواع 1C با نام آنها (در یک کلمه، بدون فاصله) مشخص می شود. برای مثال:
اگر TypeZnch (Znch) = نوع ("آرایه") سپس
ElseIf Znch = تایپ کنید ("ListValues") سپس
EndIf

تعیین مقدار نوع مرجع 1C

کار با تمام اشیاء پایگاه داده (کتاب های مرجع، اسناد و ...) از طریق پیوندها انجام می شود. به عنوان مثال، اگر بخواهیم در یک سند - یک کتاب مرجع، یک پایه بسازیم، نوع 1C آن "ReferenceLink.Reference name" خواهد بود.

برای مثال:
Value = Directories.Organizations.EmptyRef ();
اگر Dictionaries.TypeAllRefs (). حاوی (TypeZnch (Value)) سپس
// این یک مرجع است
ElseIf Documents.AllLinkType () .Contains (ZnchType (Value)) سپس
// این یک سند است
EndIf

در یک درخواست، نوع 1C را می توان به دو روش بررسی کرد.

مورد اول مشابه آنچه توضیح داده شده است، اما نام نوع 1C نشان دهنده "Link" یا "Object" نیست، یعنی به جای "DirectoryLink.Organizations" می نویسیم "Directory.Organizations"

برای مثال:

به دست آوردن انواع موجود 1C

بسیاری از اشیاء دارای ویژگی ValueType هستند که شامل لیستی از انواع 1C است:

  • فیلد فرم مشتری چاق
    Form Elements.FieldName.Value Type
  • فیلد در فرم مشتری نازک (استثنا: به نام AvailableTypes)
    Elements.Fields.AvailableTypes
  • ستون جدول مقادیر، درخت مقادیر
  • لوازم را شکل دهید
  • عنصر انتخاب

نحوه کار با این لیست از انواع 1C در فیلد نوع مقدار - به "توضیحات انواع" در بخش "زبان 1C" مراجعه کنید.

کار با انواع ویژگی های 1C در فراداده های پیکربندی

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

روش های اساسی:

  • متد Metadata () را برای شی 1C فراخوانی کنید، که ابرداده یک شی خاص را برمی گرداند و سپس با لیست ویژگی ها (و ویژگی های بخش جدولی) کار می کند.
    اسناد. رسید کالا.EmptyLink (). فراداده (). الزامات
  • از متغیر سراسری "Metadata" استفاده کنید، که تمام ابرداده های پیکربندی را برمی گرداند و سپس به جزئیات یک شی خاص بروید.
    فراداده. اسناد.کالاهای ورودی.ویژگی ها

یک ویژگی دارای ویژگی Type است که حاوی لیستی از انواع 1C است که در پیکربندی برای این ویژگی تنظیم شده است.

نحوه کار با این لیست از انواع 1C - به "توضیحات انواع" در بخش "زبان 1C" مراجعه کنید.

فیلتر انواع 1C را مشخص کنید

برای بسیاری از اشیاء، می توان فیلتری از انواع مقدار 1C را تعیین کرد که می توان از آنها استفاده کرد، به عنوان مثال:

  • فهرست مقادیر (مقادیر موجود)
  • فیلد فرم مشتری مدیریت شده (AvailableTypes)

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

برای تعیین لیستی از انواع 1C برای فیلتر، از لیستی از انواع 1C استفاده می شود، نحوه کار با آن - به "توضیحات انواع" در بخش "زبان 1C" مراجعه کنید.

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