تاريخ تاريخ فارغة في الطلب 1C 8.3. مع التحقق من قيمة فارغة. أمثلة

يجب أن يكون لجميع المستندات الموجودة في تكوينات 1C، وبالتالي، وبالتالي، تتمتع جميع السجلات تقريبا بمسعوقة واحدة على الأقل مع نوع التاريخ، وهذا هو السبب في أن كل مطور يحتاج إلى معرفته وفهمها:

  • كيفية تحويل أنواع أخرى من المعلمات إلى النوع قيد الدراسة؛
  • كيفية تحديد التاريخ الفارغ في طلب 1C؛
  • ما هو الفرق بين التاريخ والحد من الوقت.

هو لهذه الأسئلة التي سنحاول الإجابة على مقالتنا.

ما هو التاريخ وكيفية التعرف عليه

منذ ذلك الحين، من أجل اعتماد معظم القرارات الإدارية والحفاظ على المحاسبة، قرر دقة الوقت الذي يتجاوز 1 ثانية، وقد قرر مطورو منصة 1C أن هذه القيمة هي الحد الأدنى الأقصى في تنسيق التاريخ. وبالتالي، يجب أن تحتوي كل داعم تصف وقت الحدث في البرنامج:

  • السنة عندما حدث حدث؛
  • شهر من هذا الحدث؛
  • يوم.

اختياريا تشير: ساعة، دقيقة والثانية. إذا تم حذف هذه المعلمات الثلاثة ولا شروط إضافيةيقوم البرنامج تلقائيا بتعيين الوقت في بداية اليوم.

أن تكون تنسيقات المواعيد الحالية لها اختلاف كبير:

  1. في روسيا، اعتدنا على المقام الأول لوضع اليوم، ثم هناك شهر من الأحداث، في السنة النهائية؛
  2. سكان الولايات المتحدة يبدأ تاريخ من الشهر؛
  3. التشيك، البولنديين والسلوفينيون يكتبون الفترة بالتنسيق "السنة - اليوم - اليوم".

هذا هو التنسيق الأخير الذي يستخدم منصة 1C.

التحويل إلى التاريخ

من أجل الحصول على معلمة مع نوع التاريخ من عدة قيم أو من السلسلة، الرمز المحدد في الشكل. واحد

كما يتضح من الرقم أعلاه، من الممكن تحديد تاريخ كليهما بمساعدة سطر واحد، ومع تقسيم هذا الخط إلى أجزاء مركبة ذات فاصلة منقوطة، لن يتم تغيير النتيجة.

من المهم أن نفهم أن عام التاريخ يجب أن يحتوي على أربعة أرقام، بما في ذلك الألفية وقرن من الأحداث والشهر واليوم والساعات والثواني - يجب أن يكون طول الرموز، بما في ذلك الأصفار الرائدة.

العد التنازلي ب. البرنامج قادما من بداية اليوم في 1 يناير، 0001. للحصول على الكود أعلاه، يمكن تعريف هذه القيمة بأحد طريقتين (الشكل 2).

تين. 2.

في السطر الثاني، خفضنا الساعات، دقائق وثواني من الحدث، والتي لم تؤثر على كفاءة التعليمات البرمجية لدينا.

ميزات استخدام التاريخ في الاستعلامات 1C

بالنسبة لمعظم أنواع البيانات المستخدمة من خلال منصة 1C، هناك قيم باطلة محددة مسبقا. للأرقام، هذا هو 0، للمراجع، يمكنك تحديد قيمة لفة فارغة ()، في تاريخ افتراض القيمة الفارغة لتكون تاريخ البدء، هو مع ذلك أنه من الضروري أن تقارن تفاصيل تفاصيل النوع المقابل عند حاجة معلمات الطلب.

من المهم أن نفهم أنه حتى لو لم يتم تحديد قيمة شكل النموذج باستخدام النوع الذي يعتبر، يتم تحديد أي أرقام، أي أن النافذة تحتوي على النموذج (الشكل 3)، وهذا لا يعني أن لا شيء المحدد فيه، فإن مقارنة هذه المعلمة مع سلسلة فارغة لن تمر.

