1C قراءة ملف Excel بدون تثبيت. أيهما أفضل - 1C أم إكسل؟ خيارات معالجة النقل DIY

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

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

آلية عالمية

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

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

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

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

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

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

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

  • تم تطويره بواسطة متخصصين من 1C، تنسيق الملفمكسل؛
  • ليزتXLS المحفوظة بالتنسيقإكسل 97-2003؛
  • ملف نصيرسالة قصيرة؛
  • الجداولDBF.

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

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

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

الصورة 2

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

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

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

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

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

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

وصف الأنواع – يعرض نوع البيانات التي تحتوي عليها سمة بيانات تعريف معينة.

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

تين. 3

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

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

الشكل 4

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

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

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

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

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

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

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

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

الشكل 5

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

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

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

الشكل 6

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

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

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

الشكل 7

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

الشكل 8

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

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

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

الشكل 9

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

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

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

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

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

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

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

عبر ADODB.Connection

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

بالنسبة لملفات Excel، هناك ثلاثة خيارات:

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

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

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

الشكل 13

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

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

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

عبر تطبيق الاكسل

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

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

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

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

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

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

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

الشكل 19

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

أرز. 20.

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

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

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

انتباه!

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

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

TabDoc . Write(FilePath, TabularDocumentFileType.XLSX);

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

  • XLS95 — تنسيق اكسل 95;
  • XLS97 - تنسيق Excel 97؛
  • XLSX هو تنسيق Excel 2007.

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

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

  • معنى؛
  • نص.

التبادل عبر OLE

ربما يكون التبادل عبر تقنية أتمتة OLE هو الخيار الأكثر شيوعًا عمل البرنامجمع ملفات اكسل. فهو يسمح لك باستخدام كافة الوظائف التي يوفرها برنامج 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)؛

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

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

ل تجاوزجميع الخطوط المكتملة ورقة اكسليمكن استخدام الطرق التالية:

// -- الخيار 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;
// التعيين إلى منطقة الورقة قيم التفوقمن 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. احفظ مستند جدول البيانات بالتنسيق المطلوب.

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

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

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

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

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

    عندما يتعين عليك التعامل مع الملفات منتجات البرمجيات، والتي لم يتم تثبيتها على جهاز الكمبيوتر الحالي الخاص بك، فإن أسهل طريقة هي استخدامها تطبيق خاصللترجمة جداول اكسلإلى تنسيق 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 للحصول على المساعدة. سنساعدك على حل مشاكلك على مستوى البرنامج وفهم الأوامر اللازمة لعملك.