مسكن / أجهزة الألعاب / كيفية إضافة جدول Excel إلى 1s. أيهما أفضل - "1C" أم "Excel"؟ هل لديك سؤال او تحتاج الى مساعدة من استشاري؟

كيفية إضافة جدول Excel إلى 1s. أيهما أفضل - "1C" أم "Excel"؟ هل لديك سؤال او تحتاج الى مساعدة من استشاري؟

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

يعد Excel منتجًا عالميًا وشاملًا ، ولا يمكنك المجادلة في ذلك. يمكن للجميع تقريبًا استخدام هذا البرنامج ، على عكس تطورات "1C" ، والتي تستهدف المتخصصين الضيقين. باستخدام الجداول "الخضراء" ، يمكنك بشكل تعسفي تنفيذ الوظائف الضرورية التي ستكون مريحة: إليك النموذج المالي للمؤسسة مع جميع التسويات المتبادلة ، والمحاسبة الإدارية ، وحتى المنظمة ، ومجموعة كبيرة من التصور المرئي للبيانات ، والقدرة على توسيع البرنامج إمكانياتك بنفسك باستخدام العديد من الوظائف الإضافية - كل شيء بين يديك من البداية ...

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

من أجل الوضوح ، دعنا نتخيل ما قد تنشأ في أتمتة المحاسبة ، على سبيل المثال ، في التجارة:

1. تحليل المبيعات خلال فترة معينة.

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

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

3. الاحتفاظ بقاعدة بيانات الأطراف المقابلة.
حتى إذا كان المالك يبيع فقط ما يمكن شراؤه هنا والآن ، وهو أمر نموذجي لقطاع B2C ، فإن لديه علاقات مختلفة قليلاً مع قاعدة الموردين - العقود ، الأولية ... تخيل مدى ملاءمة ذلك عندما يكون كل شيء مرتبطًا بالمورد يتم عرضه تلقائيًا على الفور في قاعدة بيانات واحدة؟ يرى المدير المسؤول عن المستودع على الفور توافر البضائع في المستودع ، يقوم موظف آخر مسؤول عن المستندات بمراقبة المعلومات المتعلقة بتوافرها ، وما إذا كانت جميع الالتزامات بموجب العلاقات التعاقدية يتم الوفاء بها ، ومن يدين بمن وكم. وفي حالة وجود تناقضات ، يمكنك التحقق من البيانات لفترة معينة ، والحصول على نتيجة في أقل من دقيقة.

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

إذا لم يكن لديك العديد من العملاء والموردين ، فسوف يناسبك برنامج Excel حقًا ، نظرًا لوجود متسع من الوقت لتصميم مخططاتك الخاصة في الجدول وتعبئتها ، مع التوزيع اللاحق للمستندات في مجلدات مختلفة على جهاز الكمبيوتر الخاص بك: العقود ، الموردين والعملاء والعملاء في الحي والعملاء قيد التطوير والعملاء المراد حذفهم - العملية التي لا نهاية لها والمثيرة لإنشاء مجلدات داخل مجلد. وإذا كان هناك الكثير من المعلومات ، فهل من الملائم الاحتفاظ بسجل لقاعدة البيانات الخاصة بك في هذه الحالة؟ بالطبع ، هناك دائمًا استثناءات ، وأحيانًا توجد مؤسسات ذات معدل دوران كبير ، ويتم الاحتفاظ ببياناتها المالية في Excel فقط. كم من الوقت يستغرق تبادل البيانات ودمجها بين الإدارات؟ الجواب: كثيرا.

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

لا يمكنني قول الشيء نفسه عن 1C ، لأن جميع المعلومات هناك منظمة ومترابطة:

    قاعدة بيانات واحدة لكل من الموظفين عن بعد والموظفين بدوام كامل ، حيث يمكنك العمل مع جميع المستندات القياسية والتعسفية ؛
    يتم تقديم التقارير إلى الجهات الرقابية بناءً على البيانات التي تظهر بالفعل في البرنامج ، فلا داعي لفتح العديد من الملفات ، وتقليل العديد من القيم في جدول واحد للحصول على النتائج النهائية.
"1C" ، بطريقة جيدة ، هو نظام متعدد المهام يهدف إلى كل من مهام المحاسبة النموذجية وأتمتة جميع العمليات التنظيمية ، اعتمادًا على مجال النشاط. الكلمة الأساسية هنا هي النظام. لا أحد يزعجك لتنظيم نظام عملك في Excel ، ولكن لماذا تعيد اختراع العجلة عندما تكون هناك حلول تغطي جميع الاحتياجات تقريبًا في تحسين الوقت والتكاليف المالية ، مما يساعد على تنظيم العمل؟

دفاعا عن التفوق

ربما بدا لك أنني ضد بناء البيانات في جداول "خضراء". لا على الاطلاق. في الواقع ، غالبًا ما أقوم ببعض الأعمال في Excel: إذا كنت بحاجة إلى حسابات عشوائية ، وإذا كنت بحاجة إلى تقسيم البيانات حسب العملاء ، وإجراء التحليلات وفقًا لتلك المعلمات غير الموجودة في 1C - نعم ، يحدث هذا - أذهب إلى "excel. ببساطة ، في الجداول ، أقوم بحسابات ، وتحليل غير قياسي ، ولكن بعد ذلك أقوم بتنظيم كل شيء لاحقًا على أي حال في 1C.

وبعد ذلك ، لعرض الملفات التي تم تحميلها من 1C ، ما زلت بحاجة إلى Excel ، حيث يتم تخزين البيانات الموجودة في 1C في جداول البيانات. هل تعتقد أنها حلقة مفرغة؟ سأصيغها بشكل مختلف: "1C" و "Excel" يسيران جنبًا إلى جنب مثل شريكين ، لكن لكل منهما غرضه الخاص ، فهما يكملان بعضهما البعض جيدًا ، لكنهما لا يتبادلان.

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