تين. 3.

بعد تلقي تاريخ فارغ، يمكننا تحديدها كمعلمة لطلبنا، أي استخدام التصميم (الشكل 4)

ومع ذلك، هناك أوقات يكون فيها الشيك أفضل أن تنفق داخل نص الاستعلام دون اجتياز تاريخ فارغ كمعلمة. للقيام بذلك، في رمز الاستعلام، يمكنك إدخال الحالة المناسبة (الشكل 5) واستخدم وظيفة استعلام Datarime ().

تين. خمسة

في النص المحدد للطلب، خفضنا الأصفار الرائدة في العام، أشهر واليوم، وكذلك لم تشير إلى ساعات، دقائق والثواني والبرنامج، ما يسمى، وقد دفن هذا الافتراض.

التاريخ والحد الزمني

حقيقة أخرى مثيرة للاهتمام فيما يتعلق بنسبة الطلبات والتواريخ هي استخدام مفهوم "لحظة الوقت" عند الوصول إلى جداول قاعدة البيانات المختلفة.

دقة "milliseconds"، المحددة في الوثائق الفنية، عند وصف نوع بدائي، التاريخ أكثر إشراقا من كل ما عند اختيار السجلات من الجدول الظاهري لسجل التراكم: إذا كان سجل التراكم بالإضافة إلى جدول دوران هناك جداول وطاولات متبقية، والعينة الموجودة عليه لفترة معينة قد تعطي نتائج مختلفة.

من أجل فهم كيف ولماذا يحدث، فكر في مثال بسيط:

  1. حتى الساعة 12:00، 31 دقيقة 36 ثانية من وثيقة تنفيذ البقايا وفقا لتسمية السكر كانت 30 كجم؛
  2. تم كتابة المستند في الوقت المحدد من 10 كجم؛
  3. التقرير الذي تم إنشاؤه في تاريخ الوثيقة لمدة 12 ساعة و 31 دقيقة 36 ثانية على طاولة البقايا سيظهر بقايا 30 كجم؛
  4. سيظهر هذا التقرير نفسه المتعلق بجدول الخلافات المتبقية في نفس الوقت توازن 20 كجم.

ما هو السبب في هذا السلوك وكيفية تجنب ذلك؟

المشكلة هي أن جدول البقايا يعطى من قبل شريحة مفتوحة، أي أن الحركات التي تنفذ في وقت وقت تكوين التقرير لا تؤخذ في الاعتبار، أي أن الوقت قد تم نقله إلى البداية المحددة في المعلمة الثانية. في الوقت نفسه، بالنسبة إلى جدول التحول وللجدات المتبقية، يتم أخذ حدود الحد من الوقت في الاعتبار، أي أن الوقت يتم أخذ الوقت في نهاية الثانية المحددة.

مخرجات من هذا الوضع هي عدة:

  1. عند استخدام جدول الرصيد، حدد لحظة الوقت لمدة 1 ثانية أكبر من المحدد؛
  2. استخدم فقط جدول المتبقية (وليس الخيار الأكثر مثالية من حيث الأداء)؛
  3. استخدم مفهوم الحدود.

يمكن تقديم الخيار الأخير من قبل القانون المشار إليه في الشكل. 6.

في المعلمة الأولى من كائننا، نحدد التاريخ الذي تريد تشكيله في تقرير، يحدد المعلمة الثانية نوع الحدود. نظرا لأنه من المهم بالنسبة لنا أن يتم تضمين الحركات إلى تاريخ محدد في العينة. يجب علينا تعيين هذه المعلمة إلى وضع "بما في ذلك".

في سياق العمل مع الطلبات، يتعين على أي مبرمج التفاعل مع القيم الفارغة على أي حال. ماذا نفهم تحت قيمة فارغة؟

قيمة فارغة ليست قيمة أو قيمة افتراضية لنوع البيانات. مع أنواع البدائية، كل شيء بسيط للغاية: القيمة الافتراضية هي قيمة مبدئية معينة تعمل كنقطة مرجعية.

أنواع القيم الفارغة

