نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • خطاها
  • نحوه پر کردن اختیاری 1 ها از طریق برنامه جایگزینی مقدار حروف عام

نحوه پر کردن اختیاری 1 ها از طریق برنامه جایگزینی مقدار حروف عام

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

اغلب، بسیاری از کاربران 1C به سادگی از فیلدهای اسناد می گذرند و به آنها توجه نمی کنند. در نتیجه سند به هیچ وجه پست نمی شود یا پست می شود، بلکه اشتباه است. ابتدا، بیایید ببینیم که آیا اصلاً امکان پرش (پر نکردن) فیلدها در اسناد وجود دارد یا خیر.

زمانی که می توانید جزئیات اسناد حسابداری 1C را خالی بگذارید

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

سایت_

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

بیایید جمع بندی کنیم

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

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

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

راه حل آخرین مشکل، برای نسخه هشتم برنامه 1C، بررسی پر کردن جزئیات فرم است.

بررسی تکمیل برای یک فرم معمولی

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

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

نوشتن عناصر دایرکتوری یا ارسال اسناد حاوی فیلدهای اجباری خالی باعث استثنا می شود (شکل 2).

برنج. 2

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

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

  1. فرم را در Configurator باز کنید.
  2. بر روی عنصر فرم کلیک راست کرده و پنجره "Properties" را فراخوانی کنید.
  3. لازم است کادرهای AutoCelectingFill و AutoSelectingFill را در زیر منوی "Usage" علامت بزنید (شکل 3).

چک فوری معمولاً در ماژول شی نوشته می شود.

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

با استفاده از تابع ValueFilled ("Value") می توانید بررسی کنید که آیا مقدار ارسال شده به فیلد با مقدار خالی (مقدار پیش فرض) متفاوت است. البته باید در نظر داشت که اگر فیلد از نوع داده ترکیبی باشد، اجرای این تابع یک استثنا ایجاد می کند.

اعتبار سنجی در فرم های مدیریت شده

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

ابتدا، باید بفهمید هنگام وارد کردن یک شی در این حالت عملکرد، چه رویه ای، چه مواردی را دنبال می کند.

بنابراین، پس از فشار دادن دکمه "Write"، "OK"، "Post":

  1. رویه قبل از ضبط بر روی مشتری فراخوانی می شود.
  2. داده ها به سرور منتقل می شود و رویدادهای ثبت شده در ماژول فرم روی سرور رخ می دهد (در اینجا می توانید رویه ProcessFillVerificationAtServer را شروع کنید).
  3. داده های فرم به ماژول شی در سرور منتقل می شود (راه اندازی روش استاندارد FillVerificationProcessing امکان پذیر می شود).
  4. داده های ماژول به ماژول فرم در سرور برگردانده می شود و رویه BeforeWriteOnServer رخ می دهد.
  5. داده ها به ماژول شی برگردانده می شوند و یک رویه BeforeWrite دیگر رخ می دهد.
  6. شی به طور مستقیم در پایگاه داده نوشته می شود.

در هر زمانی در این نمودار، می توانید تابع CheckFill () را وارد کنید. پس از بررسی جزییات که در ویژگی هایی که متغیر "Fill check" دارای مقدار "Issue an error" است (شکل 4)، این تابع در صورتی که حداقل یکی از آنها پر نشده باشد، "False" را برمی گرداند.

تفاوت بین کنترل کننده های ValidateFillProcessing () و ValidateFillProcessingOnServer ()

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

  1. امتناع (در اینجا، پس از تأیید، نتیجه آن منتقل می شود).
  2. ValidatedAttributes (نوع داده - آرایه، اگر پر نشده باشد، تمام ویژگی هایی که برای آنها "Check filling" در ویژگی ها انتخاب شده است بررسی می شود، در غیر این صورت ویژگی های انتخاب شده به صورت برنامه ای پردازش می شوند).

ProcedureFillVerificationProcessingAtServer () به شما امکان می دهد ویژگی هایی را که مستقیماً به شیء در حال ویرایش مرتبط نیستند بررسی کنید. هر برنامه نویسی خودش تصمیم می گیرد که چه چیزی و تا چه حد می خواهد بررسی کند.

رویه FillVerificationProcessing () جزئیات اصلی را بررسی می کند.

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

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

جایگزینی تنها ارزشی است که کاربر به آن حق دارد.

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

جایگزینی مقدار با انتخاب مشخص شده در فرم لیست.

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

پر کردن شرایط برای آمار.

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

تمام داده هایی که در توافق نامه یا قرارداد مشخص شده است پر می شود.

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

جایگزینی مقدار حروف عام.

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

با کپی کردن، یک سند جدید را وارد کنید.

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

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

