خانه - راه اندازی روتر
نحوه دسترسی به ماژول عمومی 1s 8.3. قوانین ایجاد ماژول های مشترک

چاپ (Ctrl+P)

اشیایی که در شاخه General modules درخت پیکربندی قرار دارند به گونه ای در نظر گرفته شده اند که حاوی متون توابع و رویه هایی هستند که می توانند از هر ماژول پیکربندی دیگری فراخوانی شوند.
توجه! یک ماژول عمومی فقط می تواند شامل تعاریف رویه و تابع باشد.
رویه ها و عملکردهای یک ماژول مشترک که کلمه کلیدی Export برای آن در هدر آنها مشخص شده است، یکی از اجزای زمینه جهانی است. اطلاعات بیشتر در مورد رویه‌های نوشتن در یک ماژول عمومی را می‌توانید در بخش‌های «قالب متون منبع ماژول‌های برنامه» و «اپراتورها» راهنمای زبان داخلی پیدا کنید.
برای ویرایش یک ماژول معمولی، در پالت خصوصیات یک شی از نوع Common Modules در پنجره Configuration، در ویژگی Module، روی پیوند Open کلیک کنید. متن ماژول عمومی برای ویرایش در ویرایشگر متن سیستم 1C: Enterprise در حالت ویرایش متن ماژول نرم افزار صادر می شود.
ماژول مشترک، که بخشی از پیکربندی است، تنها به عنوان بخشی از پیکربندی ذخیره می شود.
ویژگی Global تعیین می کند که آیا روش های صادر شده یک ماژول مشترک بخشی از زمینه جهانی هستند یا خیر.
اگر ویژگی Global روی True تنظیم شود، روش های صادر شده ماژول مشترک به عنوان روش های زمینه جهانی در دسترس هستند.
اگر ویژگی Global بر روی False تنظیم شود، یک ویژگی در زمینه جهانی با نامی ایجاد می شود که با نام ماژول رایج در ابرداده مطابقت دارد. این ویژگی فقط خواندنی است. مقدار این ویژگی شی GeneralModule است. روش های صادر شده این ماژول مشترک از طریق این شی در دسترس هستند. بنابراین، دسترسی به روش‌های ماژول‌های مشترک غیرجهانی شبیه به XXXXX.YYYYY است، که در آن XXXXX نام ویژگی مربوط به زمینه ماژول مشترک است، و YYYYY نام روش صادر شده ماژول مشترک است.
مثال:

کار با تجهیزات خرده فروشی.ConnectBarcode Scanner();

زمینه های مختلف و ماژول های رایج

با استفاده از ویژگی های ماژول های رایج و دستورالعمل های پیش پردازنده، می توانید اجرای روش های مختلف ماژول های رایج را در زمینه دلخواه سازماندهی کنید.
هر ویژگی از یک ماژول مشترک مسئول توانایی کامپایل (و اجرای) ماژول مشترک در یک زمینه خاص است.
ویژگی های زیر در دسترس هستند که مسئول زمینه ای هستند که متدهای ماژول عمومی در آن در دسترس هستند:
مشتری (برنامه معمولی)- روش های ماژول مشترک در حالت برنامه معمولی برای مشتری ضخیم در دسترس خواهد بود.
● – روش های ماژول عمومی برای تین کلاینت، وب کلاینت و همچنین برای کلاینت ضخیم در دسترس خواهد بود.
حالت برنامه مدیریت شده؛
● سرور - روش های ماژول مشترک در سرور در دسترس خواهد بود.
پیوستن خارجی- روش های ماژول مشترک در اتصال بیرونی در دسترس خواهد بود.
اگر چندین ویژگی به طور همزمان تنظیم شود، به این معنی است که متدهای ماژول مشترک در چندین زمینه در دسترس خواهند بود.
اگر یک ماژول مشترک دارای ویژگی Server و هر مجموعه ویژگی دیگری باشد، به این معنی است که ماژول مشترک به طور همزمان بر روی سرور و در کلاینت انتخاب شده در دسترس خواهد بود. درک این نکته ضروری است که در واقع این چندین نسخه از کد کامپایل شده (با توجه به تعداد مشتریان انتخاب شده و خود سرور) خواهد بود.
علاوه بر این، اگر متدی واقع در چنین ماژول مشترکی از سمت کلاینت فراخوانی شود، از کپی کلاینت ماژول مشترک و اگر از سرور، از کپی سرور استفاده شود. در این مورد، با استفاده از دستورالعمل های پیش پردازنده (برای جزئیات بیشتر اینجا را ببینید)، می توانید از سرور در برابر کدهایی که نمی توانند روی آن اجرا شوند محافظت کنید.
بیایید به یک مثال نگاه کنیم. در ماژول مشترک (که می تواند روی تین کلاینت و روی سرور اجرا شود) روشی وجود دارد که در سمت تین کلاینت و سمت سرور کمی رفتار متفاوتی دارد. بیایید ببینیم چگونه می توان این کار را انجام داد:



#If ThinClient then
// نمایش هشدار
ShowUserAlert("در مورد مشتری")؛
#پایان اگر
پایان رویه
سپس در سمت سرور کد به شکل زیر خواهد بود:
روش متد CommonModule().صادرات
// کدهای مهم مختلف اینجا قرار می گیرد
پایان رویه
و در سمت تین کلاینت کد به شکل زیر خواهد بود:
Procedure CommonModule Method() Export
// کدهای مهم مختلف اینجا قرار می گیرد
// نمایش هشدار
ShowUserAlert ("در مشتری")؛
پایان رویه

چندین روش برای انتقال کنترل از کلاینت به سرور وجود دارد:
● روش ماژول مشترک سرور را فراخوانی کنید.
● در یک فرم یا ماژول فرمان، متدی را فراخوانی کنید که قبل از آن دستورالعمل های کامپایل وجود دارد &OnServer، &OnServerWithout Context

در عین حال، فراخوانی متدهای ماژول‌های مشترک کلاینت (که دارای مجموعه ویژگی Server نیستند) و روش‌های مشتری یک ماژول فرم یا ماژول فرمان از رویه‌های سرور غیرممکن است. کنترل پس از تکمیل فراخوانی روش سرور خارجی به مشتری باز می گردد.
استثنا روش های ماژول فرم و ماژول فرمان است که قبل از آنها دستورالعمل های کامپایل وجود دارد &OnClientOnServer, &OnClientOnServerWithout Context
همچنین باید به نکات زیر اشاره کرد:
● اگر یک ماژول مشترک برای بیش از یک کلاینت در دسترس است، هنگام نوشتن کد برنامه، باید حداکثر محدودیت‌هایی را که ممکن است توسط کلاینت‌ها اعمال می‌شود، در نظر بگیرید، یا از دستورالعمل‌های پیش‌پردازنده برای جداسازی کدهای ویژه کلاینت استفاده کنید.
● دستورالعمل‌های پیش‌پردازنده نیز زمانی معنا پیدا می‌کنند که یک ماژول مشترک دارای چندین زمینه اجرایی باشد، برای مثال، یک اتصال خارجی و یک کلاینت نازک، یا (که بسیار رایج‌تر است) یک سرویس گیرنده و یک سرور. در این مورد، دستورالعمل‌های پیش‌پردازنده، کدهای تعاملی را قاب می‌کنند که نمی‌توانند در سرور استفاده شوند، اما می‌توانند روی کلاینت استفاده شوند (نمونه بالا را ببینید).
برای اطلاعات بیشتر درباره دستورالعمل‌های پیش‌پردازنده و دستورالعمل‌های کامپایل، به بخش «اجرای رویه‌ها و توابع» راهنمای زبان تعبیه‌شده مراجعه کنید.
ویژگی Call Server برای کنترل توانایی فراخوانی روش های صادر شده ماژول مشترک سرور از کد مشتری در نظر گرفته شده است.
اگر ویژگی تنظیم شده باشد، روش های صادر شده ماژول مشترک سرور برای تماس از مشتری در دسترس هستند. اگر ویژگی تنظیم نشده باشد، چنین روش های صادر شده را فقط می توان از روش های سمت سرور فراخوانی کرد (هر دو روش ماژول های رایج سمت سرور و روش های سمت سرور ماژول های فرم و ماژول های فرمان).
نصیحت. توصیه می‌شود در مواردی که ماژول مشترک سرور شامل روش‌هایی است که نمی‌خواهید از سوی کلاینت فراخوانی کنید (مثلاً به دلایل امنیتی) ویژگی Server Call را روی False تنظیم کنید.
توجه داشته باشید. اگر خواص همزمان تنظیم شوند مشتری (برنامه معمولی), مشتری (برنامه مدیریت شده), پیوستن خارجی، سپس ویژگی Call server به طور خودکار بازنشانی می شود. اگر ویژگی Call server تنظیم شده باشد، ویژگی ها به طور خودکار بازنشانی می شوند مشتری (برنامه معمولی), مشتری (برنامه مدیریت شده)و پیوستن خارجی، اگر این ویژگی ها همزمان تنظیم شده باشند.
ویژگی ممتازبرای غیرفعال کردن کنترل حقوق دسترسی هنگام اجرای متدهای یک ماژول مشترک در نظر گرفته شده است.
توجه داشته باشید. اگر ملک ممتازنصب می شود، سپس ویژگی Server به طور خودکار برای ماژول مشترک تنظیم می شود و خصوصیات باقیمانده بازنشانی می شوند ( مشتری (برنامه معمولی), مشتری (برنامه مدیریت شده)و ب اتصال خارجی). یک ماژول اشتراکی ممتاز فقط روی سرور قابل اجرا است.