ما هي النتيجة - "1C" أو "Excel"؟

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

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

ومع ذلك ، ليس كل "1C" يناسبك ، فأنت بحاجة إلى مراعاة عوامل مختلفة: تفاصيل ونطاق العمل ، والحجم ، والحاجة إلى المهام اليومية ، والروتين الذي يجب تقليله. كل شيء فردي. الحقيقة ، كما قلت ، تقع في مكان ما بين "1C" و "Excel" - إنها إضافة إلى بعضها البعض.

على هذا ، ربما ، كل شيء. ولكن إذا كانت لديك أي أسئلة ، فيرجى الاتصال بنا وسنحاول مساعدتك. عمليات تجارية ناجحة ، أيها الزملاء!

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

لإجراء هذه العملية ، يمكنك استخدام كل من الوظائف القياسية المتوفرة من خلال الاشتراك في دعم تكنولوجيا المعلومات (ITS) والمعالجة الذاتية المكتوبة التي يتم تنفيذها من خلال خيارات الاتصال المتنوعة. في مقالتنا ، سنحاول تحليل جميع الحالات الممكنة على أكمل وجه ممكن والإجابة على معظم الأسئلة الحالية المتعلقة بتحميل البيانات من Excel إلى 1C.

حركة عالمية

على أقراص ITS ، وكذلك على بوابة 1C ، بالانتقال إلى قائمة "الدعم التكنولوجي" -> "التقارير والمعالجة الشاملة" ، في المجلد "تحميل البيانات من مستند جدول بيانات" هناك معالجة مقابلة.

عندما يتم إطلاقه ، يتم فتح نموذج (الشكل 1):

كما ترى من النموذج ، يسمح لك بنقل المعلومات إلى كائنات التكوين التالية:

  1. الدليل؛
  2. الجزء المجدول من الوثيقة أو الكتاب المرجعي ؛
  3. سجل المعلومات.

اعتمادًا على موضع المفتاح ، يتغير حقل تحديد الكائن.

يتم ملء نموذج جدول المعالجة عند فتح الملف الذي تم تحميله.

تدعم معالجة النوع عمليات التحميل من:

  • تم تطويره بواسطة متخصصين من شركة 1C ، ملفات بصيغةmxl.
  • ليزتxls بالتنسيقإكسل 97-2003 ؛
  • ملف نصيرسالة قصيرة؛
  • الجداولدبف.

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

من المهم أن نفهم أنه في حالة وجود مجموعات سطر وعناوين فرعية وملاحظات في الملف المصدر ، فسيلزم إزالتها يدويًا.

الآن دعنا ننتقل إلى علامة التبويب "الإعدادات" (الشكل 2):

الصورة 2

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

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

أعمدة الإعدادات

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

تمثيل السمة - يُكتب هنا مرادف (اسم) لسمة البيانات الوصفية ، كما هو محدد في أداة التهيئة.

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

وصف الأنواع - يعرض نوع البيانات الذي يحتوي على سمة بيانات تعريفية واحدة أو أكثر.

وضع التنزيل - يقدم ثلاثة خيارات للاختيار من بينها (الشكل 3):

تين. 3

  • بحث - سيتم البحث عن العنصر المقابل ، في حالة عدم وجوده ، يمكن إنشاء عنصر جديد ؛
  • مجموعة - يتم تعيين قيمة معينة بطريقة ثانوية ؛
  • حساب - في هذه الحالة ، سيتم تعيين نتيجة حساب التعبير المحدد في عمود "شرط الارتباط / التعبير عن القيمة" في حقل العنصر الذي يتم إنشاؤه.

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

الشكل 4

رقم العمود - حقل يُستخدم للإشارة إلى أي عمود في جدول بيانات Excel تحتاج إلى أخذ البيانات لملئه.

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

شرط الارتباط / التعبير عن القيمة - لقد تطرقنا بالفعل جزئيًا إلى هذا الحقل عندما نظرنا في الحقول المحسوبة ، بالإضافة إلى ذلك ، يمكنك تحديد الشرط الذي ستتم بموجبه مزامنة بيانات المصدر.

هنا ، من حيث المبدأ ، جميع المعلومات المتوفرة في علامة التبويب "الإعدادات".

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

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

لتحميل البيانات من Excel إلى قواعد المعلومات"الإدارة والتجارة" هناك آلية أخرى. إنها أقل عالمية من الطريقة المذكورة أعلاه ، ومع ذلك ، فهي لا تتطلب اشتراكًا في ITS ويتم تضمينها في التسليم القياسي.

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

الشكل 5

يحتوي نموذج المعالجة على:

  1. حقل اختيار التاريخ الذي سيشير إلى الوقت المناسب لهذا السعر ؛
  2. مجال اختيار الطرف المقابل الذي أرسل قائمة الأسعار الخاصة به ؛
  3. زر يسمح لك بتحديد نوع الأسعار التي سيتم تعيينها ؛
  4. قسم جدولي يمكن ملؤه بالبيانات التي تم تحميلها.

يمكن رؤية هذا النموذج في الشكل 6

الشكل 6

توضح وسيلة الإيضاح الموجودة أعلى النموذج كيفية استخدام علامة التبويب الأولى في النموذج.

بعد اختيار الطرف المقابل (اعتمادًا على ما إذا كان يعمل كمورد أو وكيل عمولة أو بائع) ، ستتوفر أعمدة إضافية لكل نوع سعر في الجدول.

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

الشكل 7

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

الشكل 8

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

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

في حقل النص ، يمكنك إدخال تعليق يتم تسجيله في المستند (الشكل 9):

الشكل 9

