המאפיין הוא ממד הבסיס של פנקס החישובים. חישובים תקופתיים מורכבים יקבל את החישוב בשפה 1

בעבודה עם אוגרי חישוב, ניתן לקבל נתונים בסיסיים. זוהי דרך מוזרה לחישוב מחזור האוגר, שבה פונקציית חישוב המחזור אינה פונקציה פשוטה של ​​סיכום משאבי הפנקס על ידי מדידות לתקופה מסוימת, אלא היא יותר פונקציה מורכבת. פונקציה זו תלויה במצב של תוכנית סוג החישוב שהוקצתה לפנקס החישובים ולכן היא נשלטת על ידי המשתמש.

בחלק זה נשקול שתי שיטות להשגת נתונים בסיסיים הקיימים במערכת - שימוש בשפת השאילתה ושימוש בסימון פונקציונלי, לפי השיטה GetBase(). במקרה זה, נכנה את פנקס החישובים "הראשי" הפנקס שלגביו יש צורך לקבל נתונים בסיסיים, ורשמי ה"בסיס" (שייתכן שיהיו כמה מהם במקרה הכללי) יהיו אותם פנקסים שעבורם מתבצע סיכום של משאבים.

לא נשקול שיטות אלה בפירוט, נשקול רק את ההבדלים והיקפם.

שיטת GetBase()

שיטה GetBase()מוגדר עבור אובייקטים RegisterCalculationManager.<Имя регистра расчета> ו RegisterCalculationRecord.<Имя регистра расчета> . השיטה מאפשרת להגדיר את משאבי אוגרי הבסיס שעבורם צריך לקבל את המחזורים, להגדיר את השדות שבמסגרתם צריך לקבל את המחזורים ולקבוע את הכללים להשוואת המדידות של אוגרי החישוב הראשיים והבסיסיים. .

הכללים להתאמת הרשומות של אוגרי החישוב מוגדרים על ידי מבנה, שכל אלמנט שלו מפרט רשימה של מדידות של אוגרי החישוב הבסיסיים עבור מימד כזה או אחר של האוגר הראשי. שמות מרכיבי המבנה חייבים להתאים לשמות המדידות של האוגר הראשי, וערכי רכיבי המבנה חייבים להיות מחרוזות, כאשר רשימת המידות של אוגרי הבסיס מופרדת בפסיקים. אם לא צוין רכיב מבנה עם שם של ממד כזה או אחר, המשמעות היא שלא מוטל תנאי לממד המתאים.

שמות הממדים והמשאבים של אוגרי בסיס מצוינים בפורמט<ИмяРегистраРасчета>.<ИмяПоля>.

דוגמה לשימוש בשיטה:
Code 1C v 8.x Resources = New Array(1);
משאבים = "צברים בסיסיים. תוצאה, צברים נוספים. תוצאה";

מידות = New Structure("יחיד, ארגון");
Dimensions.Individual = "צברים בסיסיים.פרטיים,צברים נוספים.עובד";
Dimensions.Organization = "BasicAccruals.Organization,AdditionalAccruals.Organization";

Slices = New Array(1);
סעיפים = "צברים בסיסיים. שיטה, צברים נוספים. שיטה";
// חשב את baseBaseDataTable = Calculation.Retention Register.GetBase(Selection,
// משאבים, מידות, חתכים);

בדוגמה לעיל, הממד "פרטי" של הפנקס הראשי, בעת קבלת מחזורים, יושווה לממד "פרט" של פנקס הבסיס "צברים בסיסיים" והממד "עובד" של פנקס הבסיס "צברים נוספים" .

טבלת שפת שאילתה לקבלת נתונים בסיסיים
כדי לקבל את הנתונים הבסיסיים בשפת השאילתה, מוגדרות טבלאות וירטואליות "פנקס חישובים.<Имя регистра расчета>.בסיס<Имя базового регистра расчета>" . הפרמטרים של הטבלה הוירטואלית הם מידות האוגר הראשי, מידות האוגר הבסיסי והשדות שבהקשרם אתם צריכים לקבל את הנתונים הבסיסיים. מידות וחיתוכים מצוינים כמערך (או רשימת ערכים) של מחרוזות עם שמות ממדים.

דוגמה לכתיבת שאילתה באמצעות טבלאות וירטואליות של נתונים בסיסיים:
קוד 1C v 8.x
Dimensions1 = Array(2);
Dimensions1 = "פרטי";
Dimensions1 = "ארגון";

Dimensions2 = Array(2);
Dimensions2 = "עובד";
Dimensions2 = "ארגון";