استفاده مجدد از مقادیر بازگشتی

اگر ماژول مشترک جهانی نباشد، ویژگی Reuse Return Values ​​در دسترس می شود. این ویژگی می تواند مقادیر زیر را داشته باشد:
● استفاده نکنید - استفاده مجدد از مقادیر بازگشتی برای توابع در این ماژول رایج وجود ندارد.
● در هر تماس و هر جلسه - ماژول مشترک از روشی برای تعیین استفاده مجدد از داده ها استفاده می کند. ماهیت این روش این است که در هنگام اجرای کد، سیستم پس از اولین فراخوانی تابع، پارامترها و نتیجه توابع را به خاطر می آورد. هنگامی که یک تابع با همان پارامترها دوباره فراخوانی می شود، مقدار ذخیره شده (از اولین فراخوانی) بدون اجرای خود تابع برگردانده می شود. اگر تابعی در حین اجرای خود مقادیر پارامترها را تغییر دهد، فراخوانی مجدد تابع این کار را انجام نخواهد داد.
ویژگی های زیر برای ذخیره نتایج تماس را می توان برجسته کرد:
● اگر تابعی در سرور اجرا شود و از کد سرور فراخوانی شود، مقادیر پارامتر و نتیجه تماس برای جلسه فعلی در سمت سرور به خاطر سپرده می شود.
● اگر تابع روی یک کلاینت ضخیم یا نازک اجرا شود، مقادیر پارامترها و نتایج تماس در سمت مشتری به خاطر سپرده می شود.
● اگر تابعی در سمت سرور اجرا شود و از کد مشتری فراخوانی شود، مقادیر پارامترهای تماس هم در سمت مشتری و هم در سمت سرور (برای جلسه فعلی) به خاطر سپرده می شوند.
مقادیر ذخیره شده حذف می شوند:
● اگر ویژگی برای مدت زمان تماس تنظیم شده باشد:
● در سمت سرور – هنگام برگرداندن کنترل از سرور؛
● در سمت سرویس گیرنده – زمانی که یک رویه یا تابع زبان داخلی سطح بالا پایان می یابد (که توسط سیستم از رابط فراخوانی می شود و نه از رویه یا تابع زبان داخلی دیگر).
● اگر ویژگی ماژول به اشتراک گذاشته شده روی For time of session تنظیم شده باشد:
● در سمت سرور - در پایان جلسه.
● در سمت سرویس گیرنده - هنگام بستن برنامه مشتری.
مقادیر ذخیره شده حذف خواهند شد:
● در سرور، در کلاینت ضخیم، در اتصال خارجی، در تین کلاینت و در کلاینت وب با سرعت اتصال معمولی - 20 دقیقه پس از محاسبه مقدار ذخیره شده یا 6 دقیقه پس از آخرین استفاده؛
● در تین کلاینت و کلاینت وب با سرعت اتصال کم – 20 دقیقه پس از محاسبه مقدار ذخیره شده.
● در صورت کمبود RAM در فرآیند کار سرور؛
● هنگام راه اندازی مجدد گردش کار.
● هنگامی که مشتری به گردش کار دیگری تغییر می کند.
پس از حذف مقادیر، فراخوانی تابع صادر شده مانند تماس اول انجام می شود.
این ویژگی ماژول های رایج بر اجرای رویه ها تأثیر نمی گذارد - رویه ها همیشه اجرا می شوند.

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