النظر في أنواع القيم الفارغة التي يمكن أن تلبي أو تحتاج إلى طلب.

  • لنوع من عدد - قيمة فارغة هي صفر - 0.
  • لنوع السلسلة - خط فارغ - "".
  • لنوع التاريخ - أول يناير من السنة الأولى - 01.01.0001 00:00:00. من هذا التاريخ العد التنازلي 1C. *
  • لنوع القيمة الافتراضية المنطقية، من الناحية الفنية، هو كذبة، ولكن منطقيا يتم ملء كلا النوعين من النوع. لذلك، يعتمد اتخاذ قرار بشأن القيمة الفارغة للخطأ أم لا، على منطق خوارزمية معينة.

* كن حذرا، من أصل 1C أنظمة مختلفة ملاحظة تواريخ مع نقاط مرجعية مختلفة.

القيمة المفقودة بالمعنى الكامل تتوافق فقط للنوع باطل. يحتوي هذا النوع على قيمة واحدة فقط تدل على عدم وجود قيمة.

مثل هذا النوع غير معرف يحتوي أيضا على قيمة واحدة فقط، لكنها لا تعني أي بيانات، ولكن فقط عدم القدرة على تحديد القيمة الافتراضية للنوع. إنها القيمة الافتراضية غير مسؤولة للأبد، بما في ذلك غير محدد بشكل صريح، وأنواع. على سبيل المثال، القيمة في سلسلة جديدة جداول القيم في العمود الذي لا يتم تعريف هذا النوع على وجه التحديد.

وبالتالي المرجعي أنواع أقل من عدم اليقين. توفر جميع أنواع المرجعية قيمة فارغة. القيمة الفارغة هي نفس المرجع بنوع البيانات، ولكن دون معرف فريد من نوعه لقيمة معينة. شكرا بذلك، يمكننا التعامل مع مرجع فارغ كما هو الحال مع المعتاد وتطبيق جميع الأساليب المنصوص عليها من خلال النظام الأساسي، والعمل معها كقيمة كاملة.

العمل مع القيم الفارغة في الطلب

بغض النظر عما إذا كنت بحاجة إلى إدخال قيمة فارغة بشكل صريح في النتيجة النتيجة أو مقارنة القيم الموجودة معها، تحتاج إلى معرفة كيفية وصف القيم الفارغة في الاستعلام.

أنواع الرقم، الصف، boolevo يصف في الاستعلام كما هو الحال في اللغة المضمنة:

اختر 0 كمثانين، "World Hello World" كمثال، والحقيقة كججن

إنه أمر غير مؤكد، حيث يتم وصفه بشكل أساسي نوع بدائي، بنفس الطريقة:

اختر حفلة. فترة من السجل. حزب كطرف حيث بقايا. نقاط المستند \u003d غير مؤكدة

يتم تعريف القيم المرجعية الفارغة أكثر تعقيدا. تحتوي جميع الكائنات المرجعية على قيمة خدمة محددة مسبقا للفة الفارغة. نظرا لهذا، من الممكن اختيار رابط فارغ بطريقة واحدة - من خلال وظيفة القيمة:

اختار القيمة(الدليل. Namerenclature. بئوية) كمرض فارغ

فرص العمل مع القيم الخالية أكثر ثراء إلى حد ما. مثل أنواع البدائية الأخرى، يتم وصف NULL بنفس الطريقة كما في اللغة المضمنة. بالإضافة إلى ذلك، يحتوي المشغل الخاص ب Null IsNull Null.

  • المشغل NULL يسمح لك بإنشاء التعبير المنطقي مقارنة القيمة المحددة بالقيمة الخالية.
  • تقوم الوظيفة HASMNULLL بإرجاع الوسيطة الأولى إذا لم تساوي NULL، والوسيطة الثانية في الحالة المعاكسة.

يمكن استخدام التعبيرات التي تحدد القيم الفارغة في أي أقسام من طلب التعبيرات الداعمة. على سبيل المثال، يمكنك إضافة رابط فارغ إلى تحديد أو التحقق من NULL في الحالة.

أمثلة عملية

باستخدام قيمة الوظيفة

اختر البضائع. ارتباط اسم التسمية، والسلع. ارتباط \u003d القيمة (الدليل. Nameleture. امدادات الطاقة) كما etcolkapy من vttovars

باستخدام المشغل فارغ

اختر البضائع. ارتباط كمسماة، والسلع. رابط هناك خالية من حنفية المغلقة مثل TT

لاغية مع اتصال اليسار أو الكامل

تحقق في null.

يوضح المثال الوضع العملي المتكرر عند الاتصال الأيسر، للجدول الأول ليس امتثالا في الثانية. في هذه الحالة، ستكون جميع مجالات الجدول الثاني مساويا تماما.

اختيار SWDS. ارتباط كمسماة، بقايا. دفتر ككمية، مخلفات. الأعمال Nality أكلت NULL كشبكت من VTOS اتصال اليسار Regisrting. Townsnasclands. Lossats كمخلفات Vttovars.link \u003d المخلفات. Namerenclature

معالجة القيمة الفارغة

تعديل الطلب السابق لإظهار التقنية المصادفة بشكل متكرر للحصول على أي قيم افتراضية، بدلا من مفقود. في هذا المثال باستخدام وظائف arenull.يتم استبدال قيمة البقايا المفقودة، على تصحيح منطقيا 0.

اختر SWDS. رابط كملائم ناضج، ISNULL (المخلفات. Business Nality Business، 0) كعدد من VTTovars باعتباره VT اتصال اليسار Regisrting. Townsnasclands. Lossats كمخلفات Vttovars.link \u003d المخلفات. Namerenclature

كجزء من هذه المقالة، استعرضنا أنواع مختلفة من القيم الفارغة وخصائصها، درس طرق لتحديد أنواع مختلفة القيم الفارغة في الاستعلامات، وفي الجزء العملي كانت مقتنعة بسهولة استخدام المواد المدروسة.

عند العمل مع التواريخ 1C، أجزاء الطلب النموذجية - العام، الشهر، اليوم، ساعة، دقائق، ثواني. في الوقت نفسه، ساعات، دقائق، يمكن تخطي الثواني.

عند إنشاء تاريخ من الخط ("جلب إلى التاريخ")، يمكنك تحديد بتنسيق مترجم (يوم. ساعات سهلة: دقائق: ثوان)، ولكن تماما تماما.

على سبيل المثال:
// العمل مع التواريخ 1C - تحويل تاريخ في 1C من أجزاء - العام، الشهر، اليوم (بالإضافة إلى أنه ليس الوقت المناسب)
التاريخ \u003d التاريخ (2012.10،30)؛ / / بدون وقت
التاريخ \u003d التاريخ (2012.10،30،12.00.00)؛ //مع الوقت

// العمل مع التواريخ 1C - تحويل تاريخ في 1C من سلسلة، طرق مختلفة
التاريخ \u003d التاريخ ("20121030")؛ // سنة شهر يوم
تاريخ \u003d تاريخ ("10/30/2012 12:00:00")؛ / / تنسيق مترجم، فقط تماما

// العمل مع التواريخ 1C - مذكرة التاريخ قيم دون جلب مباشرة
تاريخ \u003d "20121030"؛ // دون مرور الوقت
تاريخ \u003d "20121030120000"؛ //مع الوقت

العمل مع التواريخ 1C - تاريخ فارغ 1C

للتحقق من تاريخ 1C للامتلاء - مقارنة مع "تاريخ فارغ". إذا كانت هناك تفاصيل في الدليل الثابت مع نوع النوع، إذا لم يملأ المستخدم هذا الحقل، فستكون قيمتها أيضا "تاريخ فارغ".

"تاريخ فارغ" هو 01.01.0001 00:00:00.

على سبيل المثال:
اللعينة \u003d "00010101000000"؛
إذا كنت بحاجة \u003d "00010101000000" ثم
تقرير ("أنت لم تملأ تاريخ ضروري للغاية")؛
انتهى

العمل مع التواريخ 1C - تاريخ في التفاصيل (الدلائل والمستندات وغيرها)

عند تحديد نوع الدعائم، يمكنك تحديد استخدام:

  • التاريخ فقط (الوقت يساوي دائما 00:00:00)
  • الوقت الوحيد (التاريخ يساوي دائما 01.01.0001)
  • التاريخ و الوقت

الحصول على تاريخ

للحصول على التاريخ والوقت، يتم استخدام وظيفة 1C ().

إنه مكان مهم للغاية - حيث يتم استدعاء هذه الوظيفة - على العميل أو على الخادم. للحصول على التفاصيل، راجع موضوع "وضع الأداء / التنفيذ". غالبا ما يحدث ذلك في الآلات العميلة الوقت مختلفا قليلا، بحيث تحاول استخدام وقت الخادم في كل مكان - حتى لو تم تثبيته على الخادم، فليس من الصواب، ثم على الأقل جميع العملاء سيكون لديهم نفس الوقت غير الصحيح.

من أجل الحصول على تاريخ الخادم (تاريخ تعيينه نظام التشغيل كمبيوتر الخادم)، عادة في تكوينات إنشاء وحدة نموذجية مع مربع الاختيار "الخادم" في الخصائص، ويخلق وظيفة
// الوظيفة موجودة في وحدة نمطية مشتركة، على سبيل المثال، مع اسم صريحات الخادم
// في العقارات الوحدة العامة تثبيت خانة الاختيار "الخادم" وعدم تثبيت مربع الاختيار "العميل"
وظيفة funatserver () تصدير
عودة القبول الحالي ()؛
الوظيفة

/ / استدعاء هذه الوظيفة للاستخدام من وحدة نمطية أخرى تبدو وكأنها
كائن المستند. بيانات \u003d يصاركات الخادم. footagedatserver ()؛ // mimodule. ImaFniciCH ()

ايضا في عميل رقيقة يتم الإشارة مباشرة في وظائف الوحدات حيث سيتم تنفيذها:

بداية ونهاية اليوم

للتاريخ "10/30/2012":

  • تاريخ بدء اليوم يشبه "10/30/2012 00:00:00"
  • يشبه تاريخ نهاية اليوم "30.10.2012 23:59:59"

المستخدمة في التقارير والاستعلامات التي تتطلب بيانات للفترة - اليوم، الشهر، السنة.

لذلك، على سبيل المثال، الفترة من 01/01/2012 00:00:00 على "01/31/2012 00:00:00" غير صحيح، لأنه لا يشمل يوما ما من الشهر (ولكنه يتضمن ثانية واحدة من آخر يوم من الشهر).

العمل مع التواريخ 1C - مقارنة التواريخ

يحتوي التاريخ على التاريخ والوقت. عند مقارنة التواريخ (باستثناء الوقت)، فإنها تؤدي عادة إلى بداية اليوم (الشهر، السنة).

على سبيل المثال:
date1 \u003d التاريخ ("10/30/2012 12:00:00")؛
إذا كانت البداية (Date1) \u003d Start (لفة المستندات. البيانات) ثم
تقرير ("الوثيقة المقدمة ك تاريخ معين")؛
انتهى

فقط في حالة، مثال مقارنة تاريخ في الفترة:
إذا لفة المستندات. البيانات\u003e \u003d الأصل (currentdata ()) و
لفة المستندات. البيانات.

العمل مع التواريخ 1C - تاريخ التغيير

التاريخ هو عدد الثواني. إذا كنا لا نريد معرفة ما إذا كان تاريخ واحد مختلف - ولكن كم، نحصل على الفرق في ثوان.

على سبيل المثال:
الجدول الزمني \u003d البيانات الحالية () - Retroper (البيانات الحالية ())؛
تقرير ("من بداية اليوم،" + خط (Shiplade) + "ثوان")؛
تقرير ("من بداية اليوم" + خط (سفينة / 60) + "دقائق")؛
تقرير ("من بداية اليوم" + خط (سفينة / 60/60) + "ساعات")؛

يمكننا أيضا تغيير التاريخ، عند التغيير، نضيف أو يسلب عدد الثواني:
بداية السنة \u003d البداية (الحالية)؛

بدء تشغيل Streetoday \u003d العثماني (ابدأ امرأة - 1)؛ // إزالة الثانية - صنع "أمس" واتخاذ بداية اليوم من "أمس"

بدء العام سنة \u003d بداية السنة - 24 * 60 * 60؛ // بطريقة أخرى - يستغرق 24 ساعة - 24 (ساعات) * 60 (تحولت إلى الدقائق) * 60 (ثانية)

العمل مع التواريخ 1C - لحظة الوقت

لحظة الوقت عبارة عن تمثيل تاريخ ممتدي ينطبق على المستندات (وفقا للسجلات).

مطلوب لمقارنة وقت الوثائق إذا كان تاريخ ووقت المستندات هو نفسه. وفقا لذلك، يمكن استخدامه عند اختيار الاستعلامات.

لحظة الوقت يمكن الحصول عليها من المستند بالطرق التالية:
// طريقة 1
momentwiresmirdiscoument \u003d وثيقة لفة. imometters ()؛

يمكنك أيضا مقارنة تاريخ الوقت مع التاريخ / الوقت:
Momentwornytalon \u003d وقت جديد (القصاص (TATT الحالي ())؛
إذا كانت الوثيقة Roll.momenartiy (). قارن (Momentwornyetalon) \u003d -1 ثم
تقرير ("وثيقة مقدمة في وقت سابق من اليوم")؛
انتهى
// إذا تم إدخال المستند بواسطة تاريخ اليوم في 00:00:00، فلا يزال يتم تقديمه - اليوم

العمل مع التواريخ 1C - تنسيق التاريخ

مع جزء إلى حد ما، هناك حاجة للعمل مع متغيرات من النوع "التاريخ". في هذه المقالة، سوف ننظر إلى التقنيات الرئيسية - نقل التاريخ الحالي، والتحقق من قيمة فارغة، تاريخ تعسفي.

عند كتابة الطلبات، غالبا ما تكون ضرورية لمقارنة البيانات مع التاريخ الحالي. في لغة 1C المدمجة هناك تدفق التدفق (). يسمح لك بتحديد الوقت والتاريخ الحالي على الكمبيوتر. لعمل العمليات مع التاريخ الحالي، يجب أن تنقل إلى طلب قيمة هذه الوظيفة كمعلمة.

أدناه هو طلب يحدد جميع الملفات المرفقة بالتقارير المسبقة من تاريخ الإبداع إلى الحاضر:

مثال \u003d طلب جديد
الاشعاد. أبيض \u003d "
| اختر
| AdvanceTupPrage ملف الصوت. رابط
| هو
| كتيب. معجب failyefilefut-fileflyls.
| أين
| ملف advanceetupprageinate. البيانات.< &ТекДата»;
إنفاذ. معلمة التثبيت ("Tekdata"، CurrentDat ())؛

تاريخ التعسفي

تتيح لك الوظيفة أعلاه مقارنة اختيار الاختيار في أي فترة. تتيح لك هذه الطريقة تحديد الاختيار الصعب في الاستعلام دون استخدام معلمات إضافية.

يرجى ملاحظة أن استخدام هذه الميزة في المثال أعلاه، مررنا كمعلمات مدخلات ثلاثة أرقام فقط (السنة، الشهر، اليوم). الثلاثة الأخيرة (ساعة، دقيقة، ثانية) ليست إلزامية وفي غياب الاستعاضة عن "0"، أي بداية اليوم.

في غضون هذا المثال سيتم استلام جميع الملفات المرفقة بالتقارير المتقدمة حتى نهاية عام 2016 الماضي. في هذا الصدد، سنجرض الساعة والدقيقة والثانية لمقارنة الوقت "31 ديسمبر 2016 23:59:59."

إختر
AdvanceTupPrage ملف الصوت. رابط
من
كتيب. officethispileyfiles كقدم
أين
ملف advanceetupprageinate. البيانات.< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

تاريخ فارغ

قم بإجراء المتغير للتحقق مما إذا كان يحتوي على التاريخ غير المعالج في حد ذاته أبسط مقارنة. في هذا المثال، نحن نستخدم الطلب، اختر جميع الإيصالات النقدية على P / C، والتي لم تكتمل التاريخ الوارد.