Slices = New Array(1);
פרוסות = "מצב";

טקסט שאילתה = "SELECT Individual, Calculation Type, SUM(ResultBase)
| מ
|בחר אינדיבידואל, סוג חישוב, ResultBase
| מרשם חישובים. ניכויים. צברים בסיסיים (&מידות1,&מידות1, והיבטים)
|WHERE " + ConditionBasic + "
|הצטרפו לכולם
|בחר עובד, סוג חישוב, ResultBase
| FROM Calculation register.Retention.BaseAdditionalAccruals(&Dimensions1,&Dimensions2,&Sections)
|WHERE " + ConditionAdditional + "
|) בסיס א.ס
|קבוצה לפי
| אִישִׁי,
| סוג של חישוב
|";

Request = New Request(RequestText);
Query.SetParameter("Dimensions1", Dimensions1);
Query.SetParameter("Dimensions2", Dimensions2);
Query.SetParameter("Sections", Sections);

// ...הגדרת פרמטרי שאילתה נוספים המשמשים בתנאים ב-WHERE// ,..
// קבל בחירה של השאילתה resultSelection = Query.Execute().Select();

הדוגמה לעיל מניחה את אותו מבנה נתונים ואותה משימה להיפתר כמו הדוגמה עבור שיטת GetBase() . יחד עם זאת, אנו רואים עלייה ניכרת בקוד המקור ובמורכבותו לכאורה.

השוואה
הבדל בולט בין השיטה הפונקציונלית של השגת נתונים בסיסיים והשגת באמצעות שאילתה הוא שבשיטה פונקציונלית, קריאה אחת של השיטה יכולה לקבל את הנתונים הבסיסיים עבור כל הרגיסטרים הבסיסיים, ובשימוש בשאילתות, השגת נתונים בסיסיים מתבצעת באמצעות שאילתה מספר טבלאות - לפי מספר אוגרי הבסיס. עם זאת, הדרך המומלצת לקבל נתונים היא לקבל את הנתונים עם שאילתה. זה יאפשר, למשל, לקבל לא רק את הנתונים של סוגי החישוב הבסיסיים, אלא גם מידע נוסף הדרוש לחישוב.

שימו לב שהביצועים של השגת נתונים בשיטה פונקציונלית ושימוש בשאילתה זהים למרות הסיבוך לכאורה של קוד ההפעלה במקרה של שאילתות.

סימון פונקציונלי קצר בשיטת GetBase() מקובל רק אם אין צורך בנתונים אחרים מלבד נתוני הבסיס, ובמקביל רוצים "לשמור" על שורות קוד. מסיבות של ביצועי קוד, זה לחלוטין לא מקובל להשתמש בשיטת GetBase() אם, לאחר השימוש בה, אתה עדיין צריך לקבל נתונים נוספים לחישוב באמצעות שאילתה.

שיקול נוסף נוגע לתנאי הבחירה של הנתונים הבסיסיים. עבור שיטת GetBase() למעשה, אין דרך לקבל את הנתונים הבסיסיים אלא על ידי רשומה אחת או על ידי רשם ספציפי (עם בחירה לפי ממדים מסוימים). במקרה של שאילתה, למפתח יש את כל האפשרויות של שפת השאילתה לבחירת רשומות.

כפי שאתה יודע, בעת קריאת נתונים, פלטפורמת 1C ניגשת לטבלאות מסד נתונים. אבל עבור אוגרים, פלטפורמת 1C, המבוססת על טבלאות אמיתיות, יכולה להיווצר שולחנות וירטואליים, שאינם מאוחסנים פיזית במסד הנתונים. זה מאפשר למפתח, במקום לבצע שאילתה מורכבת לטבלה אמיתית, לקבל מיד נתונים מטבלה וירטואלית באמצעות שאילתה פשוטה. זה גם מבטל שגיאות אפשריות. לכן, יש להשתמש בטבלאות וירטואליות במידת האפשר. במיוחד כשעוברים את הבחינה 1C: מומחה. לשקול סוגים שוניםרושמים וראה אילו טבלאות וירטואליות מספקת הפלטפורמה עבור כל סוג אוגר.

פנקסי מידע

הפלטפורמה מייצרת טבלאות וירטואליות רק עבור אוגרי מידע תקופתיים. הסוגים הבאים זמינים

  • SliceFirst
  • SliceRecent

רושמי הצטברות

עבור אוגרי צבירה, קבוצת הטבלאות הוירטואליות המסופקות תלויה גם בסוג האוגר. כפי שאתה יודע, ישנם שני סוגים של אוגרי צבירה: שְׂרִידִיםו מחזורים