اگر یک ماژول مشترک دارای ویژگی باشد استفاده مجدد از مقادیر بازگشتیبرای مدت زمان جلسه تنظیم شده است، سپس مقادیر از نوع را نمی توان در مقادیر بازگردانده شده توسط توابع چنین ماژول استفاده کرد. مدیر جدول زمان.
اگر تابعی از یک ماژول مشترک، با مجموعه قابلیت استفاده مجدد، از داخل همان ماژول مشترک فراخوانی شود (به عنوان مثال، با نام GeneralModule)، باید هشدار زیر را در نظر داشت: اگر تابع با نام MyFunction() فراخوانی شود. سپس هر بار که تابع فراخوانی شود، تابع اجرا خواهد شد. برای استفاده از مقادیر ذخیره شده، تابع باید با نام کامل آن فراخوانی شود:
GeneralModule.MyFunction().
روش زمینه جهانی همه مقادیر استفاده مجدد را، چه سمت سرور و چه در سمت سرویس گیرنده، صرف نظر از جایی که متد فراخوانی شده است، حذف می کند. پس از اجرای روش UpdateReusedValues()اولین فراخوانی تابع به طور کامل اجرا خواهد شد.

ماژول های عمومی 1C- یک شیء فراداده پیکربندی برای 1C 8.3 و 8.2، که کد برنامه را که اغلب در پیکربندی فراخوانی می شود، ذخیره می کند. یک تابع/روش را می توان از هر نقطه از پیکربندی فراخوانی کرد (اگر یک تابع صادراتی باشد).

نحوه استفاده از ماژول اشتراکی

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

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

ویژگی های ماژول های رایج

یکی از ویژگی های اصلی ماژول های به اشتراک گذاشته شده از ماژول های دیگر این است که نمی توانید متغیرهای مشترک را اعلام کنید.

267 درس ویدیویی را در 1C به صورت رایگان دریافت کنید:

بیایید نگاهی دقیق تر به پالت ویژگی های ماژول عمومی بیندازیم:

  • جهانی- اگر پرچم تنظیم شود، توابع و رویه های این ماژول در زمینه جهانی در دسترس می شوند. آن ها آنها را می توان در هر نقطه از پیکربندی با دسترسی بدون نام ماژول مشترک فراخوانی کرد. با این حال، یک شرط اضافه می شود - نام رویه ها و توابع در این ماژول مشترک باید در زمینه جهانی منحصر به فرد باشد.
  • سرور- رویه ها و توابع این ماژول رایج را می توان بر روی سرور اجرا کرد.
  • پیوستن خارجی- کدهای برنامه این ماژول مشترک را می توان در صورت اتصال توسط یک منبع خارجی (به عنوان مثال، COM) اجرا کرد.
  • مشتری (برنامه مدیریت شده)- رویه ها و عملکردهای این ماژول رایج را می توان در یک کلاینت ضخیم در حالت برنامه مدیریت شده استفاده کرد.
  • مشتری (برنامه معمولی)- کدهای برنامه این ماژول رایج را می توان در یک کلاینت ضخیم در حالت برنامه معمولی استفاده کرد.
  • تماس سرور- پرچمی که به مشتری اجازه می دهد از رویه ها و توابع این ماژول مشترک استفاده کند.
  • - اگر روی True تنظیم شود، بررسی حقوق دسترسی در این ماژول مشترک غیرفعال می شود.
  • استفاده مجدد- تنظیمات مقادیر برگشتی را مشخص می کند؛ اگر گزینه فعال باشد، پس از اولین اجرا، سیستم مقدار این پارامترهای ورودی را به خاطر می آورد و یک مقدار آماده را برمی گرداند. می تواند مقادیر زیر را بگیرد: استفاده نشده- خاموش شدن، برای مدت تماس- برای مدت یک روش خاص، برای مدت جلسه- تا زمانی که کاربر جلسه (برنامه) را ببندد.

