روش شیء مبتنی بر ورودی شناسایی نشد. ایندکس خارج از محدوده آرایه است


شما (یا کاربر) در 1C کار می کنید. ناگهان - یک خطا. چه باید کرد؟

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

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

پیغام خطا 1C

نوع معمولی پیام خطای 1C، پنجره ای با متن خطای 1C و دکمه های OK و More است.

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

برای تصحیح خطاهای 1C، باید در این پنجره روی More کلیک کنید تا پیام خطای 1C برنامه نویس را ببینید. بیان می کند:

  • ، که در آن یک خطای 1C رخ داده است
  • عملکرد این ماژول که در آن خطای 1C رخ داده است
  • شماره خط این ماژول که در آن خطای 1C رخ داده است.

همچنین می توانید روی دکمه Configurator کلیک کنید و سپس پیکربندی باز می شود، این ماژول، این تابع در این خط، پس از آن می توانید خطای 1C را اصلاح کنید.

ترفندهایی برای درک اشتباهات

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

به عنوان مثال، یک متن خطای بسیار رایج 1C به شرح زیر است:

مقدار یک مقدار از نوع شی نیست (WhatName)

این چه معنی خواهد داشت؟؟؟

و این یعنی موارد زیر:

  • یک متغیر وجود دارد
  • این برنامه فرض می کند که مقدار متغیر یک دایرکتوری یا سند یا چیز مشابه دیگری است - به طور کلی دارای جزئیات (فیلدها) است.
  • برنامه سعی می کند به یک فیلد از این شی دسترسی پیدا کند
  • با این حال، خطای 1C این است که به دلایلی در خطوط قبلی برنامه، این متغیر مقداری دریافت کرد که هیچ جزئیاتی (فیلد) ندارد، به عنوان مثال مقدار "Undefined".

تصحیح خطاهای 1C که رایج تر هستند

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

  • اگر متغیر از نوع Boolean باشد (یعنی مقادیر True و False را بپذیرد) می توان به این شکل به آن دسترسی پیدا کرد:

    If VariableName then

    این نوشته مشابه است:
    اگر VariableName = True Then

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

  • "نام تابع XXX یافت نشد"

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

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

    لازم است در صورت امکان چنین عملکردی به سرور منتقل شود.

  • "متغیر با نام XXX یافت نشد"

    مشابه خطای قبلی 1C. اگر برنامه شامل یک فراخوانی به تابعی باشد که در یک ماژول مشترک قرار دارد، به این شکل به نظر می رسد:
    ModuleName.FunctionName();

    اگر در ویژگی های ماژول تنظیم شده باشد که روی کلاینت اجرا شود و ما از خطوط برنامه ای که روی سرور اجرا می شود به آن دسترسی داشته باشیم، خطای 1C وجود خواهد داشت.
    "متغیر پیدا نشد - ModuleName"

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

  • "ویژگی XXX روی شی شناسایی نشد"

    کلمه Property به معنای میدان این شی (خصلت) است. لازم:
    o نوع شیء را تعیین کنید
    o اگر این یک کتاب مرجع، یک سند است، باید ببینید که آیا این ملک واقعاً به این نام خوانده می شود یا خیر
    o اگر هست یا – به جزئیات فرم با آن نام نگاه کنید.

  • "روش Xxxx روی شی شناسایی نشد"

    کلمه "روش" به یک تابع / رویه در یک ماژول از این شی اشاره دارد.

    لازم:
    o نوع شیء را تعیین کنید
    o ماژول آن را پیدا کنید (ماژول شی اگر یک شی 1C است، ماژول شکل اگر یک فرم است)
    o وجود تابعی با همین نام را بررسی کنید.

  • "خطای 1C هنگام اجرای یک درخواست"

    این بدان معنی است که یک خطای 1C در متن درخواست وجود دارد. متن درخواست معمولاً زودتر از زمان اجرا (یعنی بالاتر) در برنامه تعیین می شود. متن درخواست را در این ماژول (با چشمان خود در بالا یا با جستجوی کلمه "SELECT") جستجو کنید.

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

  • "خطای طرح 1C" - هنگام اجرای یک گزارش

    این خطای 1C به معنای خطای 1C در متن درخواست یا خطای 1C در تنظیمات ACS است (اغلب در گروه بندی، در فیلدهای انتخابی، در قالب بندی شرطی).

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

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

همه می‌دانند که هر نرم‌افزاری می‌تواند هر از گاهی اشکالات مختلفی ایجاد کند یا به زبان ساده، به درستی کار نکند. به چنین خرابی هایی که منجر به اختلال در عملکرد صحیح سیستم می شود گفته می شود اشتباهات. برنامه 1c یک محصول (نرم افزار) نرم افزاری است، بنابراین در این برنامه ممکن است خطاهای مختلفی نیز رخ دهد که منجر به عملکرد نادرست سیستم شود. می تواند بسیار متنوع باشد و اگر تعدادی دانش خاص در زمینه برنامه نویسی و مشخصات مکانیزم های داخلی 1C نداشته باشید، نمی توانید خطا را به درستی درک و تشخیص دهید، حتی کمتر آن را اصلاح کنید. هر یک از برنامه نویسان 1c ما همیشه آماده کمک به شما در حل و فصل مشکلات مربوط به آن است خطاهای 1s!

