گزارش‌های سفارشی

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

مهم

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

برای ایجاد یک گزارش جدید، به مسیر حسابداری ◄ پیکربندی ◄ گزارش‌های حسابداری بروید. از اینجا، یا یک گزارش ریشه یا یک گونه ایجاد کنید.

نکته

  • برای دست‌نخورده نگه داشتن گزارش‌های ریشه، بهتر است گزارش‌های تغییریافته را به عنوان گونه‌های گزارش ذخیره کنید.

  • برای دسترسی به رابط مدیریت یک گزارش موجود از داخل خود گزارش، روی آیکون (چرخ‌دنده‌ها) کلیک کنید.

گزارش‌های ریشه‌ای (اصلی)

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

Example

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

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

توجه

مواردی که نیازمند ایجاد گزارش ریشه‌ای جدید باشند نادر هستند؛ مثل وقتی که مقامات مالیاتی کشور نیازمند نوع جدید و خاصی از گزارش باشند.

گونه‌ها

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

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

Example

گزارش ارزش افزوده (بلژیک) گونه‌ای از گزارش مالیاتی عمومی ریشه است.

انتخاب گونه گزارش.

سطرها

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

گزینه‌های مختلف سطرهای موتور گزارش.

عبارت‌های فرمولی

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

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

توجه

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

موتور محاسبه دامنه سازمان‌یار

هنگام استفاده از موتور محاسبه دامنه سازمان‌یار، فرمول به عنوان یک دامنه سازمان‌یار تفسیر می‌شود که اشیاء account.move.line را هدف قرار می‌دهد.

زیرفرمول‌ها امکان تعریف تطبیق سطرهای انتقال با دامنه مورد استفاده را فراهم می‌کنند که برای محاسبه مقدار عبارت استفاده می‌شوند:

sum

نتیجه برابر است با مجموعه تمام مقادیر باقی‌مانده سطرهای انتقالی منطبق.

sum_if_pos

نتیجه حاصل برابر است با مجموعه تمام باقی مانده‌های سطرهای انتقالی در صورتی که مقدار مثبت باشد. در غیر این صورت نتیجه حاصل 0 خواهد بود.

sum_if_neg

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

count_rows

نتیجه برابر با تعداد زیرسطرهای این عبارت است. اگر سطر مادر دارای مقدار دسته‌بندی باشد، این عدد با تعداد کلیدهای گروه‌بندی متمایز در سطرهای انتقالِ (Move Lines) منطبق مطابقت خواهد داشت. در غیر این صورت، برابر با تعداد سطرهای انتقالِ منطبق خواهد بود.

نکته

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

سطر عبارت در یک سطر گزارش

موتور محاسبه برچسب‌های مالیاتی

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

به هنگام ارزیابی فرمول، محاسبه باید تقریباً به این شکل باشد: (مقدار سطرهای انتقالی + برچسب) - (مقدار سطرهای انتقالی - برچسب).

Example

اگر فرمول روی tag_name تنظیم شده باشد، موتور با برچسب‌های مالیاتی +tag_name و -tag_name تطبیق می‌یابد و در صورت لزوم آن‌ها را ایجاد می‌کند. برای توضیح بیشتر: دو برچسب توسط فرمول تطبیق داده می‌شوند. اگر فرمول A باشد، به برچسب‌های +A و -A نیاز خواهد داشت (و در صورت نیاز آن‌ها را ایجاد می‌کند).

موتور محاسبه تجمیع سایر فرمول‌ها

موتور محاسبه تجمیع سایر فرمول‌ها عملیات ریاضی را روی مبالغ به‌دست‌آمده از سایر عبارت‌ها انجام می‌دهد. فرمول‌ها در اینجا از ارجاعاتی به عبارت‌ها تشکیل شده‌اند که با یکی از چهار عملگر اصلی ریاضی (جمع +، تفریق -، تقسیم / و ضرب *) از هم جدا می‌شوند. برای ارجاع به یک عبارت، کد سطر مادر آن را تایپ کنید و سپس یک نقطه . و برچسب عبارت را بیاورید (مانند code.label).

زیرفرمول‌ها می‌توانند یکی از این موارد باشند:

if_above(CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار آن بیشتر از حد تعریف شده باشد. در غیر این صورت مقدار 0 خواهد بود.

if_below(CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار آن کمتر از حد تعریف شده باشد. در غیر این صورت مقدار 0 خواهد بود.

if_between(CUR1(amount1), CUR2(amount2))

مقدار عبارت جبری زمانی برگردانده می‌شود که مقدار آن اکیداً بین حدهای مشخص شده باشد. در غیر این صورت نزدیک‌ترین حد برگردانده می‌شود.

if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار عبارت مشخص شده توسط کد سطر و برچسب عبارت بزرگ‌تر از حد مشخص شده باشد. در غیر این صورت نتیجه 0 خواهد بود.

if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار عبارت مشخص شده توسط کد سطر و برچسب عبارت کمتر از حد مشخص شده باشد. در غیر این صورت نتیجه 0 خواهد بود.

CUR کد واحد پول با حروف بزرگ و amount نیز مقدار حدود مشخص شده برای آن واحد پول است.

cross_report(xml_id | report_id)

برای تطبیق یک عبارت از گزارشی دیگر که توسط xml_id یا شناسه خود گزارش مشخص شده است، استفاده می‌شود.

موتور محاسبه پیشوند کدهای حساب

موتور محاسبه پیشوند کدهای حساب برای تطبیق مبالغ ثبت‌شده در حساب‌ها با استفاده از پیشوندهای کد این حساب‌ها به عنوان متغیر در یک عبارت ریاضی استفاده می‌شود.

Example

21
به مانند این مثال، عبارت‌های ریاضی همچنین می‌توانند یک پیشوند باشند.

Example

21 + 10 - 5
این فرمول باقی‌مانده سطرهای انتقالی انجام شده در این حساب که کدهایشان با 21 و 10 شروع می‌شوند را جمع کرده و باقی‌مانده حساب‌هایی که پیشوند 5 دارند را کسر می‌کند.

همچنین می‌توان از مجموعه‌ای از زیرپیشوندها صرف نظر کرد.

Example

21 + 10\(101, 102) - 5\(57)
این فرمول همانند مثال قبل کار می‌کند ولی پیشوندهای 101، 102 و 57 را نادیده می‌گیرد.

می‌توانید با استفاده از پسوندهای C و D از «زیرفیلترهایی» برای بستانکاری‌ها و بدهی‌ها استفاده کنید. در این مثال حساب تنها زمانی مد نظر قرار خواهد گرفت که پیشوند آن مطابقت داشته باشد و اگر باقی‌مانده کل سطرهای انتقالی در این حساب بستانکاری/بدهکاری باشد.

Example

حساب 210001 دارای باقی‌مانده -42 و حساب 210002 دارای باقی‌مانده 25 است. فرمول 21D تنها حساب 210002 را تطبیق می‌دهد و بنابراین نتیجه 25 را برمی‌گرداند. 210001 تطبیق داده نمی‌شود، چون باقی‌مانده آن بستانکاری است.

می‌توان حذفیات پیشوند را با پسوندهای C و D نیز ترکیب کرد.

Example

21D + 10\(101, 102)C - 5\(57)
این فرمول باقی‌مانده سطرهای انتقالی حساب‌هایی که کد آنها با 21 شروع می‌شوذد را جمع می‌کند اگر بدهکار (D) باشد و اگر بستانکار (C) باشد، ولی پیشوندهای 101 و 102 را نادیده می‌گیرد و باقی‌مانده حساب‌هایی که پیشوند 5 را دارند تفریق می‌کند و پیشوند 57 را نادیده می‌گیرد.

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

Example

21D\()
این فرمول حساب‌هایی که کد آنها با 21D شروع می‌شود را تطبیق می‌دهد، صرف نظر از علامت باقی مانده‌ای که دارند.

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

Example

tag(25)
این فرمول حساب‌هایی را تطبیق می‌دهد که برچسب‌های مرتبط با آن‌ها شامل برچسبی با شناسه 25 باشد.

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

Example

tag(my_module.my_tag)
این فرمول حساب‌هایی را تطبیق می‌دهد که برچسب‌های مربوطه آنها شامل برچسبی باشد که در my_module.my_tag تعریف شده است.

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

Example

tag(my_module.my_tag) + tag(42) + 10
باقی‌مانده حساب‌های برچسب‌خورده my_module.my_tag با حساب‌های مربوط به برچسب با شناسه 42 و حساب‌های دارای پیشوند کد 10 جمع می‌شود

پسوندهای C و D را نیز می‌توان به همان صورت با برچسب‌ها به کار برد.

Example

tag(my_module.my_tag)C
این فرمول حساب‌هایی که دارای برچسب my_module.my_tag باشند و باقی‌مانده بستانکار را تطبیق می‌دهد.

حذف پیشوند همچنین با برچسب‌ها نیز استفاده می‌شود.

Example

tag(my_module.my_tag)\(10)
این فرمول حساب‌های دارای برچسب my_module.my_tag که کد آنها با 10 شروع نمی‌شود را تطبیق می‌دهد.

موتور محاسبه مقدار خارجی

موتور محاسبه مقدار خارجی برای ارجاع به مقادیر دستی و مقادیر انتقالی استفاده می‌شود. آن مقادیر با استفاده از account.move.line ذخیره نمی‌شوند، بلکه با account.report.external.value ذخیره می‌گردند. هر یک از این اشیاء مستقیماً به عبارتی که بر آن تأثیر می‌گذارد اشاره می‌کند، بنابراین نیاز به کار خاصی برای انتخاب آن‌ها در اینجا نیست.

فرمول می‌تواند یکی از مقادیر زیر باشد:

sum

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

most_recent

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

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

rounding=X

اگر X با عددی جایگزین شود، گرد کردن با X رقم اعشار انجام می‌شود.

editable

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

توجه

مقادیر دستی در date_to انتخابی فعلی در گزارش ایجاد می‌شوند.

هر دو زیرفرمول را می‌توان با جدا کردن ; ترکیب کرد.

Example

editable;rounding=2
این زیرفرمول روش صحیح ترکیب هر دو رفتار را نشان می‌دهد.

موتور محاسبه تابع سفارشی پایتون

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

ستون‌ها

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

ستون‌های گزارش.

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

گروه‌بندی سطرها

گروه‌بندی غیراستاندارد با افزودن یا استفاده از فیلدهای موجود در مدل آیتم دفترروزنامه امکان‌پذیر است، مشروط بر اینکه فیلدها مرتبط (Related) و غیرذخیره‌شده (Non-stored) باشند.

توجه

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

ایجاد فیلد جدید در آیتم دفترروزنامه

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

  • نام فیلد: نام فنی برای فیلد

  • برچسب فیلد: برچسبی که برای فیلد نمایش داده می‌شود

  • نوع فیلد: نوع فیلدی که این فیلد مرتبط باید به آن اشاره کند

  • ذخیره‌شده: این فیلد را تیک‌نخورده باقی بگذارید زیرا تنها فیلدهای غیرذخیره‌شده می‌توانند برای گروه‌بندی سطرها استفاده شوند.

  • مدل مرتبط: اگر نوع فیلد یک‌به‌چند، چندبه‌چند یا چندبه‌یک است، مدل فیلد اصلی برای گروه‌بندی را انتخاب کنید.

  • تعریف فیلد مرتبط: مسیر فنی به فیلدی که می‌خواهید بر اساس آن گروه‌بندی کنید

    Example

    برای گروه‌بندی بر اساس تیم فروشِ طرف حساب تجاری، تعریف فیلد مرتبط را روی move_id.team_id تنظیم کنید.

گروه‌بندی سطرها

برای گروه‌بندی سطرها، به سربرگ سطرها در گزارش مورد نظر بروید، روی سطری که می‌خواهید گروه‌بندی کنید کلیک کرده و فیلد دسته‌بندی را ویرایش کنید. نام فنی (نام فیلد) فیلدی را که می‌خواهید به عنوان کلید گروه‌بندی استفاده شود، وارد نمایید.

نکته

برای یافتن لیستی از تمام فیلدهای مدل و نام‌های فنی آن‌ها، وارد مسیر حسابداری ◄ آیتم‌های دفترروزنامه شوید و روی آیکون (سوسک) کلیک کنید، سپس روی فیلدها کلیک نمایید. نام فنی هر فیلد در ستون نام فیلد فهرست شده است.