اگر شروع به یادگیری برنامه نویسی 1C کرده اید، دوره رایگان ما را توصیه می کنیم (فراموش نکنید

پلتفرم 8.2 برای بهینه سازی عملکرد برنامه، جداسازی عملکردهای سرویس گیرنده و سرور را در برنامه مدیریت شده ارائه می دهد. به عنوان مثال، در سرویس گیرنده، نمی توانید به داده های پایگاه داده دسترسی داشته باشید. و در سمت سرور، داده های فرم، که در ماژول آن رویه ای با دستورالعمل &OnServerWithoutContext وجود دارد، در دسترس نیست. کد برنامه در 1C در ماژول های مختلف، یک ماژول شی، یک ماژول فرم، ماژول های عمومی و غیره قرار دارد. رویه ها و عملکردهای هر ماژول را می توان هم بر روی سرور و هم بر روی مشتری کامپایل کرد. بیایید به امکانات فراخوانی رویه ها و توابع مختلف از رویه های کامپایل شده در سمت سرور و رویه های کامپایل شده در سمت کلاینت نگاه کنیم.

بنابراین، در سمت مشتری می توانید تماس بگیرید

1) رویه های مشتری این ماژول، با دستورالعمل &OnClient؛

2) رویه های سرور این ماژول، با دستورالعمل &OnServer;

3) رویه های مشتری ماژول عمومی، با دستورالعمل &OnClient (با توجه به قابلیت دسترسی در چندین زمینه در ویژگی ها، "Client" مورد نیاز است، و غیره).

4) تمام رویه های ماژول مشترک مشتری؛ در ویژگی های ماژول مشترک فقط باید ویژگی "Client (برنامه مدیریت شده)" وجود داشته باشد. در این مورد، دستورالعمل &OnClient در ماژول عمومی نوشته نشده است.

5) رویه های ماژول مشترک سرور، اما با ویژگی اضافی "Call server" و مهم است که ماژول مشترک فقط دارای ویژگی کامپایل روی سرور باشد.


از سمت سرور می توانید تماس بگیرید

1) رویه های سرور این ماژول، با دستور کامپایل &OnServer;

2) تمام مراحل ماژول عمومی سرور، و در ویژگی های ماژول عمومی فقط باید ویژگی "Server" وجود داشته باشد. در این مورد، دستورالعمل &OnServer در ماژول عمومی نوشته نشده است.

3) رویه های ماژول عمومی، با دستورالعمل &OnServer (با توجه به قابلیت دسترسی در چندین زمینه در ویژگی ها، "سرور" مورد نیاز است و غیره).

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

یک ویژگی دیگر وجود دارد. در یک ماژول معمولی که دارای چندین مکان کامپایل است ("سرور، مشتری")، نمی توانید رویه سرور همان ماژول را از رویه مشتری فراخوانی کنید، حتی اگر کادر "Call Server" را علامت بزنید. اگر فقط یک ویژگی از ماژول عمومی "تکامل در سرور" وجود داشته باشد، خاصیت "call server" منطقی است.

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

یکی دیگر از ویژگی های راحت ماژول عمومی. اگر ویژگی «Global» را در ویژگی‌های یک ماژول مشترک فعال کنید، می‌توانید رویه‌های این ماژول را مستقیماً بدون نام ماژول مشترک فراخوانی کنید.

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

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

به طور معمول یک ماژول نرم افزار از سه بخش تشکیل شده است:

  • منطقه اعلام متغیر;
  • حوزه توصیف رویه ها و عملکردها;
  • متن اصلی برنامه.

نمونه ای از ساختار ماژول برنامه:

//******************** منطقه اعلام متغیر **********************

صادرات نام خانوادگی پرم; / /این یک متغیر جهانی است
تغییر نام، نام خانوادگی؛ //این یک متغیر ماژول است
نام کامل پرم; //این نیز یک متغیر ماژول است و قابل دسترسی است

//از هر رویه و عملکرد ماژول ما

//**************** منطقه شرح رویه ها و عملکردها ****************

رویه رویه 1 ()
متغیر مجموع ; / /نتیجه یک متغیر محلی است (متغیر رویه)

مجموع = نام خانوادگی + " "+ نام + " "+ نام وسط;

پایان رویه

تابع تابع1()

// عملگرهای تابع

Return(LastName + " "+ FirstName);

EndFunction

//******************** متن اصلی برنامه ************************