بعد المعالجة:

  • سيتم إنشاء عنصر مطابق في دليل "تسمية الموردين" (إذا لم يكن موجودًا) ؛
  • سيتم مطابقته مع عنصر من كتاب مرجعي "التسمية" ؛
  • سيتم إنشاء مستند "تعيين أسعار الأصناف" وترحيله ، للإشارة إلى: المورد ونوع السعر وتاريخ تثبيت البيانات.

تعمل معالجة "تحميل البضائع من الملفات الخارجية" بطريقة مماثلة.

خيارات معالجة النقل DIY

تكمن المشكلة الرئيسية في استخراج البيانات من ملف Excel في أن 1C لا يحتوي على آلية مضمنة لا لبس فيها لفتحه. هناك عدة خيارات اتصالات Excelإلى 1 درجة مئوية:

  • من خلال Microsoft ADODB - طريقة سريعة إلى حد ما ، والتي ، كقاعدة عامة ، قابلة للتطبيق على خيارات تخزين قاعدة بيانات خادم العميل والملفات ؛
  • خلال استخدام مايكروسوفتالمكتب - طريقة تفشل أحيانًا عند العمل مع قواعد بيانات SQL ، كقاعدة عامة ، تعمل بشكل أبطأ إلى حد ما من الطريقة الأولى ، كما أن Office مطلوب أيضًا ؛
  • من خلال Libre Office - على عكس الطريقة السابقة ، فهو مجاني ، بالإضافة إلى تنسيقات xls و xlsx ، كما أنه يدعم الجداول الخاصة به ، ولكنه يتطلب تثبيتًا حزمة LibreOfficeوبعض التحضير للملف الذي تم تحميله (يجب أن يحتوي الصف الأول من الجدول على أسماء الأعمدة).

دعونا نلقي نظرة فاحصة طرق مختلفةوالخيارات.

عبر ADODB.Connection

بشكل عام ، يرمز ADO إلى كائن بيانات ActiveX ويعمل على الوصول إلى البرنامجلقواعد البيانات المختلفة. أكبر مشكلة عند إنشاء أي اتصال بملف جهة خارجية (بما في ذلك Excel) هي إنشاء سلسلة الاتصال بشكل صحيح.

توجد ثلاثة خيارات لملفات Excel:

خيارات سلسلة الاتصال:

  • المزود - يتم تحديد السائق المستخدم هنا ؛
  • مصدر البيانات - يحدد اسم الملف الذي سنفتحه ؛
  • الخصائص الممتدة - هنا يمكنك تحديد ما إذا كانت هناك حاجة إلى سطر العنوان للجدول (HDR = YES تشير إلى أنه سيتم قراءة البيانات من السطر الأول ، HDR = NO - من السطر الثاني) ، ما إذا كان الملف مفتوحًا للقراءة فقط ( ReadOnly) وبعض الخيارات الإضافية الأخرى.

بعد إنشاء سلسلة اتصال ، يمكننا الاتصال بالملف الذي تم تنزيله (الشكل 13)

الشكل 13

الآن يمكننا استخدام ملفات طلب بسيط(الشكل 14) ابدأ في جلب المعلومات من الملف الذي تم تنزيله.

في هذه القضيةتحدد معلمة "الورقة" أي ورقة من مصنف Excel يتعين علينا العمل معها.

يمكن قراءة مجموعة السجلات المخزنة على ورقة باستخدام كائن Recordset. في هذه الحالة ، يمكن الحصول على السجل الأول للورقة بواسطة معلمة BOF (بداية الملف) وآخر ملف EOF (نهاية الملف).

عبر تطبيق Excel

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

يحتوي كائن COM هذا على العديد من المعلمات الفرعية ، ولكن المعلمة الرئيسية بالنسبة لنا ، في ظل الظروف الحالية للمهمة ، هي معلمة Workbooks (الشكل 17).

بعد تهيئة الكتاب ، من الضروري تحديد الورقة التي سيتم قراءة البيانات منها (الشكل 18).

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

بضع كلمات عن الأخطاء المحتملة

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

في حالة العمل من خلال ADO (الشكل 19) ؛

الشكل 19

  • في حالة العمل مع التطبيق (الشكل 20).

أرز. عشرين.

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

في 1C ، هناك طريقتان للعمل مع ملفات MS Excel ، من خلال كائن COM وأدوات مدمجة 1C باستخدام كائن مستند جدول بيانات. دعونا نفحص كلتا الطريقتين بمزيد من التفصيل.

1. العمل من خلال كائن COM.

تتطلب هذه الطريقة تثبيت MS Excel ، وإذا كنت تعمل مع ملف على الخادم ، فيجب تثبيت MS Excel على الخادم ، إذا كان على العميل ، فإن MS Excel مطلوب أيضًا من جانب العميل.

مثال (في نهاية المقال يمكن مشاهدته في شكل نصي):

وتجدر الإشارة إلى أن جميع الكائنات والأساليب والخصائص التي يوفرها كائن COM "Excel.Application" هي كائنات وأساليب وخصائص لـ VBA ، لغة برمجة MS Office.

ملحوظة:

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

2. العمل من خلال وثيقة جدول 1C.

يدعم مستند جدول البيانات 1C تنسيق MS Excel للتسجيل بدءًا من النظام الأساسي 8 ، ولكن للفتح بدءًا من النظام الأساسي 8.3.6 فقط. علاوة على ذلك ، عند الفتح ، يتم تحميل جميع الأوراق في مستند جدول بيانات واحد. بدءًا من الإصدار 8.3.10 ، عند التحميل ، يتم تحميل الأوراق المختلفة كمناطق مختلفة.

مثال التسجيل بسيط للغاية ولا يتطلب الكثير من الاهتمام:

ومع ذلك ، هنا لدينا مشكلة. عند التسجيل من 1C في مصنف Excel ، يتم تعطيل عرض أسماء الأوراق افتراضيًا.