פנקס צבירת יתרות

הטבלאות הוירטואליות הבאות זמינות

  • שְׂרִידִים
  • מחזורים
  • שאריות ומחזורים

פנקס מחזורים

רק שולחן וירטואלי אחד זמין

  • מחזורים

רושמת חישוב

כאן, בהתאם להגדרות, זמינות גם הטבלאות הוירטואליות הבאות

פנקסי הנהלת חשבונות

לפנקסי הנהלת חשבונות יש את הסט הגדול ביותר של טבלאות וירטואליות

  • שְׂרִידִים
  • מחזורים
  • RPMDtKt
  • שאריות ומחזורים
  • Subconto
  • Movements Subconto

אבל מהירות הגישה לרישומי הנהלת חשבונות היא הנמוכה ביותר. לכן, אם ניתן להשיג את אותן יתרות או מחזורים באמצעות פנקסי צבירה, אזי יש להשתמש בהם.

רושמת חישובהם אובייקטי תצורת יישום. הם משמשים במנגנון של חישובים תקופתיים מורכבים ומשמשים לאחסון רשומות של סוגים מסוימים של חישובים שיש לבצע, כמו גם לאחסון נתוני ביניים ותוצאות החישובים עצמם.

מִבְנֶה

פרטי פנקס החישובים מאוחסנים כרשומות, שכל אחת מהן מכילה ערכי ממדים וערכי המשאב המתאימים להם.

מידותרישומים מתארים קטעים שבהם המידע מאוחסן, וכן אֶמְצָעִיאוגרים מכילים ישירות מידע מאוחסן. לדוגמה, עבור פנקס החישובים צבירה בסיסית לעובדי ארגונים, בעל המבנה הבא:

הרשומות המאוחסנות במסד הנתונים ייראו כך:

קשר לתכנית סוגי החישוב

פנקס השכר משויך לאחת מתוכניות סוג השכר הקיימות באפליקציה. קשר זה גורם לכל רשומת רישום לכלול שדה סוג חישוב, שבזכותם מנגנוני הרישום יכולים לעקוב אחר ההשפעה ההדדית של רשומות חישוב זה על זה.

תְקוּפָתִיוּת

פנקס החישובים מאחסן נתונים לא רק בהקשר של המדידות שנוצרו, אלא גם בהקשר של זמן. זו הסיבה לקיומו של שדה חובה נוסף לכל רשומה בפנקס החישובים - תוֹקֶף. בעת יצירת פנקס חישוב, המפתח יכול לציין את התדירות המינימלית שבה רשומות יוכנסו לפנקס:

הגשה לרשם

השינוי במצב פנקס החישובים מתרחש, ככלל, בעת רישום המסמך. לכן, כל רישום בפנקס משויך למסמך ספציפי - הרשם ומספר השורה של מסמך זה. הוספת ערכים לפנקס, שינוי ומחיקתם אפשריים רק בו-זמנית עבור כל הערכים הקשורים למסמך אחד.

קשר עם ציר זמן

ניתן לקשר את פנקס החישובים לציר זמן. ציר זמן הוא מאגר מידע המכיל סכימה זמנית של הנתונים הראשוניים המעורבים בחישובים. המימדים של לוח זמנים זה יכולים להיות, למשל, לוח הזמנים והתאריך של העבודה, והמשאב הוא מספר שעות העבודה בתאריך זה. לאחר מכן ניתן יהיה לשייך את הרשומה של פנקס החישובים לכל לוח זמנים עבודה ספציפי ובעתיד באמצעות השפה המובנית לקבל מידע על מספר שעות העבודה הדרושות לביצוע החישובים.

לדוגמה, ציר זמן עם המבנה הבא:

חישובים מחדש

פנקס החישובים יכול לכלול אובייקטים מיוחדים - חישובים מחדש:

באובייקטים אלו המערכת תשמור מידע לגבי אילו רשומות של פנקס החישובים איבדו את הרלוונטיות והן כפופות לחישוב מחדש כתוצאה מהפעלת מנגנוני התלות לפי תקופת הבסיס ועקירה לפי תקופת התוקף.

ייחודיות של רשומות

המערכת מספקת בקרה על ייחודיות הרשומות המאוחסנות בפנקס החישובים. לפיכך, פנקס החישובים אינו יכול להכיל שני ערכים המתייחסים לאותה שורה של אותו מסמך.

מנגנונים המיושמים על ידי פנקס ההתיישבות

מנגנון ההחרגה לפי תקופת תוקף מאפשר לך לחשב את תקופת התוקף בפועל של רישום פנקס חישוב על סמך ניתוח של ערכים אחרים הכלולים בפנקס.