چه چیزی باعث ایجاد خطا در پایگاه داده 1C می شود؟

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

انواع خطاها در پایگاه داده 1C

خطاها در 1 ثانیهمی تواند تنوع زیادی داشته باشد و به دلایل مختلفی ممکن است اتفاق بیفتد. در این مقاله ما تمام خطاهای احتمالی 1c را در نظر نخواهیم گرفت؛ ما سعی خواهیم کرد به اصطلاح "انواع" اصلی خطاهای مواجه شده را برجسته کنیم. ما معمولاً آنها را "نوع" می نامیم زیرا محتوای خطایی که برنامه به شما نشان می دهد معمولاً متفاوت است، اما ماهیت اغلب یکسان است. بنابراین بیایید رایج ترین آنها را برجسته کنیم خطا در پایگاه داده 1s:

  1. خطای قالب جریان
  2. فیلد شی پیدا نشد
  3. روش شی پیدا نشد
  4. حافظه ناکافی
  5. خطاهای مربوط به جداول SQL (مربوط به سرورهای 1C که بر روی پایگاه داده های رابطه ای مانند MySQL اجرا می شوند)
  6. خطای دسترسی 1s

خطای قالب جریان در 1 ثانیه

خطای قالب جریان 1s

فیلد شی پیدا نشد

فیلد شی پیدا نشد

ایندکس خارج از محدوده آرایه است

خطای 1c

خطای قالب جریان در 1 ثانیه

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

فیلد شی پیدا نشد

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

ایندکس خارج از محدوده آرایه است

یک آرایه در برنامه نویسی یک ناحیه حافظه خاص است که در آن بسیاری از اشیاء از یک نوع ذخیره می شود (در 1c چنین انواعی می تواند باشد، برای مثال، DirectoryLink، DocumentObject، و غیره، و همچنین انواع اولیه مانند عدد، رشته، بولی. ، و غیره.). خطای 1cمرتبط با فراتر رفتن از مرزهای یک آرایه دقیقا زمانی اتفاق می افتد که یک برنامه به مرزهای حافظه ای که برای آرایه اختصاص داده شده است دسترسی پیدا کند. بر این اساس، برنامه در این حالت خطا ایجاد می کند و به کاربر (برنامه نویس) اطلاع می دهد که دسترسی خارج از آرایه در حال رخ دادن است و این به نوبه خود یک خطای نرم افزاری است.

روش شی پیدا نشد

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

حافظه کافی در 1 ثانیه وجود ندارد

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

رفع احتمالی خطای 1c «حافظه کافی نیست»

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

  • برای سیستم 32 بیتی - 2 گیگابایت
  • برای 64 بیت - 4 گیگابایت

برای افزایش حجم حافظه آدرس باید موارد زیر را انجام دهید:

  1. خط فرمان را اجرا کنید: "Start – Run" - CMD را تایپ کرده و enter را فشار دهید
  2. اکنون در خط فرمان متن را بدون نقل قول وارد کنید "bcdedit /set riseuserva 3072"، جایی که 3072 اندازه حافظه آدرس مورد نظر است.
  3. سیستم عامل (کامپیوتر) خود را مجددا راه اندازی کنید
  4. سعی کنید آن عمل را در 1C انجام دهید که قبلاً کار نمی کرد و منجر به خطا شد.
  5. اگر همه چیز درست شد و این عملیات به قدری تکرار نشد، توصیه می شود با استفاده از دستور "bcdedit /deletevalue rrituserva" اندازه حافظه آدرس را به مقدار پیش فرض برگردانید.

خطاهای مربوط به جداول SQL

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

خطای دسترسی در 1 ثانیه

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

آیا نمی توان خطا را در 1s رفع کرد؟

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

روز خوبی برای همه!

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

یعنی موضوع این مطلب: نحوه رفع خطای رخ داده در 1C - اتصال به برنامه دیگری امکان پذیر نیست: روش شی پیدا نشد (اتصال).

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

یک نظریه مقدماتی کوچک:

1C: Enterprise 8.xفرصت های جالب مختلفی را برای سازماندهی تبادل داده با سایر سیستم های نرم افزاری فراهم می کند. همراه با مکانیسم اتوماسیون OLEمفهوم اتصال COM نیز معرفی شد که امکان دسترسی مطمئن و سریعتر به داده های 1C:Enterprise 8.0 را از برنامه های خارجی که از این فناوری پشتیبانی می کنند را فراهم می کند.