يمكن حل هذه المشكلة بطريقتين ، 1 - تمكين عرض الأوراق في الكتاب نفسه في الإعدادات (لن يوافق جميع المستخدمين على القيام بذلك) ، 2 - قم بذلك من خلال كائن COM (نحتاج مرة أخرى إلى تثبيت MS Excel) .

بعد هذه الإضافة الصغيرة ، ستكون ملصقات الأوراق مرئية في ملف MS Excel.

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

& AtClient

إجراء CreateDocument ()

استثناء

نهاية المحاولة

الكتاب = Excel.WorkBooks.Add () ، // إنشاء مصنف MS Excel جديد

الورقة = Book.WorkSheets.Add () ، // أضف ورقة

Sheet.Name = "مثال من 1C" ؛ // تعيين اسم الورقة

Sheet.Cells (1،1) .Value = "(! LANG: لنقم بإنشاء صيغة";!}

خلايا الورقة (2،1) ، القيمة = 1 ،

خلايا الورقة (2،2) ، القيمة = 2 ،

Sheet.Cells (2،3) .Formula = "= A2 + B2" ؛

Sheet.Cells (3،1) .Value = CurrentDate () ؛

Book.SaveAs ("C: \ 1 \ Test.xlsx") ؛

Book.Close () ؛

EndProcedure

& على الخادم

دالة GetLayoutServer ()

إرجاع FormAttributeToValue ("كائن"). // هذه هي الطريقة التي نحصل بها على تخطيط المعالجة الخارجية ؛

وظائف النهاية

& AtClient

عمل الإجراء ()

Excel = COMObject جديد ("Excel.Application") ؛

استثناء

إظهار ("محاولة غير ناجحة للاتصال بمكون Excel. ربما لم يتم تثبيت Excel على هذا الحاسوب!");

نهاية المحاولة

التخطيط = GetLayoutServer () ،

Layout.Write (TemporaryFileName) ؛

هل لديك سؤال هل تحتاج الى مساعدة استشاري؟

Book = Excel.WorkBooks.Open (TempFileName) ؛

SheetTemplate = Book.WorkSheets (1) ،

SheetTemplate.Cells (6،1) .Value = "(! LANG: التاريخ:";!}

SheetTemplate.Cells (6،2) .Value = CurrentDate () ،

SheetTemplate.NumberFormat = "dd / mm / yy؛ @"؛ // لنقدم تنسيق التاريخ ، يتم الحصول على هذا التنسيق عن طريق تسجيل ماكرو في MS Excel

SheetTemplate.Columns ("B: B"). EntireColumn.AutoFit؛ // قم بتمديد العمود ليلائم التاريخ تمامًا

Book.SaveAs (FileName) ؛

Book.Close () ؛

EndProcedure

& AtClient

EndProcedure

& AtClient

إجراء كتابة جدول بيانات مستند ()

SpreadsheetDocument = New SpreadsheetDocument () ،

SpreadsheetDocument.Area ("R1C1"). Text = "مثال على إدخال في MS Excel من 1C"؛

SpreadDocument.Write ("C: \ 1 \ Test2.xls" ، SpreadDocumentFileType.XLSX) ؛

Excel = COMObject جديد ("Excel.Application") ؛

Excel.WorkBooks.Open ("C: \ 1 \ Test2.xls") ؛

Excel.Visible = 0 ؛

Excel.ActiveWindow.DisplayWorkbookTabs = 1 ،

Excel.ActiveWindow.TabRatio = 0.6 ،

Excel.ActiveWorkbook.Save () ،

Excel.Application.Quit ()

EndProcedure

BinaryData = New BinaryData ("C: \ 1 \ test2.xlsx") ؛

العنوان = PutToTempStorage (BinaryData، ThisForm.UniqueIdentifier) ​​؛

SpreadsheetDocument = DownloadOnServer (العنوان) ،

SpreadsheetDocument.Show () ،

EndProcedure

& على الخادم

وظيفة LoadOnServer (العنوان)

TempFileName = GetTporaryFileName ("xlsx") ،

FileData = GetFromTempStorage (العنوان) ،

FileData.Write (TemporaryFileName) ؛

SpreadsheetDocument = New SpreadsheetDocument () ،

إرجاع SpreadsheetDocument ؛

مقدمة.

يعرف الكثير من الناس أن برنامج Excel أقدم بكثير من 1C. في رأيي ، هذا منتج ناجح للغاية ، ولم أسمع أي شكوى بشأنه. برنامج Excel بسيط ومتعدد الاستخدامات. إنه قادر على إجراء ليس فقط العمليات الحسابية البسيطة ، ولكن أيضًا العمليات الحسابية المعقدة والرسوم البيانية وما إلى ذلك. أعرف أمثلة عندما احتفظت المؤسسات ، قبل التبديل إلى 1C ، بجزء من المحاسبة في Excel. كثير والآن في موازاة استخدام برنامجين. في هذه المقالة ، سننظر في طرق تبادل البيانات بين 1C و Excel.

الجداول 1C و Excel.

للراحة ، يقوم العديد من المستخدمين بحفظ جداول 1C (نماذج قابلة للطباعة) بتنسيق Excel (* .xls). بعد ذلك ، يتم إجراء مجموعات وعمليات فرز وحسابات مختلفة وما إلى ذلك في الملف الناتج. هذا يرجع إلى حقيقة أنه في جداول 1C لا توجد وظائف ضخمة كما هو الحال في جداول Excel. ولكن في الإصدار 1C 8.0 ، توجد ابتكارات تجعل العمل مع الجداول أكثر راحة.

يحتوي موقع 1C (http://www.1c.ru/) على برنامج مفيد يسمح لك بفتح جداول 1C في Excel وحفظ ورقة Excel كجدول 1C. يكون هذا مفيدًا إذا لم يتم حفظ الجدول 1C بتنسيق Excel ، ولم يتم تثبيت 1C على الكمبيوتر حيث تحتاج إلى فتح هذا الجدول. نعم ، وتذكر باستمرار أنك بحاجة إلى حفظ جدول 1C بتنسيق Excel ، فلن تكون هناك حاجة لذلك.

يمكن العثور على معلومات كاملة عن البرنامج هنا.
يمكنك تنزيل البرنامج من هنا (أرشيف مضغوط 682739 بايت).

تعليق:في Excel ، الفاصل العشري هو "،". لذلك ، قبل حفظ جدول 1C بتنسيق Excel ، استبدل فاصلًا آخر فيه (على سبيل المثال ، ".") بـ "،". وإلا فلن يتمكن Excel من إجراء العمليات الحسابية بهذه الأرقام ، أو لن يتم عرضها كأرقام على الإطلاق. على سبيل المثال ، في الجدول 1C سيتم عرض "15.2" في Excel كـ "15 فبراير".

الحصول على البيانات من Excel.

يتم الوصول من 1C إلى Excel من خلال OLE. على سبيل المثال ، الكود
محاولة
استثناء
تقرير (ErrorDescription () +
);
يعود؛
نهاية المحاولة
سيسمح لنا بالوصول من خلال متغير "Excel" إلى تشغيل التطبيقاكسل. وبعد ذلك يمكنك بالفعل الوصول إلى الكتاب (ملف) والورقة والخلية بالبيانات. فيما يلي أمثلة التعليمات البرمجية.

فتح كتاب (ملف):
كتاب = إكسل. المصنفات. فتح (PathToFile) ؛
PathToFile هو المسار الكامل لملف مصنف Excel.

اختيار ورقة كتاب للعمل معها:
أو
ورقة = كتاب. أوراق العمل (اسم الورقة) ؛
SheetNumber هو رقم الورقة في الكتاب ، SheetName هو اسم الورقة في الكتاب.

الحصول على قيمة خلية ورقة:
القيمة = الورقة. الخلايا (رقم الخط ، رقم العمود). القيمة؛

مهم:لا تنس إضافة كود Excel إلى الحقل للقيام بالإجراءات اللازمة. يترك()؛ ، وإلا ستظل عملية التشغيل غير مكتملة وستستهلك ذاكرة ومعالج الكمبيوتر.

إخراج البيانات إلى Excel.

لإخراج (تحميل) البيانات إلى Excel ، يجب عليك إما فتح مصنف موجود أو إنشاء مصنف جديد وتحديد ورقة عمل لإخراج البيانات. تم وصف فتح كتاب موجود أعلاه ، ولكن لإنشاء كتاب جديد ، تحتاج إلى استخدام الكود التالي:
محاولة
Excel = CreateObject ("Excel.Application") ؛
استثناء
تقرير (ErrorDescription () +
"Excel غير مثبت على هذا الكمبيوتر!");
يعود؛
نهاية المحاولة
كتاب = إكسل. المصنفات. يضيف()؛

نظرًا لأنه عند إنشاء كتاب في Excel ، يتم إنشاء الأوراق تلقائيًا (أدوات-> خيارات-> عام-> أوراق في كتاب جديد) ، ما عليك سوى تحديد الورقة للعمل معها:
ورقة = كتاب. أوراق العمل (SheetNumber) ؛
أو أضف ورقة جديدة إلى الكتاب ، إذا لزم الأمر:
ورقة = كتاب. أوراق. يضيف()؛
الخطوة التالية هي تعيين قيمة الخلية:
ملزمة. الخلايا (رقم الخط ، رقم العمود). القيمة = القيمة ؛
RowNumber و ColumnNumber - رقم الصف ورقم العمود عند التقاطع الذي توجد به الخلية.
وفي النهاية تحتاج إلى تسجيل الكتاب الذي تم إنشاؤه:
محاولة
الكتاب . SaveAs (PathToFile) ،
استثناء
إعلام (وصف الخطأ ()
+ "لم يتم حفظ الملف!");
يعود؛
نهاية المحاولة
PathToFile - المسار الكامل لملف مصنف Excel (بما في ذلك الاسم).
مهم:تذكر أن أسماء الملفات يجب ألا تحتوي على \ /: *؟ ">< |.

الأساليب شائعة الاستخدام لقراءة / تعيين القيم في Excel.

Excel = CreateObject ("Excel.Application") ؛ الوصول إلى تطبيق Excel.
اكسل. مرئي = رؤية ؛ 0 - Excel غير مرئي ، 1 - مرئي.
كتاب = إكسل. المصنفات. يضيف()؛ إنشاء مصنف جديد (ملف) إكسل.
الكتاب . SaveAs (اسم الملف) ؛ حفظ مصنف Excel.
ورقة = كتاب. أوراق عمل. يضيف()؛ إضافة ورقة جديدة للكتاب.
كتاب = إكسل. المصنفات. فتح (اسم الملف) ؛ فتح مصنف موجود (ملف) Excel.
ورقة = كتاب. أوراق العمل (SheetNumber) ؛ إعداد ورقة كصفحة عمل بها numberSheetNumber.
ملزمة. الاسم = اسم الورقة ؛ تسمية ورقة عمل
ملزمة. اعداد الصفحة . تكبير = مقياس ؛ يحدد خيار Scale page (من 10 إلى 400).
ملزمة. اعداد الصفحة . الاتجاه = الاتجاه ؛ الاتجاه: 1 - عمودي ، 2 - أفقي.
ملزمة. اعداد الصفحة . LeftMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر) ؛ يضبط الحد الأيسر (بالسنتيمتر).
ملزمة. اعداد الصفحة . TopMargin = إكسل. السنتيمتر إلى النقاط (السنتيمتر) ؛ تعيّن الحد الأعلى (بالسنتيمتر).
ملزمة. اعداد الصفحة . RightMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر) ؛ يحدد الحد الأيمن (بالسنتيمتر).
ملزمة. اعداد الصفحة . BottomMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر) ؛ يضبط الحد الأدنى (بالسنتيمتر).
ملزمة. الأعمدة (ColumnNumber). عرض العمود = العرض ؛ تعيين عرض العمود.
ملزمة. الخلايا (رقم الخط ، رقم العمود). القيمة = القيمة ؛ إدخال البيانات في خلية.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الخط. الاسم = اسم الخط ؛ ضبط الخط في خلية.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الخط. الحجم = حجم الخط ؛ عيّن حجم الخط في خلية.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الخط. جريئة = جريئة ؛ 1 - خط عريض، 0 - عادي.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الخط. مائل = مائل ؛ 1 - خط مائل ، 0 - عادي.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الخط. تسطير = مسطر ؛ 2 - مسطر 1 - لا.
ملزمة. الخلايا (رقم الخط ، رقم العمود). NumberFormat = تنسيق ؛ قم بتعيين تنسيق بيانات الخلية.
ملزمة. الخلايا (رقم الخط ، رقم العمود). الحدود. Linestyle = LineType ؛ تعيين حدود الخلية. 1 - صلب رقيق.

هذه الطريقة بسيطة. جوهرها هو أن الكائن SpreadsheetDocumentله طرق:

  • حرق (< ИмяФайла>, < ТипФайлаТаблицы >) لتحميل البيانات إلى ملف ؛
  • اقرأ (< ИмяФайла>, < СпособЧтенияЗначений >) لتحميل البيانات من ملف.

انتباه!

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

ضع في اعتبارك مثالاً لحفظ مستند جدول بيانات إلى ملف. من الضروري إنشاء كائن TableDocument وتعبئته بأي شكل من الأشكال ، و التفريغيتم تنفيذ الملف بسطر واحد فقط:

TabDoc . اكتب (FilePath، SpreadsheetDocumentFileType.XLSX);

هنا TabDoc- جدول بيانات تم إنشاؤه ، مسار الملف- اسم الملف المراد تحميله ، SpreadsheetDocumentFileType.XLSX- تنسيق الملف الذي تم إنشاؤه. يتم دعم تنسيقات Excel التالية:

  • XLS95 - تنسيق Excel 95 ؛
  • XLS97 - تنسيق Excel 97 ؛
  • XLSX هو تنسيق Excel 2007.

TabDoc = جدول بيانات جديد ؛
TabDoc . اقرأ (PathToFile ، WayToReadSpreadsheetDocumentValues.Value);

هنا مسار الملف- المسار إلى ملف Excel الذي تم تنزيله. WayToReadValuesSpreadDocument.Valueيحدد كيفية تفسير البيانات المقروءة من المستند المصدر. خيارات متاحه:

  • المعنى؛
  • نص.

الصرف عبر OLE

ربما يكون التبادل من خلال تقنية أتمتة OLE هو الطريقة الأكثر شيوعًا للعمل معها برمجيًا ملفات Excel. يسمح لك باستخدام جميع الوظائف التي يوفرها Excel ، ولكنه أبطأ من الطرق الأخرى. يتطلب التبادل عبر OLE تثبيت MS Excel:

  • على كمبيوتر المستخدم النهائي ، إذا حدث التبادل من جانب العميل ؛
  • على 1C: كمبيوتر خادم المؤسسة ، إذا حدث التبادل على جانب الخادم.

مثال التفريغ:

// إنشاء كائن COM
Excel = COMObject جديد ("Excel.Application") ؛
// تعطيل التحذيرات والأسئلة
اكسل . displayalerts = false ؛
// إنشاء كتاب جديد
الكتاب = إكسل. المصنفات. يضيف()؛
// الوضع على الورقة الأولى
ملزمة = كتاب. أوراق عمل (1)؛

// اكتب قيمة إلى الخلية
ملزمة . الخلايا (RowNumber ، ColumnNumber). القيمة = CellValue ؛

// حفظ الملف
الكتاب . SaveAs (اسم الملف) ؛


اكسل . يترك()؛
Excel = 0 ؛

أمثلة قراءة:

// -- الخيار 1 --

// إنشاء كائن COM
Excel = COMObject جديد ("Excel.Application") ؛
// كتاب مفتوح
الكتاب = إكسل. المصنفات. فتح( مسار الملف) ؛

ملزمة = كتاب. أوراق عمل (1)؛

// اغلق الكتاب
الكتاب . إغلاق (0) ؛

// أغلق Excel وحرر الذاكرة
اكسل . يترك()؛
Excel = 0 ؛

// -- الخيار 2 --

// كتاب مفتوح
الكتاب = GetCOMObject ( مسار الملف) ؛
// الوضع على الورقة المطلوبة
ملزمة = كتاب. أوراق عمل (1)؛

// اقرأ قيمة الخلية ، وعادة ما يكون هذا هو المكان الذي توجد فيه حلقة تجاوز الخلية
CellValue = ورقة. الخلايا (RowNumber ، ColumnNumber). القيمة؛

// اغلق الكتاب
الكتاب . طلب. Quiر () ؛

إلى عن على تجاوزجميع الصفوف المملوءة في ورقة Excel ، يمكنك استخدام الحيل التالية:

// -- الخيار 1 --
عدد الصفوف = ورقة. الخلايا (1 ، 1). الخلايا الخاصة (11). صف؛
بالنسبة إلى RowNumber = 1 بواسطة عدد الصفوف في التكرار
CellValue = ورقة. الخلايا (RowNumber ، ColumnNumber). القيمة;
نهاية الدورة

// -- الخيار 2 --
رقم الخط = 0 ؛
بينما صحيح الحلقة
LineNumber = رقم الخط + 1 ،
CellValue = ورقة. الخلايا (RowNumber ، ColumnNumber). القيمة؛
إذا لم يتم توفير القيمة (CellValue) ثم
إجهاض
إنهاء إذا؛
نهاية الدورة

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

TotalColumns = ورقة. الخلايا (1 ، 1). الخلايا الخاصة (11). عمودي؛
إجمالي الصفوف = ورقة. الخلايا (1 ، 1). الخلايا الخاصة (11). صف؛

منطقة = ورقة. النطاق (ورقة. خلايا (1 ، 1) ، قائمة. خلايا (TotalRows ، TotalColumns)) ؛
بيانات = المساحة. القيمة. تفريغ();

يسرد الجدول أدناه الخصائص والأساليب الأكثر طلبًا للعمل مع Excel عبر OLE:

عمل الرمز تعليق
العمل مع التطبيق
ضبط رؤية نافذة التطبيق اكسل . مرئي= خطأ ؛
ضبط وضع عرض التحذير (عرض / عدم عرض) اكسل . عرض التنبيهات= خطأ ؛
إغلاق التطبيق اكسل . يترك()؛
العمل مع كتاب
أنشئ كتابًا جديدًا الكتاب = إكسل. المصنفات. يضيف();
فتح مصنف موجود الكتاب = إكسل. المصنفات. افتح (FileName);
حفظ كتاب الكتاب . SaveAs (اسم الملف);
إغلاق الكتاب الكتاب . إغلاق (0) ؛
العمل مع ورقة
ضبط الورقة الحالية ملزمة = كتاب. أوراق العمل (SheetNumber);
تحديد الاسم ملزمة . الاسم = الاسم;
وضع الحماية ملزمة . يحمي();
إزالة الحماية ملزمة . أزل الحماية();
ضبط اتجاه الصفحة ملزمة . اعداد الصفحة. الاتجاه = 2; 1 - عمودي ، 2 - أفقي
ضبط الحد الأيسر ملزمة . اعداد الصفحة. LeftMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر);
تحديد الحد الأعلى ملزمة . اعداد الصفحة. TopMargin = إكسل. السنتيمتر إلى النقاط (السنتيمتر);
تحديد الحد الصحيح ملزمة . اعداد الصفحة. RightMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر);
تحديد الحد الأدنى ملزمة . اعداد الصفحة. BottomMargin = Excel. السنتيمتر إلى النقاط (السنتيمتر);
العمل مع الصفوف والأعمدة والخلايا
ضبط عرض العمود ملزمة . الأعمدة (ColumnNumber). عرض العمود = العرض;
إزالة خط ملزمة . صفوف (RowNumber). حذف();
حذف عمود ملزمة . الأعمدة (ColumnNumber). حذف()؛
حذف خلية ملزمة . الخلايا (RowNumber ، ColumnNumber). حذف();
تحديد القيمة ملزمة . الخلايا (RowNumber ، ColumnNumber). القيمة = القيمة;
دمج الخلايا ملزمة . النطاق (عدد الخلايا ، رقم العمود ، رقم العمود) ، خلايا (RowNumber1 ، ColumnNumber1)). دمج();
تثبيت الخط ملزمة . الخلايا (RowNumber ، ColumnNumber). الخط. الاسم = اسم الخط;
تحديد حجم الخط ملزمة . الخلايا (RowNumber ، ColumnNumber). الخط. الحجم = حجم الخط;
إعداد الخط الجريء ملزمة . الخلايا (RowNumber ، ColumnNumber). الخط. عريض = 1 ; 1 - جريء ، 0 - عادي
وضع مائل ملزمة . الخلايا (RowNumber ، ColumnNumber). الخط. مائل = 1 ; 1 - مائل ، 0 - عادي
تعيين خط تحته خط ملزمة . الخلايا (RowNumber ، ColumnNumber). الخط. تسطير = 2 ; 2 - خط تحته 1 - لا

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

باستخدام COMSafeArray

عند تفريغ كميات كبيرة من البيانات من 1C إلى Excel ، يمكنك استخدام الكائن للإسراع COMSafeArray. كما هو محدد بواسطة مساعد بناء الجملة ، فإن COMSafeArray عبارة عن غلاف كائن فوق صفيف متعدد الأبعاد SafeArrayمن COM. يسمح لك بإنشاء SafeArray واستخدامه لتبادل البيانات بين كائنات COM. ببساطة ، هذه مجموعة من القيم التي يمكن استخدامها للتبادل بين التطبيقات باستخدام تقنية OLE.

// إنشاء COMSafeArray
ArrayCom = COMSafeArray جديد ("VT_Variant" ، TotalColumns ، TotalRows);
// تعبئة COMSafeArray
إلى عن على Str = 0 إجمالي الصفوف - حلقة واحدة
إلى عن على العدد = 0 إجمالي الأعمدة - دورة واحدة
ArrayCom . SetValue (رقم ، شارع ، قيمة);
نهاية الدورة
نهاية الدورة
// تعيين قيم منطقة ورقة Excel من COMSafeArray
ملزمة . النطاق (ورقة. خلايا (1 ، 1) ، قائمة. خلايا (TotalRows ، TotalColumns)). القيمة = ArrayCom;

الصرف عبر ADO

يعد ملف Excel ، عند تبادله من خلال ADO ، قاعدة بيانات يمكن الوصول إليها باستخدام استعلامات SQL. لا يلزم تثبيت MS Excel ، ولكن يلزم وجود برنامج تشغيل ODBC ، سيتم من خلاله تنفيذ الوصول. يتم تحديد برنامج تشغيل ODBC المستخدم عن طريق تحديد سلسلة الاتصال بالملف. عادةً ما يكون برنامج التشغيل المطلوب مثبتًا بالفعل على الكمبيوتر.

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

مثال التفريغ:


الاتصال = COMObject جديد ("ADODB.Connection") ؛


مُجَمَّع . ConnectionString = "

| مصدر البيانات = " + اسم الملف + "؛
;
مُجَمَّع . افتح()؛ // فتح الاتصال

// قم بإنشاء كائن COM للأمر
الأمر = COMObject جديد ("ADODB.Command") ؛
فريق

// تعيين نص الأمر لإنشاء جدول
فريق . نص الأمر = "CREATE TABLE [Sheet1] (Column1 char (255)، Column2 date، Column3 int، Column4 float)";
فريق . نفذ - اعدم()؛ // تنفيذ الأمر

// تعيين نص الأمر لإضافة صف جدول
فريق . نص الأمر = "INSERT INTO [Sheet1] (Column1، Column2، Column3، Column4) القيم ('abvgdeo'، '8/11/2017'، '12345'، '12345،6789')";
Command.Execute () ؛ // تنفيذ الأمر

// حذف الأمر وإغلاق الاتصال
الأمر = غير محدد ؛
مُجَمَّع . أغلق();
اتصال = غير محدد;

لإنشاء ورقة جديدة وتشكيل هيكلها ، يمكنك استخدام الكائنات كتالوج ADOXو ADOX.Table. في هذه الحالة ، سيبدو الرمز بالشكل التالي:

// إنشاء كائن COM للعمل مع الكتاب
الكتاب = COMObject جديد ("ADOX.Catalog") ؛
الكتاب . ActiveConnection = اتصال ؛

// قم بإنشاء كائن COM للعمل مع بنية البيانات على الورقة
Table = New COMObject ("ADOX.Table") ؛
الطاولة . الاسم = "ورقة 1" ؛
الطاولة . الأعمدة. إلحاق ("Column1"، 202) ؛
الطاولة . الأعمدة. إلحاق ("Column2"، 7) ؛
الطاولة . الأعمدة. إلحاق ("Column3"، 5) ؛
الطاولة . الأعمدة. إلحاق ("العمود 4" ، 5) ؛

// قم بإنشاء ورقة في الكتاب بالهيكل الموصوف
الكتاب . الجداول. إلحاق (جدول) ؛
الجدول = غير محدد ؛
كتاب = غير محدد ؛

في المثال أعلاه ، في الطريقة

الطاولة . الأعمدة. ألحق("العمود 1" ، 202) ؛

تحدد المعلمة الثانية نوع العمود. المعلمة اختيارية ، فيما يلي بعض قيم نوع العمود:

  • 5 - مزدوج ؛
  • 6 - العملة الإعلانية ؛
  • 7 - تاريخ ؛
  • 11 - منطقية ؛
  • 202 - adVarWChar ؛
  • 203-adLongVarWChar.

مثال قراءة:

// إنشاء كائن COM للاتصال
الاتصال = COMObject جديد ("ADODB.Connection") ؛

// تعيين سلسلة الاتصال
مُجَمَّع . ConnectionString = "
| الموفر = Microsoft.ACE.OLEDB.12.0 ،
| مصدر البيانات = " + اسم الملف + "؛
| الخصائص الممتدة = "" Excel 12.0 XML ؛ HDR = نعم "" ؛ ";
مُجَمَّع . افتح()؛ // فتح الاتصال

// إنشاء كائن COM لتلقي التحديد
التحديد = COMObject جديد ("ADODB.Recordset") ؛
RequestText = "تحديد * من [Sheet1 $]";

// تنفيذ الطلب
عينة . فتح (نص الاستعلام ، اتصال) ؛

// تجاوز نتيجة التحديد
بينما لا يتم أخذ العينات. EOF () حلقة
ColumnValue1 = التحديد. مجالات. العنصر ("Column1"). القيمة ; // الرجوع باسم العمود
قيمة العمود 2 = التحديد. مجالات. المادة (0). القيمة؛ // استرجاع بفهرس العمود
عينة . MoveNext () ،
نهاية الدورة

عينة . أغلق()؛
عينة = غير محدد ؛
مُجَمَّع . أغلق()؛
اتصال = غير محدد ؛

في سلسلة الاتصال ، المعلمة HDRيحدد كيف سيتم إدراك السطر الأول على الورقة. الخيارات الممكنة:

  • نعم - يُنظر إلى السطر الأول على أنه أسماء الأعمدة. يمكن الوصول إلى القيم بالاسم وفهرس العمود.
  • NO - يتم أخذ السطر الأول كبيانات. لا يمكن الوصول إلى القيم إلا عن طريق فهرس العمود.

في الأمثلة المقدمة ، يتم النظر فقط في عدد قليل من كائنات ADO. يتكون نموذج كائن ADO من الكائنات التالية:

  • الإتصال؛
  • يأمر؛
  • مجموعة السجلات.
  • سجل؛
  • مجالات؛
  • مجرى؛
  • أخطاء.
  • المعلمات؛
  • الخصائص.

تحميل بدون برمجة

لحفظ البيانات من 1C إلى Excel ، لا يُنصح دائمًا باللجوء إلى البرمجة. إذا كان المستخدم في وضع Enterprise يمكنه عرض البيانات المطلوبة للتحميل ، فمن الممكن حفظها في Excel بدون برمجة.

لحفظ مستند جدول بيانات (على سبيل المثال ، نتيجة تقرير) ، يمكنك استدعاء الأمر يحفظأو حفظ باسم ...القائمة الرئيسية.

في النافذة التي تفتح ، تحتاج إلى تحديد الدليل واسم وتنسيق الملف المحفوظ.

لحفظ البيانات قوائم ديناميكية(على سبيل المثال ، قائمة العناصر) يجب عليك:

  1. إخراج البيانات إلى جدول بيانات باستخدام الأمر المزيد ⇒ إظهار القائمة ...;
  2. احفظ مستند جدول البيانات بالتنسيق المطلوب.