نام خانوادگی = "ایوانف"؛
نام = "ایوان";
نام خانوادگی = "ایوانوویچ";

//******************************************************************************

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

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

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

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

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

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

ماژول برنامه (مدیریت شده یا معمولی)

ماژول برنامه، رویه‌ها (هندلر) رویدادهایی را که در ابتدا و انتهای سیستم مقداردهی اولیه می‌شوند، توصیف می‌کند. به عنوان مثال، هنگامی که برنامه شروع به اجرا می کند، می توانید برخی از داده های پیکربندی را به روز کنید، و هنگامی که از برنامه خارج می شوید، می توانید بپرسید که آیا اصلاً ارزش خروج از برنامه را دارد یا خیر. علاوه بر این، این ماژول رویدادهای تجهیزات خارجی، به عنوان مثال، تجارت یا مالی را رهگیری می کند. شایان ذکر است که ماژول برنامه تنها زمانی اجرا می شود که برنامه به صورت تعاملی راه اندازی شود، یعنی زمانی که پنجره برنامه راه اندازی می شود. اگر برنامه در حالت اتصال com راه اندازی شود، این اتفاق نمی افتد.
در پلتفرم 1C 8 دو ماژول برنامه متفاوت وجود دارد. اینها ماژول برنامه منظم و ماژول برنامه مدیریت شده هستند. هنگامی که مشتریان مختلف راه اندازی می شوند، آنها فعال می شوند. بنابراین، زمانی که سرویس گیرنده وب، تین کلاینت و کلاینت ضخیم در حالت برنامه مدیریت شده راه اندازی می شوند، ماژول برنامه مدیریت شده فعال می شود. و زمانی که کلاینت ضخیم در حالت برنامه معمولی راه اندازی می شود، ماژول برنامه معمولی فعال می شود. تنظیم حالت راه اندازی برنامه در ویژگی پیکربندی "حالت راه اندازی اولیه" مشخص شده است.

یک ماژول برنامه می تواند شامل هر 3 بخش باشد - اعلان متغیرها، توضیحات رویه ها و توابع، و همچنین متن اصلی برنامه. ماژول برنامه در سمت کلاینت کامپایل شده است که استفاده ما از بسیاری از انواع داده را تا حد زیادی محدود می کند. می‌توانید زمینه ماژول برنامه را با استفاده از روش‌های ماژول‌های رایج که دارای مجموعه ویژگی «تماس سرور» هستند، گسترش دهید. همه متغیرهای ماژول برنامه و روش هایی که به عنوان صادرات علامت گذاری شده اند در هر ماژول پیکربندی که در سمت مشتری اجرا می شود در دسترس خواهند بود. با این حال، هر چقدر هم که وسوسه انگیز باشد، نباید تعداد زیادی رویه و عملکرد را در اینجا قرار دهید. هرچه کد در یک ماژول معین بیشتر باشد، زمان کامپایل و در نتیجه زمان راه اندازی برنامه طولانی تر می شود.

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

ماژول اتصال خارجی

  • می تواند شامل هر 3 ناحیه باشد
  • در قسمت ریشه پیکربندی قرار دارد

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

همانطور که در ماژول برنامه، هر سه حوزه در اینجا در دسترس هستند: اعلان های متغیر، توضیحات رویه ها و توابع، و همچنین متن اصلی برنامه. تفاوت اصلی با ماژول برنامه این است که در حالت com-connection همه کارها با پایگاه اطلاعاتی در سمت سرور انجام می شود، بنابراین ماژول اتصال خارجی در سمت سرور کامپایل می شود. بر این اساس، متغیرهای صادرات و روش های ماژول های مشتری رایج در آن موجود نیست.

ماژول جلسه

  • در سمت سرور اجرا می شود
  • در قسمت ریشه پیکربندی قرار دارد

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

در ماژول جلسه، یک رویداد واحد "SettingSessionParameters" وجود دارد که در ابتدا اجرا می شود، حتی قبل از رویداد ماژول برنامه BeforeSystemStartOperation. بخش اعلام متغیر و بخش برنامه اصلی در آن موجود نیست. شما همچنین نمی توانید روش های صادرات را اعلام کنید. ماژول در سمت سرور کامپایل شده است.