چگونه به سرعت مقدار جزئیات را در 1C وارد کنیم؟

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

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

پس از دریافت کالا از تامین کننده، باید سندی تنظیم کنید پرداخت برای کالاها و خدمات، که در آن تامین کننده و مبلغی که باید برای کالای تحویل شده انتقال دهد ذکر شود:

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

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

بنابراین، مکانیسم ورودی بر اساس به شما امکان می دهد اشیاء جدیدی از راه حل کاربردی (کتاب های مرجع، اسناد و غیره) را بر اساس اطلاعات موجود در سایر اشیاء موجود راه حل اعمال شده ایجاد کنید.

1. فیلد ورودی
2. چک باکس
3. سوئیچ

فیلد ورودی

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

فهرست انتخاب (ListSelectMode)

انتخاب از فرم دیگری (دکمه انتخاب)

دکمه های تنظیم

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

کنترل انتخاب نامگذاری رویه Pv (عنصر، جهت، پردازش استاندارد)
// داده ها را برای فیلد ورودی انتخاب کنید
// در این مورد مرجع نامگذاری
درخواست = درخواست جدید;
درخواست.متن =
"انتخاب کنید
| نامگذاری. مرجع به عنوان آیتم
| از
| Reference.Nomenclature AS Nomenclature
| سفارش توسط
| نامگذاری.کد ";
TKNomenclature = Request.Run () Unload ();

// عنصر فعلی دایرکتوری مشخص شده در قسمت ورودی را جستجو کنید
TekElement = TZNomenclature.Find (Element.value);

اگر TekElement = تعریف نشده سپس
// اگر عنصر پیدا نشد، شماره شاخص را تنظیم کنید
// خارج از جدول مقادیر، زیرا اولین عنصر در
// جدول مقدار دارای شاخص 0 است
TekIndex = -1;
در غیر این صورت
// اگر عنصری پیدا شد، شاخص آن را دریافت کنید
TekIndex = TZNomenclature.Index (TekElement);
EndIf

// شاخص جدید را بسته به کلیک دکمه محاسبه کنید
// منهای جلوی متغیر Direction قرار می گیرد تا وقتی
// با کلیک بر روی فلش بالا عنصر بالا را نشان می دهد
// و بنابراین با شاخص کمتر
NewIndex = TekIndex-Direction;

// تعداد عناصر موجود در دایرکتوری را بدست آورید
// از آن یک کم کنید همه مجموعه ها در 8.1 از 0 شروع می شوند
تعداد عناصر = TZNomenclature. تعداد () - 1;

اگر NovIndex< 0 Или НовИндекс >سپس تعداد عناصر
// اگر شاخص هنگام تغییر خارج از جدول مقدار باشد
// یعنی تعداد آن بزرگتر از بزرگترین شاخص یا کمتر از 0 است
// مقدار را تغییر ندهید و به کاربر اطلاع دهید
گزارش ("شما به حد مجاز فهرست رسیده اید")؛
در غیر این صورت
// یک مقدار جدید اختصاص دهید، "محصول" نام ستون جدول مقادیر است
Element.Value = TKNomenclature.Get (NewIndex) .Product;
EndIf

پایان رویه

چک باکس

در اکثر برنامه ها، چک باکس برای نمایش دو حالت استفاده می شود: علامت زده شده، علامت زده نشده است. در 1c، چک باکس دارای سه حالت است، در حالت سوم، چک باکس نمایش داده می شود - به صورت تنظیم شده و در عین حال سایه دار. این سه حالت فقط در صورتی در دسترس هستند که داده‌های چک باکس یک عدد باشد و حالت‌ها دارای معانی زیر باشند:

تعویض

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

در این مورد، راحتی استفاده از سوئیچ ها ممکن است در این واقعیت باشد که هر یک از آنها می توانند مقداری داشته باشند که در ویژگی "Selectable value" تنظیم شده است. و سپس "5% تخفیف" می تواند مقدار 5 یا 0.05 را ذخیره کند.

هنگام استفاده از دکمه های رادیویی باید سه نکته را در نظر داشته باشید:

      اولین دکمه رادیویی باید دارای ویژگی "FirstInGroup" باشد (در این مثال دکمه رادیویی "5٪ تخفیف" است).

      سوئیچ هایی که در معنای همان گروه هستند باید یکی پس از دیگری در تنظیم ترتیب پیمایش بدون وقفه توسط سایر عناصر فرم حرکت کنند. ترتیب پیمایش از منوی "Form -> Traversal Order Setting" تنظیم شده است، برای این مثال به شکل زیر است:

  1. نوع مقدار انتخاب شده در دکمه رادیویی با ویژگی "FirstInGroup" تنظیم می شود.

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