ככלל, רישום בפנקס שכר מכיל שני תאריכים המגדירים את התקופה שמכסה הרישום. תקופה זו נקראת תקופת תוקף הרשומה. עם זאת, אם ניתן להקדים את סוג החיוב אליו שייכת הערך על ידי סוג חיוב אחר, אזי תקופת התוקף של הערך היא רק תקופה "מבוקשה", כלומר "אנחנו רוצים שהערך יהיה תקף בתקופה זו". בפועל, ניתן לקבוע את תקופת התוקף בפועל של ערך זה רק לאחר ניתוח כל הרישומים של סוגי יישובים המחליפים סוג חישוב זה בתקופת התוקף. תקופת התוקף בפועל תהיה קבוצה של תקופות המהוות תת-קבוצה של תקופת התוקף המקורית של הערך. אם לא נמצא ערך שמקדים את הנתון לפי תקופת תוקף, אזי תקופת התוקף בפועל של ערך זה תהיה שווה לתקופת התוקף שלו. המקרה הקיצוני הנוסף של תפוגה לפי תקופת תוקף הוא כאשר ערך נתון פונה לחלוטין על ידי ערכים אחרים. במקרה זה, לא תהיה תקופת תוקף בפועל לערך.

כל רישום פנקס שכר מכיל את סוג השכר אליו הוא שייך. כדי לקבוע אילו רשומות צריכות להחליף רישום נתון לפי תקופת תוקף, פנקס השכר משתמש בקישור לתכנית סוג השכר, המתארת ​​את ההשפעה ההדדית של סוגי השכר זה על זה. שימוש בקשר זה מאפשר לפנקס החישובים לקבוע את תקופת התוקף בפועל של כל ערך.

מנגנון התלות של תקופת הבסיס מאפשר לך לקבל את ערך הבסיס עבור ערך פנקס יישוב בהתבסס על ניתוח של ערכים אחרים הכלולים במרשם.

הבסיס הוא ערך מספרי, שבו יש להשתמש כדי לחשב את התוצאה של רשומה זו. הבסיס מחושב על ידי ניתוח תוצאות החישוב של רשומות אחרות שבהן רשומה זו תלויה בתקופת הבסיס. כך, במקרה הכללי, ברישום פנקס החישובים מצויים שני מועדים הקובעים את התקופה שבה יש צורך לנתח את רישומי סוגי החישובים, שבהם תלוי חישוב מסוג זה בבסיס - תקופת הבסיס. שימוש בקישור לתוכנית סוג החיוב מאפשר לפנקס החיובים לקבוע את סוגי החיובים שבהם תלוי סוג החיוב לתקופת הבסיס.

פנקס החישוב תומך בשני סוגי תלות בתקופת הבסיס:

  • תלות בתקופת התוקף;
  • תלות בתקופת הרישום.

במקרה של תלות בתקופת התוקף, להשגת הבסיס, ייבחרו אותן רשומות שעבורן נמצא ההצטלבות של תקופת התוקף בפועל שלהן עם תקופת הבסיס של רשומה זו. ערך הבסיס שיתקבל מערך משפיע מסוים אינו שווה בדרך כלל לתוצאה שמכיל ערך זה. הבסיס יחושב באופן יחסי לאיזה חלק מהתקופה בפועל של הרשומה המשפיעה הוא החלק החופף לתקופת הבסיס שצוינה. פעולה זו תשתמש בנתונים של התרשים המשויך לרשומה זו.

במקרה של תלות בתקופת הרישום, להשגת הבסיס, ייבחרו תוצאות החישוב של אותן רשומות הנופלות לתקופת הבסיס של רשומה זו לפי ערך השדה שלהן "תקופת רישום".

הגרסה המורכבת ביותר של התלות בתקופת הבסיס היא המקרה כאשר המאפיין "תקופת תוקף היא תקופת הבסיס" מוגדר עבור סוג החישוב של רשומה זו. מאפיין זה אומר שתקופת הבסיס של רשומה זו לא תהיה תקופת הבסיס המצוינת בשדות המתאימים של הרשומה, אלא תקופת התוקף בפועל של הרשומה, המתקבלת כתוצאה ממנגנון ההחרגה לפי תקופת תוקף והיא , במקרה הכללי, קבוצה של כמה תקופות.

המנגנון להפקת רשומות חישוב חוזר עוקב אחר התרחשותן של רשומות בפנקס המשפיעות על תוצאת החישוב של רשומות קיימות. אפשרות ההשפעה של רשומות חדשות על רשומות קיימות נקבעת כתוצאה מהניתוח השפעה הדדיתסוגי חישוב ועל בסיס פעולת מנגנוני העקירה לפי תקופת התוקף והתלות לפי תקופת הבסיס.

התוצאה של המנגנון להפקת רשומות חישוב מחדש היא קבוצה של רשומות חישוב מחדש המכילות מידע לגבי אילו רשומות אוגר יש לחשב מחדש (לחשב מחדש).

טפסי רישום חישובים

על מנת שהמשתמש יוכל לצפות בנתונים הכלולים בפנקס היישובים, המערכת תומכת בטופס ההצגה של פנקס ההתיישבות - טופס הרשימה. זה מאפשר לך למיין ולבחור את המידע המוצג לפי מספר קריטריונים:

המערכת יכולה ליצור טופס זה באופן אוטומטי. יחד עם זה, למפתח יש אפשרות ליצור טפסים משלו שהמערכת תשתמש בהם במקום טופס ברירת המחדל, כולל טופס ערכת הרשומות, המאפשר להוסיף, לשנות ולמחוק ערכי אוגר חישוב.

פונקציונליות פנקס החישובים

הפונקציונליות העיקרית שאוגר החישוב מספק למפתח היא:

  • בחירת רשומות במרווח נתון לפי קריטריונים נתונים;
  • בחירת רשומות על ידי רשם;
  • השגת ערך הבסיס עבור ערכי רישום העונים על הבחירה שצוינה;
  • השגת נתוני לוח זמנים עבור ערכי רישום העונים על הבחירה שצוינה;
  • השגת נתונים על רשומות הכפופות לחישוב מחדש;
  • קריאה, שינוי וכתיבת קבוצה של רשומות לפנקס.

כל השינויים שנעשו במסד הנתונים מאוחסנים בטבלאות המתאימות. עבור 1C, אלו טבלאות של מסמכים, יומני מסמכים, ספריות ורישומים. סוגי אוגרי 1C, התכונות והדקויות של השימוש בהם יידונו במאמר שלנו.

גיבוש רישומים בפנקסים

אחת השאלות הראשונות הקשורות לרשמים היא: למה?

מדוע עליך ליצור טבלאות נפרדות, לעתים קרובות לשכפל רשומות קיימות?

התשובה כאן היא די פשוטה. כמובן שניתן לבצע שאילתות מורכבות וגוזלות זמן לטבלאות של מסמכי מקור על ידי פירוט תנאי הבחירה, בדיקת סימני מחיקה והולכה, אבל הרבה יותר קל ופחות עמל ליצור פרוסה מסוימת ממערך הרשומות ישירות. בעת שמירת המסמך ואחסנו בטבלה נפרדת על ידי גישה אליו לפי הצורך.

כך, גילינו שאחת הדרכים ליצור ערך רישום היא כתיבה באמצעות רשם (מסמך). אפשרות זו קיימת בכל סוגי האוגרים.

תהליך יצירת רישומי הרישום על סמך מסמך נקרא בדרך כלל פרסום מסמך. למסמך רשם שלא פורסם אין תנועות רישום; הוא למעשה טיוטה או ריק.

האפשרות השנייה להפקת רשומה היא ישירות, ללא יצירת מסמך רישום. ניתן ליצור רשומות בצורה זו רק במאגרי מידע, בעוד שבמאפייני המאגר חייבת להיות התכונה "Record mode" בערך המתאים (איור 1).

משותף לכל הרשמים

ניתן להציג את המבנה הפנימי של כל אוגר באיור 2

איור 2

בואו נשקול את זה ביתר פירוט:

  • מידות – מאפייני רשומה הקובעים באילו מקטעים הנתונים מאוחסנים מידע חשוב;
  • משאבים - הם מכילים מידע שיש לבצע שיטתיות;
  • דרישות - שדות רישום המכילים מידע נוסף;
  • Forms הוא מאפיין המכיל מידע גרפי על הופעת רשימה, אלמנט וכו'. והמודולים הפנימיים שלהם;
  • פריסות - טפסים מודפסים של אוגרים.

פנקסי מידע

מכיוון שאנו מדברים על אוגרי מידע לעיל, בואו נדבר עליהם.

זהו כנראה סוג הרשמים הפשוט והמובן ביותר. טבלה רגילה המכילה עמודות ועמודות המאחסנות מידע.

רשימת המאפיינים החשובים של מאגר המידע היא קטנה (איור 3), בואו נדבר על העיקריים שבהם:

איור 3

  1. מחזוריות, זה מציין את מידת השליטה בייחודיות הרשומה (תוך דקה, שעה, יום, שנה, בהתאם לערך שנבחר, לא יכולות להיות שתי רשומות עם אותן מדידות), הוא יכול גם לקחת את הערך "על ידי רשם", אך לשם כך עליך לבחור את מצב ההקלטה המתאים;
  2. מצב ההקלטה הוא למעשה בחירה בין שני ערכים: "בלתי תלוי" ו"כפוף לרשם".
    1. חשוב להבין כי הבחירה במצב עצמאי אין פירושה שלא ניתן ליצור רישום על ידי מסמך, רק בחירה על ידי הרשם ושליטה בייחודיות הרשומה על ידו תהיה בלתי אפשרית;
  3. אפשר נתח סכומים מהראשון ואפשר חתך סכומים מהאחרון: (שלב שני פריטים לאחד) - כאשר נבחרו תיבות הסימון המתאימות, ניתן לפנות לפנקס המידע בטבלאות נוספות (חתך הראשון ופרוסת הסימון). האחרון), המכילים את מערכי הנתונים המתאימים, כאחד הפרמטרים של טבלאות אלה הם התאריך שבו יש צורך לבצע בחירה של נתונים.

רושמי הצטברות

ראינו את המבנה של אחד מהם באיור 2. המאפיין העיקרי המשפיע מאוד על מראה הפנקס, כמו גם על המבנה הפנימי שלו, הוא "סוג הפנקס" (איור 4).

בהתאם לדרישות למידע המאוחסן, הוא יכול לקבל את הערכים הבאים:

  • שְׂרִידִים;
  • מחזורים.

במקרה הראשון, המאגר יכיל מידע לא רק על תנועות המשאבים בהקשר של מדידות, אלא גם על סוג הפעולה (קבלה או הוצאה). בנוסף, בעת יצירת שאילתה, תהיה זמינה טבלה נוספת המכילה את הסכומים.

אחת הבעיות העיקריות שעומדות בפני מפתחים מתחילים בעת שימוש בטבלאות Balances and BalancesAnd Turnovers בשאילתות היא שכאשר שאילתה מקבלת יתרות לתאריך מסוים, הנתונים בטבלאות אלו עשויים להיות שונים. וכאן יש ניואנס אחד: כאשר מציינים ערך מסוים כתאריך סיום התקופה, הפלטפורמה לוקחת נתונים מטבלת היתרות מבלי לכלול ערך זה בתקופת הבחירה.

אם אתה צריך נתונים הכוללים את סוף התקופה, אתה יכול:

  • השתמש בטבלה יתרות ומחזורים;
  • בצע בחירה עבור תאריך שגדול בשנייה אחת מהתאריך הנתון (כלומר לא ב-31/12/16 23:59:59, אלא ב-01/01/17 00:00:00);
  • השתמשו בשיטת Boundary, שעוזרת להגדיר את האפשרות לכלול נקודת זמן בתקופה הנבדקת (מקרה שימוש: Boundary(EndDate,Including).

פנקסי הנהלת חשבונות

רגיסטרים מיוחדים מספיק, בעיצובם דומים לרישומי צבירה. ההבדל העיקרי מסוגי רישום אחרים של פלטפורמת 1C הוא נוכחותו של פרמטר "טבלת חשבונות" במבנה הנכס (איור 5).

איור.5

טבלת החשבונות היא אובייקט מטא נתונים נפרד הדורש דיון נפרד. בהתאם לטבלת החשבונות, תצורות 1C טיפוסיות מודרניות מכילות 4 אוגרים חשבונאיים עיקריים:

  1. תִקצוּב;
  2. בינלאומי;
  3. מַס;
  4. תמיכה עצמית.

הפרמטר השני, האופייני לפנקסי חשבונות, הוא "התכתבות".

סימון תיבה זו מאפשר לך ליצור ערכים כפולים המכילים את חשבון האשראי AccountKt ואת חשבון החיוב AccountDt ואת הניתוח (subconto) התואם לחשבונות אלה. אם תיבת הסימון לא מסומנת, רק חשבון אחד יוזן ברשומות הרישום.

רושמת חישוב

אלו הם כנראה הרשמים הקשים ביותר להבנה. בינתיים, במהותם, הם דומים מאוד לרישומי צבירה מסוג "Turnover".

ההבדל המגדיר של אוגר החישוב מרושמים אחרים הוא הימצאות במאפייניו של הפרמטר "תכנית סוג החישוב". כמו כן, פנקס החישובים וכן פנקס המידע הינו תקופתי.

בכל פנקס חישובים ניתן לאפשר את האפשרות לקשר את הערך עם לוח הזמנים המצוין בפנקס המידע המתאים. זה מאפשר לקוד לאחזר נתוני זמן עבודה.

בנוסף לממדים, המשאבים והטפסים שנמצאים בסוגי ספרי חשבונות אחרים, ניתן לתת לרגיסטרים חישובים אובייקט חישוב מחדש כדי לאחסן מידע על רשומות שאינן מעודכנות וצריך לתקן אותן.

השימוש העיקרי שלהם הוא ב תצורות טיפוסיות 1ג - רישום והקלת עבודה עם צבירה לעובדי הארגון.

אחת המשימות שנפתרות בעזרת אוגרי חישוב היא קבלת מחזורי רישום באמצעות שאילתות לטבלת הנתונים הווירטואליים או לשיטת GetBase() . מחזורי פנקס מתקבלים על סמך מספר רב של נתוני מקור שונים, לרבות הגדרות ותכני תכנית סוגי החישובים, הגדרות פנקס החישובים, פרמטרים של טבלת נתוני היסוד הוירטואלית וכו'. אבל אחד התפקידים החיוניים בהשגת נתונים בסיסיים ממלאים המדידות של פנקס החישובים.

תפקיד הממדים בפרמטריזציה של הטבלה הוירטואלית של הנתונים הבסיסיים

אחד הפרמטרים החשובים של הטבלה הוירטואלית של נתוני הבסיס הוא רשימת הממדים שבאמצעותם משווים רשומות אוגר בעת סיכום נתונים. כדי לפתור בעיות שונות, ייתכן שיהיה עליך לבצע סיכום של משאבי רישום על קבוצות שונות של מדידות. שקול את הדוגמה של פנקס המיועד לתשלום שכר ויש לו שלושה מימדים:

  • אִרגוּן,
  • אִישִׁי,
  • תַת מַחלָקָה.
תאר לעצמך שאתה צריך לפתור את המשימות הבאות:
  • השגת עבור רשומות מסוימות של פנקס המחזורים של הפנקס עבור כל הרשומות עם חלוקה זהה לרישום המקורי. זה יכול להיות, למשל, חישוב הקצבה, התלוי בצבירה של היחידה כולה.
  • קבלת מחזורים ברשומות עם אותו יחיד ומחלקה. הָהֵן. קבלת סכום הצבירה של העובד, שנצברו לו באותה אגף (אינן נכללות צבירות לאותו עובד, שקיבל בחטיבות אחרות).
  • קבלת מחזור ברישומים עם אותו אדם ואותו ארגון (הכל מצטבר לאדם בתוך אותו ארגון).

כל המשימות הנ"ל נפתרות באמצעות שאילתות לטבלה הוירטואלית של הנתונים הבסיסיים. במקרה זה, הפרמטרים "מדידות של האוגר הראשי" ו-"מדידות של האוגר הבסיסי" יהיו שונים עבור כל שלוש המשימות. במקרה הראשון, יש רק מימד אחד - "חלוקה משנה"; בשני - "יחיד" ו"חטיבה"; בשלישית - "ארגון" ו"יחיד".

אופטימיזציה בסיסית של רכישת נתונים

עבור המקרים המפורטים לעיל, בעת יצירת שאילתה לטבלת נתוני הבסיס הווירטואלי, המערכת, מבחינת שפת השאילתה, תבצע "חיבור שמאלי" של טבלת אוגר החישוב עם אותה טבלה. במקרה זה, אחד מתנאי החיבור הוא שוויון הערכים בשדות המצוינים כמדידות של האוגרים הראשיים והבסיסיים. כמובן שבנוסף לתנאי זה ישנה השוואה בין תקופת התוקף או תקופת הרישום לתחילתה וסופה של תקופת הבסיס, השוואת סוגי חישוב וכו', אך ההגבלה ה"קשה" ביותר, ככלל. היא ההגבלה על ערכי המדידה.

לפיכך, לצורך הפעולה האפקטיבית של השאילתה המתקבלת, חשוב שיהיה אינדקס של טבלת אוגר החישובים, שיכיל את השדות של המדידות שהשוו כשדות הראשונים.

היכולת לאינדקס את ממדי אוגר החישובים מאפשרת פתרון בעיה כזו, אך רק למקרה בו משווים מימד אחד (בדוגמה שלנו, משימת השגת הנתונים לפי מחלקות). במקרה שישנן שתי מידות השוואות או יותר, נדרש לבנות אינדקס על מספר מידות בו זמנית.

משימה זו היא המאפשרת לך לפתור את המאפיין Base ממד של אוגר החישוב. על ידי הגדרת מאפיין זה על ממדים מרובים, מפתח התצורה יוצר אינדקס על כל הממדים המסומנים כ"בסיס" (לפרטים נוספים, עיין בסעיף "אינדקסים של טבלת מסד נתונים").

מהאמור ברור שניתן ליצור רק אינדקס אחד כזה לפנקס החישובים על מנת לייעל את קבלת הנתונים הבסיסיים על ידי בחירת ממדים מסוימים. לפיכך, בעת הפיתוח, חשוב להעריך נכון באילו טבלאות וירטואליות נעשה שימוש לעתים קרובות יותר, והאופטימיזציה שלהן היא החשובה ביותר.

נחזור לדוגמה שלנו. תארו לעצמכם שצברים הדורשים השגת נתונים על פרט וחלוקה יהיו פחות שכיחות במהלך פעולת התצורה מאשר צבירות הדורשות השגת נתונים על פרט וארגון. לאחר מכן, בתור המידות הבסיסיות, יש לציין את הממדים "ארגון" ו"פרט". יחד עם זאת, נצטרך להשלים עם העובדה שקבלת נתונים בסיסיים על פרט וחלוקה תהיה איטית יחסית.

כאשר בוחרים מדידות בסיס, יש להעריך גם את ה"סלקטיביות" שלהן, כלומר. מייצגים כמה ערכים יהיו בממד מסוים במהלך פעולת התצורה. תארו לעצמכם שבדוגמה שלנו, לאדם אחד עשויים להיות מעט מאוד ארגונים (אחד או שניים) וחטיבות רבות יחסית. הָהֵן. כמעט תמיד משלמים לאדם משכורת עבור ארגון אחד, ובמקביל, לרוב מחושב משכורת עבור מחלקות שונות. בנסיבות כאלה, סביר יותר לבחור את הממדים "יחיד" ו"מחלקה" כבסיס.

אך יחד עם זאת, חשוב לזכור את סדר המדידות של אוגר החישוב ...

על סדר המידות בפנקס החישובים

העובדה היא שכאשר יוצרים אינדקס, שיקל על קבלת נתונים בסיסיים, המערכת כוללת בו ממדים לפי הסדר שבו הם ממוקמים בעץ התצורה. זה אומר שפשוט על ידי "סידור מחדש" של המידות "יחיד" ו"מחלקה" נשנה את סדר השדות באינדקס.

בדוגמה שלנו, אם הממדים "אינדיבידואל" ו"מחלקה" נבחרו כבסיס, אז על ידי סידור מחדש שלהם, לא נשנה את מהירות השגת נתונים בסיסיים על פרט וחלוקה, אלא נחמיר באופן קיצוני את המצב עם השגת נתונים על אדם וארגון. בהשוואת הערכים בשדות "ארגון" ו"פרט", המערכת לא תוכל להשתמש במדד תת-חלוקה+פרט, שכן שדה "פרט" אינו הראשון בו, והתנאי אינו מוטל. על החלוקה. ובמקרה של מדד, יחיד + מחלקה ייהנו הן מהשגת נתונים בסיסיים לחטיבה ולפרט, והן מהשגת נתונים בסיסיים לארגון ולפרט, שכן שדה "יחיד" יהיה הראשון במדד, המערכת תוכל להשתמש בו "חלקית" (שדה אחד כל אחד). יחד עם זאת, לתחום ה"פרט" יש "סלקטיביות" הרבה יותר מאשר תחום ה"ארגון", ולא ייקח הרבה זמן לגבש את התנאים לארגון.

אם ממד הבסיס הוא אחד

אל לנו לשכוח את משימת הדוגמה שלנו, הכרוכה בהשגת נתונים בסיסיים רק עבור המחלקה. נראה כי יצירת אינדקס יחיד + חטיבה כדי לפתור את שתי המשימות האחרות אינו כולל עבודה יעילהטבלה וירטואלית של נתונים בסיסיים על ממד אחד "מחלקה". אבל כאן אתה צריך לזכור על האפשרות של אינדקס ממדי רישום (מאפיין אינדקס). היכולת לאינדקס ממד מאפשרת לפתור ביעילות את הבעיה של קבלת בסיס מממד בסיס אחד.

לפיכך, בדוגמה שלנו, עליך להגדיר את המאפיין Base עבור הממדים "Individual" ו-"Department", את מאפיין אינדקס עבור הממד "Department", וכן לוודא שהמימד "Individual" הוא "גבוה יותר" מה-Individual. ממד "מחלקה" (סדר הממד "ארגון" "זה לא משנה).