ماژول های رایج

  • ممکن است شامل منطقه ای باشد که رویه ها و عملکردها را توصیف می کند
  • اجرا شده در سمت سرور یا مشتری (بسته به تنظیمات ماژول)
  • در شاخه درخت اشیاء پیکربندی "General" - "General modules" قرار دارد

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

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

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

ماژول فرم

  • می تواند شامل هر 3 ناحیه باشد
  • در سمت سرور و کلاینت اجرا می شود

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

ساختار یک فرم مدیریت شده شامل بخشی برای اعلان متغیرها، توضیحات رویه ها و توابع و متن اصلی برنامه (اجرا شده در زمان اولیه سازی فرم) است. ما می توانیم از طریق لیست رویه ها و عملکردهای مورد انتظار فرم به رویدادهای فرم استاندارد دسترسی داشته باشیم (Ctrl+Alt+P)، یا از طریق پالت خصوصیات خود فرم.

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

ماژول شی

  • می تواند شامل هر 3 ناحیه باشد
  • در سمت سرور اجرا می شود

این ماژول برای اکثر اشیاء پیکربندی موجود است و عموماً برای پردازش رویدادهایی که مستقیماً با شی مرتبط هستند در نظر گرفته شده است. به عنوان مثال، رویدادهای ضبط و حذف اشیا، بررسی تکمیل جزئیات شی، ارسال یک سند و غیره.

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

ماژول مدیر شی

  • می تواند شامل هر 3 ناحیه باشد
  • در سمت سرور اجرا می شود

ماژول مدیر شی فقط از نسخه 1C 8.2 ظاهر شد. ماژول مدیر برای تمام اشیاء برنامه وجود دارد و برای مدیریت این شی به عنوان یک شیء پیکربندی طراحی شده است. ماژول manager به شما اجازه می دهد تا با معرفی رویه ها و توابع (نوشتن) که نه به یک نمونه خاص از یک شی پایگاه داده، بلکه به خود پیکربندی مربوط می شود، عملکرد یک شی را گسترش دهید. ماژول مدیر شی به شما امکان می دهد رویه ها و توابع کلی را برای یک شی معین قرار دهید و از خارج به آنها دسترسی داشته باشید، مثلاً از طریق پردازش (البته اگر این رویه یا تابع دارای کلمه کلیدی Export باشد). این چه چیز جدیدی به ما می دهد؟ به طور کلی، چیزی جز سازماندهی رویه ها توسط اشیا و ذخیره آنها در مکان های جداگانه - ماژول های مدیر شی. ما می‌توانیم با موفقیت این رویه‌ها و توابع را در ماژول‌های عمومی قرار دهیم، اما 1C توصیه می‌کند رویه‌ها و عملکردهای کلی اشیاء را در ماژول مدیر شیء قرار دهیم. نمونه هایی از استفاده از رویه ها و عملکردهای ماژول مدیران شی: پر کردن اولیه جزئیات فردی یک فهرست یا سند تحت شرایط خاص، بررسی تکمیل جزئیات یک فهرست یا سند تحت شرایط خاص و غیره.

ماژول فرمان

  • ممکن است شامل بخشی باشد که رویه ها و عملکردها را توصیف می کند
  • در سمت مشتری اجرا می شود

دستورات اشیایی هستند که تابع اشیاء برنامه یا پیکربندی به عنوان یک کل هستند. هر دستور دارای یک ماژول فرمان است که در آن یک رویه CommandProcess() از پیش تعریف شده برای اجرای آن دستور توصیف می شود.



 


خواندن:



مینی تست برای تفکر فنی

مینی تست برای تفکر فنی

تشخیص جامع توانایی های عمومی نوجوانان در چارچوب آموزش تخصصی بخش سوم 3. تشخیص حوزه شناختی 3.3. تست...

ارسال آگهی فروش آپارتمان و خانه و سایر املاک به صورت رایگان ارسال آگهی فروش سریع خانه

ارسال آگهی فروش آپارتمان و خانه و سایر املاک به صورت رایگان ارسال آگهی فروش سریع خانه

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

کسب درآمد از خواندن نامه خواندن نامه اما پاداش برای

کسب درآمد از خواندن نامه خواندن نامه اما پاداش برای

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

مطالب با موضوع: برنامه کنسرت "با تمام قلبم" برنامه تلویزیونی با تمام وجود تمام قسمت ها

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

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

فید-تصویر RSS