برای سازماندهی دسترسی به داده های 1C: Enterprise 8.0 از طریق اتصال COMایجاد شده است شی COMبا شناسه V8.COMConnector، که به کمک آن ارتباط برقرار می شود. سپس متد Connect شیء V8.COMConnector که قبلا ایجاد شده بود فراخوانی می شود. روش اتصالپیوندی را به یک شی اتصال COM با پایگاه اطلاعات 1C:Enterprise 8.0 برمی گرداند. و از طریق شی اتصال COM دریافتی، به متدها، خصوصیات و اشیاء معتبر پایگاه اطلاعاتی که اتصال با آن برقرار می شود، دسترسی پیدا می کند.

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

برای رفع خطای رخ داده در 1C - روش شی پیدا نشد (اتصال)، باید موارد زیر را انجام دهید:

در آخرین نسخه‌های سیستم‌عامل ویندوز، به «خدمات مؤلفه» بروید. این عملکرد با دنباله زیر فراخوانی می شود: کنترل پنل - مدیریت - خدمات مؤلفه.

انتخاب کنید: رایانه ها – رایانه من – برنامه های کاربردی COM+ – ایجاد یک برنامه کاربردی – ایجاد برنامه جدید – نام «V82COMConnector» (سوئیچ «برنامه سرور») – کاربر مشخص (مدیر) را وارد کنید.

در رشته ای که ظاهر می شود کانکتور V82COM- زیرشاخه Components را انتخاب کنید - یک کامپوننت جدید ایجاد کنید - کامپوننت های جدید را نصب کنید - \bin\comcntr.dll

روی شاخه V82COMConnector - Properties - Security - راست کلیک کنید - علامت "بررسی دسترسی اجباری برای برنامه ها" را بردارید - کادر "اعمال سیاست محدودیت نرم افزاری" - سطح محدودیت "Unrestricted" را علامت بزنید:

همچنین در پروفایل های کاربری C:\Users\OurUser\AppData\Roaming\1C\1CESTart.cfg پارامتر UseHWLicenses=0 را به UseHWLicenses=1 تغییر دهید.

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

P.S. پاداش کوچک در پایان: به روز رسانی 1C به عنوان مدیر

اغلب، برخی از مشتریان از راه دور شما حسابداران و غیره هستند. - نمی تواند به طور مستقل محصولات نرم افزار 1C را به روز کند، او به حقوق مدیر نیاز دارد و نمی خواهد یا "می ترسد" روی میانبر کلیک راست کند (و "Run as administrator" را انتخاب کنید). به همین دلیل دائماً برادر متخصص آی تی ما را اذیت می کند.

بیایید برای او راست کلیک کنیم، اما یک بار این کار را انجام دهید و این موضوع را برای همیشه فراموش کنید!

بنابراین، بیایید یک بار تنظیمات را انجام دهیم - روی میانبر راه اندازی 1C کلیک راست کنید، "Properties" را انتخاب کنید، روی "Change settings for all users" کلیک کنید و کادر "این برنامه را به عنوان مدیر اجرا کنید" را علامت بزنید. سپس چند بار روی OK کلیک کنید و مشتری "ترس" را فراموش کنید

امیدوارم توانسته باشید اطلاعات مفیدی را در اینجا برای خود بیابید. در نظرات در مورد "ترفندهای" خود بنویسید - با هم مزایای آموزشی به ارمغان خواهیم آورد.

خداحافظ و بهترین ها! 😉

انتخاب سردبیر
ما در حال شروع یک سری درس در مورد کار با مالیات بر ارزش افزوده در 1C: حسابداری 8.3 (ویرایش 3.0) هستیم. امروز موضوع: "فاکتور اصلاح شده" را در نظر خواهیم گرفت.

شما (یا کاربر) در 1C کار می کنید. ناگهان - یک خطا. چه باید کرد؟ البته درست ترین کار این است که آنالیز کنیم که چه نوع خطای 1C است...

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

ما در حال شروع یک سری درس در مورد کار با مالیات بر ارزش افزوده در 1C: حسابداری 8.3 (ویرایش 3.0) هستیم. امروز موضوع: "فاکتور اصلاح شده" را در نظر خواهیم گرفت.
آثار به عنوان اقداماتی با هدف دستیابی به یک نتیجه مادی درک می شوند که ممکن است شامل ایجاد یک چیز، آن ...
خلاصه ای از سرگرمی های ورزشی "بازدید از زیموشکا-زمستان" برای کودکان خردسال و میانسال شرح مطالب: به شما پیشنهاد می کنم ...
مجموعه ای جهانی از ایده های هدیه برای هر مناسبت و مناسبت. دوستان و عزیزان خود را سورپرایز کنید ؛) روز خوب! روز ملی...
روز وحدت ملی روز وحدت ملی یک جشن ملی روسیه است. از سال 2005 در 4 نوامبر جشن گرفته می شود.
غنی سازی واژگان کودکان پیش دبستانی (TOLZ) مطابق با برنامه آموزشی مؤسسات آموزشی پیش دبستانی در مؤسسات آموزشی پیش دبستانی (با استفاده از مثال کار با کلمه غالب ...