ما هو اسم برنامج Excel في 1C. أيهما أفضل - 1C أم إكسل؟ تحميل بدون برمجة

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

كيفية فتح مستندات Excel في 1C والعكس

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

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

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

    يمكن لمستخدمي 1C 7.7 الترقية إلى الإصدار 1C 8، الذي يحتوي على محرر جدول محسّن.

كيف يمكن أن يتفاعل 1C وExcel برمجياً

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

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

كيفية فتح ملف Excel في 1C برمجياً

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

  • استثناء

    تقرير (ErrorDescription() + "لم يتم تثبيت Excel على هذا الكمبيوتر!");

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

تم تثبيت الوصول إلى محرر الجدول، والآن باستخدام الأوامر التالية التي تحتاجها للوصول إلى:

    وثيقة محددة:

    • كتاب = Excel.WorkBooks.Open(FilePath)

    • ورقة = Book.WorkSheets(SheetNumber);

  • بما في ذلك مع رقم ورقة محددة:

    بما في ذلك اسم ورقة محددة:

    • ورقة = Book.WorkSheets(SheetName);

    • القيمة = Sheet.Cells(RowNumber, ColumnNumber).Value;

لقراءة البيانات من الصفحة الأولى من الملف، استخدم القوائم التالية:

    Excel = CreateObject("Excel.Application");

    Book = Excel.WorkBooks.Open(FilePath);

    ورقة = Book.WorkSheets(1);

    TotalColumns = Sheet.Cells(1,1).SpecialCells(11).Column;

    TotalRows = Sheet.Cells(1,1).SpecialCells(11).Row;

    للصف = 1 بواسطة حلقة TotalRows

    • للعمود = 1 بواسطة دورة TotalColumns

      Value = Abbr(Sheet.Cells(Row,Column).Value);

      EndCycle;

    EndCycle;

تذكر أنه يجب تحديد المسار إلى الملف بالكامل. عند حفظ اسم مستند، لا يمكنك تضمين أحرف مثل \، /، :، *، ?، "، >،< и |.

كيفية فتح ملف 1C من خلال Excel برمجياً

لتسجيل البيانات في برنامج Excel يجب عليك:

    أو افتح مستندًا موجودًا:

    • Book = Excel.WorkBooks.Open(المسار إلى الملف) - عن طريق القياس مع قراءة ملف Excel من 1C؛

    أو إضافة واحدة جديدة:

    • Workbook = Excel.WorkBooks.Add();

    يمكنك إنشاء ورقة جديدة في مستند جديد:

    • ورقة = Book.Sheets.Add();

    وأضف قيمة جديدة إلى الخلية:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Value; (طرق كتابة القيم باستخدام OLE موصوفة بالتفصيل على الإنترنت).

  • Book.SaveAs(FilePath);

    استثناء

    تقرير(ErrorDescription()+"لم يتم حفظ الملف!");

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

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

المخاطر عند تبادل البيانات بين 1C وExcel

تم تطوير 1C وExcel بواسطة شركات مختلفة ويستخدمان طرقًا مختلفة للتعامل مع البيانات. لذلك، عند نقل الجداول من برنامج إلى آخر، تذكر المخاطر التالية:

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

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

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

في كثير من الأحيان، عند التواصل مع العملاء المحتملين، أسمع أن وظيفة الجدول من حزمة Office كافية بالنسبة لهم، ولا يرون النقطة في برامج 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" - فهي تكمل بعضها البعض.

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

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

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

انتباه!

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

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

TabDoc . Write(FilePath, TabularDocumentFileType.XLSX);

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

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

TabDoc = مستند جدولي جديد؛
TabDoc . قراءة (PathToFile، طريقة ReadingTabularDocumentValues.Value);

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

  • معنى؛
  • نص.

التبادل عبر OLE

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

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

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

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

// اكتب قيمة في الخلية
ملزمة . الخلايا (رقم الصف، رقم العمود). القيمة = قيمة الخلية؛

// حفظ الملف
كتاب . SaveAs(FileName);


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

أمثلة قراءة:

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

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

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

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

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

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

// افتح كتابًا
كتاب = جيتكوموبجيكت ( المسار إلى الملف );
// تحديد الموضع على الورقة المطلوبة
ملزمة = كتاب. أوراق العمل (1)؛

// اقرأ قيمة الخلية، وعادةً ما توجد حلقة اجتياز الخلية هنا
قيمة الخلية = ورقة. الخلايا (رقم الصف، رقم العمود). قيمة؛

// إغلاق الكتاب
كتاب . طلب. كوير ()؛

ل تجاوزبالنسبة لجميع الصفوف المكتملة في ورقة عمل Excel، يمكنك استخدام الأساليب التالية:

// -- الخيار 1 --
عدد الصفوف = الورقة. الخلايا(1، 1). خلايا خاصة(11). صف؛
بالنسبة لرقم الصف = 1 حسب عدد دورات الصفوف
قيمة الخلية = ورقة. الخلايا (رقم الصف، رقم العمود). قيمة;
EndCycle;

// -- الخيار 2 --
رقم الصف = 0 ;
بينما دورة الحقيقة
رقم الصف = رقم الصف + 1 ;
قيمة الخلية = ورقة. الخلايا (رقم الصف، رقم العمود). قيمة؛
إذا لم تكن القيمة ممتلئة (CellValue) ثم
إحباط؛
إنهاء إذا؛
EndCycle;

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

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

منطقة = ورقة. Range(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
بيانات = المنطقة. قيمة. تفريغ();

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

فعل شفرة تعليق
العمل مع التطبيق
ضبط رؤية نافذة التطبيق اكسل . مرئي= خطأ؛
ضبط وضع إخراج التحذير (عرض/عدم عرض) اكسل . تنبيهات العرض= خطأ؛
إغلاق التطبيق اكسل . يترك()؛
العمل مع كتاب
إنشاء كتاب جديد كتاب = اكسل. المصنفات. يضيف();
فتح مصنف موجود كتاب = اكسل. المصنفات. فتح (اسم الملف);
حفظ كتاب كتاب . حفظ باسم (اسم الملف);
إغلاق الكتاب كتاب . إغلاق(0);
العمل مع ورقة
إعداد الورقة الحالية ملزمة = كتاب. أوراق العمل (رقم الورقة);
تحديد الاسم ملزمة . الاسم = الاسم;
إعداد الحماية ملزمة . يحمي();
إزالة الحماية ملزمة . غير حماية();
تحديد اتجاه الصفحة ملزمة . اعداد الصفحة. التوجه = 2; 1 - صورة، 2 - منظر طبيعي
تحديد الحد الأيسر ملزمة . اعداد الصفحة. الهامش الأيسر = Excel. CentimetersToPoints(Centimeters);
تحديد الحد الأعلى ملزمة . اعداد الصفحة. TopMargin = Excel. CentimetersToPoints(Centimeters);
تحديد الحدود الصحيحة ملزمة . اعداد الصفحة. الهامش الأيمن = Excel. CentimetersToPoints(Centimeters);
تحديد الحد الأدنى ملزمة . اعداد الصفحة. الهامش السفلي = Excel. CentimetersToPoints(Centimeters);
العمل مع الصفوف والأعمدة والخلايا
تحديد عرض العمود ملزمة . الأعمدة (رقم العمود). عرض العمود = العرض;
حذف سطر ملزمة . الصفوف (رقم الصف). يمسح();
إزالة عمود ملزمة . الأعمدة (رقم العمود). يمسح()؛
حذف خلية ملزمة . الخلايا (رقم الصف، رقم العمود). يمسح();
تحديد القيمة ملزمة . الخلايا (رقم الصف، رقم العمود). القيمة = القيمة;
دمج الخلايا ملزمة . النطاق (ورقة. خلايا (رقم الصف، رقم العمود)، ورقة. خلايا (رقم الصف 1، رقم العمود 1)). دمج();
تحديد الخط ملزمة . الخلايا (رقم الصف، رقم العمود). الخط. الاسم = اسم الخط;
ضبط حجم الخط ملزمة . الخلايا (رقم الصف، رقم العمود). الخط. الحجم = حجم الخط;
تحديد الخط الغامق ملزمة . الخلايا (رقم الصف، رقم العمود). الخط. عريض = 1 ; 1 - جريء، 0 - عادي
تحديد الخط المائل ملزمة . الخلايا (رقم الصف، رقم العمود). الخط. مائل = 1 ; 1 - مائل، 0 - عادي
ضبط الخط الذي تحته خط ملزمة . الخلايا (رقم الصف، رقم العمود). الخط. تسطير = 2 ; 2 - تحته خط، 1 - لا

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

باستخدام COMSafeArray

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

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

التبادل عبر ADO

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

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

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


Connection = New COMObject("ADODB.Connection");


مُجَمَّع . سلسلة الاتصال = "

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

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

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

// تعيين نص الأمر لإضافة صف الجدول
فريق . نص الأوامر = "أدخل في قيم [الورقة1] (العمود 1، العمود 2، العمود 3، العمود 4) ​​('abvwhere'، '11/8/2017'، '12345'، '12345,6789')";
Command.Execute(); // تنفيذ الأمر

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

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

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

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

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

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

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

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

  • 5 - أددوبل؛
  • 6 - العملة الإعلانية؛
  • 7 - تاريخ الإعلان؛
  • 11 - أدبوليان؛
  • 202 - أدفاروشار;
  • 203 - أدلونجفاروشار.

مثال قراءة:

// قم بإنشاء كائن COM للاتصال
Connection = New COMObject("ADODB.Connection");

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

// قم بإنشاء كائن COM لتلقي التحديد
Select = New COMObject("ADODB.Recordset");
طلب النص = "اختر * من [الورقة1$]";

// تنفيذ الطلب
عينة . Open(QueryText, Connection);

// تجاوز نتيجة العينة
ليس الاختيار بعد. حلقة EOF()
قيمة العمود 1 = التحديد. مجالات. العنصر ("العمود 1"). قيمة ; // الوصول عن طريق اسم العمود
Column2Value = التحديد. مجالات. العنصر(0). قيمة؛ // الوصول عن طريق فهرس العمود
عينة . MoveNext();
EndCycle;

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

في سلسلة الاتصال المعلمة تقرير التنمية البشريةيحدد كيفية رؤية السطر الأول على الورقة. الخيارات الممكنة:

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

تغطي هذه الأمثلة بعض كائنات ADO فقط. يتكون نموذج كائن ADO من الكائنات التالية:

  • اتصال؛
  • يأمر؛
  • مجموعة السجلات؛
  • سِجِلّ؛
  • مجالات؛
  • تدفق؛
  • أخطاء؛
  • حدود؛
  • ملكيات.

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

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

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

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

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

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

توجد في 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 إلى الخادم.

&OnClient

الإجراء إنشاء مستند ()

استثناء

this.EndAttempt;

Book = Excel.WorkBooks.Add(); // أنشئ مصنف MS Excel جديد

ورقة = Book.WorkSheets.Add(); // أضف ورقة

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

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

Sheet.Cells(2,1).Value = 1;

Sheet.Cells(2,2).Value = 2;

Sheet.Cells(2,3).Formula = "=A2+B2";

Sheet.Cells(3,1).Value = CurrentDate();

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

Book.Close();

نهاية الإجراء

&على الخادم

الدالة GetLayoutServer()

إرجاع FormAttributesValue("Object").GetLayout("TemplateForUpload"); // بهذه الطريقة نحصل على تخطيط المعالجة الخارجية؛

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

&OnClient

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

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

استثناء

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

this.EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

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

Book = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

SheetTemplate.Cells(6,2).Value = CurrentDate();

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

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // قم بتمديد العمود بحيث يتناسب التاريخ تمامًا

Book.SaveAs(FileName);

Book.Close();

نهاية الإجراء

&OnClient

نهاية الإجراء

&OnClient

الإجراء WriteTabularDocument()

TabularDocument = New TabularDocument();

TabularDocument.Area("R1C1").Text = "مثال لسجل في MS Excel من 1C";

TabularDocument.Write("C:\1\Test2.xls",TabularDocumentFileType.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()

نهاية الإجراء

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

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

TabularDocument = UploadOnServer(Address);

TabularDocument.Show();

نهاية الإجراء

&على الخادم

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

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Address);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

إرجاع مستند